instructions: chains of packages - stack-dev writes ## Kette, stack-close names the next link (#205)
Files changed: - CHANGES.md - VERSION - instructions/dev/issue-tracking.md - instructions/dev/stack-close/SKILL.md - instructions/dev/stack-dev/SKILL.md - instructions/dev/stack-mode.md Co-Authored-By: Claude Code <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnAJ7Z3CpVD3PRbN73QtU2
This commit is contained in:
1 parent
7cfafd75b2
commit
3c80262a05
6 files changed
+90
-5
No files matched your search
@@ -27,6 +27,7 @@ issues at that URL, which is exactly why `dist export` excludes
|
||||
- [Steps](#steps)
|
||||
- [Incoming stubs](#incoming-stubs)
|
||||
- [Ready to build](#ready-to-build)
|
||||
- [Chains](#chains)
|
||||
- [Renames and other decay in the tracker](#renames-and-other-decay-in-the-tracker)
|
||||
- [Citing an issue in the repo](#citing-an-issue-in-the-repo)
|
||||
- [What no tool checks](#what-no-tool-checks)
|
||||
@@ -50,6 +51,8 @@ issues at that URL, which is exactly why `dist export` excludes
|
||||
ready (§ Ready to build).
|
||||
- Prioritising: deciding what to pick up next, or re-labelling after the ground
|
||||
moved.
|
||||
- A design session yields several packages with an order, or inserts, removes or moves
|
||||
one in an existing sequence: write or repair the `## Kette` sections (§ Chains).
|
||||
- Closing one: the body is rewritten to its final state first, and only then
|
||||
closed (step 7).
|
||||
- A rename or move ships: sweep the open issues for text that assumed the old
|
||||
@@ -208,7 +211,7 @@ issues at that URL, which is exactly why `dist export` excludes
|
||||
|
||||
| `status/` | Means |
|
||||
|---|---|
|
||||
| `status/blocked` | Waiting on another, still-open issue - not workable on its own, whatever its `prio/` says. Name the blocking issue in the body. |
|
||||
| `status/blocked` | Waiting on another, still-open issue - not workable on its own, whatever its `prio/` says. Name the blocking issue in the body. A place in a chain (§ Chains) is an order, not a block. |
|
||||
| `status/unconfirmed` | A reported suspicion, not yet checked against actual behaviour. Applies to any `kind/`, not just `kind/defect`. |
|
||||
| `status/incoming` | A human's stub: a request or a thought, filed at whatever length it arrived, deliberately short of everything step 1 asks for. **Never implemented as it stands** - § Incoming stubs. |
|
||||
|
||||
@@ -337,6 +340,40 @@ session fills on its own is the same gap a `status/incoming` stub leaves (§ Inc
|
||||
only better disguised. The useful side effect of the cut between the two phases is that it
|
||||
tests this definition - if a cold session cannot build from the body, it was not ready.
|
||||
|
||||
## Chains
|
||||
|
||||
Packages that are meant to be built one after another lose the thread when each is closed:
|
||||
which issue comes next is, at best, written in a body nobody reads after closing. A package that
|
||||
is part of an ordered sequence therefore ends its body with a section of this exact form, as the
|
||||
**last** section:
|
||||
|
||||
```
|
||||
## Kette
|
||||
|
||||
Kette „<name>“
|
||||
- Vorgänger: #A (or: keiner - erstes Glied)
|
||||
- Nachfolger: #C (or: keiner - letztes Glied)
|
||||
```
|
||||
|
||||
The heading and the line openings are quoted vocabulary and stay German, like the bodies they
|
||||
sit in. Three rules keep it cheap and checkable:
|
||||
|
||||
- **Neighbours only, never a list of all links.** Inserting, removing or moving a package then
|
||||
touches the two bodies beside it, not every body in the chain. The whole sequence is
|
||||
recovered by walking `Nachfolger` links from the first link.
|
||||
- **The two neighbours point at each other.** If #B names #A as `Vorgänger`, #A names #B as
|
||||
`Nachfolger`. A one-sided pointer is the defect; `stack-dev` checks every link it touched
|
||||
before ending its phase.
|
||||
- **Order is a planning decision, not a dependency.** A real dependency still carries
|
||||
`status/blocked` (step 5) and names the blocker in the body. A chain position alone never
|
||||
blocks anything.
|
||||
|
||||
`stack-dev` writes the section and keeps the neighbours in step (its steps 3 and 5);
|
||||
`stack-close` reads it after closing and names the next link (its step 5), and lifts
|
||||
`status/blocked` from the successor when the closed package was that body's only open blocker,
|
||||
with the comment step 6 asks for. The successor is *ready* when it carries `kind/build` and
|
||||
neither `status/incoming` nor `status/unconfirmed`; otherwise the next phase for it is design.
|
||||
|
||||
## Renames and other decay in the tracker
|
||||
|
||||
A rename is not finished when the tree is green. Renaming a package, a path,
|
||||
|
||||
Reference in new issue
Block a user