@jakkrichm/create-nexus-devflow 2.17.9 → 2.18.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 (89) hide show
  1. package/README.md +6 -7
  2. package/dist/bin/create-nexus-devflow.js +64 -82
  3. package/dist/bin/create-nexus-devflow.js.map +1 -1
  4. package/dist/lib/doctor.js +0 -27
  5. package/dist/lib/doctor.js.map +1 -1
  6. package/dist/lib/history.js +2 -2
  7. package/dist/lib/history.js.map +1 -1
  8. package/dist/lib/project-config.js +1 -1
  9. package/dist/lib/project-config.js.map +1 -1
  10. package/dist/lib/skill-registry-engine.js +3 -3
  11. package/dist/lib/skill-registry-engine.js.map +1 -1
  12. package/dist/lib/tooling/commands/scan-doc-contract.js +1 -0
  13. package/dist/lib/tooling/commands/scan-doc-contract.js.map +1 -1
  14. package/dist/lib/ui.d.ts +0 -23
  15. package/dist/lib/ui.js +0 -85
  16. package/dist/lib/ui.js.map +1 -1
  17. package/dist/lib/update.d.ts +6 -1
  18. package/dist/lib/update.js +80 -8
  19. package/dist/lib/update.js.map +1 -1
  20. package/dist/scripts/prepare-template.js +7 -3
  21. package/dist/scripts/prepare-template.js.map +1 -1
  22. package/package.json +2 -2
  23. package/template/.agents/skills/audit/SKILL.md +1 -4
  24. package/template/.agents/skills/brainstorm/SKILL.md +4 -5
  25. package/template/.agents/skills/bughunter/SKILL.md +1 -1
  26. package/template/.agents/skills/check/SKILL.md +116 -26
  27. package/template/.agents/skills/check/reference/guide.md +17 -53
  28. package/template/.agents/skills/ci/SKILL.md +13 -35
  29. package/template/.agents/skills/complete/SKILL.md +0 -2
  30. package/template/.agents/skills/devflow/SKILL.md +2 -3
  31. package/template/.agents/skills/discovery/SKILL.md +0 -9
  32. package/template/.agents/skills/doctor/SKILL.md +6 -6
  33. package/template/.agents/skills/explore/SKILL.md +9 -5
  34. package/template/.agents/skills/feature/SKILL.md +1 -4
  35. package/template/.agents/skills/feature/reference/feature-spec-template.md +16 -16
  36. package/template/.agents/skills/fix/SKILL.md +3 -3
  37. package/template/.agents/skills/grill/SKILL.md +1 -6
  38. package/template/.agents/skills/idea/SKILL.md +6 -6
  39. package/template/.agents/skills/implement/SKILL.md +119 -45
  40. package/template/.agents/skills/setup-tests/reference/browser.md +95 -0
  41. package/template/.agents/skills/test/SKILL.md +0 -26
  42. package/template/.claude/skills/audit/SKILL.md +1 -4
  43. package/template/.claude/skills/brainstorm/SKILL.md +4 -5
  44. package/template/.claude/skills/bughunter/SKILL.md +1 -1
  45. package/template/.claude/skills/check/SKILL.md +116 -26
  46. package/template/.claude/skills/check/reference/guide.md +17 -53
  47. package/template/.claude/skills/ci/SKILL.md +13 -35
  48. package/template/.claude/skills/complete/SKILL.md +0 -2
  49. package/template/.claude/skills/devflow/SKILL.md +2 -3
  50. package/template/.claude/skills/discovery/SKILL.md +3 -11
  51. package/template/.claude/skills/doctor/SKILL.md +6 -6
  52. package/template/.claude/skills/explore/SKILL.md +9 -5
  53. package/template/.claude/skills/feature/SKILL.md +1 -4
  54. package/template/.claude/skills/feature/reference/feature-spec-template.md +16 -16
  55. package/template/.claude/skills/fix/SKILL.md +3 -3
  56. package/template/.claude/skills/grill/SKILL.md +1 -6
  57. package/template/.claude/skills/idea/SKILL.md +6 -6
  58. package/template/.claude/skills/implement/SKILL.md +119 -45
  59. package/template/.claude/skills/setup-tests/reference/browser.md +95 -0
  60. package/template/.claude/skills/test/SKILL.md +0 -26
  61. package/template/AGENTS.md +39 -17
  62. package/template/devflow/build-plan.md +1 -1
  63. package/template/devflow/config.json +2 -1
  64. package/template/devflow/context/ai-interaction.md +14 -15
  65. package/template/devflow/context/coding-standards.md +19 -68
  66. package/template/devflow/context/glossary.md +6 -26
  67. package/template/devflow/decisions/README.md +1 -15
  68. package/template/devflow/docs/USAGE.md +195 -0
  69. package/template/devflow/docs/diagrams/nexus-devflow-architecture.html +14821 -0
  70. package/template/devflow/docs/diagrams/nexus-devflow-architecture.json +80 -0
  71. package/template/devflow/docs/diagrams/nexus-devflow-lifecycle.html +14860 -0
  72. package/template/devflow/docs/diagrams/nexus-devflow-lifecycle.json +88 -0
  73. package/template/devflow/docs/examples/living-spec/adr.example.md +43 -0
  74. package/template/devflow/docs/examples/living-spec/current-feature.example.md +113 -0
  75. package/template/devflow/docs/examples/living-spec/discovery.example.md +45 -0
  76. package/template/devflow/docs/examples/living-spec/ideas.example.md +22 -0
  77. package/template/devflow/docs/governance-rules.md +39 -0
  78. package/template/devflow/docs/manual-review-workflow-spec.md +116 -0
  79. package/template/devflow/docs/markdown-metadata-contract.md +140 -0
  80. package/template/devflow/docs/quickstart.md +124 -0
  81. package/template/devflow/docs/release-process.md +52 -0
  82. package/template/devflow/docs/skill-selection-policy.md +64 -0
  83. package/template/devflow/docs/workflow-surface-map.md +86 -0
  84. package/template/devflow/reference/feature-spec-template.md +79 -59
  85. package/template/devflow/runs/.gitkeep +1 -0
  86. package/template/.agents/skills/check/reference/verify.md +0 -129
  87. package/template/.claude/skills/check/reference/verify.md +0 -129
  88. package/template/devflow/reference/help-playbook-protocol.md +0 -33
  89. package/template/devflow/reference/slicing-archetypes.md +0 -105
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: implement
3
- description: "[devflow] Build and verify a task-isolated spec. Use for /implement or requests to implement an approved plan."
3
+ description: "[devflow] Implement or start coding the active task-isolated spec on its branch in small steps, running tests after each step and presenting the configured review handoff. Use for /implement or requests to build or resume an approved spec."
4
4
  argument-hint: "[{run-id, number, or name}] [--ticket <NN | path>]"
5
5
  ---
6
6
 
7
- # implement - build and verify the target spec
7
+ # implement - build the target spec, one reviewed step at a time
8
8
 
9
9
  **Context reuse:** Reuse any required file already loaded in project instructions or the current session. Read it again only if absent, changed, or exact current bytes or line references are needed.
10
10
 
@@ -20,23 +20,17 @@ Where this sits in the workflow:
20
20
 
21
21
  `/feature`, `/fix`, or `/rollback` wrote the spec to
22
22
  `devflow/context/{xxx-slug}/spec.md` and stopped.
23
- Build the selected spec through its acceptance criteria and required verification, then present the configured review handoff. Preserve authorization already given for this work. Read only relevant conventions and reuse loaded context.
24
-
25
- ## Review cadence and checkpoints
26
-
27
- Read `workflow.stepReview` and `workflow.checkpointCommits` from `devflow/config.json` independently; defaults are `feature` and `disabled`.
28
-
29
- - `stepReview: "feature"`: continue through all authorized steps without asking Continue after each step. Record evidence as work proceeds and present one final review packet.
30
- - `stepReview: "every"`: after a working step, show its diff and evidence, then wait for approval before the next step. A walkthrough is available on request.
31
- - `checkpointCommits: "disabled"`: omit ordinary checkpoint offers.
32
- - `checkpointCommits: "enabled"`: offer an optional checkpoint at the configured review boundary (per-step for `every`, final packet for `feature`). Show the exact candidate and obtain commit authorization before committing. The setting itself is not authorization.
33
-
34
- Independent-review checkpoints follow their separate contract below. Review cadence never authorizes commit, merge, push, or deployment.
23
+ This skill turns that spec into code, following the build loop in
24
+ `devflow/context/ai-interaction.md`, without vibe coding: small steps, a visible diff plus
25
+ a plain-English explanation for each, testing, and iteration until it works, all
26
+ behind your approval. It builds on a branch and offers an optional commit
27
+ checkpoint after each step; the work-level commit, merging, and logging are
28
+ `/complete`'s job.
35
29
 
36
30
  ## Multi-Run Target & Ticket-Driven Target Resolution
37
31
 
38
- - **Given an ID or name** (e.g. `/implement 12`, `/implement 012`, `/implement kanban`) -> locates the matching run folder `devflow/context/{xxx-slug}/`, selects the branch matching the run type and configured prefix, and loads only that run's `spec.md`.
39
- - **With no argument** (`/implement`) -> checks the current feature, fix, or rollback branch against the configured prefixes, or auto-picks if only 1 spec is active in `devflow/context/`, or prompts the user if multiple specs are queued.
32
+ - **Given an ID or name** (e.g. `/implement 12`, `/implement 012`, `/implement kanban`) -> locates the matching run folder `devflow/context/{xxx-slug}/`, checks out `feature/{xxx-slug}`, and loads only that run's `spec.md`.
33
+ - **With no argument** (`/implement`) -> checks current git branch matching `feature/{xxx-slug}`, or auto-picks if only 1 spec is active in `devflow/context/`, or prompts the user if multiple specs are queued.
40
34
  - **Ticket Input (`--ticket <NN | path>`)**: Targets a specific tracer-bullet ticket directly (e.g. `/implement 12 --ticket 01`, `/implement --ticket 02`, `/implement --ticket issues/01-auth.md`, or `/implement 01` when run-id is not ambiguous).
41
35
 
42
36
  ### Ticket Discovery Hierarchy
@@ -86,23 +80,23 @@ receipt. After the final Verify pass, an active gate routes to
86
80
  `current` freshness may proceed toward `/complete`. This skill never approves
87
81
  its own work or rewrites receipt evidence.
88
82
 
89
- For browser-facing changes, run focused browser tests during iteration when available. Run the required `npm run test:browser` gate once before handoff if the spec or project requires it. Use `browseros-neo` for visual or behavioral evidence when available and relevant. Record missing tooling accurately; install a runner only when setup is in the authorized scope.
83
+ For a browser-facing step, run `npm run test:browser` when the script exists and
84
+ record the result in the step evidence. Use `browseros-neo` for the interactive
85
+ handoff when it is available and the done-when is visual or behavioral. When the
86
+ script or MCP is absent, report that exact limitation; do not silently install a
87
+ runner or claim browser evidence.
90
88
 
91
89
  **Resuming?** If the spec already has some build steps checked off (`- [x]`), this
92
90
  feature was started earlier and interrupted (often a cleared context). The spec and
93
91
  its ticked steps are files, so pick up where it left off: read which steps are done,
94
92
  check the git branch and `git status`/log to see what is committed and what is still
95
93
  in the working tree, then continue from the **first unchecked step** instead of
96
- ### Step 0 - Mechanical Input Coverage Pre-flight Gate
97
-
98
- Before touching code or executing build tasks, perform a positive **Input Coverage Test** against the active Living Spec:
99
- - Enumerate every value, state, or data field this implementation must produce, compute, or display (from the acceptance criteria and spec design).
100
- - For each required value, verify that the spec explicitly names where it comes from (e.g. database schema/column, API request parameter, calculated derivation from a named source, or explicit prior architectural decision).
101
- - **Anti-Hallucination Guard**: Any required value with no named source is an **Owed Decision**. Do NOT rationalize it as "just wiring" and do NOT silently invent an ad-hoc provider, schema field, or business rule. Stop and route to `/grill` or request user clarification before proceeding.
94
+ starting over.
102
95
 
103
96
  ## Step 1 - branch
104
97
 
105
- Create or select the branch for the spec using `git.featureBranchPrefix`, `git.fixBranchPrefix`, or `git.rollbackBranchPrefix` from config (defaults: `feature/`, `fix/`, `rollback/`). Preserve unrelated working-tree changes before switching. If the
98
+ Create and check out a branch named from the spec: `feature/{xxx-slug}` for a feature,
99
+ `fix/{xxx-slug}` for a fix, or `rollback/{xxx-slug}` for a Type: Rollback spec. If the
106
100
  project isn't a git repo yet, say so and ask the user to run `git init` first;
107
101
  the loop needs branches. On resume, the branch already exists - check it out
108
102
  instead of creating a new one.
@@ -111,23 +105,99 @@ instead of creating a new one.
111
105
 
112
106
  When implementing a rollback task, follow the exact safety procedure in `reference/rollback-implementation.md`.
113
107
 
114
- ## Step 2 - implement and verify
115
-
116
- Work in small reviewable diffs, keeping progress in the selected spec.
117
-
118
- 1. For logic or behavior changes with the test gate on, use Red-Green-Refactor: write a focused failing test, confirm the assertion fails for the missing behavior, implement the smallest change, then refactor with affected tests green. Preserve the user's existing work. Consult [TDD anti-patterns](tdd-anti-patterns.md) when test design needs it.
119
- - **Proportional Engineering**: Add an abstraction, dependency, service, configuration surface, compatibility layer, or security mechanism only when the approved spec or an established repository requirement needs it now. Prefer existing code, standard library, and native platform features.
120
- 2. Match the step's done-when and run focused checks. Documentation or formatting-only edits use structural checks and review; they do not require artificial unit tests. Capture relevant runtime or browser proof for behavioral criteria, following the selected Check policy.
121
- 3. Fix failures caused by the change and rerun affected checks without requesting authorization again. Broaden verification when dependencies, failures, or risk justify it.
122
- 4. Record the diff summary and evidence. Mark a step complete once its done-when passes and any configured per-step review has been approved. A repaired finding becomes `fixed` with resolution evidence; only a subsequent audit can close it. Apply the review cadence above before proceeding.
123
-
124
- Run a proportionality check before final verification: every new abstraction, dependency, service, configuration surface, compatibility layer, and security mechanism must trace to the approved spec or an established repository requirement. Remove speculative machinery this work added without weakening real trust-boundary validation, data-loss prevention, accessibility, or configured verification.
125
-
126
- At the final handoff, run the exact documented Verify command and all required gates. If there is no Verify command, use the project's declared build and test commands. Reuse a passing result for unchanged inputs within this pass; rerun affected gates after subsequent edits. Do not add tests or tools just to inflate the verification matrix.
127
-
128
- ### Ticket execution
129
-
130
- When a ticket is selected, use its acceptance criteria as the steps above. Mark completed criteria in the ticket, mark it `done` after its criteria and required verification pass, and mirror status and evidence into the run's spec. A ticket handoff runs required gates once; criteria within the ticket use focused checks. A request to finish the whole run continues through the dependency frontier until the authorized scope is verified.
108
+ ## Step 2 - build one step, review, iterate, checkpoint (Strict TDD)
109
+
110
+ Work through the spec's build steps in order, one at a time. For each step:
111
+
112
+ 1. **Strict TDD Cycle (for logic & behavior changes)**:
113
+ - **🔴 RED**: Write the unit test first in the relevant test file. Execute the test command and show the failing assertion output.
114
+ - **🟢 GREEN**: Implement only the minimal code in the source file necessary to make the test pass. Re-run test and show passing output.
115
+ - **🔵 REFACTOR**: Refactor and format cleanly, verifying that 100% of tests remain green.
116
+ - *Code Reversion Rule*: If production code is written without a prior test for behavior changes, revert it and write the test first.
117
+
118
+ **⚖️ The Iron Law**: `NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST` — Apply to behavior changes according to the spec's test decision. If code came first, revert only your own work for that step and restart from the test, preserving the user's existing work.
119
+
120
+ **Red-Phase Verification (confirm all three before GREEN):**
121
+ - The test actually fails, rather than encountering a syntax error
122
+ - The error message identifies missing behavior, rather than invalid configuration
123
+ - The failure reflects the behavior under test, rather than a bug in the test itself
124
+
125
+ **Green-Phase Discipline**: Write the minimum code needed to pass the test; add only the options/features it requires (YAGNI constraint).
126
+
127
+ > 📖 For anti-patterns and Bad vs Good examples, read [`tdd-anti-patterns.md`](tdd-anti-patterns.md).
128
+
129
+ 2. Implement just that step: the smallest change that satisfies its "done when."
130
+ 3. Show the **diff**, not whole files.
131
+ 4. **Explain it, and prove it.** Give a short summary: what the step delivered,
132
+ one line per changed file on what it does and why, then confirm the step's
133
+ "done when" is met with empirical evidence (test pass output, build output, or screenshot). This summary is the comprehension gate, so keep it concrete, not
134
+ vague. Include a short **How to try it** note when the step has a manual
135
+ path: the command, URL, click, endpoint, or output the user can check.
136
+ 5. **Verify the step.** If `AGENTS.md` declares a `Verify` command, run that exact
137
+ command as the automated gate. It is only an umbrella for checks the project
138
+ actually has, so do not invent tests or other checks to satisfy it. If no
139
+ `Verify` command exists, run the documented build command and the test command
140
+ when the project declares one. A step that adds logic must ship a passing test
141
+ in the same diff when the test gate is on, and the suite must be green before
142
+ the step is approved (see the Testing gate in `coding-standards.md`). UI and
143
+ integration-only steps ride on screenshot plus build evidence. Run a focused
144
+ test separately when it gives faster feedback, then use `Verify` as the final
145
+ automated gate. For UI or integration done-whens, prefer Playwright when it is
146
+ already installed or declared in `AGENTS.md`; do not add it silently for an
147
+ unrelated feature. Create focused test files next to the source they cover,
148
+ per `coding-standards.md`. Never install a runner mid-step unless the current
149
+ spec is explicitly the unit-testing setup itself (for example `/fix "add unit
150
+ testing"`). If a step surfaces non-trivial logic the spec did not foresee, add
151
+ a focused test then, or note why not. When a step's done-when is behavioral (a
152
+ click, a download, or a flow across screens), run `/check` to prove it against
153
+ the running app rather than eyeballing it.
154
+ 5. **Iterate until it works.** If it fails or the user wants changes, revise the
155
+ step (re-prompt or hand-edit the code), show the updated diff, and re-test.
156
+ Repeat until it works and the user approves. Nothing is committed until the
157
+ user is happy with the step.
158
+ 6. **Mark it done, then prompt to move on.** Once the step is approved, check that
159
+ step off (`- [x]`) in `devflow/context/{xxx-slug}/spec.md` so progress survives a context
160
+ clear. If the step repaired a finding tracked in
161
+ `devflow/context/{xxx-slug}/findings.md`, set that finding's status to `fixed` now too
162
+ and note the repair in its **Resolution** line. Never set `closed`: a repair
163
+ is re-reviewed by `/audit` before it clears, because a fix can introduce a
164
+ worse defect than the one it removed. Then offer a short choice, noting that checkpoints are optional since
165
+ `/complete` makes the real feature-level commit. Use the current tool's short
166
+ user-input prompt when available; when you've just produced a long block to
167
+ read (a deep explanation, a big
168
+ walk-through), ask in plain text instead, so the prompt doesn't cover what the
169
+ user is still reading:
170
+ - **Continue** (default) - roll into the next step without committing.
171
+ - **Commit checkpoint** - commit just this step on the branch with a
172
+ conventional message (a cheap rollback point).
173
+ - **Walk me through it** - give a deeper, line-level explanation of the new or
174
+ changed code (why this approach, what each part does, any gotchas), then
175
+ re-ask this checkpoint prompt. A loop-back, not a terminal choice.
176
+ - **Stop here** - pause the loop so the user can review or come back later.
177
+
178
+ On **Continue** or after **Commit checkpoint**, go to the next step. On **Walk
179
+ me through it**, explain in depth and then re-ask this prompt in plain text (the
180
+ explanation is long, so a modal would cover it). On **Stop here**, stop and say
181
+ where things stand: the branch is intact; run `/implement` again to resume, or
182
+ `/complete` to wrap up what's built so far.
183
+
184
+ ### Ticket-Driven TDD Execution (when working from a Ticket)
185
+
186
+ When executing a tracer-bullet ticket (via `--ticket` or auto-frontier):
187
+ 1. **Extract Scope**: Read *What to build* and *Acceptance criteria* checklist (`- [ ]`) from the active ticket file.
188
+ 2. **Strict TDD Cycle per Criterion**:
189
+ - **🔴 RED**: Write the unit/integration test for the criterion first at the agreed seam. Execute the test command and verify the expected failing assertion.
190
+ - **🟢 GREEN**: Implement only the minimal code in the source file necessary to make the test pass. Re-run test and show passing output.
191
+ - **🔵 REFACTOR**: Refactor and format cleanly, verifying that 100% of tests remain green.
192
+ 3. **Verify Gate**: Run the project's Verify command (`npm run check` or documented test suite) to ensure whole-system health before concluding the ticket.
193
+ 4. **Bidirectional State Sync**:
194
+ - Mark each completed criterion `- [x]` in the ticket file.
195
+ - Once all criteria in the ticket pass, update the ticket status to `**Status:** done` (or `Status: done`).
196
+ - Mirror the completed work, status, and diff evidence into `devflow/context/{xxx-slug}/spec.md` (under `## 📋 3. Execution Plan & TDD Checklist` and `## ⚡ 4. Implementation Log & Evidence`) so the Living Spec remains the authoritative single source of truth for `/check`, `/audit`, and `/complete`.
197
+
198
+ Never batch the whole thing into one diff. If a step's diff is too big to read,
199
+ split it. The documented `Verify` command, or the fallback build and tests, must
200
+ pass before any commit.
131
201
 
132
202
  After final Verify and required Check pass, set the active spec to `verified`
133
203
  with every completed box checked. Then resolve independent review before the
@@ -200,19 +270,23 @@ named area. If the feature spans too many distinct areas for one useful pass,
200
270
  name the sections first and let the user choose where to begin. Remain read-only
201
271
  unless the user separately requests changes.
202
272
 
203
- Ordinary checkpoint commits are available only through the configured review boundary and explicit candidate approval above. The immutable independent-review checkpoint also requires explicit candidate approval. Work-level completion commits belong to `/complete`. Configuration never supplies commit approval. Never merge, push, deploy, publish,
273
+ Never create an ordinary step, product, or work-level commit from this skill.
274
+ The sole exception is exactly one immutable independent-review checkpoint after
275
+ showing its exact candidate and receiving current explicit commit approval.
276
+ Configuration never supplies that approval. Never merge, push, deploy, publish,
204
277
  or start unrelated work from this skill.
205
278
 
206
279
  ## Rules
207
280
 
208
- - Keep diffs small and apply the configured review cadence.
281
+ - One small step per diff; the user reviews and approves each before any commit.
209
282
  - Explain every change in plain English. Understanding the code is the point.
210
283
  - Iterate on the branch until each step works; never commit code the user hasn't
211
284
  approved.
212
285
  - Follow `devflow/context/coding-standards.md` (server vs client, scope user-owned queries
213
286
  by the authenticated user id, validate inputs, and so on).
214
- - Keep the spec aligned with the authorized scope. Correct routine omissions with evidence; ask only when a material scope or design decision is unresolved.
215
- - Configured checkpoint offers are optional. The work-level commit, the merge,
287
+ - Build only what the spec says. If the spec is wrong or thin, stop and fix the
288
+ spec first, do not improvise.
289
+ - Per-step commits are optional checkpoints. The work-level commit, the merge,
216
290
  and any push are `/complete`'s job.
217
291
  - For Type: Rollback, reverse only the approved product diff and preserve all
218
292
  protected Blueprint paths.
@@ -0,0 +1,95 @@
1
+ # Browser test setup
2
+
3
+ This is an explicit optional setup command. It creates a project-owned browser
4
+ test path that later Feature, Implement, Check, and Continuous runs can reuse. It
5
+ does not replace live browser inspection, install during another workflow
6
+ command, or make browser testing mandatory for every DevFlow project.
7
+
8
+ > 💡 **Nexus-DevFlow Superpower**:
9
+ > Nexus-DevFlow also provides the dedicated first-class skill **`/browser-tests`** which natively connects with Playwright test harnesses and the user's MCP `browseros-neo` (live real-browser inspection). Both paths are fully supported under DevFlow Dual Compatibility.
10
+
11
+ ## Input
12
+
13
+ This reference is selected by `/setup-tests browser`, `/tests browser`, or an explicit request to set up
14
+ browser or end-to-end testing. A named runner, browser, application surface, or
15
+ flow is a preference to verify against the real project.
16
+
17
+ ## Step 1 - inspect the project
18
+
19
+ Read enough files to identify the actual browser surface and existing setup:
20
+
21
+ - `AGENTS.md`, especially Commands and any Verify command
22
+ - package or language manifests, lockfiles, workspaces, and runtime versions
23
+ - existing browser, integration, and end-to-end test configs and files
24
+ - build, dev, preview, extension-build, and test commands
25
+ - relevant CI workflows and ignore rules
26
+ - `devflow/context/coding-standards.md`
27
+ - Git branch and worktree state
28
+
29
+ Do not assume Node.js, npm, a web server, or a blank test setup. Do not install
30
+ dependencies or edit files during inspection.
31
+
32
+ ## Step 2 - choose the smallest useful harness
33
+
34
+ Reuse a working browser runner already established by the project. For a
35
+ compatible JavaScript or TypeScript web app or browser extension with no runner,
36
+ prefer Playwright Test. If the stack or executable surface is unclear, stop and
37
+ ask instead of inventing a framework.
38
+
39
+ Choose one representative smoke path through a real project surface. It must
40
+ prove the harness can launch the app and observe behavior, not merely assert that
41
+ a static fixture exists. Keep authentication state, profiles, secrets, generated
42
+ reports, traces, videos, and screenshots out of Git unless the project already
43
+ has a deliberate safe convention.
44
+
45
+ ## Step 3 - present the setup
46
+
47
+ Before editing, state:
48
+
49
+ - runner selected or reused
50
+ - exact dependency install command, when needed
51
+ - config, script, test, and ignore files to add or change
52
+ - application or extension surface covered by the smoke test
53
+ - exact browser-test command that will be documented
54
+ - any server, build, authentication, or browser-chrome limitation
55
+
56
+ Dependency installation and browser-binary downloads require the user's approval
57
+ through the current tool's normal approval flow. Do not treat running this skill
58
+ as permission to change CI, download unrelated browsers, or add a broad suite.
59
+
60
+ ## Step 4 - create or normalize the harness
61
+
62
+ Make the smallest practical diff:
63
+
64
+ 1. Add only the required runner dependency and config.
65
+ 2. Add one project-relevant smoke test.
66
+ 3. Add or reuse a conventional command such as `test:browser`.
67
+ 4. Document the exact invocation in the Commands section of `AGENTS.md` as
68
+ `Browser tests: <command>`. Include a working directory when a workspace
69
+ needs one.
70
+ 5. Configure runner-owned server lifecycle only when the project has a safe,
71
+ documented command and the runner can start and stop it reliably. Do not
72
+ create a duplicate server when the established harness reuses one.
73
+ 6. Ignore generated browser-test artifacts that should stay local.
74
+
75
+ Do not add browser tests to the default Verify command or GitHub workflow unless
76
+ the user separately asks for that slower gate or the project already requires
77
+ it. Preserve existing CI and existing browser coverage.
78
+
79
+ ## Step 5 - verify the path
80
+
81
+ Run the documented Browser tests command. Confirm that the smoke test exercises
82
+ the intended real surface and that the runner exits cleanly. Inspect generated
83
+ console, request, trace, screenshot, or report evidence only when relevant to
84
+ the claim.
85
+
86
+ ## Step 6 - report
87
+
88
+ Return a concise setup report:
89
+
90
+ - runner and browser surface
91
+ - command documented in `AGENTS.md`
92
+ - smoke behavior proven
93
+ - files added or changed
94
+ - verification result
95
+ - remaining manual or environment-specific boundary
@@ -87,32 +87,6 @@ When generating or logging test runs during `/implement` or `/check`:
87
87
 
88
88
  ---
89
89
 
90
- ## 7. 5-Tier Test File Classification Strategy
91
-
92
- Do not write identical test patterns for all file types. Classify files into 5 distinct tiers:
93
-
94
- | Tier | Category / File Paths | Recommended Test Strategy | What NOT to do |
95
- | :--- | :--- | :--- | :--- |
96
- | 🧠 **Tier 1** | **Pure Logic & Algorithms**<br>`src/utils/`, `src/services/`, `lib/` | Fast in-memory Unit Tests with 100% boundary & edge cases coverage. Use TDD (Red-Green-Refactor). | Do not over-mock pure mathematical or transformation functions. |
97
- | 🎨 **Tier 2** | **UI Components**<br>`src/components/`, `src/pages/` | Component rendering, event dispatching, visual verification via Playwright / BrowserOS Neo. | **Prohibited**: Do not write trivial unit tests that merely assert static HTML tags exist. |
98
- | 🔌 **Tier 3** | **API & Data Integration**<br>`src/api/`, route handlers, DB models | Contract tests, schema validation (Zod), HTTP status codes, error payload shapes. | Do not test external third-party network APIs without isolated fakes. |
99
- | ⚙️ **Tier 4** | **Config & Build Tooling**<br>`*.json`, `*.yaml`, `scripts/` | Static contract validation (`npm run check:static`), budget linters (`npm run check:budgets`), smoke tests. | Do not skip static validation on build tool modifications. |
100
- | 📝 **Tier 5** | **Documentation & Prose**<br>`*.md`, `devflow/docs/` | Structural checks, markdown contract scans, and link integrity verification. | Do not write artificial unit test suites for documentation files. |
101
-
102
- ---
103
-
104
- ## 8. Acceptance Criteria (`AC-N`) Traceability Protocol
105
-
106
- To guarantee 100% spec fidelity, every automated test suite must trace back to the active Living Spec:
107
- - **Test Title Tagging**: Prefix test titles or describe blocks with the target Acceptance Criterion:
108
- ```typescript
109
- it('AC-1: enforces 32KB byte budget on SKILL.md files', async () => { ... });
110
- it('AC-2: returns exit code 1 when budget violation occurs', async () => { ... });
111
- ```
112
- - **Traceability Verification**: During `/check`, cross-reference every `- [ ] AC-N` against the passing test assertion name to ensure zero untracked requirements.
113
-
114
- ---
115
-
116
90
  ## Relationship To DevFlow 2.6.x
117
91
 
118
92
  - **Classification**: Companion command & Engineering standard
@@ -300,10 +300,8 @@ expectations. Apply only the selected lens or lenses:
300
300
  - *Question Intent & Simpler Alternatives*: State what the change actually attempts in one sentence. Ask: is there a simpler, smaller, or more elegant way to achieve the same goal (reusing existing code, config vs code, solving at a different layer)?
301
301
  - *Full Call-Path Tracing*: Follow the call graph through real code paths (entry point → call sites → branches taken → state mutated → exit/side effect), including unchanged code on either side of the diff where bugs hide.
302
302
  - *Verify Claims & Edge Cases*: Does the traced path actually produce the claimed behavior? What inputs/states would break it (concurrency, retries, null/unicode/huge payloads, ordering)? What does it silently change?
303
- - *Assumed Decision Debt Check*: Scan `devflow/decisions/` for any ADR with `Status: Assumed`. Flag unratified assumptions as `Q-xxx` (P2) to ensure ratification before production handoff.
304
303
  - *No Rubber-Stamping*: "LGTM" is prohibited. State what was traced, what was verified, and what evidence supports the verdict.
305
304
 
306
-
307
305
  Do not nitpick harmless style differences unless they signal drift from the local
308
306
  patterns. Prefer a short list of real findings over a broad list of guesses.
309
307
 
@@ -321,8 +319,7 @@ Maintain the durable record in `devflow/context/{xxx-slug}/findings.md` (or `dev
321
319
  3. Set severity honestly:
322
320
  - `P0`: critical blocking bug, data corruption, severe vulnerability, complete outage.
323
321
  - `P1`: serious defect, missing critical test, unhandled core error.
324
- - `P2`: moderate debt, performance degradation, missing edge cases, or pure proportionality finding.
322
+ - `P2`: moderate debt, performance degradation, missing edge cases.
325
323
  - `P3`: minor improvement, code cleanup, cosmetic tweak.
326
- *(For a proportionality finding, state in Suggested fix what can be deleted. An otherwise pure proportionality finding is P2 or P3. Raise to P0/P1 only when the unnecessary machinery causes a concrete reachable defect or violates an established security or data-integrity boundary.)*
327
324
  4. Set status: `open`, `fixed`, `closed`, `accepted`, or `invalid`.
328
325
  5. Display concise findings summary and next actions.
@@ -29,11 +29,10 @@ Use this when:
29
29
  - Identify technical, business, or timeline constraints.
30
30
 
31
31
  ### 2. Option Formulation (Divergent Phase)
32
- Provide at least 2-3 materially distinct approaches. Where applicable, map each option to its **Slicing Archetype** ([`devflow/reference/slicing-archetypes.md`](file:///d:/Projects/devtools/nexus-devflow/devflow/reference/slicing-archetypes.md)):
33
- - **Option A (Standard / Conservative)**: Low risk, proven pattern, minimal changes (e.g. *Skateboard* or *Tracer Bullet*).
34
- - **Option B (Modern / Optimized)**: Best-practice architecture, balanced trade-off, scalable (e.g. *Journey*).
35
- - **Option C (Alternative / Fast-Feedback)**: High innovation, simplified scope, or UX-first (e.g. *Facade*).
36
-
32
+ Provide at least 2-3 materially distinct approaches:
33
+ - **Option A (Standard / Conservative)**: Low risk, proven pattern, minimal changes.
34
+ - **Option B (Modern / Optimized)**: Best-practice architecture, balanced trade-off, scalable.
35
+ - **Option C (Alternative / Unconventional)**: High innovation, simplified scope, or creative alternative.
37
36
 
38
37
  ### 3. Trade-off Comparison Matrix
39
38
  Construct a structured evaluation table:
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: bughunter
3
- description: "[devflow] Investigate security vulnerabilities with evidence. Use for /bughunter or an authorized security review of code or endpoints."
3
+ description: "[devflow] Offensive security orchestrator & bug hunting guide. Indexes 83 vulnerability classes, 5-phase methodology (Think, Hunt, Perimeter, Ship), 681 disclosed HackerOne patterns, and JIT reference guides in devflow/.vendor/bughunter/. Use when running /bughunter, performing security reviews, verifying auth/injection risks in /check or /audit, or testing API endpoints for vulnerabilities."
4
4
  argument-hint: "[{target, vuln-class, or topic}]"
5
5
  ---
6
6
 
@@ -1,36 +1,126 @@
1
1
  ---
2
2
  name: check
3
- description: "[devflow] Check the running app, CLI, or server against the active spec's done-when criteria and capture observable pass or fail evidence without editing source. Use /check to verify real feature behavior, or /check guide [latest|scope] for a read-only manual walkthrough: how to test manually, where to click, expected and incorrect results, or a human review path."
4
- argument-hint: "[guide] [latest | <step> | <path> | <route>]"
3
+ description: "[devflow] Check the running app, CLI, or server against the active spec's done-when criteria and capture observable pass or fail evidence without editing code. Use for /check, proving behavior before completion beyond builds and tests."
4
+ argument-hint: "[{run-id, number, or name}]"
5
5
  ---
6
6
 
7
- # check - verify behavior or explain how to try it
7
+ # check - Dual-Axis Independent Verification Engine
8
8
 
9
- **Context reuse:** Reuse any required file already loaded in project instructions or the current session. Read it again only if absent, changed, or exact current bytes or line references are needed.
9
+ $ARGUMENTS
10
10
 
11
- ## Select the mode before any tool call
11
+ **First action:** Before project inspection, preflight, or any other tool call,
12
+ publish `running` to `devflow/.state/run.json` using the dashboard activity
13
+ contract in `AGENTS.md`.
12
14
 
13
- - `/check guide` or `$check guide`: generate a read-only manual walkthrough.
14
- Pass remaining arguments such as `latest`, a step, a path, route, or command
15
- to `reference/guide.md`. Read and follow that reference only. Do not write
16
- activity state, run checks or the app, edit files, update spec status, or
17
- produce verification receipts.
18
- - A natural-language request for instructions on how the user can manually test
19
- or review a change also selects guide mode. If the request mixes a guide with
20
- agent verification, clarify which mode to run first before any activity.
21
- - `/check` or `$check`, optionally with a verification scope: verify observed
22
- behavior against the spec. Follow verification startup below, then read and
23
- follow `reference/verify.md` only.
15
+ Where this sits in the workflow:
24
16
 
25
- Load only the selected reference. Do not read both references preemptively.
26
- Guide generation never satisfies a verification gate. The existing
27
- `qualityGates.regular.tryGuide` and `qualityGates.continuous.tryGuide` keys now
28
- select `/check guide`; their policy values and automatic invocation rules are
29
- unchanged. The separate `check` gates continue to select verification mode.
17
+ /implement -> [check] -> /complete
18
+ (built a (dual-axis (only once both
19
+ step or review with axes pass with
20
+ the feature) empirical proof) evidence)
30
21
 
31
- ## Verification startup (verification mode only)
22
+ `/implement` builds and does a quick build-plus-screenshot check inline. `/check` is the rigorous, repeatable gate for when a feature or step needs **empirical proof** on the running app and **two-axis code review** before merging.
32
23
 
33
- **First action:** Before project inspection, preflight, or any other tool call,
34
- publish `running` to `devflow/.state/run.json` using the dashboard activity
35
- contract in `AGENTS.md`, with command `check`. This precedes reading the
36
- verification reference. Guide mode must skip this startup entirely.
24
+ It changes no source and commits nothing — it executes, inspects, and reports observed facts.
25
+
26
+ ---
27
+
28
+ ## Input
29
+
30
+ - **Given an ID or name** (e.g. `/check 12`, `/check 012`) -> targets `devflow/context/{xxx-slug}/` and records audit ledger to `{xxx-slug}/findings.md`.
31
+ - **With no argument** (`/check`) -> verifies the active run matching current git branch or single active spec.
32
+
33
+ ---
34
+
35
+ ## Hybrid Browser Verification Engine
36
+
37
+ Nexus-DevFlow uses a **Dual-Layer Browser Verification Hierarchy**:
38
+
39
+ ```text
40
+ ┌─────────────────────────────────────────────────────────────────────────────┐
41
+ │ 🌐 Hybrid Browser Verification Engine │
42
+ ├──────────────────────────────────────┬──────────────────────────────────────┤
43
+ │ 1. Code-Driven Test Automation (CI) │ 2. Interactive AI Visual QA (MCP) │
44
+ │ • Framework: Playwright │ • Server: MCP browseros-neo │
45
+ │ • Command: npm run test:browser │ • URL: http://127.0.0.1:9010/mcp │
46
+ │ • Purpose: Assertions, Headless, │ • Purpose: Live DOM Inspection, │
47
+ │ Regression Suite & Pre-commit │ Real Screenshot Proofs, /try │
48
+ └──────────────────────────────────────┴──────────────────────────────────────┘
49
+ ```
50
+
51
+ 1. **Layer 1: Code-Driven Repeatable Tests (Playwright)**:
52
+ - If `AGENTS.md` declares `Browser tests: <command>`, run that exact command as repeatable automated evidence.
53
+ 2. **Layer 2: Interactive AI Visual QA (MCP browseros-neo)**:
54
+ - When the `browseros-neo` MCP server (`http://127.0.0.1:9010/mcp`) is active, use it to inspect the live running app, verify rendered CSS/layout, test click flows, and capture actual screenshot proofs.
55
+
56
+ ---
57
+
58
+ ## Step 1 - Build the Dual-Axis Review Matrix
59
+
60
+ Read the target spec from `devflow/context/{xxx-slug}/spec.md` and `devflow/context/coding-standards.md`. Prepare the inspection criteria across two independent axes:
61
+
62
+ 1. **Axis 1 (Standards & Architecture Criteria)**:
63
+ - Coding conventions in `coding-standards.md`
64
+ - Deep Modules discipline (Small interface, deep implementation, clean seams, no leaky abstractions)
65
+ - Baseline 12 Fowler Code Smells (Primitive obsession, Feature envy, Shotgun surgery, Speculative generality, etc.)
66
+ - Multi-lane technical gates (Typecheck, test suites, zero secrets, zero P0/P1 findings)
67
+ 2. **Axis 2 (Spec Fidelity & Behavioral Observables)**:
68
+ - Line-by-line Acceptance Criteria (ACs) and "Done When" observables from `devflow/context/{xxx-slug}/spec.md`
69
+ - Scope Creep detection (Unrequested behavior in the diff)
70
+ - Missing Requirements detection (Unimplemented edge cases)
71
+
72
+ ---
73
+
74
+ ## Step 2 - Get the App Running & Exercise Live Proof
75
+
76
+ Use the project's real commands (from `AGENTS.md`):
77
+
78
+ - **Web app**: Start (or reuse) the local dev server. Drive a real browser to relevant routes. If `Browser tests: <command>` is declared, run it. When MCP `browseros-neo` is active, connect to inspect live visual state.
79
+ - **CLI**: Execute commands with representative input fixtures, asserting exit codes and output snapshots.
80
+ - **Server / API**: Hit endpoints with real payloads and assert on HTTP response status and bodies.
81
+ - **Library**: Exercise public interfaces through integration tests or sample scripts.
82
+
83
+ > [!IMPORTANT]
84
+ > **Evidence or it didn't happen**: Every verdict must be backed by empirical evidence (screenshot, command output, status code, response time). Never assume a pass from reading source code alone.
85
+
86
+ ---
87
+
88
+ ## Step 3 - Dual-Axis Independent Report & State Update
89
+
90
+ Format the report into two distinct, un-merged review axes:
91
+
92
+ ```markdown
93
+ # 🔍 Verification Report: [Feature Name]
94
+
95
+ ## ⚖️ Axis 1: Standards, Architecture & Quality Gate
96
+
97
+ - **Technical Lanes**:
98
+ - [pass] Type Safety: `tsc --noEmit` (0 errors)
99
+ - [pass] Automated Tests: `npm test` (All tests green)
100
+ - [pass] Browser Tests: `npm run test:browser` (Playwright passed)
101
+ - [pass] Visual Inspection: MCP browseros-neo verified UI layout & zero console errors
102
+ - [pass] Security & Hygiene: Zero secrets, sanitized inputs
103
+ - [pass] Findings Ledger: 0 blocking P0/P1 in `devflow/context/{xxx-slug}/findings.md`
104
+ - **Deep Modules & Architecture**:
105
+ - [pass] Seam Integrity: Public interfaces remain small, implementation details hidden.
106
+ - [pass] The Deletion Test: Complexity is concentrated inside the module, not scattered across callers.
107
+ - **Code Smells Assessment**:
108
+ - [clean] 12 Fowler Code Smells evaluated across git diff: No critical smells detected.
109
+
110
+ ## 🎯 Axis 2: Spec Fidelity & Behavioral Acceptance Gate
111
+
112
+ Line-by-line verification against `devflow/context/{xxx-slug}/spec.md`:
113
+ - [pass] **AC-1 (<title>)**: <Observed empirical evidence / screenshot path>
114
+ - [pass] **AC-2 (<title>)**: <Observed empirical evidence / terminal output>
115
+ - [fail] **AC-3 (<title>)**: <Exact observed failure with reproduction command>
116
+ - [clean] **Scope Creep Check**: No unrequested features or unnecessary abstractions introduced.
117
+ - [clean] **Completeness Check**: 100% of spec requirements addressed.
118
+
119
+ ---
120
+
121
+ ## 🚦 Final Routing & Verdict
122
+
123
+ - **ALL PASSED**: Both axes green. Update `stage.md` (Passed -> Ready for `/complete`).
124
+ - **ANY FAILURE**: Hand back to `/implement` with exact failure evidence and reproduction steps.
125
+ - **UNVERIFIABLE**: Clearly document the gap and residual risk. Never fabricate a pass.
126
+ ```