roadmapsmith 0.9.29 → 0.9.31

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "roadmapsmith",
3
- "version": "0.9.29",
4
- "description": "One-command evidence-backed ROADMAP.md generator and sync tool for AI coding agents, with shared RoadmapSmith plugin skills for Codex and Claude plus the roadmapsmith status readiness surface.",
3
+ "version": "0.9.31",
4
+ "description": "Evidence-backed ROADMAP.md workflows for AI coding agents, with canonical RoadmapSmith status and maintain surfaces plus advanced sync/generate tools and legacy compatibility aliases.",
5
5
  "author": {
6
6
  "name": "PapiScholz"
7
7
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "roadmapsmith",
3
- "version": "0.9.29",
4
- "description": "One-command evidence-backed ROADMAP.md generator and sync tool for AI coding agents, with shared RoadmapSmith plugin skills for Codex and Claude plus the roadmapsmith status readiness surface.",
3
+ "version": "0.9.31",
4
+ "description": "Evidence-backed ROADMAP.md workflows for AI coding agents, with canonical RoadmapSmith status and maintain surfaces plus advanced sync/generate tools and legacy compatibility aliases.",
5
5
  "author": {
6
6
  "name": "PapiScholz"
7
7
  },
@@ -35,7 +35,7 @@
35
35
  "interface": {
36
36
  "displayName": "RoadmapSmith",
37
37
  "shortDescription": "Evidence-backed roadmap workflows for AI coding agents",
38
- "longDescription": "Install RoadmapSmith in Codex to expose the shared skills bundle for zero-mode onboarding, existing-repo maintenance, roadmap discovery, and evidence-backed validation while keeping the CLI and Claude bundle surfaces aligned.",
38
+ "longDescription": "Install RoadmapSmith in Codex to expose the shared skills bundle for zero-mode onboarding, existing-repo maintenance, roadmap discovery, evidence-backed validation, and compatibility-aware host readiness while keeping the CLI and Claude bundle surfaces aligned.",
39
39
  "developerName": "PapiScholz",
40
40
  "category": "Developer Tools",
41
41
  "capabilities": [
package/README.md CHANGED
@@ -1,390 +1,164 @@
1
- <p align="center">
2
- <img src="https://raw.githubusercontent.com/PapiScholz/roadmapsmith/main/assets/roadmapsmith-logo.png" alt="RoadmapSmith logo" width="180">
3
- </p>
1
+ # RoadmapSmith CLI Contract
4
2
 
5
- <h1 align="center">RoadmapSmith</h1>
3
+ This package owns the RoadmapSmith CLI, validator, sync engine, host setup files, and the shared command-surface contract consumed by the root bundle docs, `skills.json`, and both plugin manifests.
6
4
 
7
- Production-grade roadmap generator and sync tool for agent-driven projects.
5
+ ## Public Contract
8
6
 
9
- ## Install
7
+ ### Canonical
10
8
 
11
- ### CLI
9
+ - `roadmapsmith setup`
10
+ - `roadmapsmith zero`
11
+ - `roadmapsmith maintain`
12
+ - `roadmapsmith status [--json]`
13
+ - `roadmapsmith validate [--json] [--strict]`
14
+ - `roadmapsmith update [--task <stable-id> --evidence "<single-line evidence>"]`
12
15
 
13
- ```bash
14
- npm install -g roadmapsmith
15
- roadmapsmith setup
16
- roadmapsmith zero
17
- roadmapsmith maintain
18
- ```
19
-
20
- Slash entrypoints are also supported from the CLI and launcher, for example: `roadmapsmith /roadmap`, `roadmapsmith /roadmap-zero`, `roadmapsmith /roadmap-maintain`, `roadmapsmith /roadmap-update`, and the deprecated legacy router form `roadmapsmith /roadmap-sync validate`.
21
- The generated VS Code task layer now resolves Node automatically where possible; if it cannot, RoadmapSmith prints a readable runtime diagnostic instead of a dead task.
22
- `RoadmapSmith: Status` now treats "ready" as runnable task UX, not merely generated files.
23
-
24
- ### Agent Skill
16
+ ### Advanced
25
17
 
26
- ```bash
27
- npx skills add PapiScholz/roadmapsmith --skill '*' -a claude-code
28
- ```
18
+ - `roadmapsmith init`
19
+ - `roadmapsmith generate`
20
+ - `roadmapsmith generate --full-regen`
21
+ - `roadmapsmith sync`
22
+ - `roadmapsmith sync --audit`
23
+ - `roadmapsmith sync` as the advanced alias for `roadmapsmith update`
29
24
 
30
- This is the recommended Claude Code install path for native GUI slash commands such as `/roadmap`, `/roadmap-zero`, `/roadmap-maintain`, `/roadmap-status`, `/roadmap-init`, `/roadmap-generate`, `/roadmap-validate`, `/roadmap-update`, `/roadmap-audit`, and `/roadmap-setup`.
31
- `roadmap-sync` is deprecated compatibility only; install the full bundle for new workflows and use `/roadmap-maintain` or `/roadmap-update`.
32
- The skill bundle does not install the CLI and it does not create visible VS Code actions by itself.
33
- The published `roadmapsmith` package/plugin surface now also ships the shared bundle files for both hosts (`skills.json`, `skills/*`, `.codex-plugin/plugin.json`, `.claude-plugin/plugin.json`) for downstream host installers, but consuming the CLI alone still does not auto-register native Codex or Claude GUI commands.
25
+ ### Compatibility only
34
26
 
35
- ## Updating
27
+ - `roadmapsmith doctor`
28
+ - `roadmapsmith regenerate`
29
+ - `roadmapsmith /road <action>`
30
+ - `roadmapsmith /roadmap-sync <action>`
31
+ - deprecated direct aliases such as `/maintain` or `/status`
36
32
 
37
- Update the CLI based on how it was installed:
33
+ `status` is the public readiness command. `doctor` remains a compatibility alias to the same payload.
38
34
 
39
- ```bash
40
- # Global npm install
41
- npm install -g roadmapsmith@latest
35
+ `update` is the public checklist-refresh and verified single-task completion family. `sync` remains executable as the advanced alias for the refresh path.
42
36
 
43
- # Project dependency
44
- npm install roadmapsmith@latest
45
-
46
- # One-off execution without installing
47
- npx roadmapsmith@latest validate --json
48
- ```
37
+ `generate --full-regen` is the only public destructive rebuild path. `regenerate` remains executable but prints a deprecation warning.
49
38
 
50
- The Claude skill bundle is separate from the CLI. Re-running the skills install updates the Claude-facing instructions, but it does not update the `roadmapsmith` npm binary or the generated VS Code host files:
51
-
52
- ```bash
53
- npx skills add PapiScholz/roadmapsmith --skill '*' -a claude-code
54
- ```
55
-
56
- After updating the Claude skill bundle, run `/reload-skills` and, if applicable, `/reload-plugins`.
57
- After updating the CLI, rerun `roadmapsmith setup` in repositories where you want the latest VS Code tasks, task wrappers, launcher behavior, or Claude hook template. Published npm/plugin artifacts now include the Codex and Claude bundle files for downstream host loaders, but native UX still depends on the host loading the correct surface.
58
-
59
- Fixes are available through `@latest` after the automated release path completes on `main`. In this repo, a successful push to `main` now opens or refreshes an automated `release/vX.Y.Z` PR, that PR squashes back into `main` as the bot release commit `chore(release): vX.Y.Z`, and the follow-up `main` run publishes the new patch version. Before that completes, install from a local checkout or a packed tarball for testing.
60
-
61
- ## Operating Modes
39
+ ## Modes
62
40
 
63
41
  ### Zero Mode
64
42
 
65
- Agent-guided discovery for empty or low-context repositories. The developer has a product idea but no implementation files, no stack decision, and no ROADMAP.md yet.
66
-
67
- Run `roadmapsmith setup` first if you want visible VS Code tasks. `roadmapsmith zero` is the one-command entrypoint: it runs the terminal interview, creates governance files when needed, and generates the first roadmap.
68
-
69
- ```bash
70
- roadmapsmith setup
71
- roadmapsmith zero
72
- ```
43
+ Use for empty or low-context repositories. `roadmapsmith zero` runs the terminal interview, updates config, and generates the first roadmap.
73
44
 
74
45
  ### Sync/Audit Mode
75
46
 
76
- Repository-backed roadmap generation, validation, and synchronization. Use when the repository already has code, tests, docs, TODOs, or an existing ROADMAP.md.
77
-
78
- ```bash
79
- roadmapsmith setup
80
- roadmapsmith maintain
81
- ```
82
-
83
- ## Recommended Daily Flow
84
-
85
- Use the public entrypoints first:
86
-
87
- ```bash
88
- roadmapsmith setup
89
- roadmapsmith zero # empty repo
90
- roadmapsmith maintain # existing repo
91
- ```
47
+ Use for repositories that already contain code, tests, docs, TODOs, or an existing roadmap. `roadmapsmith maintain` is the preserve-first one-command flow.
92
48
 
93
- Use the lower-level commands only when you want manual control over generation, validation, or sync.
49
+ ## Verification Model
94
50
 
95
- ## Deterministic completion
96
-
97
- For unchecked implementation tasks, related files and matching test names are candidate signals only. `maintain` completes a task only from explicit `Evidence:` or typed child verification metadata:
98
-
99
- ```markdown
100
- - [ ] Enable ESLint builds
101
- - Verify: kind=property; file=next.config.js; key=ignoreDuringBuilds; equals=false
102
- - [ ] Prevent double submit
103
- - Verify: kind=behavior; source=src/login.tsx; test=src/__tests__/login.test.tsx; case=disables submit; trigger=fireEvent.click; assertion=toBeDisabled
104
- ```
105
-
106
- `contains`, `property`, and `endpoints` are static checks. A behavioral check also requires a fresh `validation.testReports` entry using `format: "vitest-json"`; RoadmapSmith reads reports but never executes tests. Missing proof produces a `Verification recipe:` and a warning rather than a checked box. A fresh passing report is persisted as `Test evidence: file=<test>; case=<case>; status=PASS; verifiedAt=<ISO timestamp>` and becomes stale when it predates the referenced source or test file.
107
-
108
- ## Host Support Today
109
-
110
- | Host | Current support |
111
- |---|---|
112
- | Claude Code | Supported through the full RoadmapSmith skill bundle for native GUI slash commands, plus `roadmapsmith setup` for visible VS Code tasks and the optional repo-local Claude hook. |
113
- | Codex / Codex CLI | Supported through the native Codex plugin surface (`.codex-plugin/plugin.json` + repo marketplace) and the visible VS Code task workflow after `roadmapsmith setup`. |
114
- | CI | Use disposable checkouts if you run `sync --audit`, because it still mutates the roadmap today. |
115
- | Other hosts | Use the skill plus manual CLI commands. |
116
-
117
- If Node is installed outside PATH, set `ROADMAPSMITH_NODE` to a working `node` executable before using the generated VS Code tasks. If the globally installed `roadmapsmith` shim itself cannot resolve Node, bypass it in PowerShell with:
118
-
119
- ```powershell
120
- & "C:\Program Files\nodejs\node.exe" "$env:APPDATA\npm\node_modules\roadmapsmith\bin\cli.js" <command>
121
- ```
51
+ RoadmapSmith separates candidate discovery from completion.
122
52
 
123
- ---
53
+ Candidate discovery may use:
124
54
 
125
- ## Commands
55
+ - explicit path hints
56
+ - symbol matches
57
+ - code-token overlap
58
+ - task-path overlap
59
+ - test references
126
60
 
127
- ```bash
128
- roadmapsmith /roadmap
129
- roadmapsmith /roadmap-zero
130
- roadmapsmith /roadmap-maintain
131
- roadmapsmith /roadmap-update
132
- roadmapsmith /roadmap-sync validate
133
- roadmapsmith setup [--project-root <path>] [--config <path>] [--editor vscode] [--hosts <codex,claude>] [--dry-run]
134
- roadmapsmith zero [--project-root <path>] [--config <path>]
135
- roadmapsmith maintain [--project-root <path>] [--config <path>] [--roadmap-file <path>] [--full-regen]
136
- roadmapsmith init [--roadmap-file <path>] [--agents-file <path>] [--dry-run]
137
- roadmapsmith generate [--project-root <path>] [--config <path>] [--roadmap-file <path>] [--dry-run] [--audit] [--full-regen]
138
- roadmapsmith sync [--roadmap-file <path>] [--project-root <path>] [--config <path>] [--dry-run] [--audit]
139
- roadmapsmith update --task <stable-id> --evidence <text> [--roadmap-file <path>] [--project-root <path>] [--config <path>] [--dry-run]
140
- roadmapsmith validate [--roadmap-file <path>] [--project-root <path>] [--config <path>] [--task <id|text>] [--json]
141
- roadmapsmith status [--roadmap-file <path>] [--project-root <path>] [--config <path>] [--json]
142
- roadmapsmith doctor [--roadmap-file <path>] [--project-root <path>] [--config <path>] [--json] # compatibility alias
143
- ```
61
+ Unchecked implementation tasks complete only from:
144
62
 
145
- ## Claude Code native slash commands
63
+ - valid explicit `Evidence:`
64
+ - `Verify: kind=contains`
65
+ - `Verify: kind=property`
66
+ - `Verify: kind=endpoints`
67
+ - `Verify: kind=behavior` plus fresh configured test-report proof
146
68
 
147
- Install the full skill bundle for Claude Code:
69
+ Behavioral tasks without explicit proof remain warnings. When the engine can generate exactly one task-specific verification recipe, sync can render it as `Verification recipe:`. If the recipe is global, duplicated, off-domain, or otherwise non-specific, it is suppressed.
148
70
 
149
- ```bash
150
- npx skills add PapiScholz/roadmapsmith --skill '*' -a claude-code
151
- ```
71
+ Generated outputs such as `dist-electron/`, `dist/`, `build/`, `out/`, `.next/`, and `coverage/` are excluded from heuristic evidence discovery.
152
72
 
153
- Then reload the session:
73
+ Auxiliary tooling paths such as `scripts/` and `tools/` are excluded from heuristic scoring unless the task explicitly references them.
154
74
 
155
- 1. Run `/reload-skills`
156
- 2. If RoadmapSmith was installed through a Claude plugin, also run `/reload-plugins`
157
- 3. Confirm the slash menu shows `/roadmap`, `/roadmap-zero`, `/roadmap-maintain`, `/roadmap-status`, `/roadmap-init`, `/roadmap-generate`, `/roadmap-validate`, `/roadmap-update`, `/roadmap-audit`, and `/roadmap-setup`
75
+ ## Strict Validation
158
76
 
159
- Native Claude GUI slash commands come from the installed skill bundle. CLI slash routing such as `roadmapsmith /roadmap` is a separate surface and does not populate the Claude GUI menu by itself. The packed npm artifact now mirrors that bundle on disk so published plugin/distribution flows can expose the same slash set without depending on a source checkout.
77
+ `roadmapsmith validate --strict` is the independent audit path.
160
78
 
161
- ## Codex native plugin install
79
+ In strict mode:
162
80
 
163
- RoadmapSmith now exposes a native Codex plugin manifest at `.codex-plugin/plugin.json` and a repo-local marketplace at `.agents/plugins/marketplace.json`.
81
+ - candidate discovery still narrows where to look
82
+ - PASS may come only from explicit `Evidence:` or passing typed `Verify:`
83
+ - file existence, domain overlap, token proximity, and test-file presence alone never produce PASS
84
+ - preserved checked-state behavior is disabled
164
85
 
165
- From the repository root:
86
+ Recommended audit sequence:
166
87
 
167
88
  ```bash
168
- codex plugin marketplace add .
89
+ roadmapsmith maintain
90
+ roadmapsmith validate --strict --json
169
91
  ```
170
92
 
171
- Then restart Codex, open the plugin directory, install `roadmapsmith` from the `RoadmapSmith Local Plugins` marketplace, and confirm the plugin resolves the shared `./skills/` bundle.
93
+ `sync --audit` remains an advanced mutating summary, not an independent audit engine.
172
94
 
173
- Codex native plugin support means install/enable discovery inside Codex. It is separate from Claude-specific `/reload-skills` behavior, and the VS Code task layer remains the fallback/manual workflow when you are not using the plugin directory.
95
+ ## Slash And Host Surfaces
174
96
 
175
- `roadmapsmith status --json` now reports native slash surfaces separately from the VS Code task layer (`doctor --json` remains a compatibility alias):
97
+ Canonical native slash surfaces:
176
98
 
177
- - `claudeGui`
178
- - `claudeCli`
179
- - `codexGui`
180
- - `codexCli`
99
+ - `/roadmap`
100
+ - `/roadmap-zero`
101
+ - `/roadmap-maintain`
102
+ - `/roadmap-status`
103
+ - `/roadmap-validate`
104
+ - `/roadmap-update`
105
+ - `/roadmap-setup`
181
106
 
182
- Each surface includes the detected source, expected slash commands, missing commands, and duplicate registrations such as a second `/roadmap-sync` coming from a legacy user skill install.
107
+ Advanced native slash surfaces:
183
108
 
184
- If Codex shows `Roadmap Sync` twice, the usual cause is a collision between:
109
+ - `/roadmap-init`
110
+ - `/roadmap-generate`
111
+ - `/roadmap-audit`
185
112
 
186
- - `~/.agents/skills/roadmap-sync`
187
- - the installed `roadmapsmith` Codex plugin
113
+ Compatibility-only slash surfaces:
188
114
 
189
- The repo does not remove user-global skills automatically. Use the `doctor` output to confirm the duplicate and then disable or remove the legacy skill if you want a single `/roadmap-sync` entry.
115
+ - `/roadmap-sync <action>`
116
+ - `/road <action>`
117
+ - deprecated direct aliases
190
118
 
191
- ## Behavior
119
+ Native-bundle readiness is computed from canonical surfaces only. Missing advanced labels or duplicate legacy `/roadmap-sync` installs are warnings, not canonical-health failures.
192
120
 
193
- - Generates deterministic `ROADMAP.md` with fixed section order.
194
- - Uses stable task IDs: `<!-- rs:task=<slug> -->`.
195
- - Sync marks `[x]` only when validation passes.
196
- - `sync --audit` currently runs sync and then prints a mismatch summary; it is not yet a dedicated read-only audit mode.
197
- - For unchecked implementation tasks, heuristic code/test/path matches are candidates only. Completion requires explicit `Evidence:`, a trusted validator rule, or typed deterministic `Verify:` metadata.
198
- - `Verify:` supports `contains`, `property`, `endpoints`, and `behavior`; behavior additionally requires a fresh configured Vitest JSON report or a fresh `Test evidence:` annotation.
199
- - Validation failures in sync write warning lines:
200
- - `- ⚠️ attempted but validation failed: <reason>` when there is concrete attempt evidence
201
- - `- ⚠️ no implementation evidence found yet: <reason>` when there is not
202
- - Preserves unmanaged markdown content by updating only the managed roadmap block.
203
- - `validate` emits structured diagnostics in human and JSON output, including `FAIL:NOT_IMPLEMENTED`, `FAIL:NO_TEST`, `FAIL:MISSING_REFERENCE`, `FAIL:WRONG_VALUE`, `FAIL:PARTIAL`, `WARN:STALE_EVIDENCE`, `WARN:REQUIRES_HUMAN_EVIDENCE`, `WARN:NO_STATIC_SIGNAL`, `WARN:HAS_EXPLICIT_PENDING`, and `WARN:STALE_TEST_REPORT`.
204
- - `update --task <id> --evidence <text>` writes only when the evidence validates at high confidence; otherwise the roadmap is unchanged.
121
+ ## Host Setup
205
122
 
206
- ## Defaults
123
+ `roadmapsmith setup` generates:
207
124
 
208
- - Roadmap file: `./ROADMAP.md` (falls back to `./roadmap.md` when only the legacy file exists)
209
- - Agent rules file: `./AGENTS.md` (falls back to `./CLAUDE.md` when present)
210
- - Config file: `./roadmap-skill.config.json`
125
+ - `.vscode/tasks.json`
126
+ - `.vscode/roadmapsmith-launcher.js`
127
+ - `.vscode/roadmapsmith-task.cmd`
128
+ - `.vscode/roadmapsmith-task.sh`
129
+ - optional Claude hook wiring
211
130
 
212
- Roadmap resolution precedence:
213
-
214
- 1. `--roadmap-file` CLI flag
215
- 2. `config.roadmapFile` in `roadmap-skill.config.json`
216
- 3. Existing `./ROADMAP.md`
217
- 4. Existing `./roadmap.md` (legacy fallback)
218
- 5. `./ROADMAP.md` when neither file exists
131
+ The internal hook filename remains `.claude/hooks/roadmap-sync.js`. It is a legacy internal filename, not a public command surface.
219
132
 
220
133
  ## Config
221
134
 
222
- Create `roadmap-skill.config.json`:
135
+ Typical config file:
223
136
 
224
137
  ```json
225
138
  {
226
139
  "roadmapFile": "./ROADMAP.md",
227
140
  "agentsFile": "./AGENTS.md",
228
- "roadmapProfile": "professional",
229
- "product": {
230
- "name": "My Project",
231
- "northStar": "Ship a self-hosted CLI tool for website capture and AI-readable design analysis.",
232
- "positioning": "What makes this different from alternatives.",
233
- "primaryUser": "Frontend developers, full-stack developers, and AI coding agents.",
234
- "targetOutcome": "A stable CLI that captures full-page screenshots, crawls internal links, exports metadata, and produces an AI-readable report.",
235
- "antiGoals": [
236
- "Do not bypass authentication",
237
- "Do not target private systems without authorization"
238
- ],
239
- "risks": [
240
- "Browser automation instability",
241
- "Scope creep into generic scraping"
242
- ],
243
- "successCriteria": [
244
- "CLI works against a public test site",
245
- "Screenshots and metadata are exported deterministically",
246
- "README documents safe and authorized usage"
247
- ]
248
- },
249
-
250
- "taskMatchers": [
251
- {
252
- "pattern": "src/payments/",
253
- "task": "Complete payment flow hardening",
254
- "phase": "P0",
255
- "priority": "P0"
256
- }
257
- ],
258
- "validators": [
259
- {
260
- "type": "file-exists",
261
- "when": "migration",
262
- "path": "db/migrations"
263
- },
264
- {
265
- "type": "grant-evidence",
266
- "whenId": "^p0-electron-builder-windows$",
267
- "evidence": ["test"],
268
- "testFiles": ["test/electron-builder.test.js"]
269
- }
270
- ],
271
- "customSections": [
272
- {
273
- "title": "Compliance",
274
- "items": [
275
- "- [ ] Complete SOC2 evidence packet <!-- rs:task=compliance-soc2-evidence -->"
276
- ]
277
- }
278
- ],
279
- "plugins": [
280
- "./plugins/roadmap.plugin.js"
281
- ],
282
- "milestones": [
283
- { "version": "v0.1", "goal": "Foundation" },
284
- { "version": "v0.2", "goal": "Reliability" },
285
- { "version": "v0.3", "goal": "Release candidate" },
286
- { "version": "v1.0", "goal": "General availability" }
287
- ],
288
- "phaseTemplates": {
289
- "P0": ["Stabilize critical path"],
290
- "P1": ["Expand reliability"],
291
- "P2": ["Finalize release hardening"]
292
- }
293
- }
294
- ```
295
-
296
- Task markers can include `rs:no-test` to disable the test-evidence requirement for one task:
297
-
298
- ```markdown
299
- - [ ] Add Windows autostart script <!-- rs:task=p0-windows-autostart rs:no-test -->
300
- ```
301
-
302
- Validator rules are backward compatible:
303
-
304
- - `when` matches task text.
305
- - `whenId` matches the stable `rs:task` ID.
306
- - `grant-evidence` can grant `code`, `test`, or `artifact` evidence without `overrideResult`.
307
- - `overrideResult: true` is only needed when a rule should replace automatic failures.
308
- - Tests that read a referenced file with `fs.readFileSync`, `fs.readFile`, `readFileSync`, or `readFile` can count as test evidence for tasks that explicitly mention that file.
309
-
310
- ## Plugin API
311
-
312
- Plugin module path(s) are loaded from `config.plugins` in deterministic order.
313
-
314
- ```js
315
- module.exports = {
316
- registerTaskDetectors(ctx) {
317
- return [
318
- { text: 'Implement billing retries', phase: 'P1', priority: 'P1' }
319
- ];
320
- },
321
- registerSectionGenerators(ctx) {
322
- return [
323
- {
324
- title: 'Platform Notes',
325
- items: ['- [ ] Verify deployment rollback path <!-- rs:task=verify-deployment-rollback-path -->']
326
- }
327
- ];
328
- },
329
- registerValidators(ctx) {
330
- return [
141
+ "validation": {
142
+ "minimumConfidence": "low",
143
+ "recipeCommand": "npm test -- {testFile}",
144
+ "testReports": [
331
145
  {
332
- type: 'symbol',
333
- when: 'billing',
334
- pattern: 'retry',
335
- message: 'billing retry symbol not found'
146
+ "path": "test-results.json",
147
+ "format": "vitest-json"
336
148
  }
337
- ];
149
+ ]
338
150
  }
339
- };
340
- ```
341
-
342
- ## Example Usage
343
-
344
- ```bash
345
- roadmapsmith zero
346
- roadmapsmith maintain
347
- roadmapsmith validate --json
348
- roadmapsmith sync --dry-run
349
- ```
350
-
351
- ## Dry Run and Audit
352
-
353
- - `--dry-run`: shows file diff preview without writing.
354
- - `--audit`: currently runs sync and then reports roadmap/code mismatches:
355
- - checked without evidence
356
- - ready but unchecked
357
-
358
- ## Development
359
-
360
- ```bash
361
- npm test
362
- npm run validate:qa-regression
363
- npm run validate:functional-smoke
364
- ```
365
-
366
- If `npm test` fails in your shell with "`node` is not recognized", treat that as a local PATH/runtime issue first and rerun the suite with an explicit Node executable.
367
-
368
- ## Publishing
369
-
370
- ```bash
371
- npm run validate:qa-regression
372
- npm run validate:functional-smoke
373
- npm test
151
+ }
374
152
  ```
375
153
 
376
- Repository-specific release note:
154
+ Key validation fields:
377
155
 
378
- - The canonical release automation lives in `.github/workflows/ci.yml`.
379
- - Every successful push to `main` now bumps `PATCH` through an automated `release/vX.Y.Z` PR, writes the version back with the squashed bot commit `chore(release): vX.Y.Z`, and then the follow-up `main` run publishes npm plus the GitHub Release.
380
- - Repair reruns on the bot release commit do not bump again; they only publish/create any missing artifacts left behind by a partial failure.
381
- - On repos where GitHub blocks `GITHUB_TOKEN` from creating or merging PRs, provide a dedicated secret such as `RELEASE_BOT_TOKEN` so the protected-branch release PR flow can complete.
382
- - Before any push, run the dual validation gate with separate owners: `QA/Regression` uses `npm run validate:qa-regression` and `Functional/Smoke` uses `npm run validate:functional-smoke`.
383
- - The release gate now includes packed-artifact verification for `skills.json`, `skills/*`, `.codex-plugin/plugin.json`, `.claude-plugin/plugin.json`, and the referenced Codex assets so the published surface matches the GitHub-source bundle for both hosts.
384
- - Before merging to `main`, verify the UX/release gate in `docs/release-ux-gate.md` and keep `CHANGELOG.md` ready for CI-managed version section generation.
156
+ - `minimumConfidence`: output filter for validate/sync
157
+ - `recipeCommand`: optional command suffix for generated verification recipes
158
+ - `testReports`: configured behavioral proof sources
385
159
 
386
- ## Versioning Strategy
160
+ ## Related Docs
387
161
 
388
- - `patch`: bug fixes and non-breaking validation/generation improvements.
389
- - `minor`: backward-compatible features (new flags, new plugin hooks, additive config fields).
390
- - `major`: breaking CLI/config behavior or marker/format changes.
162
+ - [../docs/command-surfaces.md](../docs/command-surfaces.md)
163
+ - [../docs/troubleshooting-host-setup.md](../docs/troubleshooting-host-setup.md)
164
+ - [../docs/use-cases/sync-audit-mode.md](../docs/use-cases/sync-audit-mode.md)