@gobing-ai/spur 0.4.14 → 0.4.15

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.
Files changed (31) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/config/pipeline-budgets.json +0 -14
  3. package/config/workflow-candidates.json +18 -0
  4. package/config/workflows/feature-lifecycle.yaml +9 -16
  5. package/config/workflows/idea-pipeline.yaml +158 -740
  6. package/config/workflows/wrapup-pipeline.yaml +91 -623
  7. package/package.json +9 -9
  8. package/plugins/sp/README.md +8 -4
  9. package/plugins/sp/commands/dev-idea.md +9 -5
  10. package/plugins/sp/commands/dev-plan.md +1 -1
  11. package/plugins/sp/commands/dev-pr-review.md +6 -6
  12. package/plugins/sp/commands/dev-wrap.md +1 -1
  13. package/plugins/sp/commands/dev-wrapall.md +4 -4
  14. package/plugins/sp/plugin.json +1 -1
  15. package/plugins/sp/skills/pr-reviewing/SKILL.md +36 -18
  16. package/plugins/sp/skills/spec-decomposition/references/decomposition.md +2 -1
  17. package/plugins/sp/skills/spur-cli/references/builder.md +2 -2
  18. package/plugins/sp/skills/spur-cli/references/features.md +7 -0
  19. package/plugins/sp/skills/spur-cli/references/tasks.md +1 -1
  20. package/plugins/sp/skills/spur-dev/references/ac-style-guide.md +2 -1
  21. package/plugins/sp/skills/spur-dev/references/dev-operations.md +10 -10
  22. package/plugins/sp/skills/spur-dev/references/execution-batch.md +9 -10
  23. package/plugins/sp/skills/spur-dev/references/execution-worktree-landing.md +1 -2
  24. package/plugins/sp/skills/spur-dev/references/execution-worktree-setup.md +4 -4
  25. package/plugins/sp/skills/spur-dev/references/planning-workflow.md +7 -6
  26. package/plugins/sp/skills/wayfinder/SKILL.md +11 -1
  27. package/spur.js +800 -799
  28. package/config/workflows/feature-verification.yaml +0 -98
  29. package/config/workflows/pr-review.yaml +0 -209
  30. package/config/workflows/wayfinder-resolution.yaml +0 -302
  31. package/plugins/sp/skills/wayfinder/references/pipeline-resolution.md +0 -30
@@ -7,7 +7,7 @@
7
7
  "plugins": [
8
8
  {
9
9
  "name": "sp",
10
- "version": "0.4.14",
10
+ "version": "0.4.15",
11
11
  "source": "./plugins/sp"
12
12
  }
13
13
  ]
@@ -28,26 +28,12 @@
28
28
  "source": "Post-merge count (0607 R2: doc-sync + learning-capture consolidated, 2 -> 1). Real-run reading (R5): median 253s, max-sane 2319s (n=44). Budget = 60 min ceiling.",
29
29
  "decision": null
30
30
  },
31
- "pr-review": {
32
- "modelQueries": 0,
33
- "wallClockMs": null,
34
- "tokenCostUsd": null,
35
- "source": "Zero-query pipeline (the live definition declares no model queries); query budget trivially 0 — the gate handles an empty list (0607 R3). No real full run recorded; wall-clock unenforced.",
36
- "decision": null
37
- },
38
31
  "history-anatomy": {
39
32
  "modelQueries": 3,
40
33
  "wallClockMs": null,
41
34
  "tokenCostUsd": null,
42
35
  "source": "Coverage entry (0826 R2): the live definition's model-query count (extractResolvedWorkflowFacts, 2026-09-11). No real-run measurement yet: wall-clock and cost are unenforced until measured, never 0. 0920 recount 2026-09-23: 4 -> 3 — the resolve-scope model hop was removed; scope/window validation is deterministic in the `spur history anatomy paths` op (history-anatomy-cache before script-absorption PR-6).",
43
36
  "decision": null
44
- },
45
- "wayfinder-resolution": {
46
- "modelQueries": 2,
47
- "wallClockMs": null,
48
- "tokenCostUsd": null,
49
- "source": "Coverage entry (0826 R2): the live definition's model-query count (extractResolvedWorkflowFacts, 2026-09-11). No real-run measurement yet: wall-clock and cost are unenforced until measured, never 0.",
50
- "decision": null
51
37
  }
52
38
  }
53
39
  }
@@ -68,6 +68,24 @@
68
68
  }
69
69
  ],
70
70
  "retirements": [
71
+ {
72
+ "name": "feature-verification",
73
+ "recordedBy": "1246/1252 (D66, ADR-142)",
74
+ "date": "2026-10-18",
75
+ "rationale": "The wrapper was retired by the D66 consolidation decision; feature-lifecycle's verifying entry calls spur feature verify directly. Existing run history is retained."
76
+ },
77
+ {
78
+ "name": "pr-review",
79
+ "recordedBy": "1251/1252 (D66, ADR-142)",
80
+ "date": "2026-10-18",
81
+ "rationale": "The sequencing workflow was retired by the D66 consolidation decision; the PR review skill calls the flat spur builder pr-* verbs directly. Existing run history is retained."
82
+ },
83
+ {
84
+ "name": "wayfinder-resolution",
85
+ "recordedBy": "1251/1252 (D66, ADR-142)",
86
+ "date": "2026-10-18",
87
+ "rationale": "The workflow was retired by the D66 consolidation decision; investigation remains a wayfinder skill procedure. Existing run history is retained."
88
+ },
71
89
  {
72
90
  "name": "planning-pipeline",
73
91
  "recordedBy": "0872 (ADR-072/075 composition-baseline pass 2dc86579a)",
@@ -40,24 +40,17 @@ states:
40
40
  onEnter:
41
41
  # Caller wiring (task 0880, ADR-119): entering verification RUNS the
42
42
  # feature-scoped pass instead of only passively reading its status file.
43
- # 0948 R1: pass BOTH vars the inner workflow needs. `--vars` was documented as
44
- # replace-not-merge and a partial override silently blanked `spurBin`; the engine
45
- # merges declared defaults today (0948 R2), but the caller stays explicit so the
46
- # nested run is self-sufficient under either semantic.
43
+ # 1246 R1: the pass is the verb itself — no nested `spur workflow run`, no
44
+ # recursion-marker clearing. Without `--run-id` the verb opens and finalizes
45
+ # its own run row bound to this definition (1246 R2), so the done gate's
46
+ # receipt-integrity rule (recording run terminal `done`) holds.
47
+ # `env -u __runId`: the verb's `--run-id` falls back to the `__runId` env name, and a hop
48
+ # driven from inside another workflow run (a pipeline step, the quality gate) inherits that
49
+ # run's id. Without the unset the pass silently binds its receipt to the OUTER run instead of
50
+ # opening its own — which is still `running` at verifying→done, so the done gate fails closed.
47
51
  - kind: shell
48
52
  options:
49
- # Pass featureId and spurBin together. A partial --vars map used to be
50
- # applied as a replacement, so the inner run lost spurBin and loadModule
51
- # fell into source mode (0948 R1). The nested JSON is shell-expanded:
52
- # $spurBin inside the double quotes keeps a multi-word invocation intact.
53
- # 1147 R4: clear the inherited nested-run marker for this ONE child. The
54
- # bounded, definition-pinned feature-verification pass (no agent.run, no
55
- # further nested run) is a legitimate child, but the outer run's
56
- # SPUR_WORKFLOW_RUN_ACTIVE marker rides every child env — so the CLI's
57
- # nested-run refusal (0610 R4) rejected it and the same pass that passes
58
- # standalone failed here with a bare exit 1. The recursion guard stays
59
- # binding for every other nested invocation.
60
- command: 'env -u SPUR_WORKFLOW_RUN_ACTIVE $spurBin workflow run feature-verification.yaml --vars "{\"featureId\":\"$featureId\",\"spurBin\":\"$spurBin\"}"'
53
+ command: 'env -u __runId $spurBin feature verify $featureId --no-logo'
61
54
  - id: blocked
62
55
  description: Impediment; work suspended.
63
56
  - id: done