Step 7 of 7 · how deep it runs depends on how sure the change must be

close

about 5,300 tokens

close as it installs, each line coloured by where its words came from.

  • 5 files
  • 3 edits
  • 170 sentences left out
  • 5 sources
  • last changed 2026-10-21
  • step 7 of 7

Replaces record-architecture-decisions and domain-modeling (retired 2026-10-08).

The text

SKILL.md

about 3,100 tokens
  • Eric Clemmons
  • Matt Pocock's skills
  • Jesse Vincent's Superpowers
  • greenline

---

name: "close"

description: "Close a change: record the durable decisions it surfaced as ADRs in the repository's decision home, write down the terms it settled, audit the record's claims against the change's commits and checks, set the record's state, \"next\" line and cost, and offer the landing of the change's branch, at the depth the change's mode gives the close step. Use when the mode reaches close or the work stops, when the owner asks to record a decision or to write a term down, and when a change chooses among meaningful alternatives, abandons an approach over a discovered constraint or supersedes an earlier decision."

---

greenlineOpens close: decisions, terms, the audit, the record's state and landing

# Close

Close ends a change: it records the durable decisions the work surfaced, writes down the terms it settled, audits the record against what happened, sets the record's state, its "next" line and its cost, and offers the landing of the change's branch. It runs where the change's mode reaches the close step, at the depth the mode gives it, and when the work stops before it is done. Loaded mid-work by one of the situations its description names, or asked for by name to record a decision or to write a term down, it does that part alone; with no change open, a write into the knowledge homes (the decisions book, the ADR home, the glossary) opens a quick record first. It reads the whole change record first, with the change's commits and checks. It never reopens the decision it records, and it changes no code: the audit corrects the record, and a gap it finds in the work itself goes to the owner.

Eric Clemmonsrecord-architecture-decisions/SKILL.md

Capture why a decision made sense with the constraints and evidence available at the time. Keep the record useful after those constraints change.

greenlineClosing order: distil, decisions, terms, checks again, audit, landing, state, tidy

## Closing the record

Close the change in this order:

1. Distil what the change's working files hold worth keeping into the record's sections.

2. Evaluate the change for durable decisions, and write each ADR it calls for ("Evaluate the change" and "Write the ADR", below).

3. Write down the terms the change settled ("The terms", below).

4. Once the decisions and the terms are written, record again each check whose code they moved: an ADR or a glossary entry outside the workspace's own folder moves the code a check last ran on, and the change's status names each such check. No write outside that folder follows that run but the landing's merge, whose checks run on the merged result.

5. Audit the record against what happened ("The audit", below).

greenlineNames a repository rule against the offer beside it, owner decidinggreenlineNames the base before a local merge, from the proposal or ownerJesse Vincent's Superpowersfinishing-a-development-branch/SKILL.mdgreenlineChecks the merged result, stops on red, never forces a push

6. Offer the landing in one line, by the setup: push the branch and open a pull request where the remote is a forge, merge it into its base branch locally where no remote is a forge, or leave the branch. Each push, pull request and merge is done only on the owner's word. A repository rule against that offer, such as a contribution guide's rule against merging one's own branch, is named beside the offer, never in its place, and the owner's answer decides. Before a local merge, name the base branch: the default branch where the change's branch was made from it at its proposal, and otherwise the one the owner names when asked. Confirm before merging: merging into the wrong base is expensive to undo. Make the merge with its commit, its message carrying the change's trailer, never staged alone with `--no-commit`, then record the change's checks on the merged result, so their facts name the merge they checked; on a red result, stop the landing and tell the owner, leaving the merge, local and recoverable, for the owner to keep or undo. A rejected push is reported, never forced. Where the commits already sit on the base branch and no remote is a forge, there is nothing to land: offer nothing, and the close section says "nothing to land: the commits are on <branch>". A ticket's close offers none: the planning change's close offers the landing for the whole plan, its tickets' commits included.

greenlineClosing order: distil, decisions, terms, checks again, audit, landing, state, tidy

7. Write the close section, with what the landing did and a link to each brief the change's status lists, taken from that listing and never by opening one, and set the record's state, its "next" line and its cost, as close's references page says. The state is done only when the latest run of every check of the change is green: run a red check again on the final code once its cause is fixed, and while one stays red, the merged result's included, the change stays open, the "next" line names that check, and the owner hears why. A probe never enters the checks: verify's "Checks and probes" tells the two apart.

8. Remove the working files at every close, as close's references page says, once the state is done or dropped; the removal refuses while a record links to a file in them.

When the work stops before it is done, close stops the change as close's references page says, keeps the working files, and leaves the rest to the close that finishes the change. A wait for the owner within the session is no stop.

greenlineEvaluates the record, checks and trailer-found commits for durable decisions

1. At close, review the conversation, the change record (its build section's deviations and the approaches it tried and dropped), the change's checks, and the diff of the change's commits, found by the change's trailer, for durable decisions.

Eric Clemmonsrecord-architecture-decisions/SKILL.md

2. Write an ADR when the work:

- chose among meaningful alternatives;

- abandoned a preferred design because evidence exposed a constraint;

- established a convention, dependency, interface, data model, deployment pattern, or operational policy;

- accepted a trade-off that a future maintainer may otherwise undo without understanding it; or

- changes a decision documented by an existing ADR.

greenlineA deferral is no decision; shaping rulings stay in frame or plan

3. Skip an ADR for routine maintenance, implementation details, straightforward bug fixes, and choices already dictated by an accepted ADR. A deferral is not a decision: a choice put off is a line inside the decision it defers from, never an ADR or a decisions-book entry of its own. A shaping ruling that scoped the work belongs in the change record's frame section, or the plan directory's decisions file when the work splits, not in an ADR; an ADR holds the durable technical reasoning the work itself surfaced, such as a constraint discovered or an approach abandoned.

Eric Clemmonsrecord-architecture-decisions/SKILL.md

4. If no ADR is needed, state that explicitly in the close section.

## Write the ADR

greenlineWrites where the repository already keeps decisions; seeds docs/adr/ only if nonegreenlineA conflicting decision convention goes to the owner, not a new scheme

1. Find the repository's existing decision home: a decisions document, or an ADR directory of its own. When one exists, write there in that home's format. Only when the repository keeps no decisions anywhere, seed `docs/adr/` on first use from this skill's `adr/README.md` and `adr/template.md`, then read `docs/adr/README.md` and `docs/adr/template.md` completely. If what the repository shows of its decision home conflicts, two homes or two naming schemes, surface the conflict to the owner rather than silently introducing another scheme.

greenlineCreates the dated ADR file, or another place's own entry formEric Clemmonsrecord-architecture-decisions/SKILL.md

2. In `docs/adr/`, create `docs/adr/YYYY-MM-DD-short-title.md`; in another home, add the entry in that home's own form. Use a specific, durable title and avoid sequential numbers that conflict across concurrent branches.

Eric Clemmonsrecord-architecture-decisions/SKILL.md

3. Preserve the facts from the work:

- the need or problem;

- the constraints encountered;

- concrete evidence such as failed approaches, validation results, limits, or links;

- the chosen approach and meaningful rejected alternatives;

- positive and negative consequences; and

- conditions under which the decision should be reconsidered.

4. Keep the ADR terse and scannable:

- Default to one or two concise bullets under each template heading.

- Use paragraphs only when bullets would obscure necessary reasoning.

- Combine closely related alternatives and consequences instead of cataloging every detail.

- Preserve the decision, evidence, trade-off, and reconsideration trigger without narrating the implementation.

greenlineThe ADR lands in the change's commits; the decisions book links it

5. Include the ADR in the change's commits whenever possible, and link a lasting choice from the decisions book rather than copying it there.

greenlineThe extension point carries a cross-module ADR's pointer and in-step checklist

A decision that spans modules is recorded where a developer must stand to extend it: the ADR lives at, or is pointed at from, the extension point, and it carries an explicit checklist of the other places that must change in step, because that is the moment the reader is already committed to the change (Ousterhout, 2021). The ADR is still a dated file in the decision home; what stands at the extension point is the record's pointer and the in-step checklist the extending reader must act on. Duplicating the explanation into every dependent site drifts apart, and parking it in one dependent site hides it; where no obvious central location exists, the decision home is the fallback and the extension point gains the pointer.

Eric Clemmonsrecord-architecture-decisions/SKILL.md

## Preserve history

- Do not rewrite a landed ADR to make the old decision appear current.

- Add a new ADR when a decision changes, and link the earlier record under `Supersedes`.

- Do not add approval or status metadata. Landing with the reviewed change records acceptance; an unmerged ADR remains a proposal in its branch.

greenlineWrites settled terms at close when in scope; otherwise offers one line

## The terms

Write down each term the change settled, the frame section's terms and any the work sharpened since, in `GLOSSARY.md` or the repository's existing glossary in its own format, when the change's scope covers that file; otherwise offer the entry in one line and write it on the owner's word. Asked for by name mid-work, write the term down right there, by the same rule.

Matt Pocock's skillsdomain-modeling/SKILL.mdgreenlineAn existing glossary keeps the terms; GLOSSARY.md is created only if none

Create files lazily: only when you have something to write. An existing glossary or vocabulary document is the home for terms, whatever its name; if the repository has none, create `GLOSSARY.md` when the first term is resolved, in the form [references/GLOSSARY-FORMAT.md](references/GLOSSARY-FORMAT.md) gives, which also says where each glossary lives in a repository of several contexts.

Matt Pocock's skillsdomain-modeling/SKILL.md

`GLOSSARY.md` should be totally devoid of implementation details. Do not treat `GLOSSARY.md` as a spec, a scratch pad, or a repository for implementation decisions. It is a glossary and nothing else.

Matt Pocock's skillsdomain-modeling/SKILL.md

### Offer ADRs sparingly

Only offer an ADR for a term change when all three are true:

1. **Hard to reverse**: the cost of changing your mind later is meaningful

2. **Surprising without context**: a future reader will wonder "why did they do it this way?"

3. **The result of a real trade-off**: there were genuine alternatives and you picked one for specific reasons

greenlineA term-change ADR follows the steps above, not a separate format page

If any of the three is missing, skip the ADR. When all three hold, record it as an ADR by the steps above.

greenlineAudits every record claim against the change's commits and checks

## The audit

Before the change is called done, check that its record tells the truth. Read the change's commits, found by their trailer, its recorded checks and the files it changed, which the change's status lists, and walk every claim the record makes of what was done or checked against them:

- Every claim maps to an action that happened: a commit of the change, or a check that ran.

- Each claim's evidence resolves and shows what the claim says.

- A pivot, a deviation or an abandoned approach that shaped the work and is not in the record is a gap: add it to the build section.

- Count the commits and checks as they stand at the close's end: a number the close section states is read from the change's status when the section is written, after the landing, with the commit that carries the section counted; a statement of what holds of every commit, such as each carrying the trailer, needs no number.

- The change's status counts the commits since the last recorded check: above zero, they may hold code no recorded check saw, so record the change's checks again on the final code before it is done, and a result the record cites from a plain run is named in the close section as not recorded.

- Every code commit of the change is among those its status lists. One made before the record entered the repository, in a repository's first change, is counted for no change: name it in the close section by its short hash, and leave it as it is.

Correct the record, not the story: a claim nothing backs is rewritten to say what happened, and a check the record claims that no run backs is named in the close section as not run. The audit reads the change's commits, checks and files, never a harness transcript, and no other agent runs for it.

greenlineThe handoff is none when done, and the "next" line when stopped

## Handoff

Consumes: the change record .greenline/ledger/<id>.md with its sections, the change's commits found by their trailer, its checks under .greenline/ledger/<id>/checks/, its working files under .greenline/tmp/<id>/, and the repository's decision home and glossary Produces: the close section of .greenline/ledger/<id>.md and its front matter's state, "next" line and cost; each ADR in the decision home, linked from the decisions book .greenline/DECISIONS.md, docs/adr/YYYY-MM-DD-short-title.md only when the repository keeps no decisions elsewhere and docs/adr/ is seeded from this skill's adr/ pages; each term in GLOSSARY.md or the repository's glossary; the landing offered, and done only on the owner's word; the working files removed by greenline tidy Next: none when the change is done; when the work stops, the record's "next" line, naming the step reached and the action that resumes it

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

adr/README.md

about 200 tokens
  • Eric Clemmons
Eric Clemmonsrecord-architecture-decisions/README.md

# Architecture Decision Records

This directory preserves why durable technical decisions made sense given the constraints and evidence available at the time.

Create an ADR when a change chooses among meaningful alternatives, moves from an ideal approach to a practical one because of discovered constraints, establishes a cross-component convention or contract, accepts a consequential trade-off, or replaces an earlier decision. Do not create one for routine maintenance or implementation details.

Name records `YYYY-MM-DD-short-title.md` and start from [`template.md`](template.md). Keep them small and land them with the change they explain.

A merged ADR is accepted. Do not add status or approver fields. When a decision changes, add a new ADR with a `Supersedes` link instead of rewriting history.

adr/template.md

about 160 tokens
  • Eric Clemmons
Eric Clemmonsrecord-architecture-decisions/template.md

# Decision title

- Date: YYYY-MM-DD

- Related: issue, merge request, code, or other ADR links

- Supersedes: omit when not applicable

## Context

What need prompted this decision?

## Constraints and evidence

What was true at the time? Include relevant failed attempts, validation results, limits, or other evidence.

## Decision

What are we doing, and why is it the practical choice?

## Alternatives considered

What meaningful alternatives did we reject, and why?

## Consequences

What improves, what becomes harder, and what risks remain?

## Reconsider when

Which assumptions or constraints changing would justify revisiting this decision?

references/GLOSSARY-FORMAT.md

about 570 tokens
  • Matt Pocock's skills
Matt Pocock's skillsdomain-modeling/GLOSSARY-FORMAT.md

# GLOSSARY.md Format

## Structure

```md

# {Context Name}

{One or two sentence description of what this context is and why it exists.}

## Language

**Order**:

{A one or two sentence description of the term}

_Avoid_: Purchase, transaction

**Invoice**:

A request for payment sent to a customer after delivery.

_Avoid_: Bill, payment request

**Customer**:

A person or organization that places orders.

_Avoid_: Client, buyer, account

```

## Rules

- **Be opinionated.** When multiple words exist for the same concept, pick the best one and list the others under `_Avoid_`.

- **Keep definitions tight.** One or two sentences max. Define what it IS, not what it does.

- **Only include terms specific to this project's context.** General programming concepts (timeouts, error types, utility patterns) don't belong even if the project uses them extensively. Before adding a term, ask: is this a concept unique to this context, or a general programming concept? Only the former belongs.

- **Group terms under subheadings** when natural clusters emerge. If all terms belong to a single cohesive area, a flat list is fine.

## Single vs multi-context repos

**Single context (most repos):** One `GLOSSARY.md` at the repo root.

**Multiple contexts:** A `GLOSSARY-MAP.md` at the repo root lists the contexts, where they live, and how they relate to each other:

```md

# Glossary Map

## Contexts

- [Ordering](./src/ordering/GLOSSARY.md): receives and tracks customer orders

- [Billing](./src/billing/GLOSSARY.md): generates invoices and processes payments

- [Fulfillment](./src/fulfillment/GLOSSARY.md): manages warehouse picking and shipping

## Relationships

- **Ordering → Fulfillment**: Ordering emits `OrderPlaced` events; Fulfillment consumes them to start picking

- **Fulfillment → Billing**: Fulfillment emits `ShipmentDispatched` events; Billing consumes them to generate invoices

- **Ordering ↔ Billing**: Shared types for `CustomerId` and `Money`

```

The skill infers which structure applies:

- If `GLOSSARY-MAP.md` exists, read it to find contexts

- If only a root `GLOSSARY.md` exists, single context

- If neither exists, create a root `GLOSSARY.md` lazily when the first term is resolved

When multiple contexts exist, infer which one the current topic relates to. If unclear, ask.

references/greenline.md

about 1,200 tokens
  • greenline
greenlineOpens close's mechanics page: depths, state, commands, stops and landing

# Close: the practice's mechanics

This page holds close at each mode's depth and where its work lands: the section, the record's state and cost, the commands the close and its audit run, the stops, the landing and the decisions. Read it with `SKILL.md` when the mode reaches close, and when AGENTS.md's index sends you here.

greenlineQuick closes with one line; written lists decisions, terms, landing, audit

## The depths

- **Inline, at quick.** Close the record by `SKILL.md`'s steps, every one of them, the checks' last run and `greenline tidy` included. The change record's close section, in `.greenline/ledger/<id>.md`, is one line: each ADR written, by its path, and each term written down, or none, the landing done, and the audit's result.

- **Written, at regular and careful.** Close the record by `SKILL.md`'s steps. The close section holds the decisions recorded, each ADR by its path or the statement that none was needed, the terms written down, the landing offered and what was done, and the audit's result: each gap it found and how the record was corrected.

greenlineThe state, cost, status's counts, tidy and the stop's commit

## The record's marks and the commands

Close reads the change's working files under `.greenline/tmp/<id>/`. The checks it records again, after the decisions and the terms, run through `greenline check`: a write outside `.greenline/` moves the code a check last ran on, and `greenline status --change <id>` names each such check (GL0451). After a local merge, the change's checks run on the merged result through `greenline check`. `greenline status --change <id>` lists the change's commits, found by their trailer `Greenline-Change: <id>`, its checks under `.greenline/ledger/<id>/checks/`, the files it changed and each brief as `greenline brief` wrote it, and counts the commits since the last recorded check; the audit and the close section read their numbers there.

The close sets the front matter: the state `done`, or `dropped` for a change the owner dropped; the "next" line `none`; and the cost, the agents and the rounds the change used, with `starts` naming each fresh agent started, such as `review 1`, a restart one more line, `review 1 restarted`, and one more agent. Set `done` only once `greenline status --change <id>` reports no cost below the starts the record names (GL0409). Set `done` only when the latest run of every check under `.greenline/ledger/<id>/checks/` is green, as `greenline status --change <id>` shows; `SKILL.md`'s step 7 says what a red one asks. Remove the working files with `greenline tidy --change <id>` at every close, the quick mode's inline close included: it removes `.greenline/tmp/<id>/` once the state is `done` or `dropped`, and refuses while a record links to a file in it. A lasting choice is linked from the decisions book, `.greenline/DECISIONS.md`.

The skeleton of the record for each mode, its front matter and its sections, is in the workspace's ledger guide, `.greenline/ledger/README.md`; close fills it and does not restate it.

greenlineA stop commits the record and its folder alone

## Stops

A wait for the owner within the session, at a proposal, a question or a review, is no stop: the record stays `open`. A stop is the session leaving the change unfinished, as it ends or as another change's request stops it: set the state `stopped`, rewrite the "next" line and commit the record and its folder, the check facts under it, and nothing else; working edits the owner asks to commit are a commit of their own, apart from the stop's. A request for another change stops the change this session holds first, its state `stopped` with its "next" line, and then gets its own proposal. A stopped change is set `open` before any edit of its record or its code: a session that resumes one, which `router` finds, does so as its first write and writes on in its record. The stop's commit carries the change's trailer, and the working files stay for the close that finishes the change, which `SKILL.md`'s closing order states.

greenlineThe close section records the landing; every close ends with tidy

## The landing

The landing is offered as `SKILL.md`'s closing order says, and the close section records what was done. Every close, the quick mode's included, writes its terms and decisions before the checks' last run, so no check is older than the code, and ends with `greenline tidy --change <id>`. The reply carries the outcomes, the meaningful choices and the real limits: a limit names what was not run, never an environment fact not checked, and a method is named only to offer it.

greenlineDecisions land in the repository's existing home

## Decisions

A repository's existing home for a kind of memory is that home; a default home AGENTS.md or `.greenline/WORK.md` names is created only where the repository has none. The repository's law file changes, and an existing decision is superseded, only on the owner's request; a new reversible entry in the decision home is yours to add. A product behavior the request left open (what a user would notice) and the frame does not ask is decided, recorded as reversible in the repository's decision home (the book only where the repository has none) and named in the reply in one line; a product's name, what ships first, a paid service or a consequential exception is asked.

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:63

    Upstream: Landing through merge request review records acceptance; an unmerged ADR remains a proposal in its branch.

    Shipped: Landing with the reviewed change records acceptance; an unmerged ADR remains a proposal in its branch.

    The ADR is accepted with the reviewed change, not a merge request

    Full reason

    Upstream's merge request is the change: the ADR's acceptance is the reviewed change landing.

  2. Edit 3 method SKILL.md:75

    Upstream: Only offer to create an ADR when all three are true:

    Shipped: Only offer an ADR for a term change when all three are true:

    The three-part bar governs only an ADR for a term change

    Full reason

    Inside close the three-part bar governs an ADR for a term change, domain-modeling's half; record-architecture-decisions' criteria above govern the decisions of the work.

    Ruling R8

1 smaller edit

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

  1. Edit 1 relocate SKILL.md:37

    Upstream: If no ADR is needed, state that explicitly in the final handoff.

    Shipped: If no ADR is needed, state that explicitly in the close section.

    The no-ADR statement goes in the record's close section

    Full reason

    The statement that no ADR was needed is written in the change record's close section.

What greenline wrote

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

  1. SKILL.md:6 scope

    The title and the opening paragraph in the step skill's own voice: what close does (the decisions, the terms, the audit, the record's state, "next" line and cost, and the landing it offers), where it runs (the step of the change's mode, at that mode's depth, and at a stop), the direct asks it keeps from record-architecture-decisions and domain-modeling, which open a quick record first, as every write does, even one only into the knowledge homes (J-102 S2), what it reads, and what it never does; it replaces both skills' scope paragraphs and upstream's titles.

  2. SKILL.md:12 method

    The change record's close method in greenline's words: the working notes distilled, lasting choices moved into the decision home and the glossary, the record audited, the landing offered by the repository's setup, a pull request only where the remote is a forge, and done only on the owner's word, nothing to land where the commits already sit on the base branch and no remote is a forge, the planning change's close landing a plan's tickets, its state, "next" line and cost set, the working files removed with greenline tidy, which refuses while a record cites one of them, and at a stop the "next" line naming the step reached and the action that resumes it, the record and its folder committed with the change's trailer and nothing else, a commit of the working edits the owner asks for made apart, a wait within the session no stop, and a stopped record set open before it is edited; done set only on green checks, a probe apart; the skeleton is the ledger guide's, pointed to rather than restated. The checks run again after the close's own writes outside .greenline/, so a done change carries no GL0451 (J-60, the second family's late writes). Since J-93 S2 the front names the commands, the paths and the record's marks by their nouns, on close's references page. R1

  3. SKILL.md:21 method

    In behavioural runs a repository's own rule against merging one's own branch took the place of the landing the setup gives; the offer still follows the setup, the rule is named beside it and the owner's answer decides. R2

  4. SKILL.md:21 method

    Before a local merge the landing names its base branch by the rule the proposal's where line already gives: the default branch where the change's branch was made from it, and otherwise the owner's answer, where finishing-a-development-branch asks for the fork point; the sentence taken after it says why. R3

    Credits: Jesse Vincent's Superpowers

  5. SKILL.md:21 method

    A check on the change's branch never saw the merged tree, so after a local merge the change's checks run on the merged result through greenline check; a red result stops the landing and goes to the owner with the merge left local, and a rejected push is reported, never forced, as finishing-a-development-branch's Step 5 and its table say. The merge is committed before that check, so its facts name the merge it checked and not the commit the tree held before it. Since J-93 S2 the front names the commands, the paths and the record's marks by their nouns, on close's references page. R4

    Credits: Jesse Vincent's Superpowers

  6. SKILL.md:21 method

    The change record's close method in greenline's words: the working notes distilled, lasting choices moved into the decision home and the glossary, the record audited, the landing offered by the repository's setup, a pull request only where the remote is a forge, and done only on the owner's word, nothing to land where the commits already sit on the base branch and no remote is a forge, the planning change's close landing a plan's tickets, its state, "next" line and cost set, the working files removed with greenline tidy, which refuses while a record cites one of them, and at a stop the "next" line naming the step reached and the action that resumes it, the record and its folder committed with the change's trailer and nothing else, a commit of the working edits the owner asks for made apart, a wait within the session no stop, and a stopped record set open before it is edited; done set only on green checks, a probe apart; the skeleton is the ledger guide's, pointed to rather than restated. Tidy ends every close, the fast mode's included. The close section links each brief greenline brief wrote, read from the status listing so the builder never opens one, which the uncited-file notice then holds to. The cost counts every agent started, each named in starts, a restart one more, since eight records of the Linear clone counted a restarted agent as the same one (J-60 S3a, F5); status reports a lower count, which the close clears before done. Since J-93 S2 the front names the commands, the paths and the record's marks by their nouns, on close's references page. R5

  7. SKILL.md:29 pointer

    The evaluation happens at close over the change record, its checks and the diff of the change's commits found by their trailer, where record-architecture-decisions read a ticket's base_commit..result_commit; upstream's criteria for writing or skipping an ADR are unchanged. Since J-93 S2 the front names the commands, the paths and the record's marks by their nouns, on close's references page.

    Credits: Eric Clemmons

  8. SKILL.md:36 scope

    Carried from record-architecture-decisions: a choice put off is a line inside the decision it defers from, and a shaping ruling belongs where the change keeps its shaping, its frame section or the plan directory's decisions.md, which replace the initiative's decisions.md. Since J-93 S2 the front names the commands, the paths and the record's marks by their nouns, on close's references page.

  9. SKILL.md:41 relocate

    Carried from record-architecture-decisions: step 1 looks for the repository's existing decision home and writes there in that home's format, seeding docs/adr/ from this skill's adr/ pages only when the repository has none.

    Credits: Eric Clemmons

  10. SKILL.md:41 method

    documentation-and-adrs' one sentence on a convention whose evidence conflicts, lifted: the conflict goes to the owner rather than a new scheme beside the old. R6

    Credits: Addy Osmani's agent-skills

  11. SKILL.md:42 relocate

    Carried from record-architecture-decisions: the dated file in docs/adr/, or the entry in another home's own form.

    Credits: Eric Clemmons

  12. SKILL.md:55 pointer

    Upstream's merge request is the change: the ADR lands in its commits, and a lasting choice is linked from the decisions book rather than copied there, as record-architecture-decisions had it for a ticket's change. Since J-93 S2 the front names the commands, the paths and the record's marks by their nouns, on close's references page.

    Credits: Eric Clemmons

  13. SKILL.md:57 relocate

    greenline's paragraph on a decision that spans modules (Ousterhout, 2021), carried from record-architecture-decisions unchanged: the record stays a dated file in the decision home and the extension point carries the pointer and the in-step checklist.

  14. SKILL.md:65 method

    domain-modeling's glossary half moves to close (R22): the terms a change settled are written down at close, or right there when asked for by name, where domain-modeling wrote each the moment it was resolved; the write waits on the change's scope or an offer in one line, as the ruling of 2026-09-15 has it. R7

    Credits: Matt Pocock's skills

  15. SKILL.md:69 relocate

    Carried from domain-modeling: an existing glossary or vocabulary document is the home for terms whatever its name, and GLOSSARY.md is created only when the repository has none, in the form of the format page, now this skill's reference file, which also holds the layout of several contexts.

    Credits: Matt Pocock's skills

  16. SKILL.md:81 pointer

    Upstream's pointer to its ADR format page becomes the steps above, the ADR format being record-architecture-decisions' template and README, which close carries.

  17. SKILL.md:83 method

    show-me-your-work's end-of-run audit, lifted in greenline's words: every claim of the record against the change's commits found by their trailer and its checks, its evidence resolving, an unrecorded pivot a gap; its decision log is declined against the one record and its one writer, and its transcript reading and cross-model reviewer are dropped. A count of the change's commits is read at the close's end, the landing and the close's own commit counted, so no later commit leaves it stale. A code commit made before the record entered, which status's history cannot count, is named in the close section and left as it is (J-60, the third family). The commits since the last recorded check, which status counts, may hold code no recorded check saw: their checks run again before done, and a result the record took from a plain run is named as not recorded (J-60, the Linear clone). Since J-93 S2 the front names the commands, the paths and the record's marks by their nouns, on close's references page. R9

    Credits: pstack

  18. SKILL.md:96 method

    close's handoff is none when the change is done and the "next" line when it stops (the plan's rule for the close step), naming what it reads and writes: the record's close section and front matter, the ADRs, the terms, the landing offered and the working files removed by greenline tidy; the dated ADR file is record-architecture-decisions'. R10

    Credits: Eric Clemmons

  19. references/greenline.md:1 method

    Close's references page opens: close at each mode's depth and where its work lands, which the block's sentences and, since J-93 S2, the front's depth bullets, its record marks and its commands moved here. R11

  20. references/greenline.md:5 method

    Close's depths at each mode and what its section holds: quick's one line after every step, tidy included, the written section's decisions, terms, landing and audit; moved from the front's depth bullets by J-93 S2. R12

  21. references/greenline.md:10 method

    Close's marks and commands: the checks recorded again and on the merged result, status's listing and counts the audit reads, the state, the next line and the cost with starts, done only on green checks, tidy, the decisions book's path and the ledger guide's skeleton; moved from the front by J-93 S2. R13

  22. references/greenline.md:18 method

    Close's references page: a stop commits the record and its folder alone. The block's sentences on it move here whole, so the block carries the loop, the promises, the modes and the situation index, and no promise leaves the installation. Since J-93 S2 the stop's trailer and kept working files, moved from the front, stand here once. R14

  23. references/greenline.md:22 method

    Close's references page: done on green checks; the landing only on the owner's word. The block's sentences on it move here whole, so the block carries the loop, the promises, the modes and the situation index, and no promise leaves the installation. Since J-93 S2 the landing's offer, the owner's word, the repository rule, a ticket's close and nothing to land are stated once, in the front's closing order. R11

  24. references/greenline.md:26 method

    Close's references page: decisions land in the repository's existing home. The block's sentences on it move here whole, so the block carries the loop, the promises, the modes and the situation index, and no promise leaves the installation. R11

What it left out

Eric Clemmons

Eric Clemmons, record-architecture-decisions/SKILL.md: 5 of 35 sentences left out
  1. # Record Architecture Decisions left out: The title gives way to the step's own. replaced by line 6 of SKILL.md
  2. 3 sentences taken
  3. Review the conversation, implementation attempts, test results, and diff for durable decisions. left out: The evaluation reviews the change record, its checks and the diff of the change's commits found by their trailer. replaced by line 29 of SKILL.md
  4. 9 sentences taken
  5. Read `docs/adr/README.md` and `docs/adr/template.md` completely.
  6. Create `docs/adr/YYYY-MM-DD-short-title.md`. 2 sentences left out: Step 1 looks for the repository's existing decision home first, seeding docs/adr/ from this skill's adr/ pages only when there is none; step 2 names the dated file. replaced by line 41 of SKILL.md
  7. 13 sentences taken
  8. Include the ADR in the same merge request as the decision whenever possible. left out: Upstream's merge request is the change: the ADR lands in its commits and a lasting choice is linked from the decisions book. replaced by line 55 of SKILL.md

Eric Clemmons, record-architecture-decisions/README.md: all 9 sentences taken

Eric Clemmons, record-architecture-decisions/template.md: all 17 sentences taken

Jesse Vincent's Superpowers

Jesse Vincent's Superpowers, finishing-a-development-branch/SKILL.md: 86 of 87 sentences left out
  1. # Finishing a Development Branch
  2. ## Overview
  3. **Core principle:** Verify tests → Detect environment → Present options → Execute choice → Clean up. 3 sentences left out: The title, the overview and the core principle give way to the close step's own opening and its landing in step 5.
  4. **Announce at start:** "I'm using the finishing-a-development-branch skill to complete this work." left out: The announcement line announces a skill, which the roster's pointers do not.
  5. ## Step 1: Verify Tests
  6. Run the project's full test suite (`npm test` / `cargo test` / `pytest` / `go test ./...`).
  7. **If tests fail**, report the failures and stop — the menu comes after a green suite:
  8. ``` Tests failing (<N> failures). Must fix before completing: [Show failures] ```
  9. **If tests pass:** continue to Step 2. 5 sentences left out: The full suite before the menu is verify's, which judges the change's final code before close runs.
  10. ## Step 2: Detect Environment
  11. ```bash GIT_DIR=$(cd "$(git rev-parse --git-dir)" 2>/dev/null && pwd -P) GIT_COMMON=$(cd "$(git rev-parse --git-common-dir)" 2>/dev/null && pwd -P) # Capture now, while still inside the workspace — Step 5 changes directory # before cleanup (Step 6) needs this value WORKTREE_PATH=$(git rev-parse --show-toplevel) ```
  12. This determines which menu to show and how cleanup works:
  13. | State | Menu | Cleanup |
  14. |-------|------|---------|
  15. | `GIT_DIR == GIT_COMMON` (normal repo) | Standard 3 options | No worktree to clean up |
  16. | `GIT_DIR != GIT_COMMON`, named branch | Standard 3 options | Provenance-based (see Step 6) |
  17. | `GIT_DIR != GIT_COMMON`, detached HEAD | Reduced 2 options (no merge) | Externally managed — leave in place | 8 sentences left out: Environment detection and the reduced menu on a detached HEAD are not taken: the close step's offer follows the setup, and the agent makes no worktree.
  18. ## Step 3: Determine Base Branch
  19. The base branch is whatever this work forked from — usually named in the plan, the conversation, or the branch's upstream.
  20. If it is not already known, ask: "This branch split from <your best guess> - is that correct?" 3 sentences left out: The base comes from the where line's branch rule, named before a local merge and asked of the owner when unknown, in place of the plan, the conversation or a best guess. replaced by line 21 of SKILL.md
  21. 1 sentence taken
  22. ## Step 4: Present Options
  23. **Normal repo and named-branch worktree — present exactly these 3 options:**
  24. ``` Implementation complete. What would you like to do? 1. Merge back to <base-branch> locally 2. Push and create a Pull Request 3. Keep the branch as-is (I'll handle it later) Which option? ```
  25. **Detached HEAD — present exactly these 2 options:**
  26. ``` Implementation complete. You're on a detached HEAD (externally managed workspace). 1. Push as new branch and create a Pull Request 2. Keep as-is (I'll handle it later) Which option? ```
  27. Present the menu exactly as written — concise, with every option coming from the list above.
  28. Discarding the work happens only in response to your human partner explicitly asking for it (see "If your human partner asks to discard the work" below).
  29. Wait for their answer; the integration decision is theirs. 8 sentences left out: The fixed menu is the close step's one-line offer by the setup, and the wait for the owner's word is already close's; discard is no option, since a dropped change is close's state.
  30. ## Step 5: Execute Choice
  31. ### Option 1: Merge Locally 2 sentences left out: The option headings give way to the landing in close's step 5.
  32. ```bash # Get main repo root for CWD safety MAIN_ROOT=$(git -C "$(git rev-parse --git-common-dir)/.." rev-parse --show-toplevel) cd "$MAIN_ROOT" # Merge first — verify success before removing anything git checkout <base-branch> git pull git merge <feature-branch> # Verify tests on merged result <test command> ``` left out: The merge spelt out as shell commands is a bound part: its pull is a network command the landing does not need, its test run is the written passage after the merge, and a merge from the owner's worktree is not taken. replaced by line 21 of SKILL.md
  33. If tests fail on the merged result: stop, leave the worktree and branch in place, and investigate — nothing has been pushed, so the merge is local and recoverable. left out: The paragraph on a failing merged result is the written passage after the merge, the merge left local; the agent owns no worktree to leave in place. replaced by line 21 of SKILL.md
  34. Once the merged result is green: clean up the worktree (Step 6), then delete the branch:
  35. ```bash git branch -d <feature-branch> ``` 2 sentences left out: The branch deletion after the merge is not taken: deleting a branch is the owner's act.
  36. ### Option 2: Push and Create PR left out: The option headings give way to the landing in close's step 5.
  37. ```bash git push -u origin <feature-branch> # From a detached HEAD, name the new branch on the remote: # git push origin HEAD:refs/heads/<new-branch> ``` left out: The push commands are not spelt out: close pushes by the setup, on the owner's word.
  38. Then create the pull/merge request against <base-branch> with the forge's tooling — its CLI if one is available, or the creation URL most forges print when you push — following the repo's PR template and conventions if present, and report the URL to your human partner. left out: The pull request opened with the forge's own command-line tool is a bound part; close opens it by the setup with no tool named.
  39. Keep the worktree — your human partner iterates on PR feedback there. left out: The worktree cleanup is not taken: the agent owns no worktree, and one the harness made is the owner's.
  40. ### Option 3: Keep As-Is left out: The option headings give way to the landing in close's step 5.
  41. Report: "Keeping branch <name>.
  42. Worktree preserved at <path>." 2 sentences left out: Keeping the branch is close's offer to leave it, which the close section records.
  43. ### If your human partner asks to discard the work
  44. This path exists only as a response to an explicit request to throw the work away.
  45. Confirm first:
  46. ``` This will permanently delete: - Branch <name> - All commits: <commit-list> - Worktree at <path> Type 'discard' to confirm. ```
  47. Wait for that exact confirmation.
  48. When it arrives:
  49. ```bash MAIN_ROOT=$(git -C "$(git rev-parse --git-common-dir)/.." rev-parse --show-toplevel) cd "$MAIN_ROOT" ```
  50. Then clean up the worktree (Step 6) and force-delete the branch:
  51. ```bash git branch -D <feature-branch> ``` 9 sentences left out: The discard path is not taken: a dropped change is close's state, and deleting a branch or its commits is the owner's act.
  52. ## Step 6: Cleanup Workspace
  53. **Runs for Option 1 and confirmed discards.**
  54. Options 2 and 3 always preserve the worktree.
  55. Both callers have already changed directory to the main repo root — worktree removal must run from outside the worktree — and use the `GIT_DIR`/`GIT_COMMON`/`WORKTREE_PATH` values captured in Step 2, from before that directory change.
  56. **If `GIT_DIR == GIT_COMMON`:** Normal repo, no worktree to clean up.
  57. Done.
  58. **If `WORKTREE_PATH` is under `.worktrees/` or `worktrees/`:** Superpowers created this worktree — we own cleanup:
  59. ```bash git worktree remove "$WORKTREE_PATH" git worktree prune # Self-healing: clean up any stale registrations ```
  60. **If removal is refused** (`contains modified or untracked files`): the worktree holds files that exist nowhere else — uncommitted plans, notes, or scratch work.
  61. Never `--force` on your own initiative.
  62. Show your human partner what is at stake and ask:
  63. ```bash git -C "$WORKTREE_PATH" status --porcelain -uall ```
  64. ``` Worktree removal refused — these files were never committed: <file list> 1. Commit them to <branch> before cleanup 2. Move them into <main repo root> 3. Delete them (unrecoverable) Which? ```
  65. Carry out the choice, then remove the worktree.
  66. **Otherwise:** The host environment owns this workspace — leave it in place. 15 sentences left out: The worktree cleanup is not taken: the agent owns no worktree, and one the harness made is the owner's.
  67. If your platform provides a workspace-exit tool, use it. left out: The platform's workspace-exit tool is a bound part, and the agent leaves no workspace of its own.
  68. ## Quick Reference
  69. | Option | Merge | Push | Keep Worktree | Cleanup Branch |
  70. |--------|-------|------|---------------|----------------|
  71. | 1. Merge locally | yes | - | - | yes |
  72. | 2. Create PR | - | yes | yes | - |
  73. | 3. Keep as-is | - | - | yes | - |
  74. | Discard (explicit request only) | - | - | - | yes (force) | 7 sentences left out: The quick reference restates the menu and the cleanup, which are not taken.
  75. ## Common Rationalizations
  76. | Excuse | Reality |
  77. |--------|---------| 3 sentences left out: The rationalisations restate the menu, the discard path and the worktree cleanup, which are not taken.
  78. | "Tests passed earlier this session" | Run the suite on the tree you are about to integrate. A green run only proves the tree it ran on. | left out: The rows on the earlier green run, the merged result and the rejected push restate what the written passage after the merge carries. replaced by line 21 of SKILL.md
  79. | "They obviously want it merged" | Integration is your human partner's decision. Present the menu and wait. |
  80. | "They seem done with this feature — I'll offer to discard it" | The menu is complete as written. Discard happens only when your human partner asks for it in so many words. |
  81. | "'Yeah, get rid of it' counts as confirmation" | Only the typed word `discard` authorizes deletion. |
  82. | "The PR is up, so the worktree is clutter now" | PR feedback gets fixed in that worktree. It stays until the work lands. |
  83. | "This other worktree looks stale — I'll clean it too" | Clean up only worktrees under `.worktrees/` or `worktrees/`. Everything else belongs to the host. |
  84. | "Removal refused — `--force` is just finishing the cleanup" | The refusal means files exist only in that worktree. `--force` destroys them permanently. Show your human partner and ask. | 6 sentences left out: The rationalisations restate the menu, the discard path and the worktree cleanup, which are not taken.
  85. | "The merged-result failure is probably flaky" | A failing merged result stops everything. Branch and worktree stay put while you investigate. | left out: The rows on the earlier green run, the merged result and the rejected push restate what the written passage after the merge carries. replaced by line 21 of SKILL.md
  86. | "The base branch is obviously main" | Confirm the fork point or ask. Merging into the wrong base is expensive to undo. | left out: The base comes from the where line's branch rule, named before a local merge and asked of the owner when unknown, in place of the plan, the conversation or a best guess. replaced by line 21 of SKILL.md
  87. | "The push was rejected — force-push will fix it" | A rejected push means the remote moved. Investigate; force-push only on your human partner's explicit request. | left out: The rows on the earlier green run, the merged result and the rejected push restate what the written passage after the merge carries. replaced by line 21 of SKILL.md

Matt Pocock's skills

Matt Pocock's skills, domain-modeling/SKILL.md: 34 of 44 sentences left out
  1. # Domain Modeling left out: The title gives way to the step's own. replaced by line 6 of SKILL.md
  2. Actively build and sharpen the project's domain model as you design.
  3. This is the *active* discipline: challenging terms, inventing edge-case scenarios, and writing the glossary and decisions down the moment they crystallise.
  4. (Merely *reading* `GLOSSARY.md` for vocabulary is not this skill: that's a one-line habit any skill can do.
  5. This skill is for when you're changing the model, not just consuming it.) 4 sentences left out: The active discipline of challenging terms while designing is frame's interview (R22); writing the settled terms down is this step's. replaced by line 65 of SKILL.md
  6. ## File structure
  7. Most repos have a single context:
  8. ``` / ├── GLOSSARY.md ├── docs/ │ └── adr/ │ ├── 0001-event-sourced-orders.md │ └── 0002-postgres-for-write-model.md └── src/ ```
  9. If a `GLOSSARY-MAP.md` exists at the root, the repo has multiple contexts.
  10. The map points to where each one lives:
  11. ``` / ├── GLOSSARY-MAP.md ├── docs/ │ └── adr/ ← system-wide decisions ├── src/ │ ├── ordering/ │ │ ├── GLOSSARY.md │ │ └── docs/adr/ ← context-specific decisions │ └── billing/ │ ├── GLOSSARY.md │ └── docs/adr/ ``` 6 sentences left out: The file structure of one context or several is the format page's section on single and multi-context repositories, which this skill carries as its reference file. replaced by line 1 of references/GLOSSARY-FORMAT.md
  12. 1 sentence taken
  13. If no `GLOSSARY.md` exists, create one when the first term is resolved.
  14. If no `docs/adr/` exists, create it when the first ADR is needed. 2 sentences left out: An existing glossary or decision home is the home, and a new one is created only when there is none, as the passages on the homes say. replaced by line 69 of SKILL.md
  15. ## During the session
  16. ### Challenge against the glossary
  17. When the user uses a term that conflicts with the existing language in `GLOSSARY.md`, call it out immediately.
  18. "Your glossary defines 'cancellation' as X, but you seem to mean Y.
  19. Which is it?"
  20. ### Sharpen fuzzy language
  21. When the user uses vague or overloaded terms, propose a precise canonical term.
  22. "You're saying 'account': do you mean the Customer or the User?
  23. Those are different things."
  24. ### Discuss concrete scenarios
  25. When domain relationships are being discussed, stress-test them with specific scenarios.
  26. Invent scenarios that probe edge cases and force the user to be precise about the boundaries between concepts.
  27. ### Cross-reference with code
  28. When the user states how something works, check whether the code agrees.
  29. If you find a contradiction, surface it: "Your code cancels entire Orders, but you just said partial cancellation is possible.
  30. Which is right?" 16 sentences left out: The questioning half of domain-modeling, challenging, sharpening, scenarios and the cross-reference with code, is frame's interview, which took it (R22).
  31. ### Update GLOSSARY.md inline left out: The heading of the inline update gives way to the heading of the terms, written down at close. replaced by line 65 of SKILL.md
  32. When a term is resolved, update `GLOSSARY.md` right there.
  33. Don't batch these up: capture them as they happen. 2 sentences left out: A term is written down at close, or right there when asked for by name, and the write waits on the change's scope or an offer in one line, where upstream wrote it the moment it was resolved. R7 replaced by line 65 of SKILL.md
  34. Use the format in [GLOSSARY-FORMAT.md](./GLOSSARY-FORMAT.md). left out: The format page is this skill's reference file, which the passage on the glossary's home names. replaced by line 69 of SKILL.md
  35. 9 sentences taken
  36. Use the format in [ADR-FORMAT.md](./ADR-FORMAT.md). left out: The ADR format is record-architecture-decisions' template and README, which close carries; the ADR follows the steps above. replaced by line 81 of SKILL.md

Matt Pocock's skills, domain-modeling/GLOSSARY-FORMAT.md: all 25 sentences taken

Matt Pocock's skills, domain-modeling/ADR-FORMAT.md: all left out
  1. # ADR Format
  2. ADRs live in `docs/adr/` and use sequential numbering: `0001-slug.md`, `0002-slug.md`, etc. 2 sentences left out: Where ADRs live and how they are named is the spine's README, whose dated names stand over the sequential numbering. replaced by line 1 of adr/README.md
  3. Create the `docs/adr/` directory lazily: only when the first ADR is needed. left out: Creating the directory lazily duplicates the rule that files are created only when there is something to write. replaced by line 69 of SKILL.md
  4. ## Template
  5. ```md # {Short title of the decision} {1-3 sentences: what's the context, what did we decide, and why.} ```
  6. That's it.
  7. An ADR can be a single paragraph.
  8. The value is in recording *that* a decision was made and *why*, not in filling out sections.
  9. ## Optional sections
  10. Only include these when they add genuine value.
  11. Most ADRs won't need them.
  12. **Status** frontmatter (`proposed | accepted | deprecated | superseded by ADR-NNNN`): useful when decisions are revisited
  13. **Considered Options**: only when the rejected alternatives are worth remembering
  14. **Consequences**: only when non-obvious downstream effects need to be called out 11 sentences left out: The short template and its optional sections duplicate the spine's template and its rule to keep an ADR terse; the status option loses to the spine's rule of no status metadata. replaced by line 1 of adr/template.md
  15. ## Numbering
  16. Scan `docs/adr/` for the highest existing number and increment by one. 2 sentences left out: The numbering scan loses to the spine's dated names. replaced by line 1 of adr/README.md
  17. ## When to offer an ADR
  18. All three of these must be true:
  19. **Hard to reverse**: the cost of changing your mind later is meaningful
  20. **Surprising without context**: a future reader will look at the code and wonder "why on earth did they do it this way?"
  21. **The result of a real trade-off**: there were genuine alternatives and you picked one for specific reasons
  22. If a decision is easy to reverse, skip it: you'll just reverse it.
  23. If it's not surprising, nobody will wonder why.
  24. If there was no real alternative, there's nothing to record beyond "we did the obvious thing." 8 sentences left out: When to offer an ADR duplicates the three-part bar of the skill's own page, taken for a term change. replaced by line 73 of SKILL.md
  25. ### What qualifies
  26. **Architectural shape.**
  27. "We're using a monorepo."
  28. "The write model is event-sourced, the read model is projected into Postgres."
  29. **Integration patterns between contexts.**
  30. "Ordering and Billing communicate via domain events, not synchronous HTTP."
  31. **Technology choices that carry lock-in.**
  32. Database, message bus, auth provider, deployment target.
  33. Not every library: just the ones that would take a quarter to swap out.
  34. **Boundary and scope decisions.**
  35. "Customer data is owned by the Customer context; other contexts reference it by ID only."
  36. The explicit no-s are as valuable as the yes-s.
  37. **Deliberate deviations from the obvious path.**
  38. "We're using manual SQL instead of an ORM because X."
  39. Anything where a reasonable reader would assume the opposite.
  40. These stop the next engineer from "fixing" something that was deliberate.
  41. **Constraints not visible in the code.**
  42. "We can't use AWS because of compliance requirements."
  43. "Response times must be under 200ms because of the partner API contract."
  44. **Rejected alternatives when the rejection is non-obvious.**
  45. If you considered GraphQL and picked REST for subtle reasons, record it; otherwise someone will suggest GraphQL again in six months. 21 sentences left out: What qualifies duplicates the spine's criteria for writing an ADR: alternatives chosen, a design abandoned over a constraint, a convention, dependency, interface or data model established, a trade-off accepted. replaced by line 30 of SKILL.md

The ledger entry

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

2026-10-21 2026-10-21-close-a-record-for-every-write

A knowledge-home write opens a quick record first

A write into the knowledge homes, the decisions book, the ADR home or the glossary, opens a quick record first, as every write does, so the hooks' hold has no exempt path (J-102 S2).

Authorised by
2026-10-21 The operator's card of 2026-10-21, "A record for every write (Recommended)" (docs/DECISIONS.md, the rows of 2026-10-21): a close asked for by name that writes only to the decisions book, the ADR home or the glossary, and the orientation's survey writing its result into the knowledge homes, each open a quick record first, so the hooks' hold on a workspace while no change is open is one rule with no list of exempt paths
Pages it touched
SKILL.md
Rulings, R1 to R31
  1. The operator's rulings of 2026-10-04, "cool then lock everything in": a step runs at the depth the change's mode gives it, inline being one line of its section, written a section the builder writes, and looped an independent pass repeated until clean up to the mode's rounds, and a step's handoff names the next step of the change's mode; The operator's ruling R22 of 2026-10-08 on the re-cut brief, "yes amend, with one change": build's spine is incremental-implementation, implement being a stub, anticipate ships as a trial on the trial step, and domain-modeling splits, its questioning into frame and its glossary into close; The operator's cards of 2026-10-14 on part 4 of the-whole-change, each "Rule as proposed", under N-49's root card that the owner chooses where the change's checkout lives: the proposal names where the change's commits will go, read from local facts with no network command, the current branch when it is not the default branch or there is no remote and a new branch greenline/<id> otherwise, the owner's answer final; a worktree holds the change's checkout only on the owner's request and only where the harness runs the session in it, and no fresh agent runs in one of its own; the close step offers the landing in one line by the setup, a push and a pull request where the remote is a forge, a local merge where there is no remote, or the branch left, each only on the owner's word, the push and pull-request rule moving into the block and the close step while pr-writing keeps the writing method; and a plan's tickets share the planning change's branch, each ticket's commits carrying its own trailer, and the planning change's close offers the landing for the whole; The operator's cards of 2026-10-14 on parts 1 and 2 of the-whole-change: "Lifetime by reader" (P1.3), a brief, a relay note or a probe being a working file under tmp/<id>/ that the CLI deletes when the change is done and refuses to delete while the record cites it; and P2.11, "Rule as proposed", greenline tidy [--change <id>] removing tmp/<id>/ for done and dropped changes, refusing a path the record cites, and being what the close step runs; 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 card of 2026-10-15 on the QA series, "One fix job after the fifth family", with the delegation of 2026-10-16 whose words finalise the fix job's slices: done is recorded only when every check of the change is green, a probe running outside greenline check and never recorded as a check; the trailer is written in the commit message's last paragraph beside the harness's line from the moment the commit is made, and no commit is rewritten to move it; a wait within a session is no stop; a stopped record is set open before it is edited; the merged-result check runs after the merge's commit; and the close counts the commits as they stand at its end; The operator's card of 2026-10-16 on the stop's commit, "The record and its folder are the record": at a stop the record and its folder, a check's facts among them, are committed together and code and docs never are; The operator's card of 2026-10-15 on the QA series, "One fix job after the fifth family", with the delegation of 2026-10-16 whose words finalise the fix job's slices: every check of a change's code, a reviewer's and a verifier's included, runs through greenline check, a plain test command proving nothing to the record; a recorded check fact is never removed or edited, a probe recorded by mistake being marked with greenline check --probe; the close writes its terms and decisions before the checks' last run and ends with greenline tidy in every mode; the change's first commit carries its record; and verify's baseline runs on a copy, never over the change's working tree; 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)
  2. The operator's card of 2026-10-15 on the QA series' first family, "The setup decides; the rule is named beside it": the where line and the landing offer follow the setup as the block states, and a repository rule pulling the other way, such as a contribution guide's rule against merging one's own branch, is named in the proposal and beside the offer, the owner deciding
  3. The operator's cards of 2026-10-15 on the batch brief of the test ingestion, "Combine as a default on my ruling": superpowers' finishing-a-development-branch combines into the close step's landing as a strengthen of 88 words at every mode, shipping as a default on the operator's ruling in place of a run's or a walk's finding; its claimed evidence is ruled in; its words are accepted at fast; a merge from the owner's worktree is not taken; the bound parts of the three other sources decline, and finishing-a-development-branch's portable form, the landing by the setup with no harness tool and no command spelt out, is taken
  4. The operator's cards of 2026-10-15 on the batch brief of the test ingestion, "Combine as a default on my ruling": superpowers' finishing-a-development-branch combines into the close step's landing as a strengthen of 88 words at every mode, shipping as a default on the operator's ruling in place of a run's or a walk's finding; its claimed evidence is ruled in; its words are accepted at fast; a merge from the owner's worktree is not taken; the bound parts of the three other sources decline, and finishing-a-development-branch's portable form, the landing by the setup with no harness tool and no command spelt out, is taken; The operator's card of 2026-10-15 on the QA series, "One fix job after the fifth family", with the delegation of 2026-10-16 whose words finalise the fix job's slices: done is recorded only when every check of the change is green, a probe running outside greenline check and never recorded as a check; the trailer is written in the commit message's last paragraph beside the harness's line from the moment the commit is made, and no commit is rewritten to move it; a wait within a session is no stop; a stopped record is set open before it is edited; the merged-result check runs after the merge's commit; and the close counts the commits as they stand at its end; 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)
  5. The operator's rulings of 2026-10-04, "cool then lock everything in": a step runs at the depth the change's mode gives it, inline being one line of its section, written a section the builder writes, and looped an independent pass repeated until clean up to the mode's rounds, and a step's handoff names the next step of the change's mode; The operator's ruling R22 of 2026-10-08 on the re-cut brief, "yes amend, with one change": build's spine is incremental-implementation, implement being a stub, anticipate ships as a trial on the trial step, and domain-modeling splits, its questioning into frame and its glossary into close; The operator's cards of 2026-10-14 on part 4 of the-whole-change, each "Rule as proposed", under N-49's root card that the owner chooses where the change's checkout lives: the proposal names where the change's commits will go, read from local facts with no network command, the current branch when it is not the default branch or there is no remote and a new branch greenline/<id> otherwise, the owner's answer final; a worktree holds the change's checkout only on the owner's request and only where the harness runs the session in it, and no fresh agent runs in one of its own; the close step offers the landing in one line by the setup, a push and a pull request where the remote is a forge, a local merge where there is no remote, or the branch left, each only on the owner's word, the push and pull-request rule moving into the block and the close step while pr-writing keeps the writing method; and a plan's tickets share the planning change's branch, each ticket's commits carrying its own trailer, and the planning change's close offers the landing for the whole; The operator's cards of 2026-10-14 on parts 1 and 2 of the-whole-change: "Lifetime by reader" (P1.3), a brief, a relay note or a probe being a working file under tmp/<id>/ that the CLI deletes when the change is done and refuses to delete while the record cites it; and P2.11, "Rule as proposed", greenline tidy [--change <id>] removing tmp/<id>/ for done and dropped changes, refusing a path the record cites, and being what the close step runs; 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 card of 2026-10-15 on the QA series, "One fix job after the fifth family", with the delegation of 2026-10-16 whose words finalise the fix job's slices: done is recorded only when every check of the change is green, a probe running outside greenline check and never recorded as a check; the trailer is written in the commit message's last paragraph beside the harness's line from the moment the commit is made, and no commit is rewritten to move it; a wait within a session is no stop; a stopped record is set open before it is edited; the merged-result check runs after the merge's commit; and the close counts the commits as they stand at its end; The operator's card of 2026-10-16 on the stop's commit, "The record and its folder are the record": at a stop the record and its folder, a check's facts among them, are committed together and code and docs never are; The operator's card of 2026-10-15 on the QA series, "One fix job after the fifth family", with the delegation of 2026-10-16 whose words finalise the fix job's slices: every check of a change's code, a reviewer's and a verifier's included, runs through greenline check, a plain test command proving nothing to the record; a recorded check fact is never removed or edited, a probe recorded by mistake being marked with greenline check --probe; the close writes its terms and decisions before the checks' last run and ends with greenline tidy in every mode; the change's first commit carries its record; and verify's baseline runs on a copy, never over the change's working tree; The operator's delegation of 2026-10-16, renewed on 2026-10-18 for the fix job after the Linear clone, whose words finalise its slices, with the ruling of 2026-10-18 that the close is a skill step: a reviewer's or verifier's brief is written by greenline brief from the record into the change's folder, its first line the command's mark, and never by the builder, which starts the agent with its path and never opens, copies, diffs or derives a brief file; status reports a brief file the command did not write; and the close cites each brief the command wrote, from the status listing; The operator's delegation of 2026-10-16, renewed on 2026-10-18 for the fix job after the Linear clone, whose words finalise its slices: a fresh agent's brief names the agent's own scratch folder by its absolute path and says the host's temporary directory is never used, a working file there a finding, and greenline check run with the brief's --step and --round sets TMPDIR to that folder for the command it records; the record names each fresh agent started with its step and number, a restart one more line and one more count, and greenline status reports a cost below the starts the record names as a finding the close clears before done; the operator's card of 2026-10-19 naming the three modes, "quick, regular, careful (Recommended)": the old names and the trial step in a skill's prose are corrected by the smallest substitution; 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)
  6. The operator's rulings of 2026-10-08 on the intake R3 ("yes go ahead" and "everything is good"): show-me-your-work's end-of-run audit is lifted into close and its decision log declined; documentation-and-adrs' one sentence on a conflicting convention is lifted into close, the rest of it garden's, its sequential numbering and status field losing to record-architecture-decisions'; handoff, claude-handoff and finishing-a-development-branch stay declined
  7. The operator's ruling R22 of 2026-10-08 on the re-cut brief, "yes amend, with one change": build's spine is incremental-implementation, implement being a stub, anticipate ships as a trial on the trial step, and domain-modeling splits, its questioning into frame and its glossary into close; roster-keepers-2026-09-15: the operator's ruling of 2026-09-15 at the card J-8, recorded as the register's row of that date on the two inline glossary writes
  8. The operator's ruling R22 of 2026-10-08 on the re-cut brief, "yes amend, with one change": build's spine is incremental-implementation, implement being a stub, anticipate ships as a trial on the trial step, and domain-modeling splits, its questioning into frame and its glossary into close
  9. The operator's rulings of 2026-10-08 on the intake R3 ("yes go ahead" and "everything is good"): show-me-your-work's end-of-run audit is lifted into close and its decision log declined; documentation-and-adrs' one sentence on a conflicting convention is lifted into close, the rest of it garden's, its sequential numbering and status field losing to record-architecture-decisions'; handoff, claude-handoff and finishing-a-development-branch stay declined; The operator's ruling R21 of 2026-10-08 on orchestration ("orchestration related skills ... have be re thought in to being usable on all harnesses") and the R3 ruling of that day, "yes go ahead", on the portable forms: the builder runs every task itself; doubt-driven-development's doubt pass is one delegated agent per round only where anticipate is looped, and the self-questioning form, recorded as degraded, at the inline and written depths and where the harness has no delegation; its cross-model escalation to outside tools is dropped; show-me-your-work's audit reads the change's commits and checks, never a transcript, and its cross-model reviewer is dropped; The operator's card of 2026-10-15 on the QA series, "One fix job after the fifth family", with the delegation of 2026-10-16 whose words finalise the fix job's slices: done is recorded only when every check of the change is green, a probe running outside greenline check and never recorded as a check; the trailer is written in the commit message's last paragraph beside the harness's line from the moment the commit is made, and no commit is rewritten to move it; a wait within a session is no stop; a stopped record is set open before it is edited; the merged-result check runs after the merge's commit; and the close counts the commits as they stand at its end; The operator's card of 2026-10-15 on the QA series, "One fix job after the fifth family", with the delegation of 2026-10-16 whose words finalise the fix job's slices: every check of a change's code, a reviewer's and a verifier's included, runs through greenline check, a plain test command proving nothing to the record; a recorded check fact is never removed or edited, a probe recorded by mistake being marked with greenline check --probe; the close writes its terms and decisions before the checks' last run and ends with greenline tidy in every mode; the change's first commit carries its record; and verify's baseline runs on a copy, never over the change's working tree; The operator's delegation of 2026-10-16, renewed on 2026-10-18 for the fix job after the Linear clone, whose words finalise its slices: every check of a change's code on a long build runs through greenline check, whose short form greenline check -- <command> takes the open change and the step its record is in; the one run left plain is a probe, one recorded by mistake being marked with greenline check --probe; and greenline status counts the commits since the last recorded check, a nudge and never a finding, while the close sets done only on green recorded checks of the final code; 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)
  10. The operator's rulings of 2026-10-04, "cool then lock everything in": a step runs at the depth the change's mode gives it, inline being one line of its section, written a section the builder writes, and looped an independent pass repeated until clean up to the mode's rounds, and a step's handoff names the next step of the change's mode; The operator's cards of 2026-10-14 on part 4 of the-whole-change, each "Rule as proposed", under N-49's root card that the owner chooses where the change's checkout lives: the proposal names where the change's commits will go, read from local facts with no network command, the current branch when it is not the default branch or there is no remote and a new branch greenline/<id> otherwise, the owner's answer final; a worktree holds the change's checkout only on the owner's request and only where the harness runs the session in it, and no fresh agent runs in one of its own; the close step offers the landing in one line by the setup, a push and a pull request where the remote is a forge, a local merge where there is no remote, or the branch left, each only on the owner's word, the push and pull-request rule moving into the block and the close step while pr-writing keeps the writing method; and a plan's tickets share the planning change's branch, each ticket's commits carrying its own trailer, and the planning change's close offers the landing for the whole; The operator's cards of 2026-10-14 on parts 1 and 2 of the-whole-change: "Lifetime by reader" (P1.3), a brief, a relay note or a probe being a working file under tmp/<id>/ that the CLI deletes when the change is done and refuses to delete while the record cites it; and P2.11, "Rule as proposed", greenline tidy [--change <id>] removing tmp/<id>/ for done and dropped changes, refusing a path the record cites, and being what the close step runs
  11. The operator's words of 2026-10-18 on the redesign (N-56), "we need the upstream prose upfront and references hold how to work meaning the artefacts etc" and "we need only three modes I guess, quick, regular, careful ... Either way it needs to maintain artefacts for audit .. but we can change the spine for each"; and J-93's finalise words of 2026-10-18, "Finalise all six now; S1 opens after J-92 (Recommended); quick, regular, careful (Recommended); The builder's written verify, no fresh verifier (Recommended)": a step's mechanics, where its work lands, its section's form and its commands, live in its references page, each sentence moved from the block under the ruling that first placed it there
  12. The operator's rulings of 2026-10-04, "cool then lock everything in": a step runs at the depth the change's mode gives it, inline being one line of its section, written a section the builder writes, and looped an independent pass repeated until clean up to the mode's rounds, and a step's handoff names the next step of the change's mode; The operator's cards of 2026-10-14 on part 4 of the-whole-change, each "Rule as proposed", under N-49's root card that the owner chooses where the change's checkout lives: the proposal names where the change's commits will go, read from local facts with no network command, the current branch when it is not the default branch or there is no remote and a new branch greenline/<id> otherwise, the owner's answer final; a worktree holds the change's checkout only on the owner's request and only where the harness runs the session in it, and no fresh agent runs in one of its own; the close step offers the landing in one line by the setup, a push and a pull request where the remote is a forge, a local merge where there is no remote, or the branch left, each only on the owner's word, the push and pull-request rule moving into the block and the close step while pr-writing keeps the writing method; and a plan's tickets share the planning change's branch, each ticket's commits carrying its own trailer, and the planning change's close offers the landing for the whole; The operator's card of 2026-10-15 on the QA series, "One fix job after the fifth family", with the delegation of 2026-10-16 whose words finalise the fix job's slices: every check of a change's code, a reviewer's and a verifier's included, runs through greenline check, a plain test command proving nothing to the record; a recorded check fact is never removed or edited, a probe recorded by mistake being marked with greenline check --probe; the close writes its terms and decisions before the checks' last run and ends with greenline tidy in every mode; the change's first commit carries its record; and verify's baseline runs on a copy, never over the change's working tree; 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)
  13. The operator's rulings of 2026-10-04, "cool then lock everything in": a step runs at the depth the change's mode gives it, inline being one line of its section, written a section the builder writes, and looped an independent pass repeated until clean up to the mode's rounds, and a step's handoff names the next step of the change's mode; The operator's ruling R22 of 2026-10-08 on the re-cut brief, "yes amend, with one change": build's spine is incremental-implementation, implement being a stub, anticipate ships as a trial on the trial step, and domain-modeling splits, its questioning into frame and its glossary into close; The operator's cards of 2026-10-14 on part 4 of the-whole-change, each "Rule as proposed", under N-49's root card that the owner chooses where the change's checkout lives: the proposal names where the change's commits will go, read from local facts with no network command, the current branch when it is not the default branch or there is no remote and a new branch greenline/<id> otherwise, the owner's answer final; a worktree holds the change's checkout only on the owner's request and only where the harness runs the session in it, and no fresh agent runs in one of its own; the close step offers the landing in one line by the setup, a push and a pull request where the remote is a forge, a local merge where there is no remote, or the branch left, each only on the owner's word, the push and pull-request rule moving into the block and the close step while pr-writing keeps the writing method; and a plan's tickets share the planning change's branch, each ticket's commits carrying its own trailer, and the planning change's close offers the landing for the whole; The operator's cards of 2026-10-14 on parts 1 and 2 of the-whole-change: "Lifetime by reader" (P1.3), a brief, a relay note or a probe being a working file under tmp/<id>/ that the CLI deletes when the change is done and refuses to delete while the record cites it; and P2.11, "Rule as proposed", greenline tidy [--change <id>] removing tmp/<id>/ for done and dropped changes, refusing a path the record cites, and being what the close step runs; 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 card of 2026-10-15 on the QA series, "One fix job after the fifth family", with the delegation of 2026-10-16 whose words finalise the fix job's slices: done is recorded only when every check of the change is green, a probe running outside greenline check and never recorded as a check; the trailer is written in the commit message's last paragraph beside the harness's line from the moment the commit is made, and no commit is rewritten to move it; a wait within a session is no stop; a stopped record is set open before it is edited; the merged-result check runs after the merge's commit; and the close counts the commits as they stand at its end; The operator's card of 2026-10-16 on the stop's commit, "The record and its folder are the record": at a stop the record and its folder, a check's facts among them, are committed together and code and docs never are; The operator's card of 2026-10-15 on the QA series, "One fix job after the fifth family", with the delegation of 2026-10-16 whose words finalise the fix job's slices: every check of a change's code, a reviewer's and a verifier's included, runs through greenline check, a plain test command proving nothing to the record; a recorded check fact is never removed or edited, a probe recorded by mistake being marked with greenline check --probe; the close writes its terms and decisions before the checks' last run and ends with greenline tidy in every mode; the change's first commit carries its record; and verify's baseline runs on a copy, never over the change's working tree; 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); The operator's delegation of 2026-10-16, renewed on 2026-10-18 for the fix job after the Linear clone, whose words finalise its slices, with the ruling of 2026-10-18 that the close is a skill step: a reviewer's or verifier's brief is written by greenline brief from the record into the change's folder, its first line the command's mark, and never by the builder, which starts the agent with its path and never opens, copies, diffs or derives a brief file; status reports a brief file the command did not write; and the close cites each brief the command wrote, from the status listing; The operator's delegation of 2026-10-16, renewed on 2026-10-18 for the fix job after the Linear clone, whose words finalise its slices: a fresh agent's brief names the agent's own scratch folder by its absolute path and says the host's temporary directory is never used, a working file there a finding, and greenline check run with the brief's --step and --round sets TMPDIR to that folder for the command it records; the record names each fresh agent started with its step and number, a restart one more line and one more count, and greenline status reports a cost below the starts the record names as a finding the close clears before done; the operator's card of 2026-10-19 naming the three modes, "quick, regular, careful (Recommended)": the old names and the trial step in a skill's prose are corrected by the smallest substitution; The operator's rulings of 2026-10-08 on the intake R3 ("yes go ahead" and "everything is good"): show-me-your-work's end-of-run audit is lifted into close and its decision log declined; documentation-and-adrs' one sentence on a conflicting convention is lifted into close, the rest of it garden's, its sequential numbering and status field losing to record-architecture-decisions'; handoff, claude-handoff and finishing-a-development-branch stay declined; The operator's ruling R21 of 2026-10-08 on orchestration ("orchestration related skills ... have be re thought in to being usable on all harnesses") and the R3 ruling of that day, "yes go ahead", on the portable forms: the builder runs every task itself; doubt-driven-development's doubt pass is one delegated agent per round only where anticipate is looped, and the self-questioning form, recorded as degraded, at the inline and written depths and where the harness has no delegation; its cross-model escalation to outside tools is dropped; show-me-your-work's audit reads the change's commits and checks, never a transcript, and its cross-model reviewer is dropped; The operator's delegation of 2026-10-16, renewed on 2026-10-18 for the fix job after the Linear clone, whose words finalise its slices: every check of a change's code on a long build runs through greenline check, whose short form greenline check -- <command> takes the open change and the step its record is in; the one run left plain is a probe, one recorded by mistake being marked with greenline check --probe; and greenline status counts the commits since the last recorded check, a nudge and never a finding, while the close sets done only on green recorded checks of the final code
  14. The operator's words of 2026-10-18 on the redesign (N-56), "we need the upstream prose upfront and references hold how to work meaning the artefacts etc" and "we need only three modes I guess, quick, regular, careful ... Either way it needs to maintain artefacts for audit .. but we can change the spine for each"; and J-93's finalise words of 2026-10-18, "Finalise all six now; S1 opens after J-92 (Recommended); quick, regular, careful (Recommended); The builder's written verify, no fresh verifier (Recommended)": a step's mechanics, where its work lands, its section's form and its commands, live in its references page, each sentence moved from the block under the ruling that first placed it there; The operator's words of 2026-10-18 on the redesign (N-56, items 2 and 7): a skill's mechanics stand once on its references page (J-93 S2)
  15. The operator's ruling R21 of 2026-10-08 on orchestration ("orchestration related skills ... have be re thought in to being usable on all harnesses") and the R3 ruling of that day, "yes go ahead", on the portable forms: the builder runs every task itself; doubt-driven-development's doubt pass is one delegated agent per round only where anticipate is looped, and the self-questioning form, recorded as degraded, at the inline and written depths and where the harness has no delegation; its cross-model escalation to outside tools is dropped; show-me-your-work's audit reads the change's commits and checks, never a transcript, and its cross-model reviewer is dropped
  16. roster-keepers-2026-09-15: the operator's ruling of 2026-09-15 at the card J-8, recorded as the register's row of that date on the two inline glossary writes
  17. The operator's rulings of 2026-10-04, "cool then lock everything in": a step runs at the depth the change's mode gives it, inline being one line of its section, written a section the builder writes, and looped an independent pass repeated until clean up to the mode's rounds, and a step's handoff names the next step of the change's mode
  18. 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
  19. The operator's cards of 2026-10-14 on part 2 of the-whole-change, each "Rule as proposed": a change is open while a session holds it and stopped when none does, set at every stop with its "next" line, and resuming sets it open; a new request that is not a follow-up stops the open change first; greenline status lists each open and stopped change with its "next" line; and a close asked for by name that writes only into the knowledge homes needs no change record
  20. The operator's cards of 2026-10-14 on part 4 of the-whole-change, each "Rule as proposed", under N-49's root card that the owner chooses where the change's checkout lives: the proposal names where the change's commits will go, read from local facts with no network command, the current branch when it is not the default branch or there is no remote and a new branch greenline/<id> otherwise, the owner's answer final; a worktree holds the change's checkout only on the owner's request and only where the harness runs the session in it, and no fresh agent runs in one of its own; the close step offers the landing in one line by the setup, a push and a pull request where the remote is a forge, a local merge where there is no remote, or the branch left, each only on the owner's word, the push and pull-request rule moving into the block and the close step while pr-writing keeps the writing method; and a plan's tickets share the planning change's branch, each ticket's commits carrying its own trailer, and the planning change's close offers the landing for the whole
  21. The operator's cards of 2026-10-14 on parts 1 and 2 of the-whole-change: "Lifetime by reader" (P1.3), a brief, a relay note or a probe being a working file under tmp/<id>/ that the CLI deletes when the change is done and refuses to delete while the record cites it; and P2.11, "Rule as proposed", greenline tidy [--change <id>] removing tmp/<id>/ for done and dropped changes, refusing a path the record cites, and being what the close step runs
  22. 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
  23. The operator's card of 2026-10-15 on the QA series, "One fix job after the fifth family", with the delegation of 2026-10-16 whose words finalise the fix job's slices: done is recorded only when every check of the change is green, a probe running outside greenline check and never recorded as a check; the trailer is written in the commit message's last paragraph beside the harness's line from the moment the commit is made, and no commit is rewritten to move it; a wait within a session is no stop; a stopped record is set open before it is edited; the merged-result check runs after the merge's commit; and the close counts the commits as they stand at its end
  24. The operator's card of 2026-10-16 on the stop's commit, "The record and its folder are the record": at a stop the record and its folder, a check's facts among them, are committed together and code and docs never are
  25. The operator's card of 2026-10-15 on the QA series, "One fix job after the fifth family", with the delegation of 2026-10-16 whose words finalise the fix job's slices: every check of a change's code, a reviewer's and a verifier's included, runs through greenline check, a plain test command proving nothing to the record; a recorded check fact is never removed or edited, a probe recorded by mistake being marked with greenline check --probe; the close writes its terms and decisions before the checks' last run and ends with greenline tidy in every mode; the change's first commit carries its record; and verify's baseline runs on a copy, never over the change's working tree
  26. The operator's delegation of 2026-10-16, renewed on 2026-10-18 for the fix job after the Linear clone, whose words finalise its slices, with the ruling of 2026-10-18 that the close is a skill step: a reviewer's or verifier's brief is written by greenline brief from the record into the change's folder, its first line the command's mark, and never by the builder, which starts the agent with its path and never opens, copies, diffs or derives a brief file; status reports a brief file the command did not write; and the close cites each brief the command wrote, from the status listing
  27. The operator's delegation of 2026-10-16, renewed on 2026-10-18 for the fix job after the Linear clone, whose words finalise its slices: every check of a change's code on a long build runs through greenline check, whose short form greenline check -- <command> takes the open change and the step its record is in; the one run left plain is a probe, one recorded by mistake being marked with greenline check --probe; and greenline status counts the commits since the last recorded check, a nudge and never a finding, while the close sets done only on green recorded checks of the final code
  28. The operator's delegation of 2026-10-16, renewed on 2026-10-18 for the fix job after the Linear clone, whose words finalise its slices: a fresh agent's brief names the agent's own scratch folder by its absolute path and says the host's temporary directory is never used, a working file there a finding, and greenline check run with the brief's --step and --round sets TMPDIR to that folder for the command it records; the record names each fresh agent started with its step and number, a restart one more line and one more count, and greenline status reports a cost below the starts the record names as a finding the close clears before done
  29. The operator's card of 2026-10-19 naming the three modes, "quick, regular, careful (Recommended)": the old names and the trial step in a skill's prose are corrected by the smallest substitution
  30. 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
  31. The operator's card of 2026-10-21, "A record for every write (Recommended)" (docs/DECISIONS.md, the rows of 2026-10-21): a close asked for by name that writes only to the decisions book, the ADR home or the glossary, and the orientation's survey writing its result into the knowledge homes, each open a quick record first, so the hooks' hold on a workspace while no change is open is one rule with no list of exempt paths
16 earlier entries
  1. 2026-10-19 2026-10-19-close-split-review-fixes

    Close's references page states the stop, done and the landing once

  2. 2026-10-19 2026-10-19-close-front-and-references

    Close's depths and mechanics move from its front to its references

  3. 2026-10-19 2026-10-19-close-references

    Close's mechanics move from the block to its references page

    Pages it touched: SKILL.md, references/greenline.md

  4. 2026-10-18 2026-10-18-close-counts-every-start

    The cost counts every start, a restart one more

    Pages it touched: SKILL.md

  5. 2026-10-18 2026-10-18-close-reads-the-commits-since-the-check

    The audit runs the checks again when status counts unchecked commits

    Pages it touched: SKILL.md

  6. 2026-10-18 2026-10-18-close-cites-the-written-briefs

    The close section links each brief the command wrote, from status

    Pages it touched: SKILL.md

  7. 2026-10-17 2026-10-17-close-checks-after-writes-and-tidy

    The checks run after the close's writes; tidy ends every close

    Pages it touched: SKILL.md

  8. 2026-10-17 2026-10-17-close-done-on-green-and-the-stop-commit

    Done only on green checks; the stop commits the record and folder

    Pages it touched: SKILL.md

  9. 2026-10-15 2026-10-15-close-landing-names-the-repository-rule

    A repository rule against the landing offer is named beside it

    Pages it touched: SKILL.md

  10. 2026-10-15 2026-10-15-close-landing-checks-the-merge

    The landing names its base and checks the merged result

    Pages it touched: SKILL.md

  11. 2026-10-14 2026-10-14-close-commits-the-stop

    Close commits the record at a stop; pull requests need a forge

    Pages it touched: SKILL.md

  12. 2026-10-14 2026-10-14-close-runs-tidy

    Close removes the working files with greenline tidy

    Pages it touched: SKILL.md

  13. 2026-10-14 2026-10-14-close-offers-the-landing

    Close offers the landing in one line, done on the owner's word

    Pages it touched: SKILL.md

  14. 2026-10-14 2026-10-14-close-knowledge-homes

    A decision or term written only to knowledge homes needs no record

    Pages it touched: SKILL.md

  15. 2026-10-09 2026-10-09-close-gists

    Every account gets a short gist for the website

  16. 2026-10-08 2026-10-08-close-recipe

    Close is made on record-architecture-decisions with the glossary half

    Pages it touched: SKILL.md, adr/README.md, adr/template.md, references/GLOSSARY-FORMAT.md