@gobing-ai/spur 0.3.40 → 0.3.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +15 -0
- package/README.md +15 -1
- package/config/templates/AGENTS.md +5 -3
- package/config/workflows/task-pipeline.yaml +103 -12
- package/package.json +15 -12
- package/plugins/README.md +655 -0
- package/plugins/sp/README.md +621 -0
- package/plugins/sp/agents/expert-spur.md +109 -0
- package/plugins/sp/agents/super-coder.md +126 -0
- package/plugins/sp/agents/super-planner.md +283 -0
- package/plugins/sp/agents/super-reviewer.md +154 -0
- package/plugins/sp/commands/dev-arch.md +30 -0
- package/plugins/sp/commands/dev-brainstorm.md +40 -0
- package/plugins/sp/commands/dev-changelog.md +28 -0
- package/plugins/sp/commands/dev-daily.md +29 -0
- package/plugins/sp/commands/dev-debug.md +29 -0
- package/plugins/sp/commands/dev-dogfood.md +33 -0
- package/plugins/sp/commands/dev-featurechange.md +130 -0
- package/plugins/sp/commands/dev-find-conflict.md +51 -0
- package/plugins/sp/commands/dev-find-issue.md +76 -0
- package/plugins/sp/commands/dev-find-next.md +60 -0
- package/plugins/sp/commands/dev-fixall.md +33 -0
- package/plugins/sp/commands/dev-gitmsg.md +28 -0
- package/plugins/sp/commands/dev-gtd.md +97 -0
- package/plugins/sp/commands/dev-handover.md +26 -0
- package/plugins/sp/commands/dev-idea.md +50 -0
- package/plugins/sp/commands/dev-next.md +31 -0
- package/plugins/sp/commands/dev-parallel.md +30 -0
- package/plugins/sp/commands/dev-plan.md +46 -0
- package/plugins/sp/commands/dev-refine.md +48 -0
- package/plugins/sp/commands/dev-refineall.md +65 -0
- package/plugins/sp/commands/dev-refresh.md +32 -0
- package/plugins/sp/commands/dev-reverse.md +32 -0
- package/plugins/sp/commands/dev-review.md +31 -0
- package/plugins/sp/commands/dev-run.md +63 -0
- package/plugins/sp/commands/dev-runall.md +80 -0
- package/plugins/sp/commands/dev-simplify.md +39 -0
- package/plugins/sp/commands/dev-unit.md +29 -0
- package/plugins/sp/commands/dev-verify.md +48 -0
- package/plugins/sp/commands/dev-verifyall.md +72 -0
- package/plugins/sp/commands/dev-wrap.md +30 -0
- package/plugins/sp/commands/dev-wrapall.md +33 -0
- package/plugins/sp/commands/rule-add.md +18 -0
- package/plugins/sp/commands/rule-refine.md +18 -0
- package/plugins/sp/commands/rule-scan.md +18 -0
- package/plugins/sp/commands/spur-init.md +22 -0
- package/plugins/sp/commands/workflow-add.md +18 -0
- package/plugins/sp/commands/workflow-refine.md +18 -0
- package/plugins/sp/hooks/agent-hint.ts +60 -0
- package/plugins/sp/hooks/careful-guard.ts +147 -0
- package/plugins/sp/hooks/context-post-tool.ts +325 -0
- package/plugins/sp/hooks/context-session-start.ts +182 -0
- package/plugins/sp/hooks/context-session-stop.ts +95 -0
- package/plugins/sp/hooks/hooks.json +51 -0
- package/plugins/sp/hooks/pi/guard-extension.ts +341 -0
- package/plugins/sp/hooks/task-write-guard.ts +84 -0
- package/plugins/sp/plugin.json +8 -0
- package/plugins/sp/scripts/batch-preflight.ts +204 -0
- package/plugins/sp/scripts/daily-summary/daily-summary.ts +606 -0
- package/plugins/sp/scripts/daily-summary/logger.ts +28 -0
- package/plugins/sp/scripts/dogfood-testing/detect-pipeline-driving.ts +363 -0
- package/plugins/sp/scripts/dogfood-testing/validate-report.ts +168 -0
- package/plugins/sp/scripts/feature-sync-bounded.ts +451 -0
- package/plugins/sp/scripts/stage-registry-adapter.ts +1341 -0
- package/plugins/sp/scripts/task-size-precheck.ts +202 -0
- package/plugins/sp/scripts/validate-commands.ts +651 -0
- package/plugins/sp/scripts/validate-flag-contracts.ts +875 -0
- package/plugins/sp/skills/brainstorm/SKILL.md +361 -0
- package/plugins/sp/skills/brainstorm/agents/openai.yaml +14 -0
- package/plugins/sp/skills/brainstorm/examples/ideation-example.md +209 -0
- package/plugins/sp/skills/brainstorm/metadata.openclaw +7 -0
- package/plugins/sp/skills/brainstorm/references/grilling-interview.md +68 -0
- package/plugins/sp/skills/brainstorm/references/workflows.md +255 -0
- package/plugins/sp/skills/branch-workflow/SKILL.md +109 -0
- package/plugins/sp/skills/branch-workflow/references/branch-lifecycle.md +69 -0
- package/plugins/sp/skills/branch-workflow/references/worktree-patterns.md +100 -0
- package/plugins/sp/skills/code-implementation/SKILL.md +176 -0
- package/plugins/sp/skills/code-implementation/references/debugging.md +64 -0
- package/plugins/sp/skills/code-implementation/references/implementation-patterns.md +113 -0
- package/plugins/sp/skills/code-improvement/SKILL.md +231 -0
- package/plugins/sp/skills/code-improvement/references/deepening-signals.md +205 -0
- package/plugins/sp/skills/code-review/SKILL.md +112 -0
- package/plugins/sp/skills/code-review/references/receiving-code-review.md +70 -0
- package/plugins/sp/skills/code-review/references/review-lenses.md +117 -0
- package/plugins/sp/skills/code-review/references/self-review-checklist.md +53 -0
- package/plugins/sp/skills/code-review/references/verification-before-completion.md +68 -0
- package/plugins/sp/skills/code-simplification/SKILL.md +225 -0
- package/plugins/sp/skills/code-testing/SKILL.md +108 -0
- package/plugins/sp/skills/code-testing/references/stacks/bun-ts.md +165 -0
- package/plugins/sp/skills/code-testing/references/stacks/go.md +88 -0
- package/plugins/sp/skills/code-testing/references/stacks/python.md +117 -0
- package/plugins/sp/skills/code-testing/references/test-loop-breaker.md +37 -0
- package/plugins/sp/skills/code-testing/references/test-output-discipline.md +52 -0
- package/plugins/sp/skills/code-testing/references/unit-testing.md +212 -0
- package/plugins/sp/skills/code-verification/SKILL.md +535 -0
- package/plugins/sp/skills/code-verification/references/code-improvement.md +39 -0
- package/plugins/sp/skills/code-verification/references/secu-review.md +94 -0
- package/plugins/sp/skills/code-verification/references/verdict-schema.md +141 -0
- package/plugins/sp/skills/conflict-finding/SKILL.md +254 -0
- package/plugins/sp/skills/conflict-finding/references/authority-resolution.md +258 -0
- package/plugins/sp/skills/conflict-finding/references/comparison-protocol.md +277 -0
- package/plugins/sp/skills/conflict-finding/references/finding-contract.md +346 -0
- package/plugins/sp/skills/conflict-finding/references/remediation-routing.md +276 -0
- package/plugins/sp/skills/daily-summary/SKILL.md +171 -0
- package/plugins/sp/skills/daily-summary/agents/openai.yaml +13 -0
- package/plugins/sp/skills/doc-evolve/SKILL.md +175 -0
- package/plugins/sp/skills/doc-evolve/references/operations.md +93 -0
- package/plugins/sp/skills/dogfood-testing/SKILL.md +608 -0
- package/plugins/sp/skills/dogfood-testing/references/monitor-ledger.md +211 -0
- package/plugins/sp/skills/dogfood-testing/references/report-template.md +351 -0
- package/plugins/sp/skills/doubt-driven-development/SKILL.md +136 -0
- package/plugins/sp/skills/functional-review/SKILL.md +364 -0
- package/plugins/sp/skills/functional-review/references/verdict-schema.md +133 -0
- package/plugins/sp/skills/indexed-context/SKILL.md +164 -0
- package/plugins/sp/skills/issue-finding/SKILL.md +424 -0
- package/plugins/sp/skills/issue-finding/agents/openai.yaml +15 -0
- package/plugins/sp/skills/issue-finding/examples/expected-findings.json +27 -0
- package/plugins/sp/skills/issue-finding/examples/session-test-loop.jsonl +23 -0
- package/plugins/sp/skills/issue-finding/references/session-formats.md +121 -0
- package/plugins/sp/skills/next-feature/SKILL.md +125 -0
- package/plugins/sp/skills/next-feature/references/handoff-routing.md +92 -0
- package/plugins/sp/skills/next-feature/references/proposal-contract.md +49 -0
- package/plugins/sp/skills/next-feature/references/ranking-rubric.md +52 -0
- package/plugins/sp/skills/next-feature/references/signal-derivation.md +67 -0
- package/plugins/sp/skills/next-router/SKILL.md +181 -0
- package/plugins/sp/skills/next-router/references/messages.md +90 -0
- package/plugins/sp/skills/next-router/references/routing-table.md +216 -0
- package/plugins/sp/skills/parallel-execution/SKILL.md +148 -0
- package/plugins/sp/skills/parallel-execution/references/dispatch-surface.md +100 -0
- package/plugins/sp/skills/parallel-execution/references/fan-out-patterns.md +101 -0
- package/plugins/sp/skills/parallel-execution/references/result-synthesis.md +94 -0
- package/plugins/sp/skills/reverse-engineering/SKILL.md +375 -0
- package/plugins/sp/skills/reverse-engineering/agents/openai.yaml +18 -0
- package/plugins/sp/skills/source-driven-development/SKILL.md +124 -0
- package/plugins/sp/skills/spec-decomposition/SKILL.md +117 -0
- package/plugins/sp/skills/spec-decomposition/references/decomposition.md +539 -0
- package/plugins/sp/skills/spur-cli/SKILL.md +133 -0
- package/plugins/sp/skills/spur-cli/references/agent.md +179 -0
- package/plugins/sp/skills/spur-cli/references/features/acceptance-criteria.md +82 -0
- package/plugins/sp/skills/spur-cli/references/features/hierarchy-mece.md +177 -0
- package/plugins/sp/skills/spur-cli/references/features/roadmap-priority.md +84 -0
- package/plugins/sp/skills/spur-cli/references/features/verbs.md +122 -0
- package/plugins/sp/skills/spur-cli/references/features.md +234 -0
- package/plugins/sp/skills/spur-cli/references/init.md +119 -0
- package/plugins/sp/skills/spur-cli/references/message.md +98 -0
- package/plugins/sp/skills/spur-cli/references/rules/authoring-rules.md +212 -0
- package/plugins/sp/skills/spur-cli/references/rules/fine-tuning.md +148 -0
- package/plugins/sp/skills/spur-cli/references/rules/operations.md +228 -0
- package/plugins/sp/skills/spur-cli/references/rules/validation-and-extension.md +129 -0
- package/plugins/sp/skills/spur-cli/references/rules.md +209 -0
- package/plugins/sp/skills/spur-cli/references/serve.md +58 -0
- package/plugins/sp/skills/spur-cli/references/tasks/l3-guard-cheatsheet.md +98 -0
- package/plugins/sp/skills/spur-cli/references/tasks/section-editing.md +95 -0
- package/plugins/sp/skills/spur-cli/references/tasks/verbs.md +361 -0
- package/plugins/sp/skills/spur-cli/references/tasks.md +278 -0
- package/plugins/sp/skills/spur-cli/references/team.md +133 -0
- package/plugins/sp/skills/spur-cli/references/workflows/authoring-workflows.md +226 -0
- package/plugins/sp/skills/spur-cli/references/workflows/operations.md +211 -0
- package/plugins/sp/skills/spur-cli/references/workflows/validation-and-extension.md +129 -0
- package/plugins/sp/skills/spur-cli/references/workflows.md +355 -0
- package/plugins/sp/skills/spur-dev/SKILL.md +224 -0
- package/plugins/sp/skills/spur-dev/references/ac-style-guide.md +196 -0
- package/plugins/sp/skills/spur-dev/references/cross-cutting.md +664 -0
- package/plugins/sp/skills/spur-dev/references/decision-brief.md +80 -0
- package/plugins/sp/skills/spur-dev/references/dev-operations.md +546 -0
- package/plugins/sp/skills/spur-dev/references/done-housekeeping.md +164 -0
- package/plugins/sp/skills/spur-dev/references/execution-batch.md +727 -0
- package/plugins/sp/skills/spur-dev/references/execution-workflow.md +350 -0
- package/plugins/sp/skills/spur-dev/references/feature-link-helper.md +191 -0
- package/plugins/sp/skills/spur-dev/references/flag-glossary.md +417 -0
- package/plugins/sp/skills/spur-dev/references/gate-checklists.md +171 -0
- package/plugins/sp/skills/spur-dev/references/glossary.md +95 -0
- package/plugins/sp/skills/spur-dev/references/idea-evaluation.md +80 -0
- package/plugins/sp/skills/spur-dev/references/inline-pipeline-driver.md +88 -0
- package/plugins/sp/skills/spur-dev/references/planning-workflow.md +302 -0
- package/plugins/sp/skills/spur-dev/references/product-planning.md +206 -0
- package/plugins/sp/skills/spur-dev/references/section-batching.md +24 -0
- package/plugins/sp/skills/sys-architecture/SKILL.md +155 -0
- package/plugins/sp/skills/sys-architecture/references/decision-method.md +137 -0
- package/plugins/sp/skills/sys-architecture/references/upkeep-survey.md +75 -0
- package/plugins/sp/skills/sys-debugging/SKILL.md +228 -0
- package/plugins/sp/skills/sys-debugging/references/debugging-protocol.md +62 -0
- package/plugins/sp/skills/test-driven-development/SKILL.md +248 -0
- package/plugins/sp/skills/wayfinder/SKILL.md +292 -0
- package/spur.js +6093 -5180
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# Done-Time Housekeeping
|
|
2
|
+
|
|
3
|
+
Shared done-time contract for sp plugin agents. Every agent that drives a task to completion -
|
|
4
|
+
whether manually or via pipeline - MUST honor the following obligations. A subagent spawns cold
|
|
5
|
+
(no session context); this reference makes the obligations explicit so the launch prompt need not
|
|
6
|
+
restate them.
|
|
7
|
+
|
|
8
|
+
Agents cite this reference by file path - never by cross-file section anchor (anchor links break
|
|
9
|
+
silently when a heading is renamed or a file body is replaced; a path citation to a dedicated file
|
|
10
|
+
breaks loudly if the target moves).
|
|
11
|
+
|
|
12
|
+
## F1 - Flip completed checklist boxes
|
|
13
|
+
|
|
14
|
+
When a Plan/Requirements/AC item is completed, flip `[ ]` -> `[x]` in the same `--section` update
|
|
15
|
+
that lands the section content. Never let a `done` task ship with unchecked boxes on completed
|
|
16
|
+
work - a reader cannot tell `done` from `abandoned` by the boxes alone.
|
|
17
|
+
|
|
18
|
+
Stray template-placeholder boxes (e.g. the standard template's `- [ ] Acceptance checklist item`
|
|
19
|
+
or `- [ ] Implementation step`) that you did **not** author as real work must either be replaced
|
|
20
|
+
with real items or removed - do not leave them as `[ ]` in a `done` task. "I only checked the real
|
|
21
|
+
ones" is not compliant; the invariant is **zero** `- [ ]` lines remain.
|
|
22
|
+
|
|
23
|
+
Invariant: zero `- [ ]` entries (real or placeholder) anywhere in a `done` task at transition time.
|
|
24
|
+
|
|
25
|
+
## F2 - Honest lifecycle transitions
|
|
26
|
+
|
|
27
|
+
Drive the real `task-pipeline.yaml` FSM where applicable:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
spur workflow run .spur/workflows/task-pipeline.yaml --vars '{"wbs":"<wbs>"}'
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
If you hand-walk lifecycle statuses (manual `spur task update <wbs> <status>` without the
|
|
34
|
+
pipeline), you MUST state so explicitly in your final message and name the gate you verified:
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
Transitioned manually. Gate verified: spur task check <wbs> --strict-core -> PASS
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Silent manual transitions are the anti-pattern to forbid. Either the pipeline ran (name the
|
|
41
|
+
run-id) or you walked it manually (name the gate you checked).
|
|
42
|
+
|
|
43
|
+
## F4 - Raw gate evidence for high-stakes tasks
|
|
44
|
+
|
|
45
|
+
Threshold is by **change type**, not priority: a task is high-stakes if it touches code, tests, or
|
|
46
|
+
shared infrastructure. Priority (P1/P2) is advisory - it does not by itself force raw paste on a
|
|
47
|
+
pure doc/markdown edit. For high-stakes tasks, paste the **raw tail output** of every verification
|
|
48
|
+
gate that applies - not a one-line "green" summary. Include:
|
|
49
|
+
|
|
50
|
+
- `bun run lint` tail (last 20 lines minimum)
|
|
51
|
+
- `bun run test` tail (last 20 lines minimum)
|
|
52
|
+
- `bun run test-cf` tail (last 20 lines minimum)
|
|
53
|
+
- `bun run build` tail (last 20 lines minimum)
|
|
54
|
+
|
|
55
|
+
A one-line "all gates green" summary is acceptable only for doc-only changes with no code impact.
|
|
56
|
+
|
|
57
|
+
## F5 - Clean staging files after landing sections
|
|
58
|
+
|
|
59
|
+
After `spur task update <wbs> --section <name> --from-file /tmp/<file>` succeeds, immediately
|
|
60
|
+
`rm /tmp/<file>`. Do not accumulate staging files in `/tmp`. Cross-reference: this is step 3 of
|
|
61
|
+
the section-editing workflow in `cross-cutting.md` - follow it without exception.
|
|
62
|
+
|
|
63
|
+
Invariant: no `--from-file` staging files left in `/tmp` after the task is done.
|
|
64
|
+
|
|
65
|
+
## F6 - Recovering from a pipeline `agent.run` timeout
|
|
66
|
+
|
|
67
|
+
When an `agent.run` step is killed at the timeout wall, the run is dead but the work may be
|
|
68
|
+
partly on disk. Force-done with a provenance override is the sanctioned recovery - it bypasses
|
|
69
|
+
the verify FSM, so it carries obligations. Added by task 0398 R5 after the H6 batch used this
|
|
70
|
+
path six times as tribal knowledge.
|
|
71
|
+
|
|
72
|
+
**Prefer resume over force-done when the implement step timed out with substantial partial
|
|
73
|
+
work (task 0424):** instead of discarding the partial tree and force-doning, follow the
|
|
74
|
+
timed-out-implement resume runbook in
|
|
75
|
+
[`execution-workflow.md`](execution-workflow.md#large-tasks-and-timed-out-implement-resume-task-0424)
|
|
76
|
+
— establish green from the partial files, complete the remaining requirements against that
|
|
77
|
+
tree, and only then force-done if the pipeline is not worth re-driving. F6 below remains the
|
|
78
|
+
recovery when the partial work is not worth keeping or the manual path is already complete.
|
|
79
|
+
|
|
80
|
+
**1. Recognise it.** A timeout leaves `.spur/run/<runId>-<step>-partial.md` and the run reports
|
|
81
|
+
`exited with code 3`. That is a killed subprocess, not a failed assertion - do not read the
|
|
82
|
+
partial file as a verdict.
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
ls -la .spur/run/*-partial.md # handoff files, newest last
|
|
86
|
+
spur workflow trace <run-id> # confirm the terminal state
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**2. Establish green by hand.** The pipeline's `test` step never ran to completion, so nothing
|
|
90
|
+
has verified the tree. You must:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
bun run lint
|
|
94
|
+
bun run test
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Both must pass before you go further. Establish the environmental baseline first if you are in a
|
|
98
|
+
restricted sandbox - port-binding and `ps` denials produce failures that are not yours (see the
|
|
99
|
+
project's sandbox notes). Real regressions are *additional* failures.
|
|
100
|
+
|
|
101
|
+
**3. Finish the work the step abandoned.** Write the sections the killed step would have written
|
|
102
|
+
(`## Solution`, `## Testing`, and the `## Review` P1-P4 table - the L3 `review-priority-table`
|
|
103
|
+
gate will reject the task without it). Use the normal `--section --from-file` contract.
|
|
104
|
+
|
|
105
|
+
**4. Force-done with an honest reason.**
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
SPUR_PROVENANCE_OVERRIDE=1 spur task update <wbs> done --force-done \
|
|
109
|
+
--reason "<step> agent.run timed out at <N>s; recovered manually: lint clean, <suite> pass, sections authored by hand"
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
The reason is persisted as `done_reason` and is the only record that this task did not earn its
|
|
113
|
+
`done` through the FSM. Name the step, the timeout, and the manual evidence. "Completed" is not
|
|
114
|
+
an acceptable reason.
|
|
115
|
+
|
|
116
|
+
**5. Regenerate the verdict.** Force-done skips verdict generation, so the task lands `done` with
|
|
117
|
+
no artifact and `spur feature check` will read the scenario as unverified:
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
spur task verdict <wbs> --from-answer .spur/run/<wbs>-verify-answer.txt
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Author the answer file with **both** tables - a `| Req | Status | Evidence |` table covering every
|
|
124
|
+
`R{n}`, and an `| AC | Status | Evidence Type | Evidence |` table covering **every declared
|
|
125
|
+
scenario**, not just the ones needed to clear `spur feature check`. The feature gate only requires
|
|
126
|
+
one matching MET row per *feature* scenario; satisfying just those leaves per-task AC coverage
|
|
127
|
+
silently incomplete (H6 shipped at 23/48 that way, with one verdict carrying an empty
|
|
128
|
+
`acceptanceCriteria` array and still reading PASS). See `ac-style-guide.md` §
|
|
129
|
+
"Verdict AC ↔ feature scenario linkage" for the id forms and evidence vocabulary.
|
|
130
|
+
|
|
131
|
+
**Invariant:** a force-done task has a non-empty `done_reason` naming the timeout, a verdict
|
|
132
|
+
artifact whose AC rows cover every declared scenario, and a green lint/test run recorded in
|
|
133
|
+
`## Testing`.
|
|
134
|
+
|
|
135
|
+
## Before you report done - terminal gate (run this every time)
|
|
136
|
+
|
|
137
|
+
This is the enforcement mechanism for the Definition of Done Housekeeping above. The sections
|
|
138
|
+
above describe the obligations; **this checklist makes you execute them at the moment of
|
|
139
|
+
completion.** Before you write your final message for ANY task you drove to `done`, run each
|
|
140
|
+
check below as an actual command and answer it explicitly **in your final message** - not silently.
|
|
141
|
+
|
|
142
|
+
You MUST run check #1 as the literal command and paste its numeric output. Do not eyeball the Plan
|
|
143
|
+
section and conclude "boxes checked" - the check is over the **whole task file**, including stray
|
|
144
|
+
template placeholders in sections you never used (`### Acceptance Criteria`, `### Design`). "I
|
|
145
|
+
checked the real ones" is the failure mode this gate exists to stop; the only passing answer is the
|
|
146
|
+
command printing `0`.
|
|
147
|
+
|
|
148
|
+
| # | Check | Command to run (literal - paste the output) | Pass condition |
|
|
149
|
+
|---|-------|----------------------------------------------|----------------|
|
|
150
|
+
| 1 | F1 - no unchecked boxes anywhere | `grep -c '^\s*- \[ \]' <task-file>` | output is exactly `0` (whole file, not just Plan) |
|
|
151
|
+
| 2 | F2 - honest transition | (state it) | named a pipeline run-id, OR "manual + `spur task check <wbs> --strict-core` PASS" |
|
|
152
|
+
| 3 | F4 - gate evidence | (recall change type) | raw gate tails pasted if code/test/infra touched; one-liner only if pure-doc |
|
|
153
|
+
| 4 | F5 - no `/tmp` residue | `ls /tmp/<wbs>-* 2>/dev/null \| wc -l` | output is `0` |
|
|
154
|
+
| 5 | Dogfood (only if in dogfood mode) | `rg -c '^### 3\. Monitor Ledger' <report> && rg -c '── Dogfood Summary ──' <report> && rg -c '^status: (complete\|aborted)' <report>` | all three counts are `>= 1` (report exists under `docs/dogfood/` AND carries the mandatory ledger section AND the mandatory summary footer AND terminal frontmatter status - not just any file matching the slug) |
|
|
155
|
+
|
|
156
|
+
If check #1 prints anything other than `0`, you are **not done**: find each `- [ ]` line and either
|
|
157
|
+
check it (real completed work), replace it with a real item, or remove it (stray placeholder in an
|
|
158
|
+
unused section). Re-run the grep until it prints `0`.
|
|
159
|
+
|
|
160
|
+
If any check fails, **fix it before reporting done** - do not report a task complete with a failed
|
|
161
|
+
terminal-gate line. In your final message, include a short "Terminal gate" block showing each check
|
|
162
|
+
**and its actual command output** (e.g. `F1: grep -> 0 ✓ · F5: ls -> 0 ✓ · dogfood: docs/dogfood/<file> ✓`).
|
|
163
|
+
A cold-spawned agent that skips this block, or reports a check passed without showing its output,
|
|
164
|
+
has not finished the task.
|