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

plan

about 4,500 tokens

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

  • 2 files
  • 1 edit
  • 440 sentences left out
  • 4 sources
  • last changed 2026-10-19
  • step 2 of 7

Replaces to-spec and to-tickets (retired 2026-10-08).

The text

SKILL.md

about 3,400 tokens
  • Matt Pocock's skills
  • Addy Osmani's agent-skills
  • Jesse Vincent's Superpowers
  • pstack
  • greenline

---

name: "plan"

description: "Turn a change's framed intent into what the build follows: acceptance that can fail, the work cut into ordered tasks or tickets, and the shape of the code, at the depth the change's mode gives the plan step; work that splits writes a spec and a tickets file with a mode per ticket. Use when the mode reaches plan, or when the owner asks for a spec or tickets."

---

greenlineOpens plan: what it produces, when it runs; it never builds

# Plan

Plan turns a change's framed intent into what the build follows: acceptance criteria that can fail, the work cut into tasks or tickets in order, and the shape the code will take. It runs where the change's mode reaches the plan step, at the depth the mode gives it, and alone when the owner asks for a spec or tickets by name. It reads the change record's frame section first and settles nothing the frame left open: such a question goes back to the owner. It never builds: the build step takes the plan as written.

greenlineIn steps "user" means the owner; in the template, the product's user

In the steps below the user is the owner of the request; in the spec template the user is the person the product serves.

Matt Pocock's skillsto-spec/SKILL.md

This skill takes the current conversation context and codebase understanding and produces a spec. Do NOT interview the user; just synthesize what you already know.

greenlineNames the spec's inputs in place of an uninstalled setup skill

Write a spec only when the work splits into tickets; a change that stands alone puts its criteria in its plan section. The spec's inputs are the change record's frame section and what the plan directory already holds, its decisions, research and prototypes, each read whole. A consequential gap in them returns to the owner rather than being invented here.

Matt Pocock's skillsto-spec/SKILL.md

1. Explore the repo to understand the current state of the codebase, if you haven't already. Use the project's domain glossary vocabulary throughout the spec, and respect any ADRs in the area you're touching.

2. Sketch out the seams at which you're going to test the feature. Existing seams should be preferred to new ones. Use the highest seam possible. If new seams are needed, propose them at the highest point you can. The fewer seams across the codebase, the better - the ideal number is one.

greenlineSettled seams pass the check; only an unresolved seam choice is asked

Check that these seams match what the user expects: settled seams in the frame section, the existing interfaces or a standing grant satisfy that check, and the user is asked only about a consequential unresolved seam choice.

Addy Osmani's agent-skillsspec-driven-development/SKILL.md

**Reframe instructions as success criteria.** When receiving vague requirements, translate them into concrete conditions:

```

REQUIREMENT: "Make the dashboard faster"

REFRAMED SUCCESS CRITERIA:

- Dashboard LCP < 2.5s on 4G connection

- Initial data load completes in < 500ms

- No layout shift during load (CLS < 0.1)

→ Are these the right targets?

```

This lets you loop, retry, and problem-solve toward a clear goal rather than guessing what "faster" means.

greenlineWrites the spec to the plan directory's spec.md, draft then complete

3. Write the spec using the template below into the plan directory's spec, a draft until it is complete, which it is once the frame section and the plan directory's records support every section. Its Testing Decisions are what the build inherits, so record them here rather than leaving them to be reopened. A choice settled here that outlives the work goes into the repository's decision home, with a reference back.

Matt Pocock's skillsto-spec/SKILL.md

<spec-template>

## Problem Statement

The problem that the user is facing, from the user's perspective.

## Solution

The solution to the problem, from the user's perspective.

## User Stories

A LONG, numbered list of user stories. Each user story should be in the format of:

1. As an <actor>, I want a <feature>, so that <benefit>

<user-story-example>

1. As a mobile bank customer, I want to see balance on my accounts, so that I can make better informed decisions about my spending </user-story-example>

This list of user stories should be extremely extensive and cover all aspects of the feature.

## Implementation Decisions

A list of implementation decisions that were made. This can include:

- The modules that will be built/modified

- The interfaces of those modules that will be modified

- Technical clarifications from the developer

- Architectural decisions

- Schema changes

- API contracts

- Specific interactions

Do NOT include specific file paths or code snippets. They may end up being outdated very quickly.

Exception: if a prototype produced a snippet that encodes a decision more precisely than prose can (state machine, reducer, schema, type shape), inline it within the relevant decision and note briefly that it came from a prototype. Trim to the decision-rich parts, not a working demo, just the important bits.

## Testing Decisions

A list of testing decisions that were made. Include:

- A description of what makes a good test (only test external behavior, not implementation details)

- Which modules will be tested

- Prior art for the tests (i.e. similar types of tests in the codebase)

## Out of Scope

A description of the things that are out of scope for this spec.

## Further Notes

Any further notes about the feature.

</spec-template>

Matt Pocock's skillsto-tickets/SKILL.md

Break a plan, spec, or conversation into a set of **tickets**: tracer-bullet vertical slices, each declaring the tickets that **block** it.

greenlineTickets read spec.md; a standalone change cuts its tasks the same way

The plan is the plan directory's spec, read whole; a conversation can supply it when no spec was written, and the tickets then name that source. A change that stands alone cuts its tasks by the same rules into its plan section, and steps 4 and 5 do not apply to it.

greenlineA passed reference is a plan document read whole, not an issue

Work from whatever is already in the conversation context. If the user passes a reference (a spec path or a plan directory) as an argument, read it whole.

Matt Pocock's skillsto-tickets/SKILL.md

### 2. Explore the codebase (optional)

If you have not already explored the codebase, do so to understand the current state of the code. Ticket titles and descriptions should use the project's domain glossary vocabulary, and respect ADRs in the area you're touching.

Look for opportunities to prefactor the code to make the implementation easier. "Make the change easy, then make the easy change."

### 3. Draft vertical slices

Break the work into **tracer bullet** tickets.

<vertical-slice-rules>

- Each slice cuts a narrow but COMPLETE path through every layer (schema, API, UI, tests): vertical, NOT a horizontal slice of one layer

- A completed slice is demoable or verifiable on its own

- Each slice is sized to fit in a single fresh context window

- Any prefactoring should be done first

</vertical-slice-rules>

Give each ticket its **blocking edges**: the other tickets that must complete before it can start. A ticket with no blockers can start immediately.

**Wide refactors are the exception to vertical slicing.** A **wide refactor** is one mechanical change (rename a column, retype a shared symbol) whose **blast radius** fans across the whole codebase, so a single edit breaks thousands of call sites at once and no vertical slice can land green. Don't force it into a tracer bullet; sequence it as **expand–contract**. First expand: add the new form beside the old so nothing breaks. Then migrate the call sites over in batches sized by blast radius (per package, per directory), each batch its own ticket blocked by the expand, keeping CI green batch to batch because the old form still exists. Finally contract: delete the old form once no caller remains, in a ticket blocked by every migrate batch. When even the batches can't stay green alone, keep the sequence but let them share the planning change's branch, all blocking a final integrate-and-verify ticket; green is promised only there.

greenlineBridges into the ordering and sizing rules, a task meaning a ticket

Then order and size the tickets by these rules, a task in them being a ticket:

Addy Osmani's agent-skillsplanning-and-task-breakdown/SKILL.md

Arrange tasks so that:

1. Dependencies are satisfied (build foundation first)

2. Each task leaves the system in a working state

3. Verification checkpoints occur after every 2-3 tasks

4. High-risk tasks are early (fail fast)

Addy Osmani's agent-skillsplanning-and-task-breakdown/SKILL.md

| Size | Files | Scope | Example |

|------|-------|-------|---------|

| **XS** | 1 | Single function or config change | Add a validation rule |

| **S** | 1-2 | One component or endpoint | Add a new API endpoint |

| **M** | 3-5 | One feature slice | User registration flow |

| **L** | 5-8 | Multi-component feature | Search with filtering and pagination |

| **XL** | 8+ | **Too large — break it down further** | — |

If a task is L or larger, it should be broken into smaller tasks. An agent performs best on S and M tasks.

**When to break a task down further:**

- It would take more than one focused session (roughly 2+ hours of agent work)

- You cannot describe the acceptance criteria in 3 or fewer bullet points

- It touches two or more independent subsystems (e.g., auth and billing)

- You find yourself writing "and" in the task title (a sign it is two tasks)

Jesse Vincent's Superpowerswriting-plans/SKILL.md

A plan is the set of decisions the implementer cannot make alone. A plan longer than the code it describes has written the code instead. Lines that decide nothing ("TBD", "handle edge cases", "add appropriate validation", "write tests for the above", a type or function no task defines) are the opposite failure, and the self-review catches both.

greenlineEach ticket names its interfaces; shared constraints are stated once for all

So each ticket states, in its intent or its acceptance, the interfaces it consumes from the tickets before it and produces for the ones after, by their exact names and types, since its builder sees only its own ticket. The project-wide requirements every ticket shares (version floors, dependency limits, naming and copy rules, platform requirements) are written once, as the global constraints in the planning change's plan section, one line each with the exact values from the spec, and every ticket holds to them without restating them.

greenlineBridges into designing the code's shape before the tickets are final

Where the shape of the code is not settled yet, design it before the tickets are final:

pstackarchitect/SKILL.md

Design before implementing. Sketch types, function signatures, class shapes, and module boundaries with `not implemented` bodies and pseudocode.

pstackarchitect/SKILL.mdpstackarchitect/SKILL.mdgreenlineOne agent writes the candidate designs in turn, with no parallel runners

Design it twice. Require at least two structurally distinct candidates before synthesis, even when the first looks sufficient. Whole-shape alternatives, not point fixes inside one shape. Write the candidates one after another yourself, each whole before the next, then compare them and synthesize the chosen design from the strongest, before any code; no agent runs beside the conversation for them, and none runs on another model.

pstackarchitect/SKILL.md

The caller's usage is written first and the type sketch derived from it. One file with new types and signatures for small changes. Module map plus type definitions for larger work.

greenlineThe plan section keeps the sketch and why each loser lost

Whether it is one file of types and signatures or a module map, the sketch stands in the plan section, with each candidate that lost and one line on why it lost; the build writes it into the source.

Matt Pocock's skillsto-tickets/SKILL.md

### 4. Quiz the user

Present the proposed breakdown as a numbered list. For each ticket, show:

- **Title**: short descriptive name

- **Blocked by**: which other tickets (if any) must complete first

- **What it delivers**: the end-to-end behaviour this ticket makes work

Ask the user:

- Does the granularity feel right? (too coarse / too fine)

- Are the blocking edges correct: does each ticket only depend on tickets that genuinely gate it?

- Should any tickets be merged or split further?

Iterate until the user approves the breakdown.

greenlineTickets go in the plan directory's one tickets file, in order

### 5. Write the tickets file

Write the approved tickets into the plan directory's tickets file, in dependency order (blockers first), one entry per ticket in the form plan's references page gives. No ticket's progress is written there: it is read from the change records that name the ticket.

Addy Osmani's agent-skillsplanning-and-task-breakdown/SKILL.mdgreenlineThe overwrite check reads spec.md and tickets.md, not tasks files

**Never overwrite an incomplete plan.** Before writing a plan directory's spec or tickets file, check whether the directory already exists and still holds tickets whose changes are not done, its unchecked tasks in the words below:

Addy Osmani's agent-skillsplanning-and-task-breakdown/SKILL.md

- Same work being replanned (the user asked to revise or extend this plan) → update the existing files in place.

- Different work → **stop and ask.** The unchecked tasks may be mid-build in another session. Do not delete, overwrite, or rename the existing files on your own; present the conflict and let the user decide (finish the old plan first, explicitly discard it, or tell you where the new plan should go).

greenlineA ticket names no paths; a lone change's plan may name filesMatt Pocock's skillsto-tickets/SKILL.md

In a ticket, avoid specific file paths or code snippets: they go stale fast. Exception: if a prototype produced a snippet that encodes a decision more precisely than prose can (state machine, reducer, schema, type shape), inline it and note briefly that it came from a prototype. Trim to the decision-rich parts, not a working demo, just the important bits.

greenlineA standalone change's frame section and criteria stand in for the spec

For a change that stands alone, the spec in the checks below is its frame section with its acceptance criteria, and the plan is its tasks; a task may list its steps, each one action with a checkable result.

Jesse Vincent's Superpowerswriting-plans/SKILL.md

After writing the complete plan, look at the spec with fresh eyes and check the plan against it. This is a checklist you run yourself — not a subagent dispatch.

**1. Spec coverage:** Skim each section/requirement in the spec. Can you point to a task that implements it? List any gaps.

**2. Step scan:** Every step must let the implementer write exactly one reasonable thing, and no step may carry more than that: a line that decides nothing is a gap, a function body the signature and tests already determine is a transcript. Fix both.

**3. Type consistency:** Do the types, method signatures, and property names you used in later tasks match what you defined in earlier tasks? A function called `clearLayers()` in Task 3 but `clearFullLayers()` in Task 7 is a bug.

Jesse Vincent's Superpowerswriting-plans/SKILL.md

If you find issues, fix them inline. No need to re-review — just fix and move on. If you find a spec requirement with no task, add the task.

greenlineThe handoff names the mode's next step and the plan's outputs

## Handoff

Consumes: the change record's frame section, and when the work splits the plan directory's decisions.md, research and prototypes Produces: the plan section of .greenline/ledger/<id>.md; when the work splits, .greenline/plans/<NNN-name>/spec.md and tickets.md, status draft then complete, each ticket with its approved mode Next: the next step of the change's mode

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

references/greenline.md

about 1,100 tokens
  • greenline
greenlineOpens plan's mechanics page: its depths, files, checks and tickets

# Plan: the practice's mechanics

This page holds plan at each mode's depth and where its work lands: the section, the plan directory's files and their marks, the checks it names, the tickets' waits and modes. Read it with `SKILL.md` when the mode reaches plan, and when AGENTS.md's index sends you here.

greenlineQuick writes one line of acceptance; written plans take two shapes

## The depths

- **Inline, at quick.** The plan section, in `.greenline/ledger/<id>.md`, is one line: the acceptance, a condition a check could fail, and the check that will show it.

- **Written, at regular and careful.** The plan is written before the build, in one of two shapes. A change that stands alone writes the plan section of its change record, `.greenline/ledger/<id>.md`: its acceptance criteria, each a condition that can fail, and its tasks in order, each with its check, cut by the rules of `SKILL.md`'s tickets and checked by the self-review, a task standing for a ticket. That section may name file paths, which a spec and a ticket never do. Work that splits into tickets writes a plan directory, `.greenline/plans/<NNN-name>/`, holding `SKILL.md`'s spec in `spec.md` and its tickets in `tickets.md`, each marked `status: draft` until it is whole and `status: complete` then; the planning change's own plan section names the directory and holds what every ticket shares. The careful mode's plan names each floor found and, when the work splits, the floor each ticket carries.

greenlineNames the declared checks, and declares the one a project lacks

## Checks

The plan names the change's checks: the project's own commands that show the acceptance, each run through `greenline check`. They are the checks `.greenline/manifest.json` declares in its `checks`, which `greenline init` proposed from the project's own files: the first change confirms or corrects them, reading how the project runs its tests, its linter and its build. Where the project has no check that could fail, or lacks one the change needs, the plan names the one the change adds and declares it with `greenline check --declare -- <command>`, a line the owner's yes covers.

greenlineSplit work waits twice; tickets open on the plan's branch

## Tickets

Work that will be split into tickets waits twice: at the start, for the planning change's mode, careful, unless the request names it; and after ticketing, on the ticket list with a mode beside each ticket. A ticket then opens under its approved mode, or one the owner names as it opens, with no further wait, on the planning change's branch.

greenlineTwo waits, a mode per ticket, and the tickets file's form

## The ticket list and the tickets file

A ticket's change record takes its id as it opens, and the tickets share the planning change's branch: each ticket's commits go there carrying its own trailer, and the planning change's close offers the landing for the whole.

Show beside each ticket the mode you propose for it, for the reasons a change's mode is proposed, its floors included. The owner's approval of the breakdown approves each ticket's mode: this is the plan's second wait, and no ticket opens before it. A mode the owner names beside a ticket while the list waits is part of approving it and edits that ticket's entry: write it there before the list is complete. A mode the owner names when a ticket opens, once the list is approved, overrides that ticket alone: open its record under the owner's mode with `choice: owner` and `proposed` the entry's mode, leave the entry as approved, and `greenline status` marks the difference (GL0406).

Write the approved tickets into the plan directory's `tickets.md`, in dependency order (blockers first): one `## <id>` entry per ticket, with its `intent`, its `scope` (the roots it touches), its `acceptance`, the entries it comes `after` and its `mode`. Mark it `status: complete` once the owner has approved the list. No ticket's progress is written there: it is read from the change records that name the ticket, and a ticket is ready once every entry it comes `after` is done, which `greenline status` shows as the ready frontier.

greenlineMissing furniture is proposed, never added without authority

## What the plan may add

Furniture the repository lacks, a test lane, a script, a convention of its own, is proposed in the reply, not added, whoever names it; the default homes AGENTS.md and `.greenline/WORK.md` name are not furniture. A new toolchain, a paid service, a consequential exception or an unrelated migration needs authority beyond mere detection, and a missing tool does not authorize replacing a toolchain. A source's date or novelty does not mandate a migration.

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 1 method SKILL.md:127

    Upstream: When even the batches can't stay green alone, keep the sequence but let them share an integration branch that all block a final integrate-and-verify ticket; green is promised only there.

    Shipped: When even the batches can't stay green alone, keep the sequence but let them share the planning change's branch, all blocking a final integrate-and-verify ticket; green is promised only there.

    Unstable batches share the planning change's branch, not another

    Full reason

    A plan's tickets share the planning change's branch, so batches that cannot stay green alone share that branch rather than a separate integration branch.

    Ruling R2

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 plan produces, where it runs (the step of the change's mode, at that mode's depth) and the direct asks it keeps from to-spec and to-tickets, that an open question returns to the owner rather than being settled here, and that it never builds; it replaces the scope paragraphs of to-spec and to-tickets and the preambles of the grafted sources.

  2. SKILL.md:10 scope

    The heading of the spec part, to-spec its spine.

  3. SKILL.md:12 rename

    to-spec and to-tickets say the user, as their authors wrote it, for the owner in their steps and for the product's user in the template; this line ties each use once rather than editing every sentence (the bound on a name edit).

  4. SKILL.md:16 pointer

    Upstream's tracker-and-label sentences point at a setup skill no install carries; in their place the spec's inputs, the frame section and the plan directory's records, and the rule that a gap returns to the owner, since questioning is frame's (contradiction 3). Since J-93 S2 the front names the plan directory's files by their nouns, their paths and marks on plan's references page.

  5. SKILL.md:22 method

    upstream's step 2 checks the seams with the user; greenline lets settled seams in the frame section, the existing interfaces or a standing grant satisfy that check and asks only about a consequential unresolved seam choice, which changes when the method stops to ask; carried from to-spec, the accepted task now the frame section. R1

  6. SKILL.md:38 relocate

    Upstream's publish-to-tracker-and-label step becomes writing the plan directory's spec.md, draft then complete when its inputs support it, with Testing Decisions recorded for the build and a lasting choice promoted to the repository's decision home. Since J-93 S2 the front names the plan directory's files by their nouns, their paths and marks on plan's references page.

  7. SKILL.md:96 scope

    The heading of the tickets part, to-tickets its spine.

  8. SKILL.md:100 pointer

    Upstream's tracker-and-label sentences point at a setup skill no install carries; in their place the plan the tickets read, and the rule that a standalone change's tasks follow the same cut in its plan section with no list to approve and no tickets file. Since J-93 S2 the front names the plan directory's files by their nouns, their paths and marks on plan's references page.

  9. SKILL.md:104 rename

    A reference the user passes is a greenline plan document read whole, not an issue number or URL with comments; the term names a greenline artifact, which is the one case a vocabulary edit covers.

    Credits: Matt Pocock's skills

  10. SKILL.md:129 scope

    The bridge into planning-and-task-breakdown's ordering and sizing rules, which say task for what this skill calls a ticket.

  11. SKILL.md:160 method

    writing-plans' Interfaces block and Global Constraints section stand inside its templates, which carry its own harness's header and file paths, so the two rules are written here: each ticket names what it consumes and produces, and the shared requirements are stated once for every ticket. R3

    Credits: Jesse Vincent's Superpowers

  12. SKILL.md:162 scope

    The bridge into architect's design before code, placed where the tickets take their shape.

  13. SKILL.md:166 method

    architect's candidates come from parallel runners on several models in worktrees; under the portability ruling one agent designs them in turn, so its arena, its runners and its model rule are dropped. R4

    Credits: pstack

  14. SKILL.md:170 method

    architect ships its rationale beside the sketch, per a template that requires each alternative with why it lost; greenline keeps the sketch and the losers in the plan section, which may name files and signatures (contradiction 2), and the build turns it into code. R3

    Credits: pstack

  15. SKILL.md:188 relocate

    Step 5's publish to a configured tracker becomes writing the plan directory's one tickets file in dependency order, progress read from the change records; the entry's form and its marks stand on plan's references page since J-93 S2.

  16. SKILL.md:192 relocate

    planning-and-task-breakdown's tasks/plan.md and tasks/todo.md are the plan directory's spec.md and tickets.md, and an unchecked task is a ticket whose change is not done. Since J-93 S2 the front names the plan directory's files by their nouns, their paths and marks on plan's references page.

    Credits: Addy Osmani's agent-skills

  17. SKILL.md:197 relocate

    Upstream's "in either form" named its two templates; the rule now addresses the ticket, which stays path-free while a single change's plan section may name files and signatures (contradiction 2).

    Credits: Matt Pocock's skills

  18. SKILL.md:201 scope

    The self-review checks a plan against its spec; a standalone change has none, so its frame section and criteria stand for it, and its tasks' steps are writing-plans' unit of a checkable action.

    Credits: Jesse Vincent's Superpowers

  19. SKILL.md:213 method

    A step skill's handoff names the next step of the change's mode, never a fixed skill (the plan's rule for step skills); it consumes the frame section and produces the plan section, or the plan directory's spec and tickets. R5

  20. references/greenline.md:1 method

    Plan's references page opens: plan 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, waits and tickets file moved here. R6

  21. references/greenline.md:5 method

    Plan's depths at each mode and what its section holds: quick's one line of acceptance and its check, the written plan's two shapes, a plan section or a plan directory with its files and marks, and careful's floors; moved from the front's depth bullets by J-93 S2. R7

  22. references/greenline.md:10 method

    Plan's references page: names the change's checks, the ones the manifest declares, and the one a project lacks, declared with greenline check --declare. 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. R8

  23. references/greenline.md:14 method

    Plan's references page: split work waits twice; tickets open on the plan's branch. 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. R6

  24. references/greenline.md:18 method

    A ticket's id chosen as it opens, the tickets on the planning change's branch, the mode proposed beside each ticket and approved with the list, a mode named at a ticket's open overriding it, and the tickets file's form and marks; moved from the front by J-93 S2 beside the waits stated once above. R9

  25. references/greenline.md:26 method

    Plan's references page: missing furniture is proposed, never added without authority. 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. R6

What it left out

Matt Pocock's skills

Matt Pocock's skills, to-spec/SKILL.md: 6 of 52 sentences left out
  1. The issue tracker and triage label vocabulary should have been provided to you.
  2. If not, tell the user to run `/setup-matt-pocock-skills`. 2 sentences left out: The tracker and label vocabulary points at a setup skill no install carries; the spec's inputs are named in its place. replaced by line 16 of SKILL.md
  3. ## Process left out: The process heading gives way to the spec part's heading, under which its numbered steps stand. replaced by line 10 of SKILL.md
  4. 7 sentences taken
  5. Check with the user that these seams match their expectations. left out: upstream's step 2 checks the seams with the user; greenline lets settled seams in the frame section, the existing interfaces or a standing grant satisfy that check and asks only about a consequential unresolved seam choice; carried from to-spec. R1 replaced by line 22 of SKILL.md
  6. Write the spec using the template below, then publish it to the project issue tracker.
  7. Apply the `ready-for-agent` triage label - no need for additional triage. 2 sentences left out: Publishing to the tracker with a triage label becomes writing the plan directory's spec.md, draft then complete. replaced by line 38 of SKILL.md
Matt Pocock's skills, to-tickets/SKILL.md: 39 of 78 sentences left out
  1. # To Tickets left out: The title gives way to plan's title and the tickets part's heading. replaced by line 96 of SKILL.md
  2. 1 sentence taken
  3. The issue tracker and triage label vocabulary should have been provided to you.
  4. If not, tell the user to run `/setup-matt-pocock-skills`. 2 sentences left out: The tracker and label vocabulary points at a setup skill no install carries; the plan the tickets read is named in its place. replaced by line 100 of SKILL.md
  5. ## Process left out: The process heading gives way to the tickets part's heading, under which its numbered steps stand. replaced by line 96 of SKILL.md
  6. 2 sentences taken
  7. If the user passes a reference (a spec path, an issue number or URL) as an argument, fetch it and read its full body and comments. left out: A reference is a greenline plan document read whole, not an issue number or URL with comments. replaced by line 104 of SKILL.md
  8. 34 sentences taken
  9. ### 5. Publish the tickets to the configured tracker
  10. Publish the approved tickets.
  11. **How** depends on the tracker `/setup-matt-pocock-skills` configured; the tickets are the same either way, only the shape of the blocking edges changes:
  12. **Local files** → write one file per ticket under `.scratch/<feature-slug>/issues/<NN>-<slug>.md`, numbered from `01` in dependency order (blockers first).
  13. Each file's "Blocked by" lists the numbers/titles it depends on.
  14. Use the per-ticket file template below: one ticket per file, never a single combined file.
  15. **A real issue tracker (GitHub, Linear, …)** → publish one issue per ticket in dependency order (blockers first) so each ticket's blocking edges can reference real identifiers.
  16. Use the platform's native blocking relationship where it has one; otherwise set each ticket's "Blocked by" to the blocking issues.
  17. If the source was an existing issue, make each ticket its sub-issue (tracker doc's operation).
  18. Apply the `ready-for-agent` triage label unless instructed otherwise; the tickets are agent-grabbable by construction. 10 sentences left out: Publishing to a configured tracker, as local files or issues with labels, becomes writing the plan directory's one tickets.md. replaced by line 194 of SKILL.md
  19. Work the **frontier**: any ticket whose blockers are all done.
  20. For a purely linear chain that means top to bottom. 2 sentences left out: Working the frontier is the build's, ticket by ticket; the tickets file's step says when a ticket is ready. replaced by line 194 of SKILL.md
  21. Do NOT close or modify any parent issue. left out: A ticket has no parent issue to close; the spec the tickets read is a plan document they never write.
  22. <local-ticket-template>
  23. # <NN>: <Ticket title>
  24. **What to build:** the end-to-end behaviour this ticket makes work, from the user's perspective, not a layer-by-layer implementation list.
  25. **Blocked by:** the numbers/titles of the tickets that gate this one, or "None (can start immediately)".
  26. **Status:** ready-for-agent
  27. [ ] Acceptance criterion 1
  28. [ ] Acceptance criterion 2
  29. </local-ticket-template>
  30. <issue-template>
  31. ## Parent
  32. A reference to the parent issue on the tracker (if the source was an existing issue, otherwise omit this section).
  33. ## What to build
  34. The end-to-end behaviour this ticket makes work, from the user's perspective, not layer-by-layer implementation.
  35. ## Acceptance criteria
  36. [ ] Criterion 1
  37. [ ] Criterion 2
  38. ## Blocked by
  39. A reference to each blocking ticket, or "None (can start immediately)".
  40. Omit this section when blockers were set as native edges.
  41. </issue-template> 20 sentences left out: The per-ticket file and issue templates become the tickets file's entry, with its intent, scope, acceptance, after and mode. replaced by line 194 of SKILL.md
  42. In either form, avoid specific file paths or code snippets: they go stale fast. left out: "In either form" named the two templates; the rule now addresses the ticket. replaced by line 197 of SKILL.md

Addy Osmani's agent-skills

Addy Osmani's agent-skills, spec-driven-development/SKILL.md: 140 of 144 sentences left out
  1. # Spec-Driven Development
  2. ## Overview
  3. Write a structured specification before writing any code.
  4. The spec is the shared source of truth between you and the human engineer — it defines what we're building, why, and how we'll know it's done.
  5. Code without a spec is guessing.
  6. ## When to Use
  7. Starting a new project or feature
  8. Requirements are ambiguous or incomplete
  9. The change touches multiple files or modules
  10. You're about to make an architectural decision
  11. The task would take more than 30 minutes to implement
  12. **When NOT to use:** Single-line fixes, typo corrections, or changes where requirements are unambiguous and self-contained. 12 sentences left out: The overview and its triggers: plan's scope paragraph and the mode say when a spec is written.
  13. ## The Gated Workflow
  14. Spec-driven development has four phases, preceded by a scope check (Phase 0) that activates only when one request bundles several independently testable capabilities.
  15. Do not advance to the next phase until the current one is validated.
  16. ``` SPECIFY ──→ PLAN ──→ TASKS ──→ IMPLEMENT │ │ │ │ ▼ ▼ ▼ ▼ Human Human Human Human reviews reviews reviews reviews ``` 4 sentences left out: The four gated phases with a review after each reshape the trunk's line and its waits; declined against the trunk (R18). R3
  17. ### Phase 0: Scope Check
  18. Most requests describe one capability.
  19. If this one does, skip this phase and go straight to Specify — Phase 0 exists for the exception, not the rule, and it puts no hierarchy on single-capability features.
  20. **Detection.**
  21. Decompose before specifying when a single requirement bundles several independently testable capabilities:
  22. The requirement names distinct capabilities with their own consumers or data (e.g. identity, billing, notifications, reporting)
  23. Acceptance criteria cluster into groups that could ship and be verified separately
  24. One capability could be cut or replaced without rewriting the others' requirements
  25. **Propose a capability map before writing any spec.**
  26. Small and reviewable — a module table plus a build order, not a project plan:
  27. ```markdown # Capability Map: [Initiative Name] | Module id | Responsibility | Depends on | |---|---|---| | identity | Accounts, sessions, SSO | — | | billing | Plans, invoices, payments | identity | | notifications | Email and webhook fan-out | identity | | reporting | Usage dashboards | billing, notifications | Build order: identity → billing, notifications → reporting ```
  28. **Stable module ids.**
  29. Kebab-case, chosen once, never renamed mid-initiative.
  30. Specs, plans, and downstream commands select work by these ids instead of guessing which spec is active.
  31. **Dependency direction, no cycles.**
  32. Arrows point one way.
  33. If two modules each need the other, they are one module.
  34. **Interfaces live at the boundary.**
  35. The map records that `billing` depends on `identity`; the contract between them belongs in the provider module's spec (see `api-and-interface-design` for designing it).
  36. **The map is gated like every phase.**
  37. The human reviews module boundaries, dependency direction, and build order before any module spec is written.
  38. Getting the map wrong is expensive; reviewing ten lines is not.
  39. **Then recurse per module.**
  40. Run Specify → Plan → Tasks → Implement for each module in dependency order.
  41. Each module gets its own spec, scoped to that module's objective, boundaries, and success criteria.
  42. Save the approved map at the project root and each module's spec alongside it, named by module id (`SPEC-identity.md`, `SPEC-billing.md`) — the map, not filename guessing, is the index of what exists. 26 sentences left out: The capability map for a bundled request is not taken: wayfinder, a start, already plans a request of several capabilities. R3
  43. ### Phase 1: Specify
  44. Start with a high-level vision. 2 sentences left out: Starting from a high-level vision is frame's interview, which the spec reads.
  45. Ask the human clarifying questions until requirements are concrete. left out: Asking the human clarifying questions contradicts to-spec's synthesis without an interview; questioning is frame's (contradiction 3). R3 replaced by line 14 of SKILL.md
  46. **Surface assumptions immediately.**
  47. Before writing any spec content, list what you're assuming:
  48. ``` ASSUMPTIONS I'M MAKING: 1. This is a web application (not native mobile) 2. Authentication uses session-based cookies (not JWT) 3. The database is PostgreSQL (based on existing Prisma schema) 4. We're targeting modern browsers only (no IE11) → Correct me now or I'll proceed with these. ```
  49. Don't silently fill in ambiguous requirements.
  50. The spec's entire purpose is to surface misunderstandings *before* code gets written — assumptions are the most dangerous form of misunderstanding. 5 sentences left out: Surfacing assumptions before the spec is frame's restatement, which keeps what was said apart from what was assumed.
  51. **Write a spec document covering these six core areas:**
  52. **Objective** — What are we building and why?
  53. Who is the user?
  54. What does success look like?
  55. **Commands** — Full executable commands with flags, not just tool names.
  56. ``` Build: npm run build Test: npm test -- --coverage Lint: npm run lint --fix Dev: npm run dev ```
  57. **Project Structure** — Where source code lives, where tests go, where docs belong.
  58. ``` src/ → Application source code src/components → React components src/lib → Shared utilities tests/ → Unit and integration tests e2e/ → End-to-end tests docs/ → Documentation ```
  59. **Code Style** — One real code snippet showing your style beats three paragraphs describing it.
  60. Include naming conventions, formatting rules, and examples of good output.
  61. **Testing Strategy** — What framework, where tests live, coverage expectations, which test levels for which concerns.
  62. **Boundaries** — Three-tier system:
  63. **Always do:** Run tests before commits, follow naming conventions, validate inputs
  64. **Ask first:** Database schema changes, adding dependencies, changing CI config
  65. **Never do:** Commit secrets, edit vendor directories, remove failing tests without approval
  66. **Spec template:**
  67. ```markdown # Spec: [Project/Feature Name] ## Objective [What we're building and why. User stories or acceptance criteria.] ## Tech Stack [Framework, language, key dependencies with versions] ## Commands [Build, test, lint, dev — full commands] ## Project Structure [Directory layout with descriptions] ## Code Style [Example snippet + key conventions] ## Testing Strategy [Framework, test locations, coverage requirements, test levels] ## Boundaries - Always: [...] - Ask first: [...] - Never: [...] ## Success Criteria [How we'll know this is done — specific, testable conditions] ## Open Questions [Anything unresolved that needs human input] ``` 17 sentences left out: Commands, project structure, code style and the boundaries tiers are a workspace's own conventions, and the template is to-spec's. replaced by line 40 of SKILL.md
  68. **External spec tools:** This workflow is format-agnostic.
  69. If the project already uses OpenSpec or another specification system, keep that system's artifact format and storage conventions instead of creating a duplicate `SPEC.md`.
  70. This skill owns the clarification, content, and approval gates; the external tool owns how the approved spec is represented. 3 sentences left out: An external spec system is the repository's convention, which the spec already follows as any repository document does.
  71. 4 sentences taken
  72. **Stop after writing the spec (CRITICAL).**
  73. Once the spec is saved:
  74. Summarize it and list any Open Questions.
  75. Ask the human to approve it or request changes.
  76. **STOP YOUR TURN IMMEDIATELY.**
  77. Do NOT start Phase 2, invoke `planning-and-task-breakdown`, or write code in this turn.
  78. Planning starts only after the human approves the spec in a later turn. 7 sentences left out: The stop after the spec is addressed to an agent ("STOP YOUR TURN IMMEDIATELY"); the plan's waits stand in its place. replaced by line 18 of references/greenline.md
  79. ### Phase 2: Plan
  80. With the validated spec, generate a technical implementation plan:
  81. Identify the major components and their dependencies
  82. Determine the implementation order (what must be built first)
  83. Note risks and mitigation strategies 5 sentences left out: The plan phase restates the tickets part's dependencies, order and checkpoints. replaced by line 131 of SKILL.md
  84. Identify what can be built in parallel vs. what must be sequential left out: Identifying what can be built in parallel is declined: greenline runs agents one after another. R10
  85. Define verification checkpoints between phases
  86. Follow `planning-and-task-breakdown` for the dependency-graph mapping and vertical-slicing mechanics behind these steps; it is the canonical source.
  87. The bullets above are a lightweight summary; if they ever diverge, `planning-and-task-breakdown` takes precedence.
  88. **Output convention:** Save the plan to `tasks/plan.md` and record the task list in the task list target defined by `planning-and-task-breakdown` (default `tasks/todo.md`; projects may designate an external tracker instead).
  89. Create `tasks/` if it does not exist.
  90. Downstream commands (`/build`, etc.) expect these defaults.
  91. The plan should be reviewable: the human should be able to read it and say "yes, that's the right approach" or "no, change X."
  92. ### Phase 3: Tasks
  93. Break the plan into discrete, implementable tasks:
  94. Each task should be completable in a single focused session
  95. Each task has explicit acceptance criteria
  96. Each task includes a verification step (test, build, manual check)
  97. Tasks are ordered by dependency, not by perceived importance
  98. No task should require changing more than ~5 files
  99. Follow `planning-and-task-breakdown` for the full task-sizing and dependency-ordering mechanics; it is the canonical source.
  100. The template below is a lightweight inline form; if they ever diverge, `planning-and-task-breakdown` takes precedence.
  101. **Task template:**
  102. ```markdown - [ ] Task: [Description] - Acceptance: [What must be true when done] - Verify: [How to confirm — test command, build, manual check] - Files: [Which files will be touched] ```
  103. ### Phase 4: Implement
  104. Execute tasks one at a time following `skills/incremental-implementation/SKILL.md` (`incremental-implementation`) and `skills/test-driven-development/SKILL.md` (`test-driven-development`).
  105. Use `skills/context-engineering/SKILL.md` (`context-engineering`) to load the right spec sections and source files at each step rather than flooding the agent with the entire spec. 21 sentences left out: The plan and tasks phases defer to planning-and-task-breakdown, which this skill takes, and the implement phase is the build step's.
  106. ## Keeping the Spec Alive
  107. The spec is a living document, not a one-time artifact:
  108. **Update when decisions change** — If you discover the data model needs to change, update the spec first, then implement.
  109. **Update when scope changes** — Features added or cut should be reflected in the spec.
  110. **Commit the spec** — The spec belongs in version control alongside the code.
  111. **Reference the spec in PRs** — Link back to the spec section that each PR implements.
  112. ## Common Rationalizations
  113. | Rationalization | Reality |
  114. |---|---|
  115. | "This is simple, I don't need a spec" | Simple tasks don't need *long* specs, but they still need acceptance criteria. A two-line spec is fine. |
  116. | "I'll write the spec after I code it" | That's documentation, not specification. The spec's value is in forcing clarity *before* code. |
  117. | "The spec will slow us down" | A 15-minute spec prevents hours of rework. Waterfall in 15 minutes beats debugging in 15 hours. |
  118. | "Requirements will change anyway" | That's why the spec is a living document. An outdated spec is still better than no spec. |
  119. | "The user knows what they want" | Even clear requests have implicit assumptions. The spec surfaces those assumptions. |
  120. | "It's one big feature; splitting it is overhead" | If acceptance criteria cluster into independently testable groups, a monolithic spec forces every downstream task to reason over the whole contract. A ten-line capability map is the cheap alternative. |
  121. | "I'll decompose during planning" | Planning slices tasks within a spec. By then the oversized artifact already exists — module boundaries and dependency direction must be decided before the spec is written, not after. |
  122. ## Red Flags
  123. Starting to write code without any written requirements
  124. Asking "should I just start building?"
  125. before clarifying what "done" means
  126. Implementing features not mentioned in any spec or task list
  127. Making architectural decisions without documenting them
  128. Skipping the spec because "it's obvious what to build"
  129. Writing the spec and starting the plan or code in the same turn
  130. One spec whose requirements span several independently testable capabilities
  131. Module boundaries or build order decided implicitly during implementation because no capability map was approved up front
  132. ## Verification
  133. Before proceeding to implementation, confirm:
  134. [ ] The spec covers all six core areas
  135. [ ] The human has reviewed and approved the spec
  136. [ ] The turn ended after saving the spec; approval came in a later turn
  137. [ ] Success criteria are specific and testable
  138. [ ] Boundaries (Always/Ask First/Never) are defined
  139. [ ] The spec is saved to a file in the repository
  140. [ ] If the request bundles several independently testable capabilities, a capability map (module ids, dependency direction, build order) was approved before any module spec was written
  141. [ ] Every module spec traces to a module id in the approved map 36 sentences left out: Keeping the spec alive is the plan documents' marks and the overwrite rule, and the rationalizations, red flags and checklist argue for the method or list it as boxes, a form this skill does not carry.
Addy Osmani's agent-skills, planning-and-task-breakdown/SKILL.md: 95 of 119 sentences left out
  1. # Planning and Task Breakdown
  2. ## Overview
  3. Decompose work into small, verifiable tasks with explicit acceptance criteria.
  4. Good task breakdown is the difference between an agent that completes work reliably and one that produces a tangled mess.
  5. Every task should be small enough to implement, test, and verify in a single focused session.
  6. ## When to Use
  7. You have a spec and need to break it into implementable units
  8. A task feels too large or vague to start
  9. Work needs to be parallelized across multiple agents or sessions
  10. You need to communicate scope to a human
  11. The implementation order isn't obvious
  12. **When NOT to use:** Single-file changes with obvious scope, or when the spec already contains well-defined tasks. 12 sentences left out: The overview and its triggers: plan's scope paragraph and the mode say when the work is planned. replaced by line 6 of SKILL.md
  13. ## The Planning Process
  14. ### Step 1: Enter Plan Mode
  15. Before writing any code, operate in read-only mode:
  16. Read the spec and relevant codebase sections
  17. Identify existing patterns and conventions
  18. Map dependencies between components
  19. Note risks and unknowns
  20. **Do NOT write code during planning.**
  21. The output is a plan document saved to `tasks/plan.md` and a task list recorded in the task list target (see Output Files; default `tasks/todo.md`), not implementation. 9 sentences left out: Read-only planning before code is what the plan step is; its tasks/plan.md home is the plan section or the plan directory. replaced by line 5 of references/greenline.md
  22. ### Step 2: Identify the Dependency Graph
  23. Map what depends on what:
  24. ``` Database schema │ ├── API models/types │ │ │ ├── API endpoints │ │ │ │ │ └── Frontend API client │ │ │ │ │ └── UI components │ │ │ └── Validation logic │ └── Seed data / migrations ```
  25. Implementation order follows the dependency graph bottom-up: build foundations first. 4 sentences left out: The dependency graph duplicates to-tickets' blocking edges. replaced by line 106 of SKILL.md
  26. ### Step 3: Slice Vertically
  27. Instead of building all the database, then all the API, then all the UI — build one complete feature path at a time:
  28. **Bad (horizontal slicing):**
  29. ``` Task 1: Build entire database schema Task 2: Build all API endpoints Task 3: Build all UI components Task 4: Connect everything ```
  30. **Good (vertical slicing):**
  31. ``` Task 1: User can create an account (schema + API + UI for registration) Task 2: User can log in (auth schema + API + UI for login) Task 3: User can create a task (task schema + API + UI for creation) Task 4: User can view task list (query + API + UI for list view) ```
  32. Each vertical slice delivers working, testable functionality. 7 sentences left out: Its vertical slicing duplicates to-tickets' tracer-bullet slices, the spine's. replaced by line 106 of SKILL.md
  33. ### Step 4: Write Tasks
  34. Each task follows this structure, whether it lands in the markdown task list or as an item in an external tracker (see Output Files):
  35. ```markdown ## Task [N]: [Short descriptive title] **Description:** One paragraph explaining what this task accomplishes. **Acceptance criteria:** - [ ] [Specific, testable condition] - [ ] [Specific, testable condition] **Verification:** - [ ] Tests pass: [the repository's focused-test command] - [ ] Build succeeds: [the repository's build command] - [ ] Manual check: [description of what to verify] **Dependencies:** [Task numbers this depends on, or "None"] **Files likely touched:** - `src/path/to/file.ts` - `tests/path/to/test.ts` **Estimated scope:** [Small: 1-2 files | Medium: 3-5 files | Large: 5+ files] ``` 3 sentences left out: The task template becomes the tickets file's entry. replaced by line 194 of SKILL.md
  36. ### Step 5: Order and Checkpoint left out: Step 5's numbered heading gives way to the bridge into its rules. replaced by line 129 of SKILL.md
  37. 5 sentences taken
  38. Add explicit checkpoints to the task list target:
  39. ```markdown ## Checkpoint: After Tasks 1-3 - [ ] All tests pass - [ ] Application builds without errors - [ ] Core user flow works end-to-end - [ ] Review with human before proceeding ``` 2 sentences left out: A checkpoint list in the task list is no field of the tickets file; each ticket's change runs its own verify step.
  40. ## Task Sizing Guidelines left out: The sizing heading gives way to the bridge into its rules. replaced by line 129 of SKILL.md
  41. 14 sentences taken
  42. ## Output Files
  43. **Plan document:** Save the implementation plan to `tasks/plan.md`.
  44. This is always a markdown file — design decisions, risks, and open questions don't map cleanly onto individual tracker issues.
  45. **Task list:** Record each task in the **task list target** (defined below).
  46. Create the `tasks/` directory if it does not exist. 5 sentences left out: tasks/plan.md and the task list target are the plan section or the plan directory's spec.md and tickets.md. replaced by line 194 of SKILL.md
  47. 1 sentence taken
  48. Before writing `tasks/plan.md` or `tasks/todo.md`, check whether they already exist and still contain unchecked tasks: left out: tasks/plan.md and tasks/todo.md are the plan directory's spec.md and tickets.md. replaced by line 192 of SKILL.md
  49. 4 sentences taken
  50. The same rule applies to an external task list target: never bulk-close or delete another plan's open tracker items to make room for new ones.
  51. ### Task List Target
  52. The task list target is where tasks and checkpoints are recorded.
  53. It is defined once, here; every other reference in this skill defers to it.
  54. **Default: a checklist-style markdown file at `tasks/todo.md`.**
  55. This is the convention the `/build` command and other downstream tooling expect.
  56. Use it unless the project says otherwise.
  57. **External tracker:** if the project's agent rules (`CLAUDE.md`, `AGENTS.md`, etc.) or the user designate an issue tracker (e.g. GitHub Issues, Jira, Linear, `bd`/beads), create one tracker item per task instead of writing `tasks/todo.md`.
  58. Map the Step 4 structure onto the tracker's fields: acceptance criteria and verification steps in the item body, dependencies via the tracker's linking mechanism (`bd dep add`, "blocked by", etc.).
  59. Record Step 5 checkpoints as tracker items too, or as a checklist in the plan document if the tracker has no natural equivalent.
  60. When using an external tracker, note it in `tasks/plan.md` (e.g. "Tasks tracked in Linear project FOO") so downstream steps and future sessions know where to look, and keep the plan document's Task List section as an ordered index of tracker item IDs or links rather than a duplicate checklist.
  61. ## Plan Document Template
  62. ```markdown # Implementation Plan: [Feature/Project Name] ## Overview [One paragraph summary of what we're building] ## Architecture Decisions - [Key decision 1 and rationale] - [Key decision 2 and rationale] ## Task List ### Phase 1: Foundation - [ ] Task 1: ... - [ ] Task 2: ... ### Checkpoint: Foundation - [ ] Tests pass, builds clean ### Phase 2: Core Features - [ ] Task 3: ... - [ ] Task 4: ... ### Checkpoint: Core Features - [ ] End-to-end flow works ### Phase 3: Polish - [ ] Task 5: ... - [ ] Task 6: ... ### Checkpoint: Complete - [ ] All acceptance criteria met - [ ] Ready for review ## Risks and Mitigations | Risk | Impact | Mitigation | |------|--------|------------| | [Risk] | [High/Med/Low] | [Strategy] | ## Open Questions - [Question needing human input] ```
  63. When tasks live in an external tracker, keep the Task List section above as an ordered index of tracker item IDs or links instead of a duplicate checklist. 14 sentences left out: An external tracker, the task list target and the plan template give way to the plan directory's documents. replaced by line 194 of SKILL.md
  64. ## Parallelization Opportunities
  65. When multiple agents or sessions are available:
  66. **Safe to parallelize:** Independent feature slices, tests for already-implemented features, documentation
  67. **Must be sequential:** Database migrations, shared state changes, dependency chains
  68. **Needs coordination:** Features that share an API contract (define the contract first, then parallelize) 5 sentences left out: The parallelization section is declined: greenline runs agents one after another, never in parallel. R10
  69. ## Common Rationalizations
  70. | Rationalization | Reality |
  71. |---|---|
  72. | "I'll figure it out as I go" | That's how you end up with a tangled mess and rework. 10 minutes of planning saves hours. |
  73. | "The tasks are obvious" | Write them down anyway. Explicit tasks surface hidden dependencies and forgotten edge cases. |
  74. | "Planning is overhead" | Planning is the task. Implementation without a plan is just typing. |
  75. | "I can hold it all in my head" | Context windows are finite. Written plans survive session boundaries and compaction. |
  76. | "The old `tasks/plan.md` is stale, I'll just replace it" | Unchecked tasks may be mid-build in another session. Overwriting them destroys work state that exists nowhere else. Stop and ask. |
  77. ## Red Flags
  78. Starting implementation without a written task list
  79. Overwriting a `tasks/plan.md` or `tasks/todo.md` that still has unchecked tasks for different work, without asking
  80. Writing `tasks/todo.md` when the project has designated an external tracker (or scattering tasks across both)
  81. Tasks that say "implement the feature" without acceptance criteria
  82. No verification steps in the plan
  83. All tasks are XL-sized
  84. No checkpoints between tasks
  85. Dependency order isn't considered
  86. ## Verification
  87. Before starting implementation, confirm:
  88. [ ] Every task has acceptance criteria
  89. [ ] Every task has a verification step
  90. [ ] Task dependencies are identified and ordered correctly
  91. [ ] Tasks are recorded in the task list target (default `tasks/todo.md`)
  92. [ ] No pre-existing incomplete plan was overwritten without explicit user confirmation
  93. [ ] No task touches more than ~5 files
  94. [ ] Checkpoints exist between major phases
  95. [ ] The human has reviewed and approved the plan
  96. ## See Also
  97. Acceptance criteria are per-task and answer "did we build the right thing?".
  98. They sit on top of the project-wide Definition of Done, the standing bar every task clears before it counts as done.
  99. See `../../references/definition-of-done.md`. 31 sentences left out: The rationalizations, red flags and checklist argue for the method or list it as boxes, a form this skill does not carry, and the see-also points at a file no install carries.

Jesse Vincent's Superpowers

Jesse Vincent's Superpowers, writing-plans/SKILL.md: 89 of 108 sentences left out
  1. # Writing Plans
  2. ## Overview
  3. Write implementation plans for an engineer who has not seen this codebase or this spec.
  4. Assume they write idiomatic code in the project's language once they know the exact interface and the exact test, and that they will make a reasonable choice wherever the plan leaves one open.
  5. What they cannot know is what you decided: which files, which names and signatures, which values from the spec, which tests prove each task.
  6. Document those.
  7. Give them the whole plan as bite-sized tasks.
  8. DRY.
  9. YAGNI.
  10. TDD.
  11. Frequent commits. 11 sentences left out: The overview: what the implementer cannot decide alone is stated by the passage taken from the same skill. replaced by line 154 of SKILL.md
  12. **Announce at start:** "I'm using the writing-plans skill to create the implementation plan." left out: "Announce at start" is addressed to an agent; greenline's skills never announce themselves.
  13. **Context:** If working in an isolated worktree, it should have been created via the `superpowers:using-git-worktrees` skill at execution time. left out: Working in an isolated worktree is declined: greenline uses no worktrees. R10
  14. **Save plans to:** `docs/superpowers/plans/YYYY-MM-DD-<feature-name>.md`
  15. (User preferences for plan location override this default) 2 sentences left out: The plan's home is the plan section or the plan directory, not docs/superpowers/plans/. replaced by line 5 of references/greenline.md
  16. ## Scope Check
  17. If the spec covers multiple independent subsystems, it should have been broken into sub-project specs during brainstorming.
  18. If it wasn't, suggest breaking this into separate plans — one per subsystem.
  19. Each plan should produce working, testable software on its own. 4 sentences left out: A request of several independent subsystems is split before a change's plan, by wayfinder, a start.
  20. ## File Structure
  21. Before defining tasks, map out which files will be created or modified and what each one is responsible for.
  22. This is where decomposition decisions get locked in.
  23. Design units with clear boundaries and well-defined interfaces.
  24. Each file should have one clear responsibility.
  25. You reason best about code you can hold in context at once, and your edits are more reliable when files are focused.
  26. Prefer smaller, focused files over large ones that do too much.
  27. Files that change together should live together.
  28. Split by responsibility, not by technical layer.
  29. In existing codebases, follow established patterns.
  30. If the codebase uses large files, don't unilaterally restructure - but if a file you're modifying has grown unwieldy, including a split in the plan is reasonable.
  31. This structure informs the task decomposition.
  32. Each task should produce self-contained changes that make sense independently. 13 sentences left out: Mapping files to responsibilities is the deep-modules habit's design, and a ticket names no files.
  33. ## Task Right-Sizing
  34. A task is the smallest unit that carries its own test cycle and is worth a fresh reviewer's gate.
  35. When drawing task boundaries: fold setup, configuration, scaffolding, and documentation steps into the task whose deliverable needs them; split only where a reviewer could meaningfully reject one task while approving its neighbor.
  36. Each task ends with an independently testable deliverable. 4 sentences left out: Task right-sizing duplicates planning-and-task-breakdown's sizing rules, which this skill takes. replaced by line 138 of SKILL.md
  37. ## Step Granularity
  38. **Each step is one action with a checkable result:**
  39. "Write the failing test" - step
  40. "Run it to make sure it fails" - step
  41. "Implement the minimal code to make the test pass" - step
  42. "Run the tests and make sure they pass" - step
  43. "Commit" - step 7 sentences left out: Step granularity is stated in one line where a standalone change's tasks list their steps. replaced by line 201 of SKILL.md
  44. ## Plan Document Header
  45. **Every plan MUST start with this header:**
  46. ```markdown # [Feature Name] Implementation Plan > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. **Goal:** [One sentence describing what this builds] **Architecture:** [2-3 sentences about approach] **Tech Stack:** [Key technologies/libraries] **Spec:** [path to the spec/design doc this plan implements — the plan argues from the spec, so the spec travels with it; executors read both] ## Global Constraints [The spec's project-wide requirements — version floors, dependency limits, naming and copy rules, platform requirements — one line each, with exact values copied verbatim from the spec. Every task's requirements implicitly include this section.] ## Review Focus [The five input classes or failure modes the spec implies but no task's tests exercise that are most likely to bite a person using this software — one line each, naming the input or condition and the behavior a reasonable person would expect, most likely first. The spec is a vision document: it says what the software must do, not everything it will meet, and its silence on an input is not permission for that input to break the program. Write the list here, once, with the spec in front of you. Then, for each line, add the test that pins it to the task that owns the code, in that task's own step style.] --- ``` 3 sentences left out: The plan header carries its own harness's execution note; its global constraints are written for the planning change's plan section. replaced by line 160 of SKILL.md
  47. ## Task Structure
  48. ````markdown ### Task N: [Component Name] **Files:** - Create: `exact/path/to/file.py` - Modify: `exact/path/to/existing.py:123-145` - Test: `tests/exact/path/to/test.py` **Interfaces:** - Consumes: [what this task uses from earlier tasks — exact signatures] - Produces: [what later tasks rely on — exact function names, parameter and return types. A task's implementer sees only their own task; this block is how they learn the names and types neighboring tasks use.] - [ ] **Step 1: Write the failing test** ```python def test_specific_behavior(): result = function(input) assert result == expected ``` - [ ] **Step 2: Run test to verify it fails** Run: `pytest tests/path/test.py::test_name -v` Expected: FAIL with "function not defined" - [ ] **Step 3: Implement `function(input: InputType) -> ResultType` in `exact/path/to/file.py`** One line on the approach when the signature and the test leave a choice (which library call, which data structure); a code block only for an algorithm they do not determine. - [ ] **Step 4: Run test to verify it passes** Run: `pytest tests/path/test.py::test_name -v` Expected: PASS - [ ] **Step 5: Commit** ```bash git add tests/path/test.py src/path/file.py git commit -m "feat: add specific feature" ``` ```` 2 sentences left out: The task template carries file paths and its own steps; its interfaces block is written for each ticket. replaced by line 160 of SKILL.md
  49. ## What a Step Contains
  50. A step is done when the implementer can write exactly one reasonable thing from it.
  51. That is the whole requirement: unambiguous, not complete.
  52. Each kind of step carries what makes it unambiguous and nothing more:
  53. **A test step:** the test's name and its assertions, as code, with the spec's exact values in them.
  54. **A code step:** the exact signature (name, parameters, return type), the file it lives in, and the specific values the spec pins.
  55. The implementer writes the body.
  56. A body appears only for an algorithm the signature and tests do not determine, or for exact copy the spec fixes.
  57. **A verification step:** the command to run and the output that means it passed.
  58. **A reference to another task:** that task's Interfaces block says what to use; the plan does not repeat that task's code. 10 sentences left out: What a step carries is the build's to write from the ticket and its interfaces.
  59. 16 sentences taken
  60. **4.
  61. Review Focus:** For each input class or failure mode the spec implies, is there a task whose tests exercise it?
  62. The five uncovered ones most likely to bite a person go in the Review Focus section, and each line there gets its test added to the owning task.
  63. An empty section means you checked and found none, not that you skipped the check.
  64. **5.
  65. Proportion:** Compare the plan's length to the spec's.
  66. A plan several times longer than the spec it implements is a transcript of the program, not a plan.
  67. If code blocks are most of the document, replace bodies with signatures, test names and assertions, and check that each step is still unambiguous. 8 sentences left out: The review focus and the proportion check rest on a plan document of tasks and steps this skill does not write.
  68. 3 sentences taken
  69. ## Execution Handoff
  70. After saving and self-reviewing the plan, link it for your human partner to read.
  71. If they have already explicitly supplied an execution method, ask them to review the plan and confirm it captures what they want; wait for that review before implementation, then use the preserved method.
  72. Otherwise, ask them to review the plan and choose an execution method before implementation.
  73. **When no execution method has already been supplied:**
  74. **"Plan complete and saved to `docs/superpowers/plans/<filename>.md`.
  75. Please review the plan.
  76. Which execution approach would you prefer?**
  77. **Subagent-driven** - A fresh subagent implements each task and a fresh reviewer checks it before the next one starts, then a whole-branch review at the end.
  78. Most thorough; costs a fresh context per task and per review.
  79. **Native** - I implement every task myself in this session, the way this harness runs work, then one fresh reviewer on the most capable model checks the whole branch.
  80. Cheapest and fastest; no independent review until the end.
  81. Runs well with a mid-tier session model, since the plan carries the design.
  82. **For this plan I recommend <one of the two>, because <one sentence from the plan: how much the tasks depend on each other's interfaces, how many there are, what a shipped mistake would cost>.
  83. Does the plan capture what you want, and which approach should we use?"**
  84. **When an execution method has already been supplied:**
  85. **"Plan complete and saved to `docs/superpowers/plans/<filename>.md`.
  86. Please review the plan.
  87. Does it capture what you want?"**
  88. **If Subagent-driven chosen:**
  89. **REQUIRED SUB-SKILL:** Use superpowers:subagent-driven-development
  90. **If Native chosen:**
  91. **REQUIRED SUB-SKILL:** Use superpowers:executing-plans 23 sentences left out: The execution handoff chooses between a subagent per task and a native run on a chosen model; under the portability ruling the build runs the tickets one after another, and the handoff names the next step of the change's mode. R4 replaced by line 213 of SKILL.md

pstack

pstack, architect/SKILL.md: 71 of 79 sentences left out
  1. # Architect left out: The title gives way to the bridge into the design passage. replaced by line 162 of SKILL.md
  2. 2 sentences taken
  3. Synthesize across multiple model perspectives, then fill in code against the chosen sketch. left out: Synthesizing across several models' perspectives is dropped: one agent designs the candidates in turn. R4 replaced by line 166 of SKILL.md
  4. If implementation proves the sketch wrong, throw it out and redesign. left out: Throwing out a sketch the implementation proves wrong is the build's, whose scrap signals S14 re-cuts.
  5. ## Start
  6. Open a todolist with one entry per phase before starting.
  7. Ground
  8. Sketch
  9. Agree
  10. Implement
  11. Scrap 7 sentences left out: The todolist of phases is architect's own process; the passages taken stand in the tickets part.
  12. ## Phase A: Ground the problem
  13. Build a real mental model of every system the new code touches.
  14. Run the **how** skill over the relevant subsystems.
  15. Naming a file isn't grounding.
  16. Produce the traced model `how` prescribes.
  17. If the design redefines ownership or layering, also run the **why** skill on the existing shape so the rationale becomes a constraint, not a guess.
  18. Skip Phase A only when the work is genuinely greenfield with no surrounding system to integrate. 7 sentences left out: The how and why skills are not installed; the written frame and the spec's exploration of the repository ground the design.
  19. ## Phase B: Sketch
  20. Run the **arena** skill with the design-sketch task and the Phase A grounding artifacts.
  21. Pass `references/runner-prompt.md` as each runner's prompt.
  22. Each candidate produces a design package shaped per `references/rationale-template.md`.
  23. Take the runners from the `architect runners` line in the `pstack-models.mdc` rule, in place of the `arena runners` line.
  24. If the rule or that line is missing, use `claude-opus-5-5-xhigh` and `grok-4.7-xhigh-fast`.
  25. Alias and rejected entries follow the runner rules in the **arena** skill's Phase A. 7 sentences left out: The arena's parallel runners, each on a model the pstack rule names, are dropped: one agent designs the candidates in turn. R4 replaced by line 166 of SKILL.md
  26. 2 sentences taken
  27. This is the **exhaust-the-design-space** principle skill made concrete. left out: The principle skill it names is frame's prototype page now, which holds the rule.
  28. 1 sentence taken
  29. Screen every candidate against [`references/design-red-flags.md`](references/design-red-flags.md) before synthesis.
  30. Assume the next contributor is an agent that sees only the files it opened, copies the nearest example, and takes the shortest path that compiles.
  31. Prefer the design where a change that looks right from one file is right for the whole repo. 3 sentences left out: The design red flags are knowledge for an engineering choice, handed to garden's maintainer.
  32. Compare viable candidates on interface depth.
  33. Prefer the design that hides more complexity behind a smaller, simpler public surface.
  34. A rich interface can keep call chains short by concentrating capability instead of scattering it across layers. 3 sentences left out: Comparing candidates on interface depth is the deep-modules habit's.
  35. Arena returns one synthesized design package.
  36. The synthesis decision populates the rationale's "Synthesis decision" section. 2 sentences left out: The arena's synthesized package is dropped with the arena: the one agent compares its candidates itself. R4 replaced by line 166 of SKILL.md
  37. ## Phase C: Agree (opt-in)
  38. Default: proceed directly to implementation with the synthesized design.
  39. No human checkpoint.
  40. Opt in to a checkpoint when the invoker explicitly asks: "/architect with checkpoint," "stop and show me before implementing," or similar.
  41. Then surface the synthesized design and pause for sign-off. 5 sentences left out: Proceeding with no human checkpoint contradicts the trunk's wait after ticketing, which stands (contradiction ruled). R3 replaced by line 18 of references/greenline.md
  42. The synthesis can ship as its own commit either way, as the "scaffold first" mode of the **foundational-thinking** principle skill.
  43. Planned and scoped breakage during fill-in is fine, per the **outcome-oriented-execution** principle skill.
  44. For adversarial pressure on the design before implementing, run the **interrogate** skill on the synthesized sketch.
  45. If the human pushes back on the shape (in a checkpoint or after the fact), treat that as Phase A evidence.
  46. Re-ground and re-run Phase B before writing more code. 5 sentences left out: The principle skills and interrogate it names are not installed; adversarial pressure on the plan is the anticipate step's.
  47. ## Phase D: Implement against the sketch
  48. Replace `not implemented` bodies with code, pseudocode with logic.
  49. The synthesized sketch is the contract.
  50. Deviations from the sketch are signal worth surfacing, not friction to absorb silently.
  51. If a function needs a parameter the sketch didn't anticipate, ask whether the sketch was wrong, the requirement was missed, or the implementation is overreaching.
  52. ## Phase E: Scrap when the architecture is wrong
  53. If implementation keeps producing friction the sketch can't absorb, throw the sketch out.
  54. Don't bolt fixes onto a wrong design, per the **redesign-from-first-principles** and **fix-root-causes** principle skills.
  55. The signal is a *pattern*, not single instances.
  56. Tells:
  57. The same shape of workaround appearing repeatedly across unrelated code.
  58. Multiple unrelated edge cases that all need special-case branches.
  59. Types that need escape hatches (`any`, casts, optional fields always set in practice) to compile.
  60. The "we need a lock" reflex when the sketch said the state wasn't shared.
  61. Callers having to know the abstraction's internal rules to use it.
  62. Two or more independent Phase D deviations of the same shape across the implementation.
  63. Use judgment.
  64. A few edge cases don't condemn an architecture.
  65. Some problems are legitimately complex.
  66. Complexity in the data is not complexity in the design.
  67. When you scrap:
  68. Re-run the **how** skill over what's been built.
  69. Redesign as if the new constraints had been day-one assumptions, per redesign-from-first-principles.
  70. Subtract before adding, per the **subtract-before-you-add** principle skill.
  71. The new sketch should be smaller than the old one before it grows.
  72. Return to Phase B and re-run arena. 26 sentences left out: Implementing against the sketch and scrapping it are the build step's, which S14 re-cuts.
  73. ## Outputs left out: The outputs heading; its sentences follow the design passage.
  74. 3 sentences taken
  75. The rationale ships alongside, shaped per `references/rationale-template.md`, including the usage sketch and the synthesis decision. left out: The rationale template is not carried; the plan section holds the sketch with each loser and why it lost. replaced by line 170 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-19 2026-10-19-plan-declared-checks

Plan's references page names the declared checks and the declaration

The checks the plan names are the ones the manifest declares, which init proposes and the first change confirms; one the project lacks is declared with greenline check --declare (J-93 S3, the review's fix cycle).

Authorised by
2026-10-19 the operator's ruling of 2026-10-19 that no hook parses a command and the setup is the agent's reasoning, "not every case can be parsed and we have to use green line agents reasoning to set things up for hooks to work in an brownfield and Greenfield repos across stacks languages and repo archs": the workspace declares its checks once, init proposing them from the project's files and the agent declaring one it adds in the plan
Pages it touched
references/greenline.md
Rulings, R1 to R22
  1. series-s7-roster-2026-09-11: the operator's ruling of 2026-09-11 that the plan's open items be finished with the maintainer's recommendations; the recommendation, recorded in that file, keeps the nine method edits
  2. 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
  3. The operator's rulings of 2026-10-08 on the intake R3 ("yes go ahead"): spec-driven-development's reframing passage, planning-and-task-breakdown, writing-plans and architect combine into plan, and the contradictions stand as recommended: the spec and the tickets stay path-free while a single change's plan section may name files and signatures, questioning is frame's, the trunk's wait after ticketing stands over architect's "No human checkpoint", and spec-driven's capability map is not taken
  4. 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 second R3 ruling of that day, "yes go ahead", on the portable forms: grilling looks a fact up itself before the next round, research reads itself or through one delegated agent the step waits for, and no agent runs beside the conversation
  5. The operator's rulings of 2026-10-04, "cool then lock everything in", and R12, "two wait is good": a step runs at the depth the change's mode gives it, inline being one line of its section and written a section the builder writes, and planned work waits before planning and after ticketing
  6. 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
  7. 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 rulings of 2026-10-04, "cool then lock everything in", and R12, "two wait is good": a step runs at the depth the change's mode gives it, inline being one line of its section and written a section the builder writes, and planned work waits before planning and after ticketing; The operator's rulings of 2026-10-08 on the intake R3 ("yes go ahead"): spec-driven-development's reframing passage, planning-and-task-breakdown, writing-plans and architect combine into plan, and the contradictions stand as recommended: the spec and the tickets stay path-free while a single change's plan section may name files and signatures, questioning is frame's, the trunk's wait after ticketing stands over architect's "No human checkpoint", and spec-driven's capability map is not taken; 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)
  8. 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; and the operator's ruling of 2026-10-19 that no hook parses a command and the setup is the agent's reasoning, "not every case can be parsed and we have to use green line agents reasoning to set things up for hooks to work in an brownfield and Greenfield repos across stacks languages and repo archs": the workspace declares its checks once, init proposing them from the project's files and the agent declaring one it adds in the plan
  9. The operator's rulings of 2026-10-04, "cool then lock everything in", and R12, "two wait is good": a step runs at the depth the change's mode gives it, inline being one line of its section and written a section the builder writes, and planned work waits before planning and after ticketing; The operator's rulings of 2026-10-08 on the intake R3 ("yes go ahead"): spec-driven-development's reframing passage, planning-and-task-breakdown, writing-plans and architect combine into plan, and the contradictions stand as recommended: the spec and the tickets stay path-free while a single change's plan section may name files and signatures, questioning is frame's, the trunk's wait after ticketing stands over architect's "No human checkpoint", and spec-driven's capability map is not taken; 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 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", and the card of that day, "Words at the list edit the entry; at a ticket's open they override", with the delegation of 2026-10-16 whose words finalise the fix job's slices: a request that names a mode is taken as chosen and goes on with no yes awaited, a question asked only for a choice it leaves open; the record names every floor found and, where the owner names a mode below one, says so with choice owner and the floor's reason; a mode named at the ticket list edits the entry and one named at a ticket's open overrides it; the builder reads the reviewer's brief at the inline depth only; and at the written frame depth every open behaviour goes to the owner through the interview, an inline frame line crediting the owner only with the owner's answers; 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 ruling R20 of 2026-10-07, "greenline should not support parralel subs right now at all .. only linear sub flow ..and not worktrees also": a method about parallel dispatch or worktree isolation is declined
  11. R22 of 2026-10-08, "yes amend, with one change": plan is made from to-spec and to-tickets
  12. the R3 rulings of 2026-10-08, "yes go ahead": spec-driven-development's reframing passage, planning-and-task-breakdown, writing-plans and architect combine into it, the spec and the tickets stay path-free while a single change's plan section may name files and signatures, questioning is frame's, the trunk's wait after ticketing stands over architect's "No human checkpoint", and spec-driven's capability map is not taken
  13. R20 of 2026-10-07: the parallel sections and the worktree line are declined
  14. R21 of 2026-10-08: architect's arena runners and their models are gone, the candidates designed in turn by one agent
  15. the rulings of 2026-10-04, "cool then lock everything in", and R12, "two wait is good", on the depths a mode gives a step and the two waits of planned work, each ticket with its own mode (R10)
  16. to-spec's seam check carried from series-s7-roster-2026-09-11
  17. 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
  18. 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
  19. The operator's card of 2026-10-15 on the QA series, "One fix job after the fifth family", and the card of that day, "Words at the list edit the entry; at a ticket's open they override", with the delegation of 2026-10-16 whose words finalise the fix job's slices: a request that names a mode is taken as chosen and goes on with no yes awaited, a question asked only for a choice it leaves open; the record names every floor found and, where the owner names a mode below one, says so with choice owner and the floor's reason; a mode named at the ticket list edits the entry and one named at a ticket's open overrides it; the builder reads the reviewer's brief at the inline depth only; and at the written frame depth every open behaviour goes to the owner through the interview, an inline frame line crediting the owner only with the owner's answers
  20. 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
  21. 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
  22. the operator's ruling of 2026-10-19 that no hook parses a command and the setup is the agent's reasoning, "not every case can be parsed and we have to use green line agents reasoning to set things up for hooks to work in an brownfield and Greenfield repos across stacks languages and repo archs": the workspace declares its checks once, init proposing them from the project's files and the agent declaring one it adds in the plan
8 earlier entries
  1. 2026-10-19 2026-10-19-plan-split-review-fixes

    Plan's references page states the two waits once

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

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

  3. 2026-10-19 2026-10-19-plan-references

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

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

  4. 2026-10-17 2026-10-17-plan-ticket-mode-at-the-list

    The owner's mode at the list edits the entry; at open, overrides

    Pages it touched: SKILL.md

  5. 2026-10-14 2026-10-14-plan-ticket-id-at-open

    A ticket's record takes its id as it opens

    Pages it touched: SKILL.md

  6. 2026-10-14 2026-10-14-plan-tickets-share-a-branch

    A plan's tickets share the planning change's branch

    Pages it touched: SKILL.md

  7. 2026-10-09 2026-10-09-plan-gists

    Every account gets a short gist for the website

  8. 2026-10-08 2026-10-08-plan-recipe

    Plan is made from to-spec and to-tickets, in two parts

    Pages it touched: SKILL.md