@gobing-ai/spur 0.3.64 → 0.3.65
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/corpus-baseline.json +4104 -7381
- package/config/rules/boundary/sp-runtime-path.yaml +45 -35
- package/config/rules/surface/check-cli-surface.yaml +7 -5
- package/config/workflows/history-anatomy.yaml +37 -6
- package/package.json +9 -9
- package/plugins/sp/README.md +13 -9
- package/plugins/sp/commands/dev-find-issue.md +4 -1
- package/plugins/sp/commands/dev-review-session.md +36 -0
- package/plugins/sp/plugin.json +1 -1
- package/plugins/sp/references/environment-lens.md +4 -2
- package/plugins/sp/references/roles.md +8 -5
- package/plugins/sp/skills/dogfood-testing/SKILL.md +8 -0
- package/plugins/sp/skills/session-review/SKILL.md +106 -0
- package/plugins/sp/skills/spur-cli/references/workflows.md +1 -1
- package/plugins/sp/skills/spur-dev/references/dev-operations.md +11 -8
- package/plugins/sp/skills/spur-dev/references/inline-pipeline-driver.md +8 -6
- package/spur.js +1073 -820
- package/web/_astro/{BoardApp.CKolAjUz.js → BoardApp.BEtcJqde.js} +62 -62
- package/web/_astro/BoardApp.DBEin4N5.js +1 -0
- package/web/_astro/{TaskDetail.Bre7G4gC.js → TaskDetail.ClAbCXom.js} +1 -1
- package/web/_astro/arc.CCvf51_y.js +1 -0
- package/web/_astro/architectureDiagram-3BPJPVTR.C0cb0J5M.js +36 -0
- package/web/_astro/{blockDiagram-GPEHLZMM.CCGHeRVi.js → blockDiagram-GPEHLZMM.CIyjqoCE.js} +4 -4
- package/web/_astro/{c4Diagram-AAUBKEIU.CpqewGmd.js → c4Diagram-AAUBKEIU.fs14IuFs.js} +1 -1
- package/web/_astro/channel.BGn_DUCD.js +1 -0
- package/web/_astro/chunk-2J33WTMH.CaBKv4ZO.js +1 -0
- package/web/_astro/{chunk-4BX2VUAB.ifGXoUA3.js → chunk-4BX2VUAB.BOllTPto.js} +1 -1
- package/web/_astro/chunk-55IACEB6.ChEof0O4.js +1 -0
- package/web/_astro/{chunk-727SXJPM.DzPE41OS.js → chunk-727SXJPM.Co2kdjD8.js} +2 -2
- package/web/_astro/{chunk-AQP2D5EJ.UF2QRXYF.js → chunk-AQP2D5EJ.SWmfcnog.js} +2 -2
- package/web/_astro/{chunk-FMBD7UC4.D2zXKa1R.js → chunk-FMBD7UC4.rDAFifF3.js} +1 -1
- package/web/_astro/chunk-ND2GUHAM.BCnoXKCw.js +1 -0
- package/web/_astro/{chunk-QZHKN3VN.nUKFBiLD.js → chunk-QZHKN3VN.RSmy2hDO.js} +1 -1
- package/web/_astro/{classDiagram-4FO5ZUOK.DZg9K9mO.js → classDiagram-4FO5ZUOK.Be7PEfrX.js} +1 -1
- package/web/_astro/{classDiagram-v2-Q7XG4LA2.DZg9K9mO.js → classDiagram-v2-Q7XG4LA2.Be7PEfrX.js} +1 -1
- package/web/_astro/{client.CdFpTatq.js → client.yhYJvxCU.js} +1 -1
- package/web/_astro/cose-bilkent-S5V4N54A.BkUp2aSK.js +1 -0
- package/web/_astro/cynefin-OW5HDTMX.BegGGlUV.js +166 -0
- package/web/_astro/cytoscape.esm.DzSz-X2X.js +321 -0
- package/web/_astro/dagre-BM42HDAG.BkUdjsaC.js +4 -0
- package/web/_astro/{defaultLocale.CrowFXzY.js → defaultLocale.DX6XiGOO.js} +1 -1
- package/web/_astro/diagram-2AECGRRQ.E9vugt3-.js +43 -0
- package/web/_astro/diagram-5GNKFQAL.Dj4yeHXB.js +10 -0
- package/web/_astro/diagram-KO2AKTUF.Buaquwli.js +3 -0
- package/web/_astro/diagram-LMA3HP47.BV3dgGgm.js +24 -0
- package/web/_astro/diagram-OG6HWLK6.Cnx3s-tc.js +24 -0
- package/web/_astro/{erDiagram-TEJ5UH35.CF2U-pQZ.js → erDiagram-TEJ5UH35.DKK_abu4.js} +3 -3
- package/web/_astro/{flowDiagram-I6XJVG4X.BJK4M3in.js → flowDiagram-I6XJVG4X.BNuu9fbm.js} +4 -4
- package/web/_astro/ganttDiagram-6RSMTGT7.b16KUMjy.js +292 -0
- package/web/_astro/gitGraphDiagram-PVQCEYII.Kh41lbG5.js +106 -0
- package/web/_astro/{graph.D2o_JWn5.js → graph.-OzhPTMs.js} +1 -1
- package/web/_astro/{index.A0eX93qW.js → index.De90oHcH.js} +1 -1
- package/web/_astro/infoDiagram-5YYISTIA.DEWBXkp-.js +2 -0
- package/web/_astro/{ishikawaDiagram-YF4QCWOH.BmWDZtwF.js → ishikawaDiagram-YF4QCWOH.DiAdmcL6.js} +4 -4
- package/web/_astro/{journeyDiagram-JHISSGLW.CpB1YWDP.js → journeyDiagram-JHISSGLW.D1Ki7IRm.js} +1 -1
- package/web/_astro/{kanban-definition-UN3LZRKU.k-fukQX9.js → kanban-definition-UN3LZRKU.CWUhrQpc.js} +21 -21
- package/web/_astro/layout.owoKPs3z.js +1 -0
- package/web/_astro/linear.BaFsgcCe.js +1 -0
- package/web/_astro/{mermaid.core.DnpzzuPU.js → mermaid.core.CHw_AsGy.js} +5 -5
- package/web/_astro/{mindmap-definition-RKZ34NQL.D9NnlLBu.js → mindmap-definition-RKZ34NQL.UIhghgmN.js} +8 -8
- package/web/_astro/ordinal.DBvzRdQf.js +1 -0
- package/web/_astro/pieDiagram-4H26LBE5.D05l3JUA.js +30 -0
- package/web/_astro/{quadrantDiagram-W4KKPZXB.BkAygRlm.js → quadrantDiagram-W4KKPZXB.BcWIhIcE.js} +1 -1
- package/web/_astro/{requirementDiagram-4Y6WPE33.CX8ibmwc.js → requirementDiagram-4Y6WPE33.B1rYvKGn.js} +1 -1
- package/web/_astro/sankeyDiagram-5OEKKPKP.CKylVRC4.js +40 -0
- package/web/_astro/{sequenceDiagram-3UESZ5HK.veO8c2tk.js → sequenceDiagram-3UESZ5HK.Dm3uA_s4.js} +3 -3
- package/web/_astro/stateDiagram-AJRCARHV.Bgca_BLe.js +1 -0
- package/web/_astro/stateDiagram-v2-BHNVJYJU.C1T7YFrG.js +1 -0
- package/web/_astro/{timeline-definition-PNZ67QCA.DayoPp_2.js → timeline-definition-PNZ67QCA.ZOHJn3Sn.js} +4 -4
- package/web/_astro/vennDiagram-CIIHVFJN.DegZitjD.js +34 -0
- package/web/_astro/{wardleyDiagram-YWT4CUSO.lIAjSkZJ.js → wardleyDiagram-YWT4CUSO.BDsC115d.js} +1 -1
- package/web/_astro/{xychartDiagram-2RQKCTM6.D8_2K6U1.js → xychartDiagram-2RQKCTM6.D0MO70ea.js} +4 -4
- package/web/index.html +1 -1
- package/web/_astro/BoardApp.DXD--ybM.js +0 -1
- package/web/_astro/arc.7luwOGiC.js +0 -1
- package/web/_astro/architectureDiagram-3BPJPVTR.F6KaHXp-.js +0 -36
- package/web/_astro/channel.DxfOFf1l.js +0 -1
- package/web/_astro/chunk-2J33WTMH.CB9vKa5F.js +0 -1
- package/web/_astro/chunk-55IACEB6.VIaRo7l8.js +0 -1
- package/web/_astro/chunk-ND2GUHAM.Cb9bDyvx.js +0 -1
- package/web/_astro/cose-bilkent-S5V4N54A.D9STo90d.js +0 -1
- package/web/_astro/cytoscape.esm.D3_iZ_3b.js +0 -321
- package/web/_astro/dagre-BM42HDAG.D3IbwhHz.js +0 -4
- package/web/_astro/diagram-2AECGRRQ.BWTDxBe9.js +0 -43
- package/web/_astro/diagram-5GNKFQAL.XnXlonHG.js +0 -10
- package/web/_astro/diagram-KO2AKTUF.CywOngCO.js +0 -3
- package/web/_astro/diagram-LMA3HP47.DY1D21Iu.js +0 -24
- package/web/_astro/diagram-OG6HWLK6.DQxb59KA.js +0 -24
- package/web/_astro/ganttDiagram-6RSMTGT7.BSniMzdB.js +0 -292
- package/web/_astro/gitGraphDiagram-PVQCEYII.Dxg-yRov.js +0 -106
- package/web/_astro/infoDiagram-5YYISTIA.BY4CgO_n.js +0 -2
- package/web/_astro/layout.DNLMvjEt.js +0 -1
- package/web/_astro/linear.BNNCobvI.js +0 -1
- package/web/_astro/ordinal.BYWQX77i.js +0 -1
- package/web/_astro/pieDiagram-4H26LBE5.CKhoMiyC.js +0 -30
- package/web/_astro/sankeyDiagram-5OEKKPKP.Dvurpa0Y.js +0 -40
- package/web/_astro/stateDiagram-AJRCARHV.DpMr4CO3.js +0 -1
- package/web/_astro/stateDiagram-v2-BHNVJYJU.CKjso86_.js +0 -1
- package/web/_astro/vennDiagram-CIIHVFJN.XNHf04O9.js +0 -34
- package/web/_astro/wardley-L42UT6IY.CpM_031g.js +0 -161
|
@@ -1,41 +1,51 @@
|
|
|
1
1
|
$schema: "@gobing-ai/spur/schemas/rule-file.schema.json"
|
|
2
|
-
# Runtime-path boundary rule (task 0217, R6) — zero
|
|
3
|
-
# references in agent-facing
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
2
|
+
# Runtime-path boundary rule (task 0217, R6) — zero
|
|
3
|
+
# `config/(plugins|rules|tasks|templates|workflows)` references in agent-facing
|
|
4
|
+
# instructions and runtime source code. `config/` is the build-time bundled-asset
|
|
5
|
+
# source-of-truth (ADR-015); `.spur/` is the runtime configuration directory that
|
|
6
|
+
# agents and runtime code MUST reference. A `config/...` literal in scope teaches
|
|
7
|
+
# the wrong convention and propagates confusion into every project created via
|
|
8
|
+
# `/sp:spur-init`.
|
|
7
9
|
#
|
|
8
|
-
# Blanket scope (all file types across apps/packages/plugins/sp) chosen
|
|
9
|
-
# even build-time JSDoc and test-fixture `config/` literals are
|
|
10
|
-
# than false-positive triage. See task 0217
|
|
10
|
+
# Blanket scope (all file types across apps/packages/plugins/sp) chosen
|
|
11
|
+
# deliberately: even build-time JSDoc and test-fixture `config/` literals are
|
|
12
|
+
# caught, forcing rephrase rather than false-positive triage. See task 0217
|
|
13
|
+
# Design "Standing enforcement (R6)" for rationale.
|
|
11
14
|
#
|
|
12
|
-
# This is a STANDING gate (not transitional like rg-migration.yaml) — it runs on
|
|
15
|
+
# This is a STANDING gate (not transitional like rg-migration.yaml) — it runs on
|
|
16
|
+
# every pre-check.
|
|
13
17
|
include:
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
18
|
+
- "apps/**"
|
|
19
|
+
- "packages/**"
|
|
20
|
+
- "plugins/sp/**"
|
|
17
21
|
exclude:
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
22
|
+
- "**/node_modules/**"
|
|
23
|
+
- "**/dist/**"
|
|
24
|
+
# `.pi-lens/cache/` holds autogenerated project snapshots (absolute paths that
|
|
25
|
+
# legitimately contain `config/...` substrings). Not source — exclude to avoid
|
|
26
|
+
# triaging snapshot noise every pre-check.
|
|
27
|
+
- "**/.pi-lens/**"
|
|
28
|
+
# `.spur/` runtime dirs hold run records, agent sessions, and captured test
|
|
29
|
+
# output (e.g. e2e failed-agent dumps embedding real source diffs). Not
|
|
30
|
+
# source — same class as the .pi-lens exclusion above.
|
|
31
|
+
- "**/.spur/**"
|
|
32
|
+
# Package build artifacts: `build:bundle` copies repo-root config/ →
|
|
33
|
+
# apps/cli/config/ (and legacy spur-cli/config/). Those trees are the ADR-015
|
|
34
|
+
# SSOT payload itself and legitimately contain `config/...` documentation /
|
|
35
|
+
# self-references — not runtime paths.
|
|
36
|
+
- "apps/cli/config/**"
|
|
37
|
+
- "apps/cli/spur-cli/**"
|
|
29
38
|
rules:
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
- id: sp-runtime-path
|
|
40
|
+
description: >
|
|
41
|
+
Use `.spur/` paths for runtime configuration references, not `config/`.
|
|
42
|
+
`config/` is the build-time bundled-asset source-of-truth (ADR-015);
|
|
43
|
+
`.spur/` is the runtime directory. Agent-facing instructions
|
|
44
|
+
(`plugins/sp/`) and runtime code (`apps/`, `packages/`) MUST NOT contain
|
|
45
|
+
literal `config/plugins`, `config/rules`, `config/tasks`,
|
|
46
|
+
`config/templates`, or `config/workflows` path references.
|
|
47
|
+
severity: error
|
|
48
|
+
evaluator:
|
|
49
|
+
type: rg
|
|
50
|
+
config:
|
|
51
|
+
pattern: "config/(plugins|rules|tasks|templates|workflows)"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
$schema: "@gobing-ai/spur/schemas/rule-file.schema.json"
|
|
2
2
|
# CLI surface consistency — structural checks that every command file follows
|
|
3
3
|
# the registerXxxCommand convention and that --json claims are backed by real
|
|
4
|
-
# output serialization (toJson or JSON.stringify).
|
|
4
|
+
# output serialization (toEnvelopeJson, toJson, or JSON.stringify).
|
|
5
5
|
#
|
|
6
6
|
# Part of the recommended-pre-check preset. Run:
|
|
7
7
|
# spur rule run --preset recommended-pre-check
|
|
@@ -11,7 +11,8 @@ include:
|
|
|
11
11
|
|
|
12
12
|
exclude:
|
|
13
13
|
- "apps/cli/src/commands/stubs.ts"
|
|
14
|
-
- "apps/cli/src/commands/shared-options.ts" # option registry, not a command
|
|
14
|
+
- "apps/cli/src/commands/shared-options.ts" # option registry, not a command
|
|
15
|
+
# module (consistency.test.ts excludes it too)
|
|
15
16
|
|
|
16
17
|
rules:
|
|
17
18
|
- id: cli-register-pattern
|
|
@@ -27,11 +28,12 @@ rules:
|
|
|
27
28
|
|
|
28
29
|
- id: cli-json-output
|
|
29
30
|
description: >
|
|
30
|
-
Command files that register --json options must call
|
|
31
|
-
JSON.stringify() to produce
|
|
31
|
+
Command files that register --json options must call toEnvelopeJson()
|
|
32
|
+
(ADR-091 envelope seam), toJson(), or JSON.stringify() to produce
|
|
33
|
+
machine-readable output.
|
|
32
34
|
severity: error
|
|
33
35
|
evaluator:
|
|
34
36
|
type: rg
|
|
35
37
|
config:
|
|
36
|
-
pattern: "toJson\\b|JSON\\.stringify\\b"
|
|
38
|
+
pattern: "toEnvelopeJson\\b|toJson\\b|JSON\\.stringify\\b"
|
|
37
39
|
mode: require
|
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
# start -> resolve-scope -> resolve-paths -> analyze -> cache-probe
|
|
15
15
|
# (hit -> refresh-provenance -> publish -> published)
|
|
16
16
|
# (miss -> render -> enrich -> structure-gate -> validate -> stamp -> publish)
|
|
17
|
-
# (
|
|
17
|
+
# (structure-gate FAIL -> correct (max 2 total) -> structure-gate; exhausted -> failed)
|
|
18
|
+
# (validate FAIL -> correct (max 2 total) -> structure-gate ...; exhausted -> failed)
|
|
18
19
|
# (any all-paths failure -> failed)
|
|
19
20
|
#
|
|
20
21
|
# `analyze` precedes `cache-probe` deliberately: ADR-079 makes cache validity a DERIVED fact, so
|
|
@@ -229,14 +230,37 @@ states:
|
|
|
229
230
|
|
|
230
231
|
- id: correct
|
|
231
232
|
description: >
|
|
232
|
-
|
|
233
|
-
|
|
233
|
+
A two-pass correction budget (0690). onEnter increments the counter; retry edges guard on
|
|
234
|
+
the run-scoped correction-count file < 2 (`vars.correctionCount` is the declared home; the
|
|
235
|
+
file is the live bound), and a failure after the second repair takes the -> failed edge. The
|
|
236
|
+
counter is shared by the structure-gate and validate FAIL edges, so a structure repair can
|
|
237
|
+
still be followed by one validation-driven repair. The
|
|
238
|
+
model half re-authors the candidate in place from the gate findings and validation notes —
|
|
239
|
+
re-anchoring evidence rows to a backticked .md/.ts/.json path or path:line, stripping
|
|
240
|
+
placeholders, restoring the canonical twelve-section order, and reconciling quantitative
|
|
241
|
+
claims against the current/baseline artifacts — before the deterministic gate re-runs.
|
|
234
242
|
onEnter:
|
|
235
243
|
- kind: shell
|
|
236
244
|
options:
|
|
237
245
|
command: >-
|
|
238
246
|
n=$(cat .spur/run/$__runId-correction-count 2>/dev/null || echo 0) &&
|
|
239
247
|
printf '%s\n' "$((n + 1))" > .spur/run/$__runId-correction-count
|
|
248
|
+
- kind: shell
|
|
249
|
+
options:
|
|
250
|
+
command: >-
|
|
251
|
+
git status --porcelain > .spur/run/$__runId-baseline-correct.txt || true
|
|
252
|
+
- kind: agent.run
|
|
253
|
+
options:
|
|
254
|
+
agent: ${vars.agent}
|
|
255
|
+
input: "Repair .spur/run/${vars.__runId}-candidate.md in place. Read its structure-gate findings, optional validation notes, references/report-contract.md, and the references/operations.md validate rubric; fix every violation. Use a backticked `.md`/`.ts`/`.json` path or a `path:line` anchor, never `current #/...`; remove placeholders and empty rows; restore the twelve-section order; ensure every problem and positive finding carries the full field set; verify every quantitative claim (counts, durations, percentages, distributions) and every current/baseline full-digest match against .spur/run/${vars.__runId}-history-anatomy-current.json and -baseline.json. Overwrite only the candidate; never launch a workflow."
|
|
256
|
+
# Declared Layer-1 role (0538 R2): repair reuses enrich-class judgment.
|
|
257
|
+
role: reviewer
|
|
258
|
+
expectFile: .spur/run/${vars.__runId}-candidate.md
|
|
259
|
+
timeoutMs: ${vars.stepTimeoutMs}
|
|
260
|
+
- kind: shell
|
|
261
|
+
options:
|
|
262
|
+
command: >-
|
|
263
|
+
node "$(superskill script path sp history-anatomy-cache.mjs)" assert-clean --baseline .spur/run/$__runId-baseline-correct.txt --expect .spur/run/$__runId-candidate.md
|
|
240
264
|
|
|
241
265
|
- id: refresh-provenance
|
|
242
266
|
description: >
|
|
@@ -352,7 +376,14 @@ transitions:
|
|
|
352
376
|
command: 'grep -q "^PASS$" .spur/run/$__runId-structure-gate.txt 2>/dev/null'
|
|
353
377
|
- from: structure-gate
|
|
354
378
|
to: failed
|
|
355
|
-
description: Structure gate FAIL — never publish a malformed candidate.
|
|
379
|
+
description: Structure gate FAIL with the correction cap exhausted — never publish a malformed candidate.
|
|
380
|
+
guard:
|
|
381
|
+
kind: shell
|
|
382
|
+
options:
|
|
383
|
+
command: '! grep -q "^PASS$" .spur/run/$__runId-structure-gate.txt 2>/dev/null && test "$(cat .spur/run/$__runId-correction-count 2>/dev/null || echo 0)" -ge 2'
|
|
384
|
+
- from: structure-gate
|
|
385
|
+
to: correct
|
|
386
|
+
description: Structure gate FAIL under the shared two-pass correction cap (0690).
|
|
356
387
|
guard:
|
|
357
388
|
kind: always
|
|
358
389
|
|
|
@@ -365,11 +396,11 @@ transitions:
|
|
|
365
396
|
command: 'grep -q "Verdict: PASS" .spur/run/$__runId-validation.txt 2>/dev/null'
|
|
366
397
|
- from: validate
|
|
367
398
|
to: correct
|
|
368
|
-
description: Validation FAIL under the correction cap
|
|
399
|
+
description: Validation FAIL under the shared two-pass correction cap.
|
|
369
400
|
guard:
|
|
370
401
|
kind: shell
|
|
371
402
|
options:
|
|
372
|
-
command: '! grep -q "Verdict: PASS" .spur/run/$__runId-validation.txt 2>/dev/null && test "$(cat .spur/run/$__runId-correction-count 2>/dev/null || echo 0)" -lt
|
|
403
|
+
command: '! grep -q "Verdict: PASS" .spur/run/$__runId-validation.txt 2>/dev/null && test "$(cat .spur/run/$__runId-correction-count 2>/dev/null || echo 0)" -lt 2'
|
|
373
404
|
- from: validate
|
|
374
405
|
to: failed
|
|
375
406
|
description: Validation FAIL with the correction cap exhausted — terminate without publishing.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gobing-ai/spur",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.65",
|
|
4
4
|
"description": "Spur CLI — local-first harness for mainstream coding agents: constraint checking, workflow orchestration, agent health, and history analytics. Bun-native; exposes the `spur` command.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"spur",
|
|
@@ -53,14 +53,14 @@
|
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@commander-js/extra-typings": "^14.0.0",
|
|
56
|
-
"@gobing-ai/ts-db": "^0.4.
|
|
57
|
-
"@gobing-ai/ts-ai-runner": "^0.4.
|
|
58
|
-
"@gobing-ai/ts-dual-workflow-engine": "^0.4.
|
|
59
|
-
"@gobing-ai/ts-infra": "^0.4.
|
|
60
|
-
"@gobing-ai/ts-llm-jsonl-importer": "^0.4.
|
|
61
|
-
"@gobing-ai/ts-rule-engine": "^0.4.
|
|
62
|
-
"@gobing-ai/ts-runtime": "^0.4.
|
|
63
|
-
"@gobing-ai/ts-utils": "^0.4.
|
|
56
|
+
"@gobing-ai/ts-db": "^0.4.46",
|
|
57
|
+
"@gobing-ai/ts-ai-runner": "^0.4.46",
|
|
58
|
+
"@gobing-ai/ts-dual-workflow-engine": "^0.4.46",
|
|
59
|
+
"@gobing-ai/ts-infra": "^0.4.46",
|
|
60
|
+
"@gobing-ai/ts-llm-jsonl-importer": "^0.4.46",
|
|
61
|
+
"@gobing-ai/ts-rule-engine": "^0.4.46",
|
|
62
|
+
"@gobing-ai/ts-runtime": "^0.4.46",
|
|
63
|
+
"@gobing-ai/ts-utils": "^0.4.46",
|
|
64
64
|
"@types/bun": "1.3.14",
|
|
65
65
|
"@types/figlet": "^1.7.0",
|
|
66
66
|
"@types/node-notifier": "8.0.5",
|
package/plugins/sp/README.md
CHANGED
|
@@ -129,6 +129,7 @@ list this README is checked against.
|
|
|
129
129
|
| `dev-daily` | Generate a daily summary report from agent usage data, git history, and notes |
|
|
130
130
|
| `dev-dogfood` | Dogfood an agent skill/command/CLI — drive it end-to-end with bounded auto-fix, self-monitor, and emit a comprehensive report |
|
|
131
131
|
| `dev-find-issue` | Generate the daily/ad-hoc history-anatomy diagnostic report over already-imported history — mode contract, closed finding taxonomy, twelve-section report contract, cache branch, atomic publication; forwards to sp:history-anatomy |
|
|
132
|
+
| `dev-review-session` | Review the active coding-agent session inline — compact outcome, resolved/open issues with evidence, proposal-only improvements, and next actions; forwards to sp:session-review |
|
|
132
133
|
| `dev-find-conflict` | Authority-aware semantic audit across source, task, feature, and project authority files — detect conflicts, resolve claim-specific authority, and route confirmed repairs through owner surfaces |
|
|
133
134
|
| `dev-find-next` | Prompt-first feature frontier prioritizer — ranks the open feature frontier by derived importance/urgency with per-candidate evidence; gates unactionable features; emits tree defects as proposals only |
|
|
134
135
|
| `dev-fixall` | Fix all lint, type, and test errors systematically across the working tree |
|
|
@@ -173,7 +174,8 @@ and verification (`sp:code-verification`) — plus a CLI facade (`sp:spur-cli`,
|
|
|
173
174
|
`spur` noun) and standalone technique skills (`sp:next-router`, `sp:test-driven-development`, `sp:brainstorm`,
|
|
174
175
|
`sp:wayfinder`, `sp:sys-debugging`, `sp:code-review`, `sp:code-simplification`, `sp:code-improvement`,
|
|
175
176
|
`sp:parallel-execution`, `sp:branch-workflow`, `sp:doc-evolve`, `sp:dogfood-testing`,
|
|
176
|
-
`sp:daily-summary`, `sp:reverse-engineering`, `sp:issue-finding`, `sp:conflict-finding`,
|
|
177
|
+
`sp:daily-summary`, `sp:reverse-engineering`, `sp:issue-finding`, `sp:conflict-finding`,
|
|
178
|
+
`sp:indexed-context`, `sp:session-review`, `sp:redesign-web-ui`). See
|
|
177
179
|
[skills/spur-dev/SKILL.md](skills/spur-dev/SKILL.md)'s Step routing table for which skill owns which
|
|
178
180
|
pipeline step.
|
|
179
181
|
|
|
@@ -181,7 +183,7 @@ pipeline step.
|
|
|
181
183
|
|
|
182
184
|
```
|
|
183
185
|
plugins/sp/
|
|
184
|
-
├── skills/ # Domain knowledge + workflow docs (
|
|
186
|
+
├── skills/ # Domain knowledge + workflow docs (32 skills)
|
|
185
187
|
│ ├── brainstorm/ # Structured ideation workflow
|
|
186
188
|
│ │ ├── agents/openai.yaml
|
|
187
189
|
│ │ ├── examples/ideation-example.md
|
|
@@ -243,12 +245,13 @@ plugins/sp/
|
|
|
243
245
|
│ │ └── references/{audit-checklist, upgrade-techniques}.md
|
|
244
246
|
│ ├── history-anatomy/ # Diagnostic interpretation owner over already-imported history (backs /sp:dev-find-issue)
|
|
245
247
|
│ │ └── references/{modes.md, report-contract.md, operations.md}
|
|
248
|
+
│ ├── session-review/ # Inline, report-only review of the active coding-agent session
|
|
246
249
|
│ ├── sys-architecture/ # Architecture / ADR judgment competency
|
|
247
250
|
│ │ └── references/decision-method.md
|
|
248
251
|
│ ├── sys-debugging/ # Structured debugging protocol
|
|
249
252
|
│ │ └── references/debugging-protocol.md
|
|
250
253
|
│ └── wayfinder/ # Multi-session investigation maps (SKILL.md only)
|
|
251
|
-
├── commands/ #
|
|
254
|
+
├── commands/ # 39 slash-command wrappers — the SSOT (hand-editable thin wrappers; see Commands below)
|
|
252
255
|
├── agents/ # 4 specialist subagents (expert-spur, super-coder, super-planner, super-reviewer)
|
|
253
256
|
├── hooks/ # hooks.json + task-write-guard.{ts,test.ts} + context-{session-start,post-tool,session-stop}.ts
|
|
254
257
|
│ # + careful-guard.{ts,test.ts} + context-hooks.test.ts + token-estimate.test.ts
|
|
@@ -286,8 +289,8 @@ Tier 3 — Execution Layer (spur CLI + Guard Scripts)
|
|
|
286
289
|
The single source of truth for domain knowledge and workflow documentation. Each skill is a
|
|
287
290
|
self-contained knowledge module that teaches the agent how to operate one slice of the Spur CLI
|
|
288
291
|
surface or run one workflow. All skills target the same five core platforms: `claude-code`, `codex`,
|
|
289
|
-
`antigravity`, `opencode`, `openclaw`;
|
|
290
|
-
`
|
|
292
|
+
`antigravity`, `opencode`, `openclaw`; selected read-only and review skills additionally declare
|
|
293
|
+
`pi`.
|
|
291
294
|
|
|
292
295
|
| Skill | Ver | Domain |
|
|
293
296
|
| --------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
@@ -321,6 +324,7 @@ surface or run one workflow. All skills target the same five core platforms: `cl
|
|
|
321
324
|
| `pr-reviewing` | 1.0 | GitHub Codex PR review — PR prepare/reuse, `@codex review` request with per-HEAD dedupe, bounded polling, findings normalization, validated fix + re-review; spine SSOT `pr-review.yaml` + `scripts/pr-reviewing.ts`; backs `/sp:dev-pr-review` |
|
|
322
325
|
| `indexed-context` | 1.0 | Cross-agent project context — anatomy/learnings/pitfalls/buglog/memory in `.spur/context/`; hook-tracked token-ledger; graceful degradation on agents without hooks |
|
|
323
326
|
| `history-anatomy` | 1.0 | Diagnostic interpretation owner over already-imported history — daily/ad-hoc mode contract, closed finding taxonomy, twelve-section report contract, `enrich`/`validate` rubrics; no workflow launch, no JSONL fallback, no corpus mutation |
|
|
327
|
+
| `session-review` | 1.0 | Inline review of the active coding-agent session — compact outcomes, evidence-backed resolved/open issue classification, proposal-only improvements, and next actions; no workflow, import, delegation, or mutation |
|
|
324
328
|
| `redesign-web-ui` | 1.0 | Existing-UI visual upgrade — audit generic AI fingerprints, apply in-stack polish against `DESIGN.md` / live tokens, verify behavior and viewports; does not migrate frameworks |
|
|
325
329
|
|
|
326
330
|
#### Bounded coexistence and retirement gate — `sp:issue-finding` (HA-S1 0661)
|
|
@@ -354,11 +358,11 @@ Skills contain zero validation logic — the CLI is the gate.
|
|
|
354
358
|
|
|
355
359
|
Thin slash-command wrappers that parse user arguments and delegate to the corresponding skill. Each
|
|
356
360
|
command is a user-facing entry point that bridges natural language to skill invocation. There are
|
|
357
|
-
**
|
|
361
|
+
**39 commands** (see the Command index above for the full list), organized by the surface they wrap:
|
|
358
362
|
|
|
359
363
|
| Prefix | Count | Delegates to | Purpose |
|
|
360
364
|
| ------------ | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
|
|
361
|
-
| `dev-*` |
|
|
365
|
+
| `dev-*` | 33 | `sp:spur-dev`, `sp:code-implementation`, `sp:code-testing`, `sp:code-verification`, `sp:code-simplification`, `sp:next-router`, `sp:brainstorm`, `sp:dogfood-testing`, `sp:parallel-execution`, `sp:sys-debugging`, `sp:daily-summary`, `sp:history-anatomy`, `sp:session-review`, `sp:conflict-finding`, `sp:reverse-engineering`, `sp:pr-reviewing`, inline | The dev-workflow surface — planning, execution, batch, wrap-up, review/verify, hygiene |
|
|
362
366
|
| `rule-*` | 3 | `sp:spur-cli` | The rule surface — `rule-add`, `rule-refine`, `rule-scan` |
|
|
363
367
|
| `workflow-*` | 2 | `sp:spur-cli` | The workflow surface — `workflow-add`, `workflow-refine` |
|
|
364
368
|
| `spur-init` | 1 | `sp:doc-evolve` | Project bootstrap (`spur init`) with doc-evolve integration |
|
|
@@ -368,7 +372,7 @@ Each command file contains:
|
|
|
368
372
|
- YAML frontmatter (`description`, `argument-hint`, `allowed-tools`).
|
|
369
373
|
- A delegation block: `Skill(skill="sp:<skill-name>", args="<operation> $ARGUMENTS")`.
|
|
370
374
|
|
|
371
|
-
**Commands as SSOT (ADR-032).** The
|
|
375
|
+
**Commands as SSOT (ADR-032).** The 39 `.md` files in `commands/` are the authoritative,
|
|
372
376
|
hand-editable source for the operator command surface. Per-platform adapters are **install-time
|
|
373
377
|
output** owned by `superskill` (`superskill install sp`) and never committed here. Plugin `sp` ships
|
|
374
378
|
no per-platform artifacts — only the platform-independent thin wrappers.
|
|
@@ -497,7 +501,7 @@ the hard gate that the soft skill cannot enforce on its own.
|
|
|
497
501
|
```mermaid
|
|
498
502
|
graph TB
|
|
499
503
|
subgraph "User entry points"
|
|
500
|
-
CMD["Commands<br/>
|
|
504
|
+
CMD["Commands<br/>39 slash commands<br/>/sp:dev-plan, /sp:dev-runall, /sp:dev-review-session, /sp:rule-add, ..."]
|
|
501
505
|
AGENT["Agents<br/>4 subagents<br/>expert-spur, super-coder, super-planner, super-reviewer"]
|
|
502
506
|
HOOK["PreToolUse hook<br/>Write|Edit matcher"]
|
|
503
507
|
end
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "Generate the daily or ad-hoc history-anatomy diagnostic report over already-imported history: the twelve-section report contract, closed finding taxonomy, cache branch, bounded correction, and atomic publication. Triggers: find issues, post-mortem, performance analysis,
|
|
2
|
+
description: "Generate the daily or ad-hoc history-anatomy diagnostic report over already-imported history: the twelve-section report contract, closed finding taxonomy, cache branch, bounded correction, and atomic publication. Triggers: find historical issues, post-mortem, performance analysis, history-anatomy, run the daily report, ad-hoc diagnosis"
|
|
3
3
|
role: reviewer
|
|
4
4
|
argument-hint: "[<focus>] [--mode <daily|ad-hoc>] [--date <YYYY-MM-DD>] [--since <RFC3339>] [--until <RFC3339>] [--recompute] [--agent <auto|name>] [--output <path>]"
|
|
5
5
|
allowed-tools: ["Bash", "Read", "Skill"]
|
|
@@ -15,6 +15,9 @@ exposes the `enrich` and `validate` operations the `history-anatomy.yaml` workfl
|
|
|
15
15
|
Publication is atomic and gated behind both the deterministic structure gate and independent
|
|
16
16
|
evidence validation. This command never triggers an import.
|
|
17
17
|
|
|
18
|
+
For an immediate review of the active conversation, route to `/sp:dev-review-session`; this command
|
|
19
|
+
owns imported-history windows, recurrence, trends, and quantitative forensics only.
|
|
20
|
+
|
|
18
21
|
## Argument Flags
|
|
19
22
|
|
|
20
23
|
| Flag | Description | Default |
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Review the active coding-agent session immediately: summarize outcomes, distinguish resolved and open issues with evidence, and propose bounded improvements. Triggers: review this session, session wrap-up, immediate retrospective, what happened, what was resolved"
|
|
3
|
+
role: reviewer
|
|
4
|
+
argument-hint: "[<focus>]"
|
|
5
|
+
allowed-tools: ["Bash", "Read", "Grep", "Glob", "Skill"]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Dev Review Session
|
|
9
|
+
|
|
10
|
+
Wraps the **sp:session-review** skill for a lightweight, report-only review of the active host
|
|
11
|
+
session. It uses the current conversation plus read-only repository evidence, runs inline so the
|
|
12
|
+
session context is preserved, and never launches a workflow, imports history, creates a task, or
|
|
13
|
+
applies a remediation.
|
|
14
|
+
|
|
15
|
+
## Argument Flags
|
|
16
|
+
|
|
17
|
+
| Flag | Description | Default |
|
|
18
|
+
| --- | --- | --- |
|
|
19
|
+
| `[<focus>]` | Optional question or operation to emphasize without excluding material session outcomes. | full active session |
|
|
20
|
+
|
|
21
|
+
For shared semantics, see the [flag glossary](../skills/spur-dev/references/flag-glossary.md).
|
|
22
|
+
|
|
23
|
+
## Usage
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
/sp:dev-review-session
|
|
27
|
+
/sp:dev-review-session "why the verification loop repeated"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Implementation
|
|
31
|
+
|
|
32
|
+
Invoke the skill directly in the active host session; do not delegate to a subagent or subprocess.
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
Skill(skill="sp:session-review", args="$ARGUMENTS")
|
|
36
|
+
```
|
package/plugins/sp/plugin.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sp",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.65",
|
|
4
4
|
"description": "Spur — a local-first harness engineering toolkit that wraps mainstream coding agents with constraint checking, workflow orchestration, and history analytics.",
|
|
5
5
|
"extensions": {
|
|
6
6
|
"pi": ["./hooks/pi/guard-extension.ts"]
|
|
@@ -9,7 +9,8 @@ shipped or invoked by anything in this plugin.)
|
|
|
9
9
|
Neither report projection restates the table below; each links here as its category table
|
|
10
10
|
(task 0686 / feature I9; accepted design `docs/design/environment-improvement-lens.md`,
|
|
11
11
|
ADR-084/085). There is deliberately no `/sp:dev-retro` command, no CLI change, and no protocol
|
|
12
|
-
bump behind this mapping.
|
|
12
|
+
bump behind this mapping. `sp:session-review` consumes only the placement rule for supported
|
|
13
|
+
live-session proposals; it adds no category projection or imported-history analysis owner (ADR-089).
|
|
13
14
|
|
|
14
15
|
## Canonical categories and projections
|
|
15
16
|
|
|
@@ -58,7 +59,8 @@ create` handoff, manual edit), which remain explicit human gates.
|
|
|
58
59
|
## Keep / drop boundary
|
|
59
60
|
|
|
60
61
|
Kept here because both live reports consume it: the seven names above, their projections, and
|
|
61
|
-
this placement rule.
|
|
62
|
+
this placement rule. The active-session reviewer may apply the placement rule without copying the
|
|
63
|
+
table. Dropped (each needs its own operator decision): installing or invoking the
|
|
62
64
|
out-of-tree retro practice, a standalone retro command, `CODING_STANDARDS.md` as a file, runtime
|
|
63
65
|
parsing of this markdown by validators, automatic remediation of environment findings, and
|
|
64
66
|
folding the lens into wrap-up learnings or `.spur/context/` memory.
|
|
@@ -58,7 +58,7 @@ roles:
|
|
|
58
58
|
stages: [implement, test, wrap]
|
|
59
59
|
- id: reviewer
|
|
60
60
|
tier: capable-1
|
|
61
|
-
commands: [dev-verify, dev-verifyall, dev-review, dev-pr-review, dev-dogfood, rule-scan, dev-find-conflict, dev-find-issue]
|
|
61
|
+
commands: [dev-verify, dev-verifyall, dev-review, dev-review-session, dev-pr-review, dev-dogfood, rule-scan, dev-find-conflict, dev-find-issue]
|
|
62
62
|
stages: [verify, review, dogfood]
|
|
63
63
|
- id: planner
|
|
64
64
|
tier: capable-2
|
|
@@ -81,9 +81,11 @@ must not sit below the highest `min_tier` among its folded stages.
|
|
|
81
81
|
simplification, fix-everything sweeps, reverse engineering, wrap-up, and the end-to-end
|
|
82
82
|
delivery flow (`dev-gtd`). Folds `implement`, `test`, `wrap`.
|
|
83
83
|
- **`reviewer` (capable-1).** Verification and analysis: per-task verify/review, batch verify,
|
|
84
|
-
dogfooding, anti-pattern scanning (`rule-scan`), and the two audit
|
|
85
|
-
`dev-find-issue`) — those analyse rather than transcribe, which is
|
|
86
|
-
under `scribe`. `dev-find-issue`
|
|
84
|
+
dogfooding, anti-pattern scanning (`rule-scan`), immediate session review, and the two audit
|
|
85
|
+
commands (`dev-find-conflict`, `dev-find-issue`) — those analyse rather than transcribe, which is
|
|
86
|
+
why they sit here and not under `scribe`. `dev-find-issue` routes through `sp:history-anatomy`;
|
|
87
|
+
`dev-review-session` routes through `sp:session-review` in the active host context. Folds
|
|
88
|
+
`verify`, `review`, `dogfood`.
|
|
87
89
|
- **`planner` (capable-2).** The planning half: feature planning, requirement refinement (single
|
|
88
90
|
and batch), brainstorm, idea intake, batch run/parallel orchestration, next-step routing,
|
|
89
91
|
architecture survey, feature-frontier prioritization, and feature-tree restructure. Folds `plan`,
|
|
@@ -96,7 +98,8 @@ same stage logic: `dev-refineall` folds `refine` → planner; `dev-find-next` is
|
|
|
96
98
|
frontier work → planner; `dev-feature-change` is planning-half corpus surgery on the feature tree →
|
|
97
99
|
planner; `dev-gtd` is the execution/delivery flow → coder; `dev-find-conflict` and `dev-find-issue`
|
|
98
100
|
are audits/analysis → reviewer (same reasoning as `rule-scan`). Later additions: `dev-pr-review` is review orchestration —
|
|
99
|
-
driving the external PR review and triaging its findings folds the `review` stage → reviewer
|
|
101
|
+
driving the external PR review and triaging its findings folds the `review` stage → reviewer;
|
|
102
|
+
`dev-review-session` performs evidence-backed review over the active conversation → reviewer.
|
|
100
103
|
|
|
101
104
|
**Consistency is a test, not a convention.** `plugins/sp/tests/roles.test.ts` parses this YAML and
|
|
102
105
|
asserts the tier-distinctness, command closure, stage-floor, and boundary invariants against the
|
|
@@ -619,3 +619,11 @@ socket binding. Signals: `EPERM: operation not permitted`, `FS_PERMISSION_DENIED
|
|
|
619
619
|
`sandbox.network.allowLocalBinding`. Caveat: `spur agent doctor` reports `usable: true` from
|
|
620
620
|
configuration alone — it never probes a real dispatch, so `usable` means *configured*, not
|
|
621
621
|
*proven runnable under this sandbox*.
|
|
622
|
+
|
|
623
|
+
Related operator-local trap (spur task 0689): adding a `permissions.allow` `write_file(**)` entry
|
|
624
|
+
to an executor's own settings (e.g. `~/.gemini/antigravity-cli/settings.json`) is an **operator-
|
|
625
|
+
local unblock, not the shipped fix**. It is per-machine and untracked, and it **masks shim
|
|
626
|
+
regressions in local end-to-end runs**: a broken headless dispatch looks green on the patched
|
|
627
|
+
machine while failing on every other machine and in CI. The fix belongs in the executor shim
|
|
628
|
+
(print-mode permission affordance); keep the allow entry, if at all, as a documented convenience
|
|
629
|
+
and never as the reason a run passes.
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: session-review
|
|
3
|
+
description: "Review the active coding-agent session, distinguish resolved and open issues with evidence, and propose bounded improvements. Triggers: review this session, session wrap-up, immediate retrospective, what happened, what was resolved."
|
|
4
|
+
license: Apache-2.0
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
metadata:
|
|
7
|
+
author: spur
|
|
8
|
+
platforms: "claude-code,codex,openclaw,opencode,antigravity,pi"
|
|
9
|
+
category: analysis-core
|
|
10
|
+
interactions:
|
|
11
|
+
- reviewer
|
|
12
|
+
see_also:
|
|
13
|
+
- sp:history-anatomy
|
|
14
|
+
- sp:indexed-context
|
|
15
|
+
- sp:code-verification
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# sp:session-review — Active Session Review
|
|
19
|
+
|
|
20
|
+
Review the active coding-agent session while its conversation context is still available. Produce a
|
|
21
|
+
compact, evidence-backed report of outcomes, resolved issues, remaining risks, and improvements.
|
|
22
|
+
|
|
23
|
+
## When to use
|
|
24
|
+
|
|
25
|
+
Use this skill immediately after focused operations when the operator asks what happened, what was
|
|
26
|
+
resolved, or how the session could improve. Use imported-history analysis for ended sessions,
|
|
27
|
+
cross-agent windows, recurrence, trends, or quantitative performance forensics.
|
|
28
|
+
|
|
29
|
+
## Arguments
|
|
30
|
+
|
|
31
|
+
| Argument | Description | Default |
|
|
32
|
+
| --- | --- | --- |
|
|
33
|
+
| `[focus]` | Question or operation to emphasize. It changes ordering, not evidence collection. | full active session |
|
|
34
|
+
|
|
35
|
+
## Evidence boundary
|
|
36
|
+
|
|
37
|
+
- Treat the active conversation as the primary evidence plane.
|
|
38
|
+
- Verify each material claim with source evidence from the conversation or a read-only repository
|
|
39
|
+
check, and cite the exact result or path in the report.
|
|
40
|
+
- Use read-only repository checks only when they confirm a material claim; prefer existing tool
|
|
41
|
+
results already visible in the session over rerunning commands.
|
|
42
|
+
- Mark an issue **resolved** only when the session shows the symptom, root cause, applied resolution,
|
|
43
|
+
and verification evidence. Otherwise classify it as open or attempted.
|
|
44
|
+
- Separate observation from inference. Label an unsupported causal explanation as a hypothesis and
|
|
45
|
+
name the confirmation needed.
|
|
46
|
+
- State `not available` when compaction or missing output removed evidence. Never reconstruct it from
|
|
47
|
+
memory or claim a verification that did not run.
|
|
48
|
+
|
|
49
|
+
## Protocol
|
|
50
|
+
|
|
51
|
+
1. **Resolve scope.** Review the active session from the operator's initiating request through the
|
|
52
|
+
latest result. Use `[focus]` only to rank relevant material.
|
|
53
|
+
2. **Inventory outcomes.** List requested outcomes and classify each as completed, partial, blocked,
|
|
54
|
+
or not attempted. Collapse repeated attempts into one outcome.
|
|
55
|
+
3. **Classify issues.** For every material issue, distinguish resolved, open, or attempted. Record
|
|
56
|
+
root cause only when the evidence boundary supports it.
|
|
57
|
+
4. **Select improvements.** Keep at most three changes that would prevent meaningful recurrence.
|
|
58
|
+
Apply the placement rule in
|
|
59
|
+
[the environment-improvement mapping](../../references/environment-lens.md): automate with a
|
|
60
|
+
check when possible, place coding standards on the review path, and keep always-loaded steering
|
|
61
|
+
as navigation pointers.
|
|
62
|
+
5. **Render the report.** Use the exact compact output contract below. Omit empty table rows, not
|
|
63
|
+
headings; write `None observed` when a section has no supported entry.
|
|
64
|
+
|
|
65
|
+
## Output contract
|
|
66
|
+
|
|
67
|
+
### Outcome
|
|
68
|
+
|
|
69
|
+
State the overall result in one to three sentences, including partial or blocked scope.
|
|
70
|
+
|
|
71
|
+
### Resolved issues
|
|
72
|
+
|
|
73
|
+
| Issue | Root cause | Resolution | Evidence |
|
|
74
|
+
| --- | --- | --- | --- |
|
|
75
|
+
|
|
76
|
+
Evidence names the tool result, verification command, or concrete repository state visible in the
|
|
77
|
+
session. Do not list ordinary implementation steps as issues.
|
|
78
|
+
|
|
79
|
+
### Open issues and risks
|
|
80
|
+
|
|
81
|
+
| Issue or risk | State | Evidence or confirmation needed |
|
|
82
|
+
| --- | --- | --- |
|
|
83
|
+
|
|
84
|
+
### Process and environment improvements
|
|
85
|
+
|
|
86
|
+
For each supported proposal, name its owner surface, expected impact, verification method, and
|
|
87
|
+
reversibility. Proposals remain report-only: apply no change and create no task.
|
|
88
|
+
|
|
89
|
+
### Next actions
|
|
90
|
+
|
|
91
|
+
List only actions needed to finish partial scope, confirm a hypothesis, or preserve a demonstrated
|
|
92
|
+
improvement. Use `None` when the session is complete and no follow-up is justified.
|
|
93
|
+
|
|
94
|
+
## Boundaries
|
|
95
|
+
|
|
96
|
+
- Stay in the active host session. Do not delegate; a fresh context loses the evidence being reviewed.
|
|
97
|
+
- Do not launch a workflow, import history, create or update corpus items, or edit files.
|
|
98
|
+
- Do not append indexed-context memory.
|
|
99
|
+
- Do not perform baseline comparison, recurrence classification, cache publication, or a twelve-section
|
|
100
|
+
forensic report; those belong to imported-history analysis.
|
|
101
|
+
- Do not turn a single low-impact observation into a new policy. Report it as a candidate until it
|
|
102
|
+
recurs or demonstrates a high-impact contract violation.
|
|
103
|
+
|
|
104
|
+
## Platform notes
|
|
105
|
+
|
|
106
|
+
On platforms without slash commands, invoke this skill directly before ending the active session.
|
|
@@ -255,7 +255,7 @@ the operator accepts it, and never hot-edit a running workflow's shell in place.
|
|
|
255
255
|
|
|
256
256
|
```
|
|
257
257
|
spur workflow validate <file> [--no-schema] [--json]
|
|
258
|
-
spur workflow show <file>
|
|
258
|
+
spur workflow show <file> [--format <mermaid|todo>] [--json]
|
|
259
259
|
spur workflow run <file> [--run-id <id>] [--vars <json>] [--dry-run] [--async] [--no-plan] [--quiet/--silent/--verbose] [--detail <level>] [--trace-file] [--no-log] [--steer] [--json]
|
|
260
260
|
spur workflow continue [run-id] [--yes] [--answer <yes|no|cancel>] [--json]
|
|
261
261
|
spur workflow cancel <run-id> [--json]
|
|
@@ -32,14 +32,17 @@ each would be scope creep for one-liner procedures.
|
|
|
32
32
|
> backbone skill (which owns the 4-phase dogfood protocol, the live ledger, and the report template);
|
|
33
33
|
> it does not map to a numbered dev-\* operation. See its command file and the backing skill for details.
|
|
34
34
|
|
|
35
|
-
> **`dev-find-issue`** is not in this table. It is a thin `Skill()` wrapper over
|
|
36
|
-
>
|
|
37
|
-
>
|
|
38
|
-
>
|
|
39
|
-
>
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
35
|
+
> **`dev-find-issue`** is not in this table. It is a thin `Skill()` wrapper over
|
|
36
|
+
> **`sp:history-anatomy`** for daily/ad-hoc imported-history forensics: fixed twelve-section report,
|
|
37
|
+
> baseline comparison, cache branch, independent validation, and atomic publication. It never
|
|
38
|
+
> imports history or creates a task. See `plugins/sp/commands/dev-find-issue.md` and
|
|
39
|
+
> `plugins/sp/skills/history-anatomy/SKILL.md`.
|
|
40
|
+
|
|
41
|
+
> **`dev-review-session`** is not in this table. It is a thin `Skill()` wrapper over
|
|
42
|
+
> **`sp:session-review`** for an immediate, inline, report-only review of the active conversation.
|
|
43
|
+
> It launches no workflow or agent and performs no import, persistence, or mutation. Use it before
|
|
44
|
+
> the active session ends; use history-anatomy for ended sessions, cross-agent windows, trends, or
|
|
45
|
+
> quantitative forensics.
|
|
43
46
|
|
|
44
47
|
> **`dev-find-conflict`** is not in this table. It is a thin `Skill()` wrapper over
|
|
45
48
|
> **`sp:conflict-finding`** (authority-aware four-pillar semantic audit → optional confirmed,
|