frontend-harness 0.1.0 → 0.2.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 (81) hide show
  1. package/AGENTS.md +17 -5
  2. package/CLAUDE.md +17 -5
  3. package/README.md +65 -11
  4. package/dist/cli/index.js +166 -11
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/runtime/builtin-skills.js +10 -1
  7. package/dist/runtime/builtin-skills.js.map +1 -1
  8. package/dist/runtime/clean.js +6 -1
  9. package/dist/runtime/clean.js.map +1 -1
  10. package/dist/runtime/command-taxonomy.js +12 -1
  11. package/dist/runtime/command-taxonomy.js.map +1 -1
  12. package/dist/runtime/common/naming.d.ts +2 -0
  13. package/dist/runtime/common/naming.js +13 -0
  14. package/dist/runtime/common/naming.js.map +1 -0
  15. package/dist/runtime/common/parsing.d.ts +11 -0
  16. package/dist/runtime/common/parsing.js +30 -0
  17. package/dist/runtime/common/parsing.js.map +1 -0
  18. package/dist/runtime/common/text.d.ts +1 -0
  19. package/dist/runtime/common/text.js +4 -0
  20. package/dist/runtime/common/text.js.map +1 -0
  21. package/dist/runtime/context.js +3 -2
  22. package/dist/runtime/context.js.map +1 -1
  23. package/dist/runtime/graph.js +1 -1
  24. package/dist/runtime/graph.js.map +1 -1
  25. package/dist/runtime/knowledge.d.ts +136 -1
  26. package/dist/runtime/knowledge.js +658 -17
  27. package/dist/runtime/knowledge.js.map +1 -1
  28. package/dist/runtime/plan/component-resolver.d.ts +8 -0
  29. package/dist/runtime/plan/component-resolver.js +350 -0
  30. package/dist/runtime/plan/component-resolver.js.map +1 -0
  31. package/dist/runtime/plan/guidance.d.ts +3 -0
  32. package/dist/runtime/plan/guidance.js +143 -0
  33. package/dist/runtime/plan/guidance.js.map +1 -0
  34. package/dist/runtime/plan/proposal.d.ts +2 -0
  35. package/dist/runtime/plan/proposal.js +251 -0
  36. package/dist/runtime/plan/proposal.js.map +1 -0
  37. package/dist/runtime/plan/workflow.d.ts +8 -0
  38. package/dist/runtime/plan/workflow.js +234 -0
  39. package/dist/runtime/plan/workflow.js.map +1 -0
  40. package/dist/runtime/plan.d.ts +4 -3
  41. package/dist/runtime/plan.js +163 -445
  42. package/dist/runtime/plan.js.map +1 -1
  43. package/dist/runtime/policy-provenance.js +30 -17
  44. package/dist/runtime/policy-provenance.js.map +1 -1
  45. package/dist/runtime/project-discovery.js +12 -4
  46. package/dist/runtime/project-discovery.js.map +1 -1
  47. package/dist/runtime/project-paths.js +5 -2
  48. package/dist/runtime/project-paths.js.map +1 -1
  49. package/dist/runtime/protocol-init.js +7 -4
  50. package/dist/runtime/protocol-init.js.map +1 -1
  51. package/dist/runtime/repair-decision.js +15 -30
  52. package/dist/runtime/repair-decision.js.map +1 -1
  53. package/dist/runtime/repair-packet.js +8 -1
  54. package/dist/runtime/repair-packet.js.map +1 -1
  55. package/dist/runtime/scaffold/vue-template.d.ts +7 -0
  56. package/dist/runtime/scaffold/vue-template.js +187 -0
  57. package/dist/runtime/scaffold/vue-template.js.map +1 -0
  58. package/dist/runtime/scaffold.d.ts +21 -0
  59. package/dist/runtime/scaffold.js +80 -0
  60. package/dist/runtime/scaffold.js.map +1 -0
  61. package/dist/runtime/skills.js +3 -3
  62. package/dist/runtime/skills.js.map +1 -1
  63. package/dist/runtime/state.d.ts +4 -2
  64. package/dist/runtime/state.js +84 -20
  65. package/dist/runtime/state.js.map +1 -1
  66. package/dist/runtime/ui-restoration.d.ts +4 -0
  67. package/dist/runtime/ui-restoration.js +38 -0
  68. package/dist/runtime/ui-restoration.js.map +1 -0
  69. package/dist/runtime/units.js +38 -2
  70. package/dist/runtime/units.js.map +1 -1
  71. package/dist/runtime/verification-commands.js +8 -4
  72. package/dist/runtime/verification-commands.js.map +1 -1
  73. package/dist/runtime/verify.js +107 -40
  74. package/dist/runtime/verify.js.map +1 -1
  75. package/dist/schemas/types.d.ts +73 -6
  76. package/dist/schemas/validation.js +21 -0
  77. package/dist/schemas/validation.js.map +1 -1
  78. package/dist/storage/json.js +6 -1
  79. package/dist/storage/json.js.map +1 -1
  80. package/docs/DIRECTION.md +1 -1
  81. package/package.json +3 -4
package/AGENTS.md CHANGED
@@ -7,8 +7,8 @@ The coding agent runtime remains responsible for its own agent loop, tools, cont
7
7
 
8
8
  Required loop:
9
9
  1. Run `frontend-harness context --json` before planning edits.
10
- 2. If agent planning input is useful, write only bounded hints (`intentSuggestion`, `constraintHints`, `componentHints`) to an agent decision JSON file and validate it with `frontend-harness decision check --json --file <agent-decision.json>`.
11
- 3. Run `frontend-harness plan --json "<task>"` with optional `--agent-decision <agent-decision.json>`, or consume the existing `.frontend-harness/plans/latest.json` before editing.
10
+ 2. If agent planning input is useful, write only bounded planning evidence (`constraintHints`, `componentHints`, and `planningEvidence` with workflow, target, verification, and ambiguity candidates) to an agent proposal JSON file and validate it with `frontend-harness proposal check --json --file <agent-proposal.json>`.
11
+ 3. Run `frontend-harness plan --json "<task>"` with optional `--agent-proposal <agent-proposal.json>`, or consume the existing `.frontend-harness/plans/latest.json` before editing.
12
12
  4. Edit only project files required by the system-owned plan and current task.
13
13
  5. Record every changed project file with `frontend-harness state record-change <file>`.
14
14
  6. Run `frontend-harness verify --json` and inspect the JSON result.
@@ -16,6 +16,9 @@ Required loop:
16
16
  8. Before committing, inspect relevant project-local skills under `.frontend-harness/skills/` and follow the repository commit protocol.
17
17
  9. Stop only when `frontend-harness state next --json` returns `done` for the unchanged task scope.
18
18
 
19
+ Invocation note:
20
+ - `frontend-harness ...` is the installed-package command. In the `frontend-harness` source checkout, use `npm run harness -- ...` unless the package has intentionally been installed or linked.
21
+
19
22
  Commit protocol:
20
23
  - Use commit header format: `<type>(<scope>): <short description>`.
21
24
  - Allowed commit types: `feat`, `fix`, `docs`, `style`, `refactor`, `perf`, `test`, `chore`.
@@ -24,13 +27,15 @@ Commit protocol:
24
27
  Boundaries:
25
28
  - Do not treat `frontend-harness` as an agent launcher or runtime wrapper.
26
29
  - Do not edit `.frontend-harness/` generated artifacts manually; let harness commands write them.
27
- - Do not interpret planning or repair decision JSON as shell commands, patch content, scheduler directives, graph execution, skill routing, or RAG instructions.
28
- - Do not put workflow type, execution units, file paths, dependency graph, execution order, or verification commands into agent planning input; the system plan always owns those structures.
30
+ - Do not interpret planning proposals or repair decision JSON as shell commands, patch content, scheduler directives, graph execution, skill routing, or RAG instructions.
31
+ - Planning proposals may suggest workflow, targets, verification, ambiguity, and components only through bounded fields; the system resolver owns final workflow, execution units, file paths, dependency graph, execution order, and verification commands.
29
32
  - Keep durable project knowledge under `.frontend-harness/knowledge/` and project-local skills under `.frontend-harness/skills/` when intentionally authored.
30
33
 
31
34
  Useful commands:
32
35
  - `frontend-harness context --json`
36
+ - `frontend-harness proposal check --json --file <agent-proposal.json>`
33
37
  - `frontend-harness plan --json "<task>"`
38
+ - `frontend-harness plan --json "<task>" --agent-proposal <agent-proposal.json>`
34
39
  - `frontend-harness state record-change <file>`
35
40
  - `frontend-harness state record-change --from-git`
36
41
  - `frontend-harness verify --json`
@@ -39,9 +44,16 @@ Useful commands:
39
44
  - `frontend-harness state explain --json`
40
45
  - `frontend-harness skills list --json`
41
46
  - `frontend-harness skills check --json`
47
+ - `frontend-harness knowledge add --json --kind rule --subject "<subject>" --rule "<rule>"`
42
48
  - `frontend-harness knowledge promote --json --title "<title>" --body "<body>"`
49
+ - `frontend-harness knowledge module --json --title "<title>" --summary "<summary>" --body "<body>"`
50
+ - `frontend-harness knowledge update --json --id <knowledge-id> --source "docs/prd/<file>.md"`
51
+ - `frontend-harness knowledge index --json`
52
+ - `frontend-harness knowledge coverage --json`
53
+ - `frontend-harness knowledge list --json`
54
+ - `frontend-harness knowledge search --json --query "<query>"`
55
+ - `frontend-harness knowledge show --json --id <knowledge-id>`
43
56
  - `frontend-harness knowledge check --json`
44
- - `frontend-harness decision check --json --file <agent-decision.json>`
45
57
  - `frontend-harness units check --json`
46
58
  - `frontend-harness graph check --json`
47
59
  - `frontend-harness repair decision check --json --file <repair-decision.json>`
package/CLAUDE.md CHANGED
@@ -7,8 +7,8 @@ The coding agent runtime remains responsible for its own agent loop, tools, cont
7
7
 
8
8
  Required loop:
9
9
  1. Run `frontend-harness context --json` before planning edits.
10
- 2. If agent planning input is useful, write only bounded hints (`intentSuggestion`, `constraintHints`, `componentHints`) to an agent decision JSON file and validate it with `frontend-harness decision check --json --file <agent-decision.json>`.
11
- 3. Run `frontend-harness plan --json "<task>"` with optional `--agent-decision <agent-decision.json>`, or consume the existing `.frontend-harness/plans/latest.json` before editing.
10
+ 2. If agent planning input is useful, write only bounded planning evidence (`constraintHints`, `componentHints`, and `planningEvidence` with workflow, target, verification, and ambiguity candidates) to an agent proposal JSON file and validate it with `frontend-harness proposal check --json --file <agent-proposal.json>`.
11
+ 3. Run `frontend-harness plan --json "<task>"` with optional `--agent-proposal <agent-proposal.json>`, or consume the existing `.frontend-harness/plans/latest.json` before editing.
12
12
  4. Edit only project files required by the system-owned plan and current task.
13
13
  5. Record every changed project file with `frontend-harness state record-change <file>`.
14
14
  6. Run `frontend-harness verify --json` and inspect the JSON result.
@@ -16,6 +16,9 @@ Required loop:
16
16
  8. Before committing, inspect relevant project-local skills under `.frontend-harness/skills/` and follow the repository commit protocol.
17
17
  9. Stop only when `frontend-harness state next --json` returns `done` for the unchanged task scope.
18
18
 
19
+ Invocation note:
20
+ - `frontend-harness ...` is the installed-package command. In the `frontend-harness` source checkout, use `npm run harness -- ...` unless the package has intentionally been installed or linked.
21
+
19
22
  Commit protocol:
20
23
  - Use commit header format: `<type>(<scope>): <short description>`.
21
24
  - Allowed commit types: `feat`, `fix`, `docs`, `style`, `refactor`, `perf`, `test`, `chore`.
@@ -24,13 +27,15 @@ Commit protocol:
24
27
  Boundaries:
25
28
  - Do not treat `frontend-harness` as an agent launcher or runtime wrapper.
26
29
  - Do not edit `.frontend-harness/` generated artifacts manually; let harness commands write them.
27
- - Do not interpret planning or repair decision JSON as shell commands, patch content, scheduler directives, graph execution, skill routing, or RAG instructions.
28
- - Do not put workflow type, execution units, file paths, dependency graph, execution order, or verification commands into agent planning input; the system plan always owns those structures.
30
+ - Do not interpret planning proposals or repair decision JSON as shell commands, patch content, scheduler directives, graph execution, skill routing, or RAG instructions.
31
+ - Planning proposals may suggest workflow, targets, verification, ambiguity, and components only through bounded fields; the system resolver owns final workflow, execution units, file paths, dependency graph, execution order, and verification commands.
29
32
  - Keep durable project knowledge under `.frontend-harness/knowledge/` and project-local skills under `.frontend-harness/skills/` when intentionally authored.
30
33
 
31
34
  Useful commands:
32
35
  - `frontend-harness context --json`
36
+ - `frontend-harness proposal check --json --file <agent-proposal.json>`
33
37
  - `frontend-harness plan --json "<task>"`
38
+ - `frontend-harness plan --json "<task>" --agent-proposal <agent-proposal.json>`
34
39
  - `frontend-harness state record-change <file>`
35
40
  - `frontend-harness state record-change --from-git`
36
41
  - `frontend-harness verify --json`
@@ -39,9 +44,16 @@ Useful commands:
39
44
  - `frontend-harness state explain --json`
40
45
  - `frontend-harness skills list --json`
41
46
  - `frontend-harness skills check --json`
47
+ - `frontend-harness knowledge add --json --kind rule --subject "<subject>" --rule "<rule>"`
42
48
  - `frontend-harness knowledge promote --json --title "<title>" --body "<body>"`
49
+ - `frontend-harness knowledge module --json --title "<title>" --summary "<summary>" --body "<body>"`
50
+ - `frontend-harness knowledge update --json --id <knowledge-id> --source "docs/prd/<file>.md"`
51
+ - `frontend-harness knowledge index --json`
52
+ - `frontend-harness knowledge coverage --json`
53
+ - `frontend-harness knowledge list --json`
54
+ - `frontend-harness knowledge search --json --query "<query>"`
55
+ - `frontend-harness knowledge show --json --id <knowledge-id>`
43
56
  - `frontend-harness knowledge check --json`
44
- - `frontend-harness decision check --json --file <agent-decision.json>`
45
57
  - `frontend-harness units check --json`
46
58
  - `frontend-harness graph check --json`
47
59
  - `frontend-harness repair decision check --json --file <repair-decision.json>`
package/README.md CHANGED
@@ -44,6 +44,22 @@ npm install frontend-harness --save-dev
44
44
  npx frontend-harness init
45
45
  ```
46
46
 
47
+ In a consumer project, use the installed package entry point: `frontend-harness ...` or `npx frontend-harness ...`.
48
+ In this source checkout, use `npm run harness -- ...` unless the package has intentionally been installed or linked.
49
+
50
+ ## Create a New Vue Project
51
+
52
+ You do not need an existing project or a global `frontend-harness` install to use the Vue scaffold. From any directory with Node.js/npm available, run:
53
+
54
+ ```bash
55
+ npx frontend-harness scaffold --preset vue --target my-vue-app
56
+ cd my-vue-app
57
+ npm install
58
+ npx frontend-harness init
59
+ ```
60
+
61
+ When `frontend-harness` is not already installed locally, `npx` downloads and runs it temporarily. The scaffold command creates the Vue project, and `init` then injects the agent protocol into the generated project.
62
+
47
63
  `init` injects managed protocol blocks into:
48
64
 
49
65
  - `AGENTS.md`
@@ -85,20 +101,24 @@ npx frontend-harness init --dry-run --json
85
101
  npx frontend-harness init --check --json
86
102
  npx frontend-harness protocol check
87
103
  npx frontend-harness protocol check --json
104
+ npx frontend-harness scaffold --preset vue --target my-vue-app
105
+ npx frontend-harness scaffold --preset vue --target my-vue-app --dry-run --json
88
106
  npx frontend-harness clean --json
89
107
  ```
90
108
 
91
109
  Use `init` after installation or package upgrades. Use `protocol check` when you want to verify that `AGENTS.md` and `CLAUDE.md` are current. Use `clean` to remove ignored runtime artifacts while preserving durable project skills, knowledge, and config.
92
110
 
111
+ `scaffold --preset vue` creates a Vue 3 + Vite + TypeScript engineering baseline inspired by the company `freight-admin` stack. It includes Vite config, ESLint/Prettier, Element Plus auto imports, and small `utils`, `storage`, and `service` layers. It intentionally does not create admin pages, routes, dashboards, permissions, or business components.
112
+
93
113
  ## Agent Protocol Commands
94
114
 
95
115
  These commands are intended for Codex / Claude Code through the injected protocol:
96
116
 
97
117
  ```bash
98
118
  frontend-harness context --json
99
- frontend-harness decision check --json --file <agent-decision.json>
119
+ frontend-harness proposal check --json --file <agent-proposal.json>
100
120
  frontend-harness plan --json "<task>"
101
- frontend-harness plan --json "<task>" --agent-decision <agent-decision.json>
121
+ frontend-harness plan --json "<task>" --agent-proposal <agent-proposal.json>
102
122
  frontend-harness state record-change <file>
103
123
  frontend-harness state record-change --from-git
104
124
  frontend-harness verify --json
@@ -130,21 +150,45 @@ The agent should call them automatically while doing work. They persist state un
130
150
  - `frontend_test`
131
151
  - `bug_fix`
132
152
  - `requirement_change`
153
+ - `documentation`
154
+ - `maintenance`
133
155
 
134
156
  Each plan includes required knowledge actions, implementation constraints, and verification focus. This keeps generated UI imports, PRD digestion, Swagger/API work, tests, bug fixes, and requirement changes inside the same controlled policy loop without turning skills into executable runtime commands.
135
157
 
136
- ### Agent Plan Hints
158
+ ### Agent Plan Proposals
137
159
 
138
- The plan is deterministic and system-owned. An agent may provide bounded hints before planning, but those hints cannot change workflow classification, execution units, file paths, dependency graph, scheduling, or verification commands.
160
+ The plan is system-owned. An agent may provide bounded planning evidence before planning; the system resolver validates and consumes safe workflow, target, verification, ambiguity, and component evidence, then records the decision trace and warnings in the final plan.
139
161
 
140
- Valid hint input:
162
+ Valid proposal input:
141
163
 
142
164
  ```json
143
165
  {
144
166
  "contractVersion": 1,
145
- "decision": {
146
- "intentSuggestion": "implement_page",
167
+ "proposal": {
147
168
  "constraintHints": ["Handle loading, empty, and error states."],
169
+ "planningEvidence": {
170
+ "workflowCandidates": [
171
+ {
172
+ "kind": "documentation",
173
+ "confidence": 0.86,
174
+ "reasons": ["The task names README as the documentation target."]
175
+ }
176
+ ],
177
+ "targetCandidates": [
178
+ {
179
+ "path": "README.md",
180
+ "role": "documentation_target",
181
+ "confidence": 0.9
182
+ }
183
+ ],
184
+ "verificationCandidates": [
185
+ {
186
+ "kind": "documentation_review",
187
+ "reason": "The change is documentation-only."
188
+ }
189
+ ],
190
+ "ambiguities": []
191
+ },
148
192
  "componentHints": [
149
193
  {
150
194
  "name": "OrderSearchForm",
@@ -155,14 +199,14 @@ Valid hint input:
155
199
  }
156
200
  ```
157
201
 
158
- Validate the hint file before planning:
202
+ Validate the proposal file before planning:
159
203
 
160
204
  ```bash
161
- frontend-harness decision check --json --file agent-decision.json
162
- frontend-harness plan --json "<task>" --agent-decision agent-decision.json
205
+ frontend-harness proposal check --json --file agent-proposal.json
206
+ frontend-harness plan --json "<task>" --agent-proposal agent-proposal.json
163
207
  ```
164
208
 
165
- The final plan still owns components, units, file paths, dependency graph, and verification requirements.
209
+ The final plan still owns execution units, concrete file paths, dependency graph, execution order, and verification requirements. Component hints only influence UI workflows; documentation and maintenance work use project or document boundaries instead of invented frontend component files.
166
210
 
167
211
  ## Advisory Commands
168
212
 
@@ -171,10 +215,19 @@ These commands expose project-local knowledge and workflow guidance as provenanc
171
215
  ```bash
172
216
  frontend-harness skills list --json
173
217
  frontend-harness skills check --json
218
+ frontend-harness knowledge add --json --kind rule --subject "<subject>" --rule "<rule>"
174
219
  frontend-harness knowledge promote --json --title "<title>" --body "<body>"
220
+ frontend-harness knowledge update --json --id <knowledge-id> --source "docs/prd/<file>.md"
221
+ frontend-harness knowledge index --json
222
+ frontend-harness knowledge coverage --json
223
+ frontend-harness knowledge list --json
224
+ frontend-harness knowledge search --json --query "<query>"
225
+ frontend-harness knowledge show --json --id <knowledge-id>
175
226
  frontend-harness knowledge check --json
176
227
  ```
177
228
 
229
+ Prefer `knowledge add` for PRD digestion. It stores small atomic entries such as rules, workflows, permissions, terms, decisions, conventions, and pitfalls with `source_paths` pointing back to the original PRD. Use `knowledge update` when a requirement changes so existing cards are merged instead of duplicated. `knowledge index` writes `.frontend-harness/knowledge/index.json`, a deterministic manifest grouped by PRD source, card id, scope, and tag. `knowledge coverage` verifies active PRD semantics remain traceable to source documents. `knowledge promote` remains available for authored Markdown cards, but raw PRD prose should stay in source documents instead of being copied into knowledge.
230
+
178
231
  ## Runtime Boundary
179
232
 
180
233
  The boundary is strict:
@@ -243,6 +296,7 @@ Run the CLI from this source checkout without linking:
243
296
  npm run harness -- context --json
244
297
  npm run harness -- plan --json "<task>"
245
298
  npm run harness -- verify --json
299
+ npm run harness -- scaffold --preset vue --target tmp-vue-app --dry-run --json
246
300
  ```
247
301
 
248
302
  The bare `frontend-harness ...` command is the installed-package entry point for consumer projects. In this repository, use `npm run harness -- ...` unless you intentionally install or link the package.
package/dist/cli/index.js CHANGED
@@ -1,12 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import { buildContext } from "../runtime/context.js";
3
3
  import { checkComponentGraph } from "../runtime/graph.js";
4
- import { checkKnowledge, promoteKnowledge } from "../runtime/knowledge.js";
5
- import { checkAgentPlanningDecision, createPlan } from "../runtime/plan.js";
4
+ import { addKnowledge, checkKnowledge, checkKnowledgeCoverage, createModuleKnowledge, indexKnowledge, listKnowledge, promoteKnowledge, searchKnowledge, showKnowledge, updateKnowledge } from "../runtime/knowledge.js";
5
+ import { checkAgentPlanningProposal, createPlan } from "../runtime/plan.js";
6
6
  import { publicHelpLines } from "../runtime/command-taxonomy.js";
7
7
  import { cleanRuntimeArtifacts } from "../runtime/clean.js";
8
8
  import { checkRepairDecision } from "../runtime/repair-decision.js";
9
9
  import { createRepairPacket } from "../runtime/repair-packet.js";
10
+ import { scaffoldProject } from "../runtime/scaffold.js";
10
11
  import { explainState } from "../runtime/state-explain.js";
11
12
  import { checkProtocol, initializeProtocol } from "../runtime/protocol-init.js";
12
13
  import { checkSkills, discoverSkills } from "../runtime/skills.js";
@@ -39,7 +40,7 @@ async function main() {
39
40
  taskText: parsed.taskText,
40
41
  ...optionalString("prd", parsed.flags["prd"]),
41
42
  ...optionalString("ui", parsed.flags["ui"]),
42
- ...optionalString("agentDecision", parsed.flags["agent-decision"])
43
+ ...optionalString("agentProposal", parsed.flags["agent-proposal"])
43
44
  }), parsed.json);
44
45
  return;
45
46
  case "verify": {
@@ -69,9 +70,9 @@ async function main() {
69
70
  process.exitCode = result.status === "failed" ? 1 : 0;
70
71
  return;
71
72
  }
72
- case "decision": {
73
- requireSubcommand(parsed, "check", "decision requires subcommand: check");
74
- const result = checkAgentPlanningDecision(projectRoot, stringFlag(parsed.flags["file"]));
73
+ case "proposal": {
74
+ requireSubcommand(parsed, "check", "proposal requires subcommand: check");
75
+ const result = checkAgentPlanningProposal(projectRoot, stringFlag(parsed.flags["file"]));
75
76
  output(result, parsed.json);
76
77
  process.exitCode = result.status === "failed" ? 1 : 0;
77
78
  return;
@@ -79,6 +80,14 @@ async function main() {
79
80
  case "repair":
80
81
  handleRepair(projectRoot, parsed);
81
82
  return;
83
+ case "scaffold":
84
+ output(scaffoldProject(projectRoot, {
85
+ preset: scaffoldPresetFlag(parsed.flags["preset"]),
86
+ target: stringFlag(parsed.flags["target"]) ?? parsed.positionals[1] ?? "",
87
+ dryRun: Boolean(parsed.flags["dry-run"]),
88
+ force: Boolean(parsed.flags["force"])
89
+ }), parsed.json);
90
+ return;
82
91
  case "skills":
83
92
  handleSkills(projectRoot, parsed);
84
93
  return;
@@ -130,8 +139,9 @@ function handleState(projectRoot, parsed) {
130
139
  return;
131
140
  }
132
141
  if (parsed.subcommand === "record-change") {
133
- const files = parsed.flags["from-git"] ? changedFilesFromGit(projectRoot) : parsed.positionals.slice(2);
134
- if (files.length === 0) {
142
+ const fromGit = Boolean(parsed.flags["from-git"]);
143
+ const files = fromGit ? changedFilesFromGit(projectRoot, { excludePlanBaseline: true }) : parsed.positionals.slice(2);
144
+ if (!fromGit && files.length === 0) {
135
145
  throw new Error("state record-change requires <file> or --from-git");
136
146
  }
137
147
  output(recordChangedFiles(projectRoot, files), parsed.json);
@@ -169,25 +179,114 @@ function handleSkills(projectRoot, parsed) {
169
179
  throw new Error("skills requires subcommand: list or check");
170
180
  }
171
181
  function handleKnowledge(projectRoot, parsed) {
182
+ if (parsed.subcommand === "add") {
183
+ output(addKnowledge(projectRoot, {
184
+ ...optionalString("id", parsed.flags["id"]),
185
+ ...optionalString("kind", parsed.flags["kind"]),
186
+ ...optionalString("subject", parsed.flags["subject"]),
187
+ ...optionalString("summary", parsed.flags["summary"]),
188
+ ...optionalString("rule", parsed.flags["rule"]),
189
+ ...optionalString("workflow", parsed.flags["workflow"]),
190
+ ...optionalString("permission", parsed.flags["permission"]),
191
+ ...optionalString("term", parsed.flags["term"]),
192
+ ...optionalString("note", parsed.flags["note"]),
193
+ ...optionalString("coverage", parsed.flags["coverage"]),
194
+ ...optionalString("anchor", parsed.flags["anchor"]),
195
+ ...optionalString("verification", parsed.flags["verification"]),
196
+ ...optionalString("scope", parsed.flags["scope"]),
197
+ ...optionalString("tags", parsed.flags["tags"]),
198
+ ...optionalString("status", parsed.flags["status"]),
199
+ ...optionalString("stability", parsed.flags["stability"]),
200
+ ...optionalString("source", parsed.flags["source"])
201
+ }), parsed.json);
202
+ return;
203
+ }
172
204
  if (parsed.subcommand === "promote") {
173
205
  output(promoteKnowledge(projectRoot, {
174
206
  ...optionalString("title", parsed.flags["title"]),
175
207
  ...optionalString("body", parsed.flags["body"]),
176
208
  ...optionalString("type", parsed.flags["type"]),
177
209
  ...optionalString("scope", parsed.flags["scope"]),
210
+ ...optionalString("tags", parsed.flags["tags"]),
178
211
  ...optionalString("status", parsed.flags["status"]),
179
212
  ...optionalString("stability", parsed.flags["stability"]),
180
213
  ...optionalString("source", parsed.flags["source"])
181
214
  }), parsed.json);
182
215
  return;
183
216
  }
217
+ if (parsed.subcommand === "module") {
218
+ output(createModuleKnowledge(projectRoot, {
219
+ ...optionalString("id", parsed.flags["id"]),
220
+ ...optionalString("title", parsed.flags["title"]),
221
+ ...optionalString("summary", parsed.flags["summary"]),
222
+ ...optionalString("body", parsed.flags["body"]),
223
+ ...optionalString("scope", parsed.flags["scope"]),
224
+ ...optionalString("tags", parsed.flags["tags"]),
225
+ ...optionalString("status", parsed.flags["status"]),
226
+ ...optionalString("stability", parsed.flags["stability"]),
227
+ ...optionalString("source", parsed.flags["source"]),
228
+ ...optionalString("related", parsed.flags["related"])
229
+ }), parsed.json);
230
+ return;
231
+ }
232
+ if (parsed.subcommand === "update") {
233
+ output(updateKnowledge(projectRoot, {
234
+ ...optionalString("id", parsed.flags["id"]),
235
+ ...optionalString("path", parsed.flags["path"]),
236
+ ...optionalString("title", parsed.flags["title"]),
237
+ ...optionalString("summary", parsed.flags["summary"]),
238
+ ...optionalString("status", parsed.flags["status"]),
239
+ ...optionalString("stability", parsed.flags["stability"]),
240
+ ...optionalString("scope", parsed.flags["scope"]),
241
+ ...optionalString("tags", parsed.flags["tags"]),
242
+ ...optionalString("source", parsed.flags["source"]),
243
+ ...optionalString("related", parsed.flags["related"]),
244
+ ...optionalString("verification", parsed.flags["verification"]),
245
+ ...optionalString("coverage", parsed.flags["coverage"]),
246
+ ...optionalString("anchor", parsed.flags["anchor"]),
247
+ ...optionalString("rule", parsed.flags["rule"]),
248
+ ...optionalString("workflow", parsed.flags["workflow"]),
249
+ ...optionalString("permission", parsed.flags["permission"]),
250
+ ...optionalString("term", parsed.flags["term"]),
251
+ ...optionalString("note", parsed.flags["note"]),
252
+ ...optionalString("body", parsed.flags["body"])
253
+ }), parsed.json);
254
+ return;
255
+ }
256
+ if (parsed.subcommand === "index") {
257
+ output(indexKnowledge(projectRoot), parsed.json);
258
+ return;
259
+ }
260
+ if (parsed.subcommand === "coverage") {
261
+ const result = checkKnowledgeCoverage(projectRoot);
262
+ output(result, parsed.json);
263
+ process.exitCode = result.status === "failed" ? 1 : 0;
264
+ return;
265
+ }
266
+ if (parsed.subcommand === "list") {
267
+ output(listKnowledge(projectRoot, {
268
+ includeDeprecated: Boolean(parsed.flags["include-deprecated"])
269
+ }), parsed.json);
270
+ return;
271
+ }
272
+ if (parsed.subcommand === "search") {
273
+ output(searchKnowledge(projectRoot, stringFlag(parsed.flags["query"]), {
274
+ includeDeprecated: Boolean(parsed.flags["include-deprecated"]),
275
+ ...optionalNumber("limit", parsed.flags["limit"])
276
+ }), parsed.json);
277
+ return;
278
+ }
279
+ if (parsed.subcommand === "show") {
280
+ output(showKnowledge(projectRoot, stringFlag(parsed.flags["id"]) ?? stringFlag(parsed.flags["path"])), parsed.json);
281
+ return;
282
+ }
184
283
  if (parsed.subcommand === "check") {
185
284
  const result = checkKnowledge(projectRoot);
186
285
  output(result, parsed.json);
187
286
  process.exitCode = result.status === "failed" ? 1 : 0;
188
287
  return;
189
288
  }
190
- throw new Error("knowledge requires subcommand: promote or check");
289
+ throw new Error("knowledge requires subcommand: add, promote, module, update, index, coverage, list, search, show, or check");
191
290
  }
192
291
  function requireSubcommand(parsed, subcommand, message) {
193
292
  if (parsed.subcommand !== subcommand) {
@@ -204,7 +303,7 @@ function parseArgs(args) {
204
303
  }
205
304
  if (arg.startsWith("--")) {
206
305
  const key = arg.slice(2);
207
- if (["json", "from-git", "dry-run", "check", "help"].includes(key)) {
306
+ if (["json", "from-git", "dry-run", "check", "help", "force", "include-deprecated"].includes(key)) {
208
307
  flags[key] = true;
209
308
  }
210
309
  else {
@@ -287,6 +386,45 @@ function renderHuman(value) {
287
386
  const skills = value["skills"];
288
387
  return [`skills: ${skills.length}`, ...skills.map((skill) => `- ${String(skill.name ?? "unknown")}: ${String(skill.title ?? "unknown")} (${String(skill.path ?? "unknown")})`)].join("\n");
289
388
  }
389
+ if ("cards" in value && Array.isArray(value["cards"])) {
390
+ const cards = value["cards"];
391
+ return [
392
+ `cards: ${cards.length}`,
393
+ ...cards.map((card) => {
394
+ const score = card.score === undefined ? "" : ` score=${String(card.score)}`;
395
+ return `- ${String(card.id ?? "unknown")}: ${String(card.title ?? "unknown")} (${String(card.path ?? "unknown")})${score}`;
396
+ })
397
+ ].join("\n");
398
+ }
399
+ if ("card" in value && "body" in value) {
400
+ const shown = value;
401
+ return [
402
+ `id: ${String(shown.card?.id ?? "unknown")}`,
403
+ `title: ${String(shown.card?.title ?? "unknown")}`,
404
+ `path: ${String(shown.card?.path ?? "unknown")}`,
405
+ "",
406
+ String(shown.body ?? "")
407
+ ].join("\n");
408
+ }
409
+ if ("artifactPath" in value && "prdSourceCount" in value) {
410
+ const index = value;
411
+ return [
412
+ `artifactPath: ${String(index.artifactPath ?? "unknown")}`,
413
+ `cardCount: ${String(index.cardCount ?? 0)}`,
414
+ `prdSourceCount: ${String(index.prdSourceCount ?? 0)}`,
415
+ `uncoveredPrdSourceCount: ${String(index.uncoveredPrdSourceCount ?? 0)}`
416
+ ].join("\n");
417
+ }
418
+ if ("coveredPrdSourceCount" in value && "uncoveredPrdSources" in value) {
419
+ const coverage = value;
420
+ return [
421
+ `status: ${String(coverage.status ?? "unknown")}`,
422
+ `prdSourceCount: ${String(coverage.prdSourceCount ?? 0)}`,
423
+ `coveredPrdSourceCount: ${String(coverage.coveredPrdSourceCount ?? 0)}`,
424
+ `uncoveredPrdSources: ${Array.isArray(coverage.uncoveredPrdSources) ? coverage.uncoveredPrdSources.length : 0}`,
425
+ `cardsWithoutSource: ${Array.isArray(coverage.cardsWithoutSource) ? coverage.cardsWithoutSource.length : 0}`
426
+ ].join("\n");
427
+ }
290
428
  if ("path" in value && "title" in value) {
291
429
  const knowledge = value;
292
430
  return [`path: ${String(knowledge.path ?? "unknown")}`, `title: ${String(knowledge.title ?? "unknown")}`, `createdAt: ${String(knowledge.createdAt ?? "unknown")}`].join("\n");
@@ -303,7 +441,7 @@ function renderHuman(value) {
303
441
  if ("knowledgeRoot" in value && "cardCount" in value) {
304
442
  return renderCheck(value, "cardCount");
305
443
  }
306
- if ("artifactPath" in value && "decision" in value) {
444
+ if ("artifactPath" in value && ("proposal" in value || "decision" in value)) {
307
445
  return renderCheck(value, null);
308
446
  }
309
447
  if ("contractVersion" in value && "failedCommands" in value) {
@@ -331,6 +469,16 @@ function renderHuman(value) {
331
469
  `kept: ${Array.isArray(clean.kept) ? clean.kept.length : 0}`
332
470
  ].join("\n");
333
471
  }
472
+ if ("preset" in value && "files" in value && Array.isArray(value["files"])) {
473
+ const scaffold = value;
474
+ return [
475
+ `status: ${String(scaffold.status ?? "unknown")}`,
476
+ `preset: ${String(scaffold.preset ?? "unknown")}`,
477
+ `target: ${String(scaffold.target ?? "unknown")}`,
478
+ `projectName: ${String(scaffold.projectName ?? "unknown")}`,
479
+ `files: ${scaffold.files.length}`
480
+ ].join("\n");
481
+ }
334
482
  if ("status" in value) {
335
483
  return `status: ${String(value["status"])}`;
336
484
  }
@@ -357,6 +505,13 @@ function printHelp() {
357
505
  function stringFlag(value) {
358
506
  return typeof value === "string" ? value : undefined;
359
507
  }
508
+ function scaffoldPresetFlag(value) {
509
+ const preset = typeof value === "string" ? value : "vue";
510
+ if (preset !== "vue") {
511
+ throw new Error(`Unsupported scaffold preset: ${preset}`);
512
+ }
513
+ return preset;
514
+ }
360
515
  function optionalString(key, value) {
361
516
  return typeof value === "string" ? { [key]: value } : {};
362
517
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}