Start, a trial · installs only where you enable it

correct

about 1,000 tokens

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

  • 1 file
  • 5 edits
  • 19 sentences left out
  • 1 source
  • last changed 2026-10-09
  • trial

The text

SKILL.md

about 1,000 tokens
  • pstack
  • greenline

---

name: "correct"

description: "Find the mistakes agents keep repeating in this repository and make each one impossible: architecture first, then types, then a lint whose error names the fix, then a test, and written rules last, each check proved on a real past mistake. Use when the owner corrects an agent for a mistake made before, or asks to stop a repeated one."

---

greenlineOpens correct: finding mistake classes edits nothing; fixes run as one change

correct is a trial start for an owner who keeps correcting agents in this repository for the same mistake. Finding the classes of mistake edits no file; fixing them is a change: propose its mode and wait, as AGENTS.md says, open its record with a `## start` section naming correct and the classes it found, and run the line from `frame`, each class fixed as one commit of that change. A lint, a CI check or a script the repository lacks is furniture: propose it in the reply, as AGENTS.md says, and add it on the owner's yes.

pstackcorrect/SKILL.md

The owner keeps correcting agents in this repo for the same mistakes. Change the repo so the next agent can't make them.

Assume every contributor is an agent that sees only the files it opened, copies the nearest example, and takes the shortest path that compiles. Design the repo so a change that looks right from one file is right for the whole repo.

## Find the mistake classes

First, read recent commits, reverts, review comments, agent instruction files, and comments that explain workarounds. Group the mistakes into classes. A class counts once it has happened twice.

## Fix each class at the highest level that works

1. **Eliminate it with architecture.** Give each piece of state one owner and each task one supported way. Hide internals so the wrong import fails. Replace hand-synced lists with one source of truth. Delete old ways and dead code an agent would copy.

2. **Enforce it with types so the bad state can't be written.** If bad code still compiles, add a lint or CI check whose error names the file, type, or function to use instead. If the pattern is already common, fail only when a change adds more.

greenlineA weak test is deleted only through sweep-tests and its mutation proof

3. **Test the behavior.** Fix any test that would still pass if every function it calls returned nothing; a test that should go is deleted only through sweep-tests and its mutation proof.

pstackcorrect/SKILL.md

4. **Write docs or agent rules last, only for judgment calls.** Nothing fails when an agent skips them.

pstackprinciple-encode-lessons-in-structure/SKILL.md

**Why:** Textual instructions are easy to miss. They require the reader to notice, remember, and comply. Structural mechanisms (lint rules, metadata flags, runtime checks, automation scripts) enforce the rule without cooperation.

When you catch yourself writing the same instruction a second time:

1. Ask: can this be a lint rule, a metadata flag, a runtime check, or a script?

2. If yes, encode it. Delete the instruction

3. If no (requires judgment), make the instruction more prominent and add an example of the failure mode

**Pick the strongest mechanism.** When more than one mechanism would work, choose the strongest the situation allows (an unrepresentable state that cannot compile, then a lint or banned API that fails CI, then a canonical helper, then a runtime check), because agents copy whatever the surrounding code already does and a weaker guard becomes the next template.

**Corollary:** If the fix is structural, only use the structural fix. The instruction is the symptom.

pstackcorrect/SKILL.md

## Fix and prove

Then fix the most frequent classes now, one commit each. Prove each new check fails on a real past mistake. Run the same command locally and in CI. Exceptions go on the offending line with a reason, an expiry date, and a human's approval.

## Keep the rule table

Last, keep a table in the repository's decision home that pairs each rule with what enforces it. When the owner corrects you within this change, fix the mistake and add the rule. If the rule was already there and nothing enforces it, that's a repeat, so fix it at the highest level in the same change. Drop a rule once its mistake can't happen.

pstackcorrect/SKILL.md

**Reply:** each class with its evidence, the level you picked, and why a higher level didn't work.

greenlineHands over the mistake classes and their fixes; next is frame

## Handoff

Consumes: the owner's repeated corrections; recent commits, reverts, review comments, the change records and the agent instructions file Produces: the mistake classes with their evidence, in the reply; through the change, each class fixed at the highest level that works, one commit each with its check proved on a real past mistake, and the rule table in the decision home Next: frame, under the mode the owner approves

SKILL.md as installed, byte for byte SHA-256 5aa6775e9f8189dc30b6fb5a7d5718c7cc8c1bf7c255d1d9378362bdfce23bba

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 scope SKILL.md:27

    Upstream: **Pattern:** When you catch yourself writing the same instruction a second time:

    Shipped: When you catch yourself writing the same instruction a second time:

    The Pattern label gives way to the sentence it introduced

    Full reason

    The principle's pattern label gives way to the sentence it introduced, inside correct's fix step.

  2. Edit 5 scope SKILL.md:42

    Upstream: When the operator corrects you, fix the mistake and add the rule.

    Shipped: When the operator corrects you within this change, fix the mistake and add the rule.

    The rule table holds only within the change correct opens

    Full reason

    The rule table is kept inside the change correct opens, never as a standing rule outside it.

3 smaller edits

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

  1. Edit 1 rename SKILL.md:10

    Upstream: The operator keeps correcting agents in this repo for the same mistakes.

    Shipped: The owner keeps correcting agents in this repo for the same mistakes.

    Says the owner, greenline's word for the person whose word governs

    Full reason

    The person whose word governs is the owner in greenline's ruled words.

  2. Edit 3 relocate SKILL.md:42

    Upstream: Last, keep a table in the agent instruction file that pairs each rule with what enforces it.

    Shipped: Last, keep a table in the repository's decision home that pairs each rule with what enforces it.

    The rule table moves to the decisions document, away from greenline's block

    Full reason

    The rule table lives in the decision home, since greenline's block lives in the instructions file (contradiction 30).

  3. Edit 4 rename SKILL.md:42

    Upstream: When the operator corrects you, fix the mistake and add the rule.

    Shipped: When the owner corrects you, fix the mistake and add the rule.

    Says the owner, greenline's word for the person whose word governs

    Full reason

    The person whose word governs is the owner in greenline's ruled words.

What greenline wrote

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

  1. SKILL.md:8 method

    The opening in the start's own voice: when the block's situation sends an agent here, the finding of classes that edits no file, and the fixes run as one change on the line, a commit per class. R1

  2. SKILL.md:22 method

    Deleting a weak test goes through sweep-tests and its mutation proof, the roster's side of contradiction 23. R2

    Credits: pstack

  3. SKILL.md:46 pointer

    A start's handoff: the classes in the reply and the fixes through the change, and the step its hand reaches, frame under the approved mode.

What it left out

pstack

pstack, correct/SKILL.md: 1 of 33 sentences left out
  1. Fix or delete any test that would still pass if every function it calls returned nothing. left out: Deleting a test outside sweep-tests' mutation proof loses to the roster (contradiction 23). R2 replaced by line 22 of SKILL.md
pstack, principle-encode-lessons-in-structure/SKILL.md: 18 of 30 sentences left out
  1. # Encode Lessons in Structure
  2. Encode recurring fixes in mechanisms (tools, code, metadata, automation) instead of textual instructions.
  3. Every error, human correction, and unexpected outcome is a learning signal.
  4. Capture it, route it, and close the loop. 4 sentences left out: The principle's title and opening restate correct's aim, encoding a repeated mistake so the next agent cannot make it.
  5. 12 sentences taken
  6. **Feedback loop:**
  7. **Capture every correction.**
  8. When the human intervenes or tests fail, decide if it's a one-off or a pattern.
  9. **Route to the right layer.**
  10. One-off -> brain note.
  11. Recurring fix -> skill or lint rule.
  12. Systemic issue -> principle.
  13. **Close the loop.**
  14. Don't just record.
  15. Apply now or create a concrete todo.
  16. **Anti-patterns:**
  17. Acknowledging without recording ("I'll keep that in mind" does not persist)
  18. Recording without routing (a brain note about a lint rule that should exist is wasted unless the lint rule gets implemented)
  19. Fixing without generalizing (fixing one instance while leaving the recurring pattern intact) 14 sentences left out: The feedback loop and its anti-patterns route lessons through pstack's own notes, skills and principles, which the roster does not carry; correct's rule table is the route here.

The ledger entry

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

2026-10-09 2026-10-09-correct-gists

Every account gets a short gist for the website

Adds a gist of at most twelve words, for the website's edition, to every account of the recipe whose reason is stated. No text, measure or method changes.

Authorised by
2026-10-09 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
Pages it touched
none
Rulings, R1 to R8
  1. The operator's rulings of 2026-10-08 on the intake R3 ("yes go ahead") and on the re-cut brief R22 ("yes amend, with one change"): correct enters as a trial start, correct as spine with principle-encode-lessons-in-structure grafted, and the contradictions stand as recommended: a test is deleted only through sweep-tests and its mutation proof (contradiction 23), and an instruction that can be encoded is encoded and deleted while the rule table lives in the decision home, since greenline's block lives in the instructions file (30); The operator's rulings of 2026-10-04, "cool then lock everything in": a start hands the job to a mode the owner approves, and every commit of a change carries its trailer; R16 of 2026-10-07, a start chosen from the situation a request begins in
  2. The operator's rulings of 2026-10-08 on the intake R3 ("yes go ahead") and on the re-cut brief R22 ("yes amend, with one change"): correct enters as a trial start, correct as spine with principle-encode-lessons-in-structure grafted, and the contradictions stand as recommended: a test is deleted only through sweep-tests and its mutation proof (contradiction 23), and an instruction that can be encoded is encoded and deleted while the rule table lives in the decision home, since greenline's block lives in the instructions file (30)
  3. The method items carry the operator's rulings of 2026-10-08 on the intake R3, "yes go ahead", the verdicts and the contradictions standing as recommended, a test deleted only through sweep-tests and its mutation proof (contradiction 23) and an encodable instruction encoded while the rule table lives in the decision home (30)
  4. the operator's ruling R21 of 2026-10-08 on harness-bound and orchestration content ("harness specific skills have be re thought in to being usable on all harnesses") and the R3 ruling of that day, "yes go ahead", on the portable forms, its slash-command trigger dropped
  5. the operator's ruling R22 of 2026-10-08 on the re-cut brief, "yes amend, with one change": the roster table's names stand, router, diagnose and architecture-survey among them, with the trial names idea-refine, constraint-driven-development, correct and improve-instructions
  6. the operator's rulings of 2026-10-04, "cool then lock everything in": a start hands the job to a mode the owner approves, every change has one record with its working files and its folder, and a start that edits no file needs no mode and no record
  7. R16 of 2026-10-07, a start chosen from the situation a request begins in ("update the agents md created by greenline product to mention the kind with the skill table and also prose about when to use what kind skill")
  8. 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
1 earlier entry
  1. 2026-10-08 2026-10-08-correct-recipe

    Enters as a trial start that makes repeated mistakes impossible

    Pages it touched: SKILL.md