Habit · loads whenever its situation comes up, at any step

deep-modules

about 3,600 tokens

deep-modules as it installs, each line coloured by where its words came from.

  • 4 files
  • 10 edits
  • 22 sentences left out
  • 2 sources
  • last changed 2026-10-19

Replaces codebase-design (retired 2026-10-08).

The text

SKILL.md

about 1,900 tokens
  • Matt Pocock's skills
  • pstack
  • greenline

---

name: "deep-modules"

description: "Design deep modules at any step: a lot of behaviour behind a small interface, placed at a clean seam, testable through that interface, with the layers a reader must trace and the state a reader must hold kept small. Use when designing or improving one module's interface, placing a seam, making code testable, finding code hard to trace, or exploring alternative interfaces; a repository-wide survey belongs to architecture-survey."

---

greenlineOpens the habit: when it applies; only sweep-tests ever removes a test

deep-modules is the habit for the moment one module's interface is designed or improved, a seam placed, code made testable, or code found hard to trace, at whatever step the work is in, most often build. It writes no record of its own, and it is a reference to consult, not a session to run: tdd consults it for the vocabulary of the seam it tests at, and a repository-wide survey is architecture-survey's. Existing tests are kept through a deepening: removing one, with any seam only it uses, is sweep-tests' work, as a change of its own with its green baseline and before/after mutation proof, and this habit never deletes a test.

greenlinePoints at the skill's references page for paths and commands

Greenline's paths and commands for this skill stand on its references page, [references/greenline.md](references/greenline.md): read it when the work lands in the workspace.

Matt Pocock's skillscodebase-design/SKILL.md

Design **deep modules**: a lot of behaviour behind a small interface, placed at a clean seam, testable through that interface. Use this language and these principles wherever code is being designed or restructured. The aim is leverage for callers, locality for maintainers, and testability for everyone.

## Glossary

Use these terms exactly: don't substitute "component," "service," "API," or "boundary." Consistent language is the whole point.

**Module**: anything with an interface and an implementation. Deliberately scale-agnostic: a function, class, package, or tier-spanning slice. _Avoid_: unit, component, service.

**Interface**: everything a caller must know to use the module correctly: the type signature, but also invariants, ordering constraints, error modes, required configuration, and performance characteristics. _Avoid_: API, signature (too narrow, they refer only to the type-level surface).

**Implementation**: what's inside a module, its body of code. Distinct from **Adapter**: a thing can be a small adapter with a large implementation (a Postgres repo) or a large adapter with a small implementation (an in-memory fake). Reach for "adapter" when the seam is the topic; "implementation" otherwise.

**Depth**: leverage at the interface. The amount of behaviour a caller (or test) can exercise per unit of interface they have to learn. A module is **deep** when a large amount of behaviour sits behind a small interface, **shallow** when the interface is nearly as complex as the implementation.

**Seam** _(Michael Feathers)_: a place where you can alter behaviour without editing in that place; the *location* at which a module's interface lives. Where to put the seam is its own design decision, distinct from what goes behind it. _Avoid_: boundary (overloaded with DDD's bounded context).

**Adapter**: a concrete thing that satisfies an interface at a seam. Describes *role* (what slot it fills), not substance (what's inside).

**Leverage**: what callers get from depth. More capability per unit of interface they learn. One implementation pays back across N call sites and M tests.

**Locality**: what maintainers get from depth. Change, bugs, knowledge, and verification concentrate in one place rather than spreading across callers. Fix once, fixed everywhere.

## Deep vs shallow

**Deep module** = small interface + lots of implementation:

```

┌─────────────────────┐

│ Small Interface │ ← Few methods, simple params

├─────────────────────┤

│ │

│ Deep Implementation│ ← Complex logic hidden

│ │

└─────────────────────┘

```

**Shallow module** = large interface + little implementation (avoid):

```

┌─────────────────────────────────┐

│ Large Interface │ ← Many methods, complex params

├─────────────────────────────────┤

│ Thin Implementation │ ← Just passes through

└─────────────────────────────────┘

```

When designing an interface, ask:

- Can I reduce the number of methods?

- Can I simplify the parameters?

- Can I hide more complexity inside?

## Principles

- **Depth is a property of the interface, not the implementation.** A deep module can be internally composed of small, mockable, swappable parts; they just aren't part of the interface. A module can have **internal seams** (private to its implementation, used by its own tests) as well as the **external seam** at its interface.

- **The deletion test.** Imagine deleting the module. If complexity vanishes, it was a pass-through. If complexity reappears across N callers, it was earning its keep.

- **The interface is the test surface.** Callers and tests cross the same seam. If you want to test *past* the interface, the module is probably the wrong shape.

- **One adapter means a hypothetical seam. Two adapters means a real one.** Don't introduce a seam unless something actually varies across it.

pstackprinciple-minimize-reader-load/SKILL.md

Maintainability is the work a reader must do to understand code. Track two axes:

1. **Layers to trace.** How many indirections sit between the question and the answer.

2. **State to hold.** How much hidden or mutable context the reader must keep in their head.

pstackprinciple-minimize-reader-load/SKILL.md

The two axes are independent. A flat file with 50 globals can be as hard to reason about as a 6-layer adapter stack. Guard both.

pstackprinciple-minimize-reader-load/SKILL.md

- **Shrink state scope:** prefer pure functions (returns over mutations), locals over fields, fields over module state, and module state over globals. Derive instead of sync.

- **Name the invariant at the seam,** not in every consumer, so the reader learns it once.

- Before adding a layer or a piece of state, ask: does this reduce reader load somewhere else by at least as much?

**The test:** Can a new reader answer "where does X come from?" and "what can change X?" in under 30 seconds? If not, cut layers or cut state.

Matt Pocock's skillscodebase-design/SKILL.md

## Designing for testability

Good interfaces make testing natural:

1. **Accept dependencies, don't create them.**

```typescript

// Testable

function processOrder(order, paymentGateway) {}

// Hard to test

function processOrder(order) {

const gateway = new StripeGateway();

}

```

2. **Return results, don't produce side effects.**

```typescript

// Testable

function calculateDiscount(cart): Discount {}

// Hard to test

function applyDiscount(cart): void {

cart.total -= discount;

}

```

3. **Small surface area.** Fewer methods = fewer tests needed. Fewer params = simpler test setup.

## Relationships

- A **Module** has exactly one **Interface** (the surface it presents to callers and tests).

- **Depth** is a property of a **Module**, measured against its **Interface**.

- A **Seam** is where a **Module**'s **Interface** lives.

- An **Adapter** sits at a **Seam** and satisfies the **Interface**.

- **Depth** produces **Leverage** for callers and **Locality** for maintainers.

## Rejected framings

- **Depth as ratio of implementation-lines to interface-lines** (Ousterhout): rewards padding the implementation. We use depth-as-leverage instead.

- **"Interface" as the TypeScript `interface` keyword or a class's public methods**: too narrow: interface here includes every fact a caller must know.

- **"Boundary"**: overloaded with DDD's bounded context. Say **seam** or **interface**.

## Going deeper

- **Deepening a cluster given its dependencies**, see [DEEPENING.md](DEEPENING.md): dependency categories, seam discipline, and replace-don't-layer testing, with the old tests retained until sweep-tests proves their deletion.

greenlineAlternative interfaces are designed one after another, never by parallel sub-agents

- **Exploring alternative interfaces**, see [DESIGN-IT-TWICE.md](DESIGN-IT-TWICE.md): design the interface several radically different ways, one design after another, then compare on depth, locality, and seam placement.

SKILL.md as installed, byte for byte SHA-256 e0d8e4c7dd705306fcf3bac5a8e5764ecbc0699f5d25a999d8e4608dc7950814

DEEPENING.md

about 750 tokens
  • Matt Pocock's skills
  • greenline
Matt Pocock's skillscodebase-design/DEEPENING.md

# Deepening

How to deepen a cluster of shallow modules safely, given its dependencies. Assumes the vocabulary in [SKILL.md](SKILL.md): **module**, **interface**, **seam**, **adapter**.

## Dependency categories

When assessing a candidate for deepening, classify its dependencies. The category determines how the deepened module is tested across its seam.

### 1. In-process

Pure computation, in-memory state, no I/O. Always deepenable: merge the modules and test through the new interface directly. No adapter needed.

### 2. Local-substitutable

Dependencies that have local test stand-ins (PGLite for Postgres, in-memory filesystem). Deepenable if the stand-in exists. The deepened module is tested with the stand-in running in the test suite. The seam is internal; no port at the module's external interface.

### 3. Remote but owned (Ports & Adapters)

Your own services across a network boundary (microservices, internal APIs). Define a **port** (interface) at the seam. The deep module owns the logic; the transport is injected as an **adapter**. Tests use an in-memory adapter. Production uses an HTTP/gRPC/queue adapter.

Recommendation shape: *"Define a port at the seam, implement an HTTP adapter for production and an in-memory adapter for testing, so the logic sits in one deep module even though it's deployed across a network."*

### 4. True external (Mock)

Third-party services (Stripe, Twilio, etc.) you don't control. The deepened module takes the external dependency as an injected port; tests provide a mock adapter.

## Seam discipline

- **One adapter means a hypothetical seam. Two adapters means a real one.** Don't introduce a port unless at least two adapters are justified (typically production + test). A single-adapter seam is just indirection.

- **Internal seams vs external seams.** A deep module can have internal seams (private to its implementation, used by its own tests) as well as the external seam at its interface. Don't expose internal seams through the interface just because tests use them.

## Testing strategy: replace, don't layer

greenlineKeeps old shallow-module tests through a deepening; sweep-tests decides deletion

- Old unit tests on shallow modules become candidates for examination once tests at the deepened module's interface exist, not proven waste: retain them through the deepening, and route their deletion, with the removal of any seam only they use, to sweep-tests, as a change of its own with its green baseline and before/after mutation proof. A deepening that cannot retain the existing protection reports that constraint before removing it; no unproven test deletion is part of this method. Carry this rule into any delegated deepening brief.

Matt Pocock's skillscodebase-design/DEEPENING.md

- Write new tests at the deepened module's interface. The **interface is the test surface**.

- Tests assert on observable outcomes through the interface, not internal state.

- Tests should survive internal refactors, since they describe behaviour, not implementation. If a test has to change when the implementation changes, it's testing past the interface.

DESIGN-IT-TWICE.md

about 800 tokens
  • Matt Pocock's skills
  • greenline

greenlineDesigns alternative interfaces one after another, not by parallel sub-agents

When the user wants to explore alternative interfaces for a chosen deepening candidate, design the interface several times, one design after another. Based on "Design It Twice" (Ousterhout): your first idea is unlikely to be the best.

Matt Pocock's skillscodebase-design/DESIGN-IT-TWICE.md

Uses the vocabulary in [SKILL.md](SKILL.md): **module**, **interface**, **seam**, **adapter**, **leverage**.

## Process

### 1. Frame the problem space

Before the first design, write a user-facing explanation of the problem space for the chosen candidate:

- The constraints any new interface would need to satisfy

- The dependencies it would rely on, and which category they fall into (see [DEEPENING.md](DEEPENING.md))

- A rough illustrative code sketch to ground the constraints, not a proposal, just a way to make the constraints concrete

Show this to the user, then immediately proceed to Step 2.

greenlineDesigns made in turn, never in parallel, each agent briefed once

### 2. Make the designs, one after another

Make three or more designs in turn: yourself, one after another, or one fresh agent per design through the harness's delegation, each named in the section of the step it serves and counted in no cost, each started only once the one before it has returned its design. Never run them in parallel. Each agent gets the one brief every fresh agent gets, with this page as the skill it works by and its design's technical brief and constraint, below, as its extras; it starts no agent of its own and writes its design as its report, named for the step the design serves, which that step's section cites.

Matt Pocock's skillscodebase-design/DESIGN-IT-TWICE.md

Each must produce a **radically different** interface for the deepened module.

Give each design a separate technical brief (file paths, coupling details, dependency category from [DEEPENING.md](DEEPENING.md), what sits behind the seam). The brief is independent of the user-facing problem-space explanation in Step 1. Give each design a different design constraint:

- Design 1: "Minimize the interface: aim for 1–3 entry points max. Maximise leverage per entry point."

- Design 2: "Maximise flexibility: support many use cases and extension."

- Design 3: "Optimise for the most common caller: make the default case trivial."

- Design 4 (if applicable): "Design around ports & adapters for cross-seam dependencies."

Include both [SKILL.md](SKILL.md) vocabulary and GLOSSARY.md vocabulary in the brief so each design names things consistently with the architecture language and the project's domain language.

Matt Pocock's skillscodebase-design/DESIGN-IT-TWICE.md

1. Interface (types, methods, params, plus invariants, ordering, error modes)

2. Usage example showing how callers use it

3. What the implementation hides behind the seam

4. Dependency strategy and adapters (see [DEEPENING.md](DEEPENING.md))

5. Trade-offs: where leverage is high, where it's thin

### 3. Present and compare

Present designs sequentially so the user can absorb each one, then compare them in prose. Contrast by **depth** (leverage at the interface), **locality** (where change concentrates), and **seam placement**.

After comparing, give your own recommendation: which design you think is strongest and why. If elements from different designs would combine well, propose a hybrid. Be opinionated: the user wants a strong read, not a menu.

references/greenline.md

about 140 tokens
  • greenline
greenlineOpens the skill's mechanics page, read with SKILL.md

# Deep modules: the practice's mechanics

This page holds where deep-modules's work lands in the workspace and the commands it runs, which `SKILL.md` names by their nouns. Read it with `SKILL.md` when the work lands in the workspace.

greenlineThe design agent's brief and its report's path

## Where its work lands

A design agent of DESIGN-IT-TWICE.md gets the one brief every fresh agent gets, which the ledger guide states (`.greenline/ledger/README.md`, "The brief and the relay note"), and writes its design as its report, `.greenline/ledger/<id>/<step>-<n>.md`, named for the step the design serves.

The edits

Red is upstream's text; green is what greenline shipped in its place.

What the edit kinds mean
method
changes what the method does, under a recorded ruling
correction
fixes an error
scope
fits the text to this skill
pointer
re-points a reference
smaller edits
rename, relocate or adjust tool details
  1. Edit 2 pointer SKILL.md:132

    Upstream: **Deepening a cluster given its dependencies**, see [DEEPENING.md](DEEPENING.md): dependency categories, seam discipline, and replace-don't-layer testing.

    Shipped: **Deepening a cluster given its dependencies**, see [DEEPENING.md](DEEPENING.md): dependency categories, seam discipline, and replace-don't-layer testing, with the old tests retained until sweep-tests proves their deletion.

    Old tests stay until sweep-tests proves their deletion, as DEEPENING.md says

    Full reason

    The pointer to DEEPENING.md says the old tests stay until sweep-tests proves their deletion, which that page now carries.

  2. Edit 3 method DESIGN-IT-TWICE.md:11

    Upstream: Before spawning sub-agents, write a user-facing explanation of the problem space for the chosen candidate:

    Shipped: Before the first design, write a user-facing explanation of the problem space for the chosen candidate:

    The problem space is written before the first design, not before sub-agents

    Full reason

    No sub-agent is spawned beside the conversation: the problem space is written before the first design (R21).

    Ruling R1

  3. Edit 4 method DESIGN-IT-TWICE.md:25

    Upstream: Prompt each sub-agent with a separate technical brief (file paths, coupling details, dependency category from [DEEPENING.md](DEEPENING.md), what sits behind the seam).

    Shipped: Give each design a separate technical brief (file paths, coupling details, dependency category from [DEEPENING.md](DEEPENING.md), what sits behind the seam).

    Each design, not a parallel sub-agent, takes its own technical brief

    Full reason

    Each design, not a parallel sub-agent, takes its own technical brief (R21).

    Ruling R1

  4. Edit 5 method DESIGN-IT-TWICE.md:25

    Upstream: Give each agent a different design constraint:

    Shipped: Give each design a different design constraint:

    Each design takes its own constraint

    Full reason

    Each design takes its own constraint (R21).

    Ruling R1

  5. Edit 6 method DESIGN-IT-TWICE.md:27

    Upstream: Agent 1: "Minimize the interface: aim for 1–3 entry points max.

    Shipped: Design 1: "Minimize the interface: aim for 1–3 entry points max.

    The constraints are numbered per design, not per agent

    Full reason

    The constraints are named per design (R21).

    Ruling R1

  6. Edit 7 method DESIGN-IT-TWICE.md:28

    Upstream: Agent 2: "Maximise flexibility: support many use cases and extension."

    Shipped: Design 2: "Maximise flexibility: support many use cases and extension."

    The constraints are numbered per design, not per agent

    Full reason

    The constraints are named per design (R21).

    Ruling R1

  7. Edit 8 method DESIGN-IT-TWICE.md:29

    Upstream: Agent 3: "Optimise for the most common caller: make the default case trivial."

    Shipped: Design 3: "Optimise for the most common caller: make the default case trivial."

    The constraints are numbered per design, not per agent

    Full reason

    The constraints are named per design (R21).

    Ruling R1

  8. Edit 9 method DESIGN-IT-TWICE.md:30

    Upstream: Agent 4 (if applicable): "Design around ports & adapters for cross-seam dependencies."

    Shipped: Design 4 (if applicable): "Design around ports & adapters for cross-seam dependencies."

    The constraints are numbered per design, not per agent

    Full reason

    The constraints are named per design (R21).

    Ruling R1

  9. Edit 10 method DESIGN-IT-TWICE.md:32

    Upstream: Include both [SKILL.md](SKILL.md) vocabulary and GLOSSARY.md vocabulary in the brief so each sub-agent names things consistently with the architecture language and the project's domain language.

    Shipped: Include both [SKILL.md](SKILL.md) vocabulary and GLOSSARY.md vocabulary in the brief so each design names things consistently with the architecture language and the project's domain language.

    The vocabulary keeps each design's names consistent

    Full reason

    The vocabulary keeps each design's names consistent (R21).

    Ruling R1

1 smaller edit

Renames, locations and tool details, each with its reason.

  1. Edit 1 rename SKILL.md:81

    Upstream: **Name the invariant at the boundary,** not in every consumer, so the reader learns it once.

    Shipped: **Name the invariant at the seam,** not in every consumer, so the reader learns it once.

    Says seam, not boundary, for where an interface lives

    Full reason

    The spine's word for where an interface lives is seam, and its glossary avoids boundary, so the grafted rule takes it (C13).

What greenline wrote

The full reason for every passage greenline wrote, in the order of the text.

  1. SKILL.md:6 rename

    The habit's title is its roster name, deep-modules, which R22 gives the habit codebase-design became.

  2. SKILL.md:8 scope

    One opening paragraph in the habit's own voice: the situations the block's rows key it by, that it writes no record and is a reference, tdd and architecture-survey beside it, and that tests are kept through a deepening and removed only by sweep-tests.

  3. SKILL.md:10 pointer

    The front points at the skill's references page, where greenline's paths and commands for it stand since J-93 S2, so the front holds the method alone.

  4. SKILL.md:71 method

    principle-minimize-reader-load joins after the principles: its state axis, its scope ladder and its thirty-second test are what the spine lacks, its layer rules being the spine's deletion test and one-adapter rule. R1

  5. SKILL.md:133 method

    The designs are made one after another, by the one agent in turn or by delegated agents one after another, never by parallel sub-agents (R21 with R20). R1

    Credits: Matt Pocock's skills

  6. DEEPENING.md:33 method

    upstream tells the deepener to delete old shallow-module tests once interface tests exist; greenline retains them through the deepening and routes deletion to sweep-tests with mutation proof, which changes the criterion (the D3 consumer finding of 2026-09-10, carried as a bookend override until this fold); the operator is asked to confirm this method edit in the S3 report Confirmed by the operator on 2026-09-11 (method-rulings.md). R2

    Credits: Matt Pocock's skills

  7. DESIGN-IT-TWICE.md:3 method

    upstream runs a parallel sub-agent pattern; greenline makes the designs one after another (R21 with R20). R1

    Credits: Matt Pocock's skills

  8. DESIGN-IT-TWICE.md:19 method

    Spawn 3+ sub-agents in parallel becomes three or more designs made in turn, by the one agent or by delegated agents one after another, named in the section they serve and counted in no cost (R21 with R20), each agent briefed and its design named as the ledger guide gives every fresh agent, delegating nothing. Since J-93 S2 the front names greenline's homes and commands by their nouns, their paths and commands on the skill's references page. R3

    Credits: Matt Pocock's skills

  9. DESIGN-IT-TWICE.md:34 method

    Each design, not a sub-agent, gives the five parts (R21). R1

    Credits: Matt Pocock's skills

  10. references/greenline.md:1 scope

    The skill's references page opens: greenline's mechanics for the skill, the paths and commands its front names by their nouns, held apart from the upstream prose since J-93 S2.

  11. references/greenline.md:5 relocate

    deep-modules' mechanics: the design agent's brief and its report's path, held apart since J-93 S2.

What it left out

Matt Pocock's skills

Matt Pocock's skills, codebase-design/SKILL.md: 2 of 76 sentences left out
  1. # Codebase Design left out: The title becomes the roster name, deep-modules (R22). replaced by line 6 of SKILL.md
  2. 74 sentences taken
  3. **Exploring alternative interfaces**, see [DESIGN-IT-TWICE.md](DESIGN-IT-TWICE.md): spin up parallel sub-agents to design the interface several radically different ways, then compare on depth, locality, and seam placement. left out: Parallel sub-agents give way to designs made one after another (R21 with R20). R1 replaced by line 133 of SKILL.md
Matt Pocock's skills, codebase-design/DEEPENING.md: 1 of 40 sentences left out
  1. Old unit tests on shallow modules become waste once tests at the deepened module's interface exist; delete them. left out: upstream tells the deepener to delete old shallow-module tests once interface tests exist; greenline retains them through the deepening and routes deletion to sweep-tests with mutation proof, which changes the criterion (the D3 consumer finding of 2026-09-10, carried as a bookend override until this fold); the operator is asked to confirm this method edit in the S3 report Confirmed by the operator on 2026-09-11 (method-rulings.md). R2 replaced by line 33 of DEEPENING.md
Matt Pocock's skills, codebase-design/DESIGN-IT-TWICE.md: 5 of 36 sentences left out
  1. When the user wants to explore alternative interfaces for a chosen deepening candidate, use this parallel sub-agent pattern. left out: The parallel sub-agent pattern gives way to designs made one after another (R21 with R20). R1 replaced by line 3 of DESIGN-IT-TWICE.md
  2. 9 sentences taken
  3. The user reads and thinks while the sub-agents work in parallel. left out: No sub-agent works in parallel while the user reads (R21 with R20). R1
  4. ### 2. Spawn sub-agents
  5. Spawn 3+ sub-agents in parallel. 2 sentences left out: Spawning three or more sub-agents in parallel gives way to designs made in turn (R21 with R20). R1 replaced by line 19 of DESIGN-IT-TWICE.md
  6. 10 sentences taken
  7. Each sub-agent outputs: left out: Each design, not a sub-agent, gives the five parts (R21 with R20). R1 replaced by line 34 of DESIGN-IT-TWICE.md

pstack

pstack, principle-minimize-reader-load/SKILL.md: 14 of 32 sentences left out
  1. # Minimize Reader Load left out: The title becomes the section's heading. replaced by line 71 of SKILL.md
  2. 6 sentences taken
  3. **Why:** Code is read far more than it is written.
  4. LOC, cyclomatic complexity, and "clean architecture" are proxies.
  5. Reader load is the thing that matters. 3 sentences left out: The why restates the section's opening sentence.
  6. 3 sentences taken
  7. This is the human analog of [Guard the Context Window](../principle-guard-the-context-window/SKILL.md).
  8. Working memory is finite for readers too. 2 sentences left out: Guard the Context Window is no roster skill, and the analogy has no reader here.
  9. 1 sentence taken
  10. **Collapse layers** that cost more than they save: wrappers with one caller, adapters with no second implementation, speculative indirection that was never needed.
  11. Inline them.
  12. **Make adjacent layers change the abstraction.**
  13. A layer that repeats the same methods and arguments adds reader load without compression.
  14. Collapse pass-through layers.
  15. **Demand interface compression.**
  16. A broad interface that hides little complexity makes readers learn both the surface and the implementation.
  17. Prefer boundaries that hide meaningful decisions. 8 sentences left out: Collapsing layers, adjacent layers that change the abstraction and interface compression restate the spine's deletion test, its one-adapter rule and deep against shallow.

The ledger entry

greenline's ledger logs how each skill was made and changed, with a reason for each entry.

2026-10-19 2026-10-19-deep-modules-front-and-references

deep-modules's paths and commands move to a references page

The front names greenline's homes and commands by their nouns and points at a references page, which holds their paths and commands (J-93 S2).

Authorised by
2026-10-18 The operator's words of 2026-10-18 on the redesign (N-56, items 2 and 7), "we need the upstream prose upfront and references hold how to work meaning the artefacts etc" and, on the ingest procedures, "we wanna have there prose .. what we don't wanna have is there artefact system and fit them to use ours"; and J-93 S2's finalise words of 2026-10-19, "Fast route, merged slices, parallel jobs (Recommended)": a skill's front is the upstream prose its recipe cuts, and its mechanics, where its work lands, its section's form, its depths at each mode and its commands, stand on its references page
Pages it touched
DESIGN-IT-TWICE.md, SKILL.md, references/greenline.md
Rulings, R1 to R13
  1. the operator's rulings of 2026-10-08 on the intake R3 ("everything is good", and "yes go ahead" on the portable forms of R21), the verdicts standing and every contradiction ruled as recommended: principle-minimize-reader-load's state axis, its scope ladder and its thirty-second test graft onto codebase-design; and R21 with R20, the designs made one after another, by the one agent in turn or by delegated agents one after another where the mode spends them, never in parallel
  2. series-s7-roster-2026-09-11: the operator's ruling of 2026-09-11 that the plan's open items be finished with the maintainer's recommendations; the recommendation, recorded in that file, keeps the nine method edits; and the operator's rulings of 2026-10-04, "cool then lock everything in": every change has one record its steps write, and a habit writes none of its own; and R16 of 2026-10-07, a habit loaded when its situation arises at any step ("update the agents md created by greenline product to mention the kind with the skill table and also prose about when to use what kind skill")
  3. the operator's rulings of 2026-10-08 on the intake R3 ("everything is good", and "yes go ahead" on the portable forms of R21), the verdicts standing and every contradiction ruled as recommended: principle-minimize-reader-load's state axis, its scope ladder and its thirty-second test graft onto codebase-design; and R21 with R20, the designs made one after another, by the one agent in turn or by delegated agents one after another where the mode spends them, never in parallel; The operator's cards of 2026-10-14 on part 3 of the-whole-change, each "Rule as proposed": one agent at a time through the harness's delegation, in the change's one checkout and never a worktree; one brief for every fresh agent, the change's front matter, its acceptance, its id, the path of its report and the skill it works by, then the step's extras, and no fresh agent delegates; every fresh agent's report is <step>-<n>.md in the change's folder; the fix rounds are per step, and a fix after verify is not reviewed again outside a loop without the owner's word; verify's verdicts stand as the agent gave them; and where the harness has no delegation the block's fallback runs every depth above written; The operator's cards of 2026-10-14 on part 5 of the-whole-change, the walk's cures: "A branch of its own", a change's commits never going to another change's branch, the new change taking greenline/<id> from the default branch where a remote exists and the default branch itself where there is none; "At the proposal", the change's id chosen when the proposal is written, its branch, working folder and record taking the same id; "Yes, every stop commits", every stop committing the record with the change's trailer, so a stopped change is found from any branch and after a clone and resumes on the branch that commit sits on; "Not counted", an agent a step's method starts named in that step's section and counted nowhere; "The one brief, the method's extras", that agent getting the one brief with the extras the page that starts it names; and "Settle in S6" for the orientation's edges and the setup's, the default branch being origin/HEAD, else init.defaultBranch, else the branch HEAD names, and a remote that is no forge offering the local merge or the branch left, never a pull request; The operator's words of 2026-10-18 on the redesign (N-56, items 2 and 7), "we need the upstream prose upfront and references hold how to work meaning the artefacts etc" and, on the ingest procedures, "we wanna have there prose .. what we don't wanna have is there artefact system and fit them to use ours": a skill's front is the upstream prose its recipe cuts, and greenline's mechanics, where the step's work lands, its section's form, its commands and its depths at each mode, stand on its references page (J-93 S2)
  4. The method items carry the operator's rulings of 2026-10-08 on the intake R3 ("everything is good", and "yes go ahead" on the portable forms of R21), the verdicts standing and every contradiction ruled as recommended: principle-minimize-reader-load's state axis, its scope ladder and its thirty-second test graft onto codebase-design; and R21 with R20, the designs made one after another, by the one agent in turn or by delegated agents one after another where the mode spends them, never in parallel
  5. the operator's ruling R21 of 2026-10-08 on harness-bound and orchestration content ("harness specific skills have be re thought in to being usable on all harnesses"), with R20 of 2026-10-07 ("we are not doing worktrees and parralel susbs at all")
  6. the operator's ruling R22 of 2026-10-08 on the re-cut brief, "yes amend, with one change": the roster table's names stand, deep-modules, domain-and-types, boundaries, concurrency, secrets and prose among them, tdd and ponytail keeping theirs
  7. the operator's rulings of 2026-10-04, "cool then lock everything in": every change has one record its steps write, and a habit writes none of its own
  8. R16 of 2026-10-07, a habit loaded when its situation arises at any step ("update the agents md created by greenline product to mention the kind with the skill table and also prose about when to use what kind skill")
  9. the operator's ruling of 2026-09-11 (series-s7-roster-2026-09-11), the old tests retained through a deepening
  10. J-59, on the operator's words of 2026-10-09 ('okay then implement all of this'): a gist of at most twelve words on every account whose reason is stated; no text, measure or method changes
  11. The operator's cards of 2026-10-14 on part 3 of the-whole-change, each "Rule as proposed": one agent at a time through the harness's delegation, in the change's one checkout and never a worktree; one brief for every fresh agent, the change's front matter, its acceptance, its id, the path of its report and the skill it works by, then the step's extras, and no fresh agent delegates; every fresh agent's report is <step>-<n>.md in the change's folder; the fix rounds are per step, and a fix after verify is not reviewed again outside a loop without the owner's word; verify's verdicts stand as the agent gave them; and where the harness has no delegation the block's fallback runs every depth above written
  12. The operator's cards of 2026-10-14 on part 5 of the-whole-change, the walk's cures: "A branch of its own", a change's commits never going to another change's branch, the new change taking greenline/<id> from the default branch where a remote exists and the default branch itself where there is none; "At the proposal", the change's id chosen when the proposal is written, its branch, working folder and record taking the same id; "Yes, every stop commits", every stop committing the record with the change's trailer, so a stopped change is found from any branch and after a clone and resumes on the branch that commit sits on; "Not counted", an agent a step's method starts named in that step's section and counted nowhere; "The one brief, the method's extras", that agent getting the one brief with the extras the page that starts it names; and "Settle in S6" for the orientation's edges and the setup's, the default branch being origin/HEAD, else init.defaultBranch, else the branch HEAD names, and a remote that is no forge offering the local merge or the branch left, never a pull request
  13. The operator's words of 2026-10-18 on the redesign (N-56, items 2 and 7), "we need the upstream prose upfront and references hold how to work meaning the artefacts etc" and, on the ingest procedures, "we wanna have there prose .. what we don't wanna have is there artefact system and fit them to use ours"; and J-93 S2's finalise words of 2026-10-19, "Fast route, merged slices, parallel jobs (Recommended)": a skill's front is the upstream prose its recipe cuts, and its mechanics, where its work lands, its section's form, its depths at each mode and its commands, stand on its references page
4 earlier entries
  1. 2026-10-14 2026-10-14-deep-modules-design-agent-not-counted

    A design agent is named in its section, counted in no cost

    Pages it touched: DESIGN-IT-TWICE.md

  2. 2026-10-14 2026-10-14-deep-modules-design-agent-brief

    Each design agent gets the one brief and writes a named report

    Pages it touched: DESIGN-IT-TWICE.md

  3. 2026-10-09 2026-10-09-deep-modules-gists

    Every account gets a short gist for the website

  4. 2026-10-08 2026-10-08-deep-modules-recipe

    Codebase-design renamed deep-modules, with a reader-load section

    Pages it touched: DEEPENING.md, DESIGN-IT-TWICE.md, SKILL.md