@kynetic-ai/spec 0.8.0 → 0.9.1

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 (97) hide show
  1. package/dist/acp/client.d.ts +7 -0
  2. package/dist/acp/client.d.ts.map +1 -1
  3. package/dist/acp/client.js +10 -0
  4. package/dist/acp/client.js.map +1 -1
  5. package/dist/cli/batch-exec.d.ts.map +1 -1
  6. package/dist/cli/batch-exec.js +47 -23
  7. package/dist/cli/batch-exec.js.map +1 -1
  8. package/dist/cli/commands/agents.d.ts +1 -1
  9. package/dist/cli/commands/agents.d.ts.map +1 -1
  10. package/dist/cli/commands/agents.js +2 -1
  11. package/dist/cli/commands/agents.js.map +1 -1
  12. package/dist/cli/commands/batch.js +1 -1
  13. package/dist/cli/commands/batch.js.map +1 -1
  14. package/dist/cli/commands/init.d.ts.map +1 -1
  15. package/dist/cli/commands/init.js +4 -6
  16. package/dist/cli/commands/init.js.map +1 -1
  17. package/dist/cli/commands/item.d.ts.map +1 -1
  18. package/dist/cli/commands/item.js +13 -2
  19. package/dist/cli/commands/item.js.map +1 -1
  20. package/dist/cli/commands/merge-driver.d.ts.map +1 -1
  21. package/dist/cli/commands/merge-driver.js +8 -3
  22. package/dist/cli/commands/merge-driver.js.map +1 -1
  23. package/dist/cli/commands/ralph.d.ts +53 -0
  24. package/dist/cli/commands/ralph.d.ts.map +1 -1
  25. package/dist/cli/commands/ralph.js +342 -81
  26. package/dist/cli/commands/ralph.js.map +1 -1
  27. package/dist/cli/commands/session/commands.d.ts.map +1 -1
  28. package/dist/cli/commands/session/commands.js +8 -0
  29. package/dist/cli/commands/session/commands.js.map +1 -1
  30. package/dist/cli/commands/session/compact.d.ts +13 -0
  31. package/dist/cli/commands/session/compact.d.ts.map +1 -0
  32. package/dist/cli/commands/session/compact.js +207 -0
  33. package/dist/cli/commands/session/compact.js.map +1 -0
  34. package/dist/cli/commands/session/log.d.ts +2 -0
  35. package/dist/cli/commands/session/log.d.ts.map +1 -1
  36. package/dist/cli/commands/session/log.js +12 -2
  37. package/dist/cli/commands/session/log.js.map +1 -1
  38. package/dist/cli/commands/setup.d.ts +4 -0
  39. package/dist/cli/commands/setup.d.ts.map +1 -1
  40. package/dist/cli/commands/setup.js +55 -6
  41. package/dist/cli/commands/setup.js.map +1 -1
  42. package/dist/cli/commands/task.d.ts.map +1 -1
  43. package/dist/cli/commands/task.js +16 -13
  44. package/dist/cli/commands/task.js.map +1 -1
  45. package/dist/cli/commands/validate.d.ts.map +1 -1
  46. package/dist/cli/commands/validate.js +34 -25
  47. package/dist/cli/commands/validate.js.map +1 -1
  48. package/dist/cli/validators.d.ts +4 -0
  49. package/dist/cli/validators.d.ts.map +1 -1
  50. package/dist/cli/validators.js +12 -0
  51. package/dist/cli/validators.js.map +1 -1
  52. package/dist/parser/shadow.d.ts.map +1 -1
  53. package/dist/parser/shadow.js +170 -72
  54. package/dist/parser/shadow.js.map +1 -1
  55. package/dist/parser/skill-render.d.ts +14 -0
  56. package/dist/parser/skill-render.d.ts.map +1 -1
  57. package/dist/parser/skill-render.js +14 -4
  58. package/dist/parser/skill-render.js.map +1 -1
  59. package/dist/parser/validate.d.ts.map +1 -1
  60. package/dist/parser/validate.js +35 -32
  61. package/dist/parser/validate.js.map +1 -1
  62. package/dist/parser/yaml.d.ts.map +1 -1
  63. package/dist/parser/yaml.js +4 -2
  64. package/dist/parser/yaml.js.map +1 -1
  65. package/dist/ralph/index.d.ts +1 -1
  66. package/dist/ralph/index.d.ts.map +1 -1
  67. package/dist/ralph/index.js +1 -1
  68. package/dist/ralph/index.js.map +1 -1
  69. package/dist/ralph/subagent.d.ts +31 -0
  70. package/dist/ralph/subagent.d.ts.map +1 -1
  71. package/dist/ralph/subagent.js +91 -18
  72. package/dist/ralph/subagent.js.map +1 -1
  73. package/dist/sessions/store.d.ts +57 -0
  74. package/dist/sessions/store.d.ts.map +1 -1
  75. package/dist/sessions/store.js +337 -9
  76. package/dist/sessions/store.js.map +1 -1
  77. package/package.json +1 -1
  78. package/plugin/.claude-plugin/marketplace.json +1 -1
  79. package/plugin/.claude-plugin/plugin.json +1 -1
  80. package/plugin/plugins/kspec/skills/create-workflow/SKILL.md +11 -1
  81. package/plugin/plugins/kspec/skills/{observations → observe}/SKILL.md +1 -1
  82. package/plugin/plugins/kspec/skills/plan/SKILL.md +11 -1
  83. package/plugin/plugins/kspec/skills/review/SKILL.md +2 -0
  84. package/plugin/plugins/kspec/skills/task-work/SKILL.md +11 -1
  85. package/plugin/plugins/kspec/skills/triage-automation/SKILL.md +1 -0
  86. package/plugin/plugins/kspec/skills/triage-inbox/SKILL.md +1 -1
  87. package/plugin/plugins/kspec/skills/writing-specs/SKILL.md +1 -1
  88. package/templates/agents-sections/01-quick-start.md +1 -0
  89. package/templates/skills/create-workflow/SKILL.md +11 -1
  90. package/templates/skills/manifest.yaml +1 -1
  91. package/templates/skills/plan/SKILL.md +11 -1
  92. package/templates/skills/review/SKILL.md +2 -0
  93. package/templates/skills/task-work/SKILL.md +11 -1
  94. package/templates/skills/triage-automation/SKILL.md +1 -0
  95. package/templates/skills/triage-inbox/SKILL.md +1 -1
  96. package/templates/skills/writing-specs/SKILL.md +1 -1
  97. /package/templates/skills/{observations → observe}/SKILL.md +0 -0
@@ -9,7 +9,7 @@
9
9
  {
10
10
  "name": "kspec",
11
11
  "description": "kspec agent skills",
12
- "version": "0.8.0",
12
+ "version": "0.9.1",
13
13
  "source": "./plugins/kspec",
14
14
  "category": "development"
15
15
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "kspec",
3
- "version": "0.8.0",
3
+ "version": "0.9.1",
4
4
  "description": "kspec agent skills"
5
5
  }
@@ -133,6 +133,16 @@ git add templates/skills/<name>/SKILL.md
133
133
  git commit -m "feat: add <name> skill for workflow integration"
134
134
  ```
135
135
 
136
+ ### Cross-Skill Consistency Check (When Updating Existing Skills)
137
+
138
+ If your workflow or wording change is cross-cutting, run this quick consistency pass before committing:
139
+
140
+ 1. List related skills/templates that describe the same concept (for example: `codex`, `pr-review`, `local-review`, review templates).
141
+ 2. Verify each related file is either updated in the same PR or explicitly noted as intentionally unchanged.
142
+ 3. Add a short checklist in PR notes showing which related files were reviewed.
143
+
144
+ This prevents partial updates where one skill changes but sibling skills keep outdated guidance.
145
+
136
146
  ## Step Design Guidelines
137
147
 
138
148
  ### Action Steps
@@ -231,5 +241,5 @@ kspec agents generate
231
241
  ## Integration
232
242
 
233
243
  - **`/kspec:reflect`** — Session reflections surface patterns worth formalizing
234
- - **`/kspec:observations`** — Friction observations may reveal missing workflows
244
+ - **`/kspec:observe`** — Friction observations may reveal missing workflows
235
245
  - **`kspec agents generate`** — Regenerate after creating workflows
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: observations
2
+ name: observe
3
3
  description: Capture and act on systemic patterns — friction, successes,
4
4
  questions, and ideas. The feedback loop that drives process improvement.
5
5
  ---
@@ -281,6 +281,16 @@ kspec task set @task-slug --depends-on @other-task
281
281
  kspec plan get @plan-slug
282
282
  ```
283
283
 
284
+ If derived tasks are too generic to execute without chat history, add a structured task note immediately:
285
+
286
+ ```bash
287
+ kspec task note @task-slug "Execution context:
288
+ - Background: why this task exists
289
+ - Scope: concrete boundaries for this task
290
+ - Files: exact files/areas to touch
291
+ - Verification: commands/tests to run"
292
+ ```
293
+
284
294
  ## Plan Lifecycle
285
295
 
286
296
  ```
@@ -340,4 +350,4 @@ kspec validate --alignment
340
350
  - **`/kspec:writing-specs`** — Spec authoring details (types, AC format, traits)
341
351
  - **`/kspec:task-work`** — After specs are created, work on derived tasks
342
352
  - **`/kspec:triage`** — Inbox items may trigger plan creation
343
- - **`/kspec:observations`** — Friction during planning becomes observations
353
+ - **`/kspec:observe`** — Friction during planning becomes observations
@@ -109,6 +109,7 @@ grep -rn "// AC: @spec-ref" tests/
109
109
  ```
110
110
 
111
111
  Each AC listed in the spec output must have a corresponding annotation. Missing annotations are MUST-FIX.
112
+ Before accepting coverage, confirm each annotation matches the AC text from `kspec item get @spec-ref` (not only the `ac-N` label).
112
113
 
113
114
  ## Trait AC Coverage
114
115
 
@@ -149,6 +150,7 @@ If a trait AC genuinely doesn't apply to this spec, annotate it with a reason:
149
150
  ```
150
151
 
151
152
  The annotation must exist so coverage tooling can track it.
153
+ Annotations must be standalone line comments (`// AC:` or `# AC:`), not embedded inside block/JSDoc comments.
152
154
 
153
155
  ### No Traits?
154
156
 
@@ -120,6 +120,16 @@ Note when you:
120
120
  - Encounter a blocker
121
121
  - Complete a significant piece
122
122
 
123
+ For tasks that are missing standalone context (for example, generic derived notes), add one structured note before deep implementation work:
124
+
125
+ ```bash
126
+ kspec task note @ref "Execution context:
127
+ - Background: why this task matters
128
+ - Scope: what is in/out for this task
129
+ - Files: exact files expected to change
130
+ - Verification: tests/commands that prove completion"
131
+ ```
132
+
123
133
  ### 5. Commit
124
134
 
125
135
  Include task and spec trailers:
@@ -315,5 +325,5 @@ kspec session start
315
325
  - **`/kspec:writing-specs`** — Create specs before deriving tasks
316
326
  - **`/kspec:plan`** — Plans create specs that become tasks
317
327
  - **`/kspec:review`** — Review checks AC coverage and code quality
318
- - **`/kspec:observations`** — Capture friction found during task work
328
+ - **`/kspec:observe`** — Capture friction found during task work
319
329
  - **`/kspec:reflect`** — Session reflection after completing tasks
@@ -67,6 +67,7 @@ For each task shown:
67
67
  - Is the spec appropriate for this task?
68
68
  - Are the ACs adequate and testable?
69
69
  - Does the task have sufficient context?
70
+ - Can the task be executed from task data alone (without hidden chat/session context)?
70
71
  - If yes: `kspec task set @ref --automation eligible`
71
72
  - If no: Fix issues or mark `needs_review` with specific reason
72
73
 
@@ -228,5 +228,5 @@ At session end, provide summary:
228
228
  ## Integration
229
229
 
230
230
  - **`/kspec:reflect`** — Session reflection may generate inbox items for triage
231
- - **`/kspec:observations`** — Captures systemic patterns found during triage
231
+ - **`/kspec:observe`** — Captures systemic patterns found during triage
232
232
  - **`kspec session start`** — Shows inbox count for triage awareness
@@ -350,5 +350,5 @@ The derived task gets `spec_ref: @feature-slug` automatically.
350
350
  - **`/kspec:plan`** — Plans create specs via import or manual creation
351
351
  - **`/kspec:task-work`** — Tasks reference specs; AC guides implementation
352
352
  - **`/kspec:triage`** — Inbox items may reveal spec gaps
353
- - **`/kspec:observations`** — Friction may indicate missing specs
353
+ - **`/kspec:observe`** — Friction may indicate missing specs
354
354
  - **`/kspec:review`** — Reviews check AC coverage
@@ -20,3 +20,4 @@ Verify shadow branch health with `kspec shadow status` if you encounter issues.
20
20
  5. **Always confirm** — Ask before creating or modifying spec items.
21
21
  6. **Batch mutations** — Use `kspec batch` for 2+ sequential write operations (one atomic commit).
22
22
  7. **Regenerate agent instructions** — Run `kspec agents generate` after changing conventions, workflows, or skills. These are the inputs to `kspec-agents.md`.
23
+ 8. **Edit skill sources, not rendered output** — Do not edit `.agents/skills/` directly. Core skills live in `templates/skills/` (+ `templates/skills/manifest.yaml`), while project/local skills live in `.kspec/skills/`. Regenerate rendered files with `kspec skill render`/`kspec setup`.
@@ -126,6 +126,16 @@ git add templates/skills/<name>/SKILL.md
126
126
  git commit -m "feat: add <name> skill for workflow integration"
127
127
  ```
128
128
 
129
+ ### Cross-Skill Consistency Check (When Updating Existing Skills)
130
+
131
+ If your workflow or wording change is cross-cutting, run this quick consistency pass before committing:
132
+
133
+ 1. List related skills/templates that describe the same concept (for example: `codex`, `pr-review`, `local-review`, review templates).
134
+ 2. Verify each related file is either updated in the same PR or explicitly noted as intentionally unchanged.
135
+ 3. Add a short checklist in PR notes showing which related files were reviewed.
136
+
137
+ This prevents partial updates where one skill changes but sibling skills keep outdated guidance.
138
+
129
139
  ## Step Design Guidelines
130
140
 
131
141
  ### Action Steps
@@ -224,5 +234,5 @@ kspec agents generate
224
234
  ## Integration
225
235
 
226
236
  - **`{skill:reflect}`** — Session reflections surface patterns worth formalizing
227
- - **`{skill:observations}`** — Friction observations may reveal missing workflows
237
+ - **`{skill:observe}`** — Friction observations may reveal missing workflows
228
238
  - **`kspec agents generate`** — Regenerate after creating workflows
@@ -9,7 +9,7 @@ skills:
9
9
  platforms:
10
10
  - claude-code
11
11
  - codex
12
- - id: observations
12
+ - id: observe
13
13
  name: Observations
14
14
  description: Capture and act on systemic patterns — friction, successes, questions, and ideas. The feedback loop that drives process improvement.
15
15
  platforms:
@@ -274,6 +274,16 @@ kspec task set @task-slug --depends-on @other-task
274
274
  kspec plan get @plan-slug
275
275
  ```
276
276
 
277
+ If derived tasks are too generic to execute without chat history, add a structured task note immediately:
278
+
279
+ ```bash
280
+ kspec task note @task-slug "Execution context:
281
+ - Background: why this task exists
282
+ - Scope: concrete boundaries for this task
283
+ - Files: exact files/areas to touch
284
+ - Verification: commands/tests to run"
285
+ ```
286
+
277
287
  ## Plan Lifecycle
278
288
 
279
289
  ```
@@ -333,4 +343,4 @@ kspec validate --alignment
333
343
  - **`{skill:writing-specs}`** — Spec authoring details (types, AC format, traits)
334
344
  - **`{skill:task-work}`** — After specs are created, work on derived tasks
335
345
  - **`{skill:triage}`** — Inbox items may trigger plan creation
336
- - **`{skill:observations}`** — Friction during planning becomes observations
346
+ - **`{skill:observe}`** — Friction during planning becomes observations
@@ -102,6 +102,7 @@ grep -rn "// AC: @spec-ref" tests/
102
102
  ```
103
103
 
104
104
  Each AC listed in the spec output must have a corresponding annotation. Missing annotations are MUST-FIX.
105
+ Before accepting coverage, confirm each annotation matches the AC text from `kspec item get @spec-ref` (not only the `ac-N` label).
105
106
 
106
107
  ## Trait AC Coverage
107
108
 
@@ -142,6 +143,7 @@ If a trait AC genuinely doesn't apply to this spec, annotate it with a reason:
142
143
  ```
143
144
 
144
145
  The annotation must exist so coverage tooling can track it.
146
+ Annotations must be standalone line comments (`// AC:` or `# AC:`), not embedded inside block/JSDoc comments.
145
147
 
146
148
  ### No Traits?
147
149
 
@@ -113,6 +113,16 @@ Note when you:
113
113
  - Encounter a blocker
114
114
  - Complete a significant piece
115
115
 
116
+ For tasks that are missing standalone context (for example, generic derived notes), add one structured note before deep implementation work:
117
+
118
+ ```bash
119
+ kspec task note @ref "Execution context:
120
+ - Background: why this task matters
121
+ - Scope: what is in/out for this task
122
+ - Files: exact files expected to change
123
+ - Verification: tests/commands that prove completion"
124
+ ```
125
+
116
126
  ### 5. Commit
117
127
 
118
128
  Include task and spec trailers:
@@ -308,5 +318,5 @@ kspec session start
308
318
  - **`{skill:writing-specs}`** — Create specs before deriving tasks
309
319
  - **`{skill:plan}`** — Plans create specs that become tasks
310
320
  - **`{skill:review}`** — Review checks AC coverage and code quality
311
- - **`{skill:observations}`** — Capture friction found during task work
321
+ - **`{skill:observe}`** — Capture friction found during task work
312
322
  - **`{skill:reflect}`** — Session reflection after completing tasks
@@ -61,6 +61,7 @@ For each task shown:
61
61
  - Is the spec appropriate for this task?
62
62
  - Are the ACs adequate and testable?
63
63
  - Does the task have sufficient context?
64
+ - Can the task be executed from task data alone (without hidden chat/session context)?
64
65
  - If yes: `kspec task set @ref --automation eligible`
65
66
  - If no: Fix issues or mark `needs_review` with specific reason
66
67
 
@@ -221,5 +221,5 @@ At session end, provide summary:
221
221
  ## Integration
222
222
 
223
223
  - **`{skill:reflect}`** — Session reflection may generate inbox items for triage
224
- - **`{skill:observations}`** — Captures systemic patterns found during triage
224
+ - **`{skill:observe}`** — Captures systemic patterns found during triage
225
225
  - **`kspec session start`** — Shows inbox count for triage awareness
@@ -343,5 +343,5 @@ The derived task gets `spec_ref: @feature-slug` automatically.
343
343
  - **`{skill:plan}`** — Plans create specs via import or manual creation
344
344
  - **`{skill:task-work}`** — Tasks reference specs; AC guides implementation
345
345
  - **`{skill:triage}`** — Inbox items may reveal spec gaps
346
- - **`{skill:observations}`** — Friction may indicate missing specs
346
+ - **`{skill:observe}`** — Friction may indicate missing specs
347
347
  - **`{skill:review}`** — Reviews check AC coverage