@gobing-ai/spur 0.3.96 → 0.3.97

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 (87) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/config/rules/strict/runtime-boundaries.yaml +1 -0
  3. package/config/templates/AGENTS.md +3 -3
  4. package/config/workflows/wrapup-pipeline.yaml +2 -1
  5. package/package.json +2 -2
  6. package/plugins/sp/README.md +6 -0
  7. package/plugins/sp/commands/dev-job-dump.md +29 -0
  8. package/plugins/sp/commands/dev-job-resume.md +29 -0
  9. package/plugins/sp/lib/inline-run.generated.mjs +25 -16
  10. package/plugins/sp/lib/quality-gate.generated.mjs +12 -5
  11. package/plugins/sp/lib/residual-scan.generated.d.mts +1 -0
  12. package/plugins/sp/lib/residual-scan.generated.mjs +16 -0
  13. package/plugins/sp/plugin.json +1 -1
  14. package/plugins/sp/references/roles.md +2 -2
  15. package/plugins/sp/scripts/feature-verification-steps.mjs +14 -1
  16. package/plugins/sp/scripts/feature-verification-steps.ts +14 -1
  17. package/plugins/sp/scripts/quality-gate.mjs +13 -6
  18. package/plugins/sp/scripts/quality-gate.ts +1 -1
  19. package/plugins/sp/scripts/residual-scan.mjs +64 -38
  20. package/plugins/sp/scripts/residual-scan.ts +39 -34
  21. package/plugins/sp/scripts/wrapup-steps.mjs +64 -3
  22. package/plugins/sp/scripts/wrapup-steps.ts +122 -3
  23. package/plugins/sp/skills/source-driven-development/SKILL.md +11 -0
  24. package/plugins/sp/skills/spur-cli/references/tasks/section-editing.md +9 -5
  25. package/plugins/sp/skills/spur-cli/references/workflows.md +17 -14
  26. package/plugins/sp/skills/spur-dev/SKILL.md +2 -0
  27. package/plugins/sp/skills/spur-dev/references/cross-cutting.md +3 -1
  28. package/plugins/sp/skills/spur-dev/references/dev-operations.md +79 -5
  29. package/plugins/sp/skills/spur-dev/references/done-housekeeping.md +4 -2
  30. package/plugins/sp/skills/spur-dev/references/execution-batch.md +8 -6
  31. package/plugins/sp/skills/spur-dev/references/execution-workflow.md +3 -3
  32. package/plugins/sp/skills/spur-dev/references/flag-glossary.md +9 -0
  33. package/plugins/sp/skills/spur-dev/references/inline-pipeline-driver.md +43 -12
  34. package/spur.js +4246 -2996
  35. package/web/_astro/{BoardApp.BIjMatT1.js → BoardApp.Bmv5WkJ9.js} +1 -1
  36. package/web/_astro/BoardApp.vveLOdDq.js +322 -0
  37. package/web/_astro/{TaskDetail.BZM3EAFx.js → TaskDetail.IKc3uDYV.js} +1 -1
  38. package/web/_astro/{arc.HkRiZnoI.js → arc.C63Ufg35.js} +1 -1
  39. package/web/_astro/{architectureDiagram-3BPJPVTR.BDdK-tgZ.js → architectureDiagram-3BPJPVTR.CP8Hyldk.js} +1 -1
  40. package/web/_astro/{blockDiagram-GPEHLZMM.CZ9kOBxx.js → blockDiagram-GPEHLZMM.Bo_48MRA.js} +1 -1
  41. package/web/_astro/{c4Diagram-AAUBKEIU.DXK9qeRD.js → c4Diagram-AAUBKEIU.Ch61sw-O.js} +1 -1
  42. package/web/_astro/channel.BKCmJpWM.js +1 -0
  43. package/web/_astro/{chunk-2J33WTMH.BTD2WeX5.js → chunk-2J33WTMH.CHpzS7xf.js} +1 -1
  44. package/web/_astro/{chunk-4BX2VUAB.Ci6Qbcvk.js → chunk-4BX2VUAB.DzMNNWIw.js} +1 -1
  45. package/web/_astro/{chunk-55IACEB6.yl3zsj7p.js → chunk-55IACEB6.BqPrDw_Q.js} +1 -1
  46. package/web/_astro/{chunk-727SXJPM.ClXZsfyR.js → chunk-727SXJPM.ZzBHhNw-.js} +1 -1
  47. package/web/_astro/{chunk-AQP2D5EJ.BmKWZBcP.js → chunk-AQP2D5EJ.1_O_LLkx.js} +1 -1
  48. package/web/_astro/{chunk-FMBD7UC4.By30fcb7.js → chunk-FMBD7UC4.GS4UHg7_.js} +1 -1
  49. package/web/_astro/{chunk-ND2GUHAM.24NmrD-k.js → chunk-ND2GUHAM.BnqotN4g.js} +1 -1
  50. package/web/_astro/{chunk-QZHKN3VN.BN4sKdcS.js → chunk-QZHKN3VN.Ghuh8zoJ.js} +1 -1
  51. package/web/_astro/{classDiagram-4FO5ZUOK.CJpoMPb5.js → classDiagram-4FO5ZUOK.BW9vC3zg.js} +1 -1
  52. package/web/_astro/{classDiagram-v2-Q7XG4LA2.CJpoMPb5.js → classDiagram-v2-Q7XG4LA2.BW9vC3zg.js} +1 -1
  53. package/web/_astro/{cose-bilkent-S5V4N54A.BraxQ2Nt.js → cose-bilkent-S5V4N54A.D6jNC0ti.js} +1 -1
  54. package/web/_astro/{cynefin-OW5HDTMX.gzoU73oL.js → cynefin-OW5HDTMX.BOGoCs4L.js} +1 -1
  55. package/web/_astro/{dagre-BM42HDAG.wyDfWySU.js → dagre-BM42HDAG.8iU5VcWi.js} +1 -1
  56. package/web/_astro/{diagram-2AECGRRQ.h2_EbMxV.js → diagram-2AECGRRQ.CVt88HwH.js} +1 -1
  57. package/web/_astro/{diagram-5GNKFQAL.Db6dcs89.js → diagram-5GNKFQAL.C9HxUUMl.js} +1 -1
  58. package/web/_astro/{diagram-KO2AKTUF.NVwzxu_U.js → diagram-KO2AKTUF.4ywkQN3t.js} +1 -1
  59. package/web/_astro/{diagram-LMA3HP47.B-eNgDQk.js → diagram-LMA3HP47.C48A6gpz.js} +1 -1
  60. package/web/_astro/{diagram-OG6HWLK6.Bsa8ZRbJ.js → diagram-OG6HWLK6.DxFieQW4.js} +1 -1
  61. package/web/_astro/{erDiagram-TEJ5UH35.BospRE5Q.js → erDiagram-TEJ5UH35.CtjtQqYs.js} +1 -1
  62. package/web/_astro/{flowDiagram-I6XJVG4X.DMzvHwAA.js → flowDiagram-I6XJVG4X.C5zAiahU.js} +1 -1
  63. package/web/_astro/{ganttDiagram-6RSMTGT7.Dmdxgd-M.js → ganttDiagram-6RSMTGT7.D_L6zsny.js} +1 -1
  64. package/web/_astro/{gitGraphDiagram-PVQCEYII.CaqdO0rL.js → gitGraphDiagram-PVQCEYII.Ignnrk3V.js} +1 -1
  65. package/web/_astro/index.CbNz17Sx.css +1 -0
  66. package/web/_astro/{infoDiagram-5YYISTIA.DDVD9Wn7.js → infoDiagram-5YYISTIA.DLv8-P5u.js} +1 -1
  67. package/web/_astro/{ishikawaDiagram-YF4QCWOH.EKyCUFsL.js → ishikawaDiagram-YF4QCWOH.p0OTpwFO.js} +1 -1
  68. package/web/_astro/{journeyDiagram-JHISSGLW.By2-RkYB.js → journeyDiagram-JHISSGLW.CIaBt-DD.js} +1 -1
  69. package/web/_astro/{kanban-definition-UN3LZRKU.ar-WmlyR.js → kanban-definition-UN3LZRKU.DGySIntq.js} +1 -1
  70. package/web/_astro/{linear.BnzMBgo_.js → linear.BATV4RXu.js} +1 -1
  71. package/web/_astro/{mermaid.core.DSqeFu2Y.js → mermaid.core.DzkwM3VX.js} +4 -4
  72. package/web/_astro/{mindmap-definition-RKZ34NQL.1XcF8Wh2.js → mindmap-definition-RKZ34NQL.3piBRRzA.js} +1 -1
  73. package/web/_astro/{pieDiagram-4H26LBE5.DnItHOdK.js → pieDiagram-4H26LBE5.DUNueLub.js} +1 -1
  74. package/web/_astro/{quadrantDiagram-W4KKPZXB.BQQyrnBt.js → quadrantDiagram-W4KKPZXB.9bihVbrt.js} +1 -1
  75. package/web/_astro/{requirementDiagram-4Y6WPE33.Dmzxun82.js → requirementDiagram-4Y6WPE33.CkjsC-YT.js} +1 -1
  76. package/web/_astro/{sankeyDiagram-5OEKKPKP.BBIeRKYB.js → sankeyDiagram-5OEKKPKP.Dbq4vaoQ.js} +1 -1
  77. package/web/_astro/{sequenceDiagram-3UESZ5HK.CUNVdBBf.js → sequenceDiagram-3UESZ5HK.BivrH99P.js} +1 -1
  78. package/web/_astro/{stateDiagram-AJRCARHV.DlFf2sJm.js → stateDiagram-AJRCARHV.CqLQ1Vzz.js} +1 -1
  79. package/web/_astro/{stateDiagram-v2-BHNVJYJU.DXR7I1H5.js → stateDiagram-v2-BHNVJYJU.DvvoLD3b.js} +1 -1
  80. package/web/_astro/{timeline-definition-PNZ67QCA.BcO-GyX2.js → timeline-definition-PNZ67QCA.B-KR78gv.js} +1 -1
  81. package/web/_astro/{vennDiagram-CIIHVFJN.ChCECmmW.js → vennDiagram-CIIHVFJN.Ck0Eieb5.js} +1 -1
  82. package/web/_astro/{wardleyDiagram-YWT4CUSO.CRaT12mD.js → wardleyDiagram-YWT4CUSO.CRfdd_do.js} +1 -1
  83. package/web/_astro/{xychartDiagram-2RQKCTM6.B3lsHVpj.js → xychartDiagram-2RQKCTM6.Ck_Jxk9C.js} +1 -1
  84. package/web/index.html +2 -2
  85. package/web/_astro/BoardApp.GvjIe9Z6.js +0 -191
  86. package/web/_astro/channel.DlhX2MEt.js +0 -1
  87. package/web/_astro/index.EoZlzLK-.css +0 -1
@@ -7,7 +7,7 @@
7
7
  "plugins": [
8
8
  {
9
9
  "name": "sp",
10
- "version": "0.3.96",
10
+ "version": "0.3.97",
11
11
  "source": "./plugins/sp"
12
12
  }
13
13
  ]
@@ -68,6 +68,7 @@ rules:
68
68
  - "apps/cli/src/commands/workflow.ts" # FD byte-window tail of the mid-run run log for `workflow trace --follow` streaming (task 0428 / feature D2); readSync at offset over the observability sink's FDs
69
69
  - "apps/web/src/modules/discover.ts" # Vite/Astro module scanner fallback under bun test
70
70
  - "packages/app/src/services/quality-gate.ts" # gate artifacts (log/findings/receipt) written directly; merged-fd gate log and fsync-free atomic writes must stay byte-stable; bundled standalone for the bare-node plugin twin (task 1006 R1; mirrors history-anatomy.ts)
71
+ - "packages/app/src/services/run-storage.ts" # durable-evidence migration core (task 1025 R4): atomic tmp+rename byte copies with digest reread and atomic manifest publish must stay byte-stable (mirrors agent-usage-producer.ts / project-registry.ts exemptions)
71
72
 
72
73
  # Synchronous bootstrap & path resolution:
73
74
  - "packages/config/src/bundled-config.ts" # sync bundledConfigRoot() directory walk
@@ -163,9 +163,9 @@ spur <noun> --help
163
163
  **Long-tail:** Additional `/sp:dev-*` commands (handover, gitmsg, fixall, findconflict, dogfood, reverse, arch,
164
164
  …) are indexed in the project plugin README (`plugins/sp/README.md` when present).
165
165
 
166
- **Outside spur-cli:** Nouns not fully documented in `sp:spur-cli` (`agent`, `history`, `message`,
167
- `team`, `status`, `migrate`, `serve`, `init`, …) — use only `spur <noun> --help` and
168
- `docs/04_DESIGN.md`. Never guess flags.
166
+ **Outside spur-cli:** For nouns without a reference file, use only `spur <noun> --help` and
167
+ `docs/04_DESIGN.md`; never guess flags. Agent/message/self/projects references live under
168
+ `plugins/sp/skills/spur-cli/references/`.
169
169
 
170
170
  ---
171
171
 
@@ -139,7 +139,8 @@ states:
139
139
  - id: task-resolve
140
140
  description: >
141
141
  Validate the task list ONCE and evaluate closed proportional routing (0758
142
- R1-R4). Validation (0770 + 0783): vars.tasks must be a JSON array of
142
+ R1-R4). When vars.feature is set, resolve also runs the feature pre-flight
143
+ (1033 R2). Validation (0770 + 0783): vars.tasks must be a JSON array of
143
144
  canonical four-digit WBS strings — non-arrays, non-strings, whitespace or
144
145
  other shapes are rejected, not trimmed — deduplicated in first-seen
145
146
  order, with __runId present, and every member must resolve via `spur task
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gobing-ai/spur",
3
- "version": "0.3.96",
3
+ "version": "0.3.97",
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",
@@ -49,7 +49,7 @@
49
49
  "dev": "bun run src/index.ts",
50
50
  "build": "bun run ../../scripts/spur-dev.ts build-cli",
51
51
  "build:binaries": "bun run ../../scripts/spur-dev.ts build-binaries",
52
- "build:bundle": "bun run ../../scripts/spur-dev.ts bundle-web && bun run ../../scripts/spur-dev.ts emit-board-types && bun build src/index.ts --target=bun --outfile spur.js && bun run ../../scripts/spur-dev.ts bundle-config config && bun run ../../scripts/spur-dev.ts bundle-plugins",
52
+ "build:bundle": "bun run ../../scripts/commands/bundle-plugin-lib.ts && bun run ../../scripts/spur-dev.ts bundle-web && bun run ../../scripts/spur-dev.ts emit-board-types && bun build src/index.ts --target=bun --outfile spur.js && bun run ../../scripts/spur-dev.ts bundle-config config && bun run ../../scripts/spur-dev.ts bundle-plugins",
53
53
  "test": "bun test tests --coverage --coverage-dir=../../.coverage --pass-with-no-tests",
54
54
  "typecheck": "tsc --noEmit",
55
55
  "prepack": "bun run build:bundle",
@@ -68,6 +68,10 @@ single-task wrap-up closes out a whole set of completed tasks in one pass.
68
68
 
69
69
  ### Crossing a session boundary
70
70
 
71
+ For any unfinished job, use `/sp:dev-job-dump --file <path>` to save a Markdown snapshot and
72
+ `/sp:dev-job-resume --file <path>` in the next session to reconcile state and continue the remaining
73
+ work. Include the referenced checkout and evidence files when transferring to another machine.
74
+
71
75
  Two different problems, two different tools:
72
76
 
73
77
  - **The harness compacts your context mid-task.** That's normal. Keep the _planning_ half in one
@@ -125,6 +129,8 @@ list this README is checked against.
125
129
  | Command | What it does |
126
130
  | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
127
131
  | `dev-handover` | Generate a structured handover document when blocked — captures goal, progress, blocker, rejected approaches, and next steps |
132
+ | `dev-job-dump` | Save the current job, verified environment and ordered remaining work to a specified Markdown handoff file |
133
+ | `dev-job-resume` | Reconcile a Markdown handoff with current state and continue the remaining job through its existing owner |
128
134
  | `dev-debug` | Systematic debugging protocol — reproduce, isolate, diagnose root cause, apply minimal fix, and verify with regression tests |
129
135
  | `dev-daily` | Generate a daily summary report from agent usage data, git history, and notes |
130
136
  | `dev-dogfood` | Dogfood an agent skill/command/CLI — drive it end-to-end with bounded auto-fix, self-monitor, and emit a comprehensive report |
@@ -0,0 +1,29 @@
1
+ ---
2
+ description: Dump remaining work to a Markdown handoff file
3
+ role: scribe
4
+ argument-hint: "--file <path>"
5
+ allowed-tools: ["Bash", "Read", "Write", "Skill"]
6
+ ---
7
+
8
+ # Dev Job Dump
9
+
10
+ Wraps the **sp:spur-dev** skill.
11
+
12
+ ## Argument Flags
13
+
14
+ | Flag | Description | Default |
15
+ | --- | --- | --- |
16
+ | `--file <path>` | Markdown file to write or refresh with the current job handoff. | required |
17
+
18
+ For shared semantics, see the [flag glossary](../skills/spur-dev/references/flag-glossary.md).
19
+
20
+ ## Usage
21
+
22
+ /sp:dev-job-dump --file <path>
23
+
24
+ ## Implementation
25
+
26
+ Follow [job-dump](../skills/spur-dev/references/dev-operations.md#11a-job-dump), using the shared
27
+ handoff template to capture the current job and its remaining work.
28
+
29
+ Skill(skill="sp:spur-dev", args="job-dump $ARGUMENTS")
@@ -0,0 +1,29 @@
1
+ ---
2
+ description: Resume remaining work from a Markdown handoff file
3
+ role: planner
4
+ argument-hint: "--file <path>"
5
+ allowed-tools: ["Bash", "Read", "Write", "Edit", "Skill"]
6
+ ---
7
+
8
+ # Dev Job Resume
9
+
10
+ Wraps the **sp:spur-dev** skill.
11
+
12
+ ## Argument Flags
13
+
14
+ | Flag | Description | Default |
15
+ | --- | --- | --- |
16
+ | `--file <path>` | Markdown handoff file to read before continuing the remaining work. | required |
17
+
18
+ For shared semantics, see the [flag glossary](../skills/spur-dev/references/flag-glossary.md).
19
+
20
+ ## Usage
21
+
22
+ /sp:dev-job-resume --file <path>
23
+
24
+ ## Implementation
25
+
26
+ Follow [job-resume](../skills/spur-dev/references/dev-operations.md#11b-job-resume): validate the
27
+ handoff against current state, then continue through the existing owner of the recorded operation.
28
+
29
+ Skill(skill="sp:spur-dev", args="job-resume $ARGUMENTS")