Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions references/good-bead.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ This is the bar every bead in an effort meets, together with the graph that wire
The top bead is the effort's cold-restart record.

- **The top bead describes the effort, and nothing else.** Its body holds the outcome, the evidence that shows it is true, why the effort takes this shape, and what has been settled and must not be reopened. The roster, the parentage, the blocking edges, the critical path and each bead's status all live in the graph, and the body restates none of them. A foreign strand's id is the target of its edge, and the body does not repeat it.
- **Every piece of work the top bead's description names is a bead in the graph.** Anything the description says someone has to do, such as a switch, a deploy, a release, a check or a post, is carried by a bead the top bead reaches. A steward staffs the graph, not the prose, so work named only in prose is never done. Where no bead carries it, file one in the project that owns the work and wire it in. The one exception is seeing the evidence that the top bead's own outcome is true, which is part of closing the top bead.
- **The top bead never says how the effort is staffed or delivered.** Staffing is the steward's call at run time. How a repo takes work is in that repo's own instructions.
- **The top bead carries the effort's slug as `effort_slug` in its metadata.** Every commy topic the effort uses is named from it: `#<project>/<effort>`, its `-decisions` topic and each `-<bead>` working topic. A replacement steward has no other way to learn the name, and one that invents a fresh slug posts into topics no worker listens on, and adds a second index line for an effort that already has one.
- **The test:** a fresh steward holding only the top bead and the graph can rebuild the whole effort, in this project and across others. If it cannot, find the missing fact, and check first that it is not a field left unset.
3 changes: 2 additions & 1 deletion skills/muster/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,10 @@ Before you start the steward, confirm that the graph can be driven. All of these
bdi --beads --brief <project>:<top-bead> | jq -r '.ready[] | "\(.project):\(.id) \(.labels | join(",")) \(.title)"'
```
- Every bead, the graph and the top bead meet every rule in the bar.
- Every piece of work the top bead's description names is a bead in the top bead's tree, as the bar's rule for the top bead says. Read the description against the tree bdi printed, and file and wire each bead that is missing.
- Every foreign strand is confirmed in good shape by its home project, and wired into the graph as an edge on its home-project id.

For a graph that is not trivial, give **one** throwaway subagent an adversarial review of it, and keep only its verdict. Its brief: read the bar at its full path, and hunt for every breach of it, missing blockers included, and for unwired foreign strands. Fix what it finds. This review is your own quality check, not a gate on the human. Where your seat may not start subagents, the review does not run, and the checks above remain the real bar.
For a graph that is not trivial, give **one** throwaway subagent an adversarial review of it, and keep only its verdict. Its brief: read the bar at its full path, and hunt for every breach of it, missing blockers included, for unwired foreign strands, and for work the top bead names that no bead carries. Fix what it finds. This review is your own quality check, not a gate on the human. Where your seat may not start subagents, the review does not run, and the checks above remain the real bar.

**When your seat will take the effort over itself, the review always runs, even on a trivial graph.** A fresh steward is what proves the graph can be driven cold, and a seat that has held the whole conversation is not fresh. So add one more line to the subagent's brief: rebuild the effort from the top bead alone, and report every fact the effort needs that the beads do not hold.

Expand Down
6 changes: 5 additions & 1 deletion skills/steward/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,11 @@ You are now bound, reachable, and hold the whole state. Reconstruct from these r

## The push gate: never rest with unstaffed work

The wake ritual tells you the state. The push gate is what you owe before you rest. Walk **every strand of work the top bead needs, in your project and in every other project the effort touches**, and confirm each is in exactly one of seven states:
The wake ritual tells you the state. The push gate is what you owe before you rest.

**First read the top bead's description against the graph.** Each piece of work it names, such as a switch, a deploy, a release, a check or a post, is a bead the top bead reaches through its dependencies, as the bar's rule for the top bead says. Work named only in prose is a strand the walk below never meets, so nobody staffs it. File each missing bead in the project that owns the work and wire it in, as *Track discovered work* says.

Then walk **every strand of work the top bead needs, in your project and in every other project the effort touches**, and confirm each is in exactly one of seven states:

1. **Done.** It has landed on the repo's default branch, which with pull requests means merged rather than opened, and its bead says so.
2. **Staffed and live.** An accountable worker is on it and has reported recently, through a post, a commit or a bead update. Under a delivery formula the worker sits on a step of the bead's molecule, not on the bead. A worker that has gone dark is not this state, and neither is a bead handed to a channel nobody picked up.
Expand Down