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
5 changes: 3 additions & 2 deletions meta/resources/workflow-canonical.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,9 @@ Failure handling lives **inline in the protocol step that triggers it**.
`## Protocol` is a **single ordered list of steps**. It may be a flat
numbered/bulleted list, or `### N. Title` blocks each holding an ordered list. The
server treats it as one ordered sequence and assigns step numbers at load time.
**Do not write absolute intra-protocol step-number references** ("go to step 3") —
composition and renumbering shift them; refer to steps descriptively.
A step number is therefore a position the loader assigns, not an address:
**do not write absolute intra-protocol step-number references** ("go to step 3").
Refer to steps descriptively.

## Base-contract inheritance

Expand Down
5 changes: 5 additions & 0 deletions section-framing-triage.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,11 @@
"verdict": "harmless",
"rationale": "orientation-only"
},
{
"site": "meta/resources/workflow-canonical.md",
"verdict": "harmless",
"rationale": "orientation-only"
},
{
"site": "meta/resources/writing-register.md",
"verdict": "harmless",
Expand Down
2 changes: 1 addition & 1 deletion workflow-design/resources/anti-patterns.md
Original file line number Diff line number Diff line change
Expand Up @@ -1787,7 +1787,7 @@ Protocol restates a tool parameter's shape, which the tool's own schema already

A durable reference identifies a Protocol phase by its position, so it keeps resolving after a renumber and points at work it no longer names.

**Detect:** A rule, I/O description, Capability, resource body, README, or another technique's Protocol cites a phase of some `## Protocol` by ordinal — "step N", "phase N", "the Nth step" — rather than by the technique or op that owns it. An ordinal is not a symbol: it survives insertion, deletion and reordering by silently addressing whichever phase now holds that index, so the claim goes false with nothing failing. Test: insert one phase above the cited one and re-read the citing sentence; if it now names the wrong work, flag it.
**Detect:** A rule, I/O description, Capability, resource body, README, or another technique's Protocol cites a phase of some `## Protocol` by ordinal — "step N", "phase N", "the Nth step" — rather than by the technique or op that owns it. Step numbering belongs to the loader, per [workflow-canonical](../../meta/resources/workflow-canonical.md#protocol), so the citation survives insertion, deletion and reordering by silently addressing whichever phase now holds that index and goes false with nothing failing. Test: insert one phase above the cited one and re-read the citing sentence; if it now names the wrong work, flag it.

**Do not flag:** Ordinals inside the same `## Protocol` that owns the numbering, where the phases and the reference move in one edit. A link to the phase's heading anchor, which fails a guard rather than drifting when the heading changes. Rules cited by dotted address — a rule name is not a position (`dotted-rule-address`). An ordinal that is part of a declared id, heading text, or quoted output rather than a citation.

Expand Down
Loading