@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.
- package/.claude-plugin/marketplace.json +1 -1
- package/config/pipeline-budgets.json +0 -14
- package/config/workflow-candidates.json +18 -0
- package/config/workflows/feature-lifecycle.yaml +9 -16
- package/config/workflows/idea-pipeline.yaml +158 -740
- package/config/workflows/wrapup-pipeline.yaml +91 -623
- package/package.json +9 -9
- package/plugins/sp/README.md +8 -4
- package/plugins/sp/commands/dev-idea.md +9 -5
- package/plugins/sp/commands/dev-plan.md +1 -1
- package/plugins/sp/commands/dev-pr-review.md +6 -6
- package/plugins/sp/commands/dev-wrap.md +1 -1
- package/plugins/sp/commands/dev-wrapall.md +4 -4
- package/plugins/sp/plugin.json +1 -1
- package/plugins/sp/skills/pr-reviewing/SKILL.md +36 -18
- package/plugins/sp/skills/spec-decomposition/references/decomposition.md +2 -1
- package/plugins/sp/skills/spur-cli/references/builder.md +2 -2
- package/plugins/sp/skills/spur-cli/references/features.md +7 -0
- package/plugins/sp/skills/spur-cli/references/tasks.md +1 -1
- package/plugins/sp/skills/spur-dev/references/ac-style-guide.md +2 -1
- package/plugins/sp/skills/spur-dev/references/dev-operations.md +10 -10
- package/plugins/sp/skills/spur-dev/references/execution-batch.md +9 -10
- package/plugins/sp/skills/spur-dev/references/execution-worktree-landing.md +1 -2
- package/plugins/sp/skills/spur-dev/references/execution-worktree-setup.md +4 -4
- package/plugins/sp/skills/spur-dev/references/planning-workflow.md +7 -6
- package/plugins/sp/skills/wayfinder/SKILL.md +11 -1
- package/spur.js +800 -799
- package/config/workflows/feature-verification.yaml +0 -98
- package/config/workflows/pr-review.yaml +0 -209
- package/config/workflows/wayfinder-resolution.yaml +0 -302
- package/plugins/sp/skills/wayfinder/references/pipeline-resolution.md +0 -30
|
@@ -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
|
-
#
|
|
44
|
-
#
|
|
45
|
-
#
|
|
46
|
-
#
|
|
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
|
-
|
|
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
|