@jakkrichm/create-nexus-devflow 2.17.5 → 2.17.6
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.
- package/README.md +3 -3
- package/dist/lib/doctor.js +27 -0
- package/dist/lib/doctor.js.map +1 -1
- package/dist/lib/history.js +2 -2
- package/dist/lib/history.js.map +1 -1
- package/dist/lib/skill-registry-engine.js +3 -3
- package/dist/lib/skill-registry-engine.js.map +1 -1
- package/package.json +1 -1
- package/template/.agents/skills/audit/SKILL.md +2 -1
- package/template/.agents/skills/check/SKILL.md +26 -116
- package/template/.agents/skills/check/reference/guide.md +126 -0
- package/template/.agents/skills/check/reference/verify.md +123 -0
- package/template/.agents/skills/ci/SKILL.md +42 -8
- package/template/.agents/skills/doctor/SKILL.md +4 -0
- package/template/.agents/skills/explore/SKILL.md +78 -0
- package/template/.agents/skills/feature/SKILL.md +1 -0
- package/template/.agents/skills/feature/reference/feature-spec-template.md +16 -16
- package/template/.agents/skills/idea/SKILL.md +6 -6
- package/template/.agents/skills/implement/SKILL.md +3 -0
- package/template/.claude/skills/audit/SKILL.md +2 -1
- package/template/.claude/skills/check/SKILL.md +26 -116
- package/template/.claude/skills/check/reference/guide.md +126 -0
- package/template/.claude/skills/check/reference/verify.md +123 -0
- package/template/.claude/skills/ci/SKILL.md +42 -8
- package/template/.claude/skills/doctor/SKILL.md +4 -0
- package/template/.claude/skills/explore/SKILL.md +78 -0
- package/template/.claude/skills/feature/SKILL.md +1 -0
- package/template/.claude/skills/feature/reference/feature-spec-template.md +16 -16
- package/template/.claude/skills/idea/SKILL.md +6 -6
- package/template/.claude/skills/implement/SKILL.md +3 -0
- package/template/AGENTS.md +12 -1
- package/template/devflow/docs/USAGE.md +4 -3
- package/template/devflow/docs/skill-selection-policy.md +2 -1
- package/template/devflow/docs/workflow-surface-map.md +5 -4
- package/template/devflow/reference/feature-spec-template.md +54 -82
|
@@ -1,126 +1,36 @@
|
|
|
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
|
|
4
|
-
argument-hint: "[
|
|
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>]"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
# check -
|
|
7
|
+
# check - verify behavior or explain how to try it
|
|
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
|
|
|
11
|
-
|
|
12
|
-
publish `running` to `devflow/.state/run.json` using the dashboard activity
|
|
13
|
-
contract in `AGENTS.md`.
|
|
14
|
-
|
|
15
|
-
Where this sits in the workflow:
|
|
16
|
-
|
|
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)
|
|
21
|
-
|
|
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.
|
|
23
|
-
|
|
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
|
|
11
|
+
## Select the mode before any tool call
|
|
59
12
|
|
|
60
|
-
|
|
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.
|
|
61
24
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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)
|
|
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.
|
|
71
30
|
|
|
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]
|
|
31
|
+
## Verification startup (verification mode only)
|
|
94
32
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
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
|
-
```
|
|
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.
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# Check guide - manual review guide
|
|
2
|
+
|
|
3
|
+
**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.
|
|
4
|
+
|
|
5
|
+
Where this sits in the workflow:
|
|
6
|
+
|
|
7
|
+
/implement or /complete -> [check guide] -> human review
|
|
8
|
+
(work exists) (manual (where to go,
|
|
9
|
+
path) what to click)
|
|
10
|
+
|
|
11
|
+
`/check` proves behavior from the agent side. `/check guide` gives the user a practical
|
|
12
|
+
manual walkthrough: start this command, open this route, click these controls,
|
|
13
|
+
expect this result, and watch for these failure signs.
|
|
14
|
+
|
|
15
|
+
It is always read-only. Do not edit files, write activity state, update spec
|
|
16
|
+
status, run checks or the app, install dependencies, commit, merge, push, or
|
|
17
|
+
produce verification receipts. Reading files and git status is allowed. A guide
|
|
18
|
+
never counts as acceptance evidence or proof that any check passed.
|
|
19
|
+
|
|
20
|
+
The quality-gate config controls when another workflow generates this guide
|
|
21
|
+
automatically. An explicit `/check guide` or `$check guide` request always runs.
|
|
22
|
+
A generated guide never counts as evidence that the user performed the walkthrough.
|
|
23
|
+
|
|
24
|
+
## Input
|
|
25
|
+
|
|
26
|
+
Optional scope:
|
|
27
|
+
|
|
28
|
+
- no argument: use the active task spec in `devflow/context/{xxx-slug}/spec.md`
|
|
29
|
+
- `latest`: use the most recent archive under `devflow/history/features/`,
|
|
30
|
+
`devflow/history/fixes/`, or `devflow/history/rollbacks/`
|
|
31
|
+
- a step name or number: focus the guide on that current task step
|
|
32
|
+
- a path, route, or command: include it as the main thing to try
|
|
33
|
+
|
|
34
|
+
If there is no active feature and no useful archive, ask what change the user
|
|
35
|
+
wants to try instead of guessing.
|
|
36
|
+
|
|
37
|
+
## Step 1 - find the work to explain
|
|
38
|
+
|
|
39
|
+
Read:
|
|
40
|
+
|
|
41
|
+
- `AGENTS.md`
|
|
42
|
+
- `devflow/config.json`
|
|
43
|
+
- `devflow/context/{xxx-slug}/spec.md`
|
|
44
|
+
- `devflow/context/project-overview.md`
|
|
45
|
+
- `devflow/context/coding-standards.md`
|
|
46
|
+
- `devflow/build-plan.md`
|
|
47
|
+
- latest files under `devflow/history/features/`,
|
|
48
|
+
`devflow/history/fixes/`, and `devflow/history/rollbacks/`, if the current
|
|
49
|
+
feature is reset
|
|
50
|
+
- git branch and working tree status
|
|
51
|
+
|
|
52
|
+
For `latest`, use the most recent archive even when an active spec exists.
|
|
53
|
+
Otherwise prefer the active spec. If the active spec is missing, use
|
|
54
|
+
the most recent archived feature, fix, or rollback by filename or modification time and
|
|
55
|
+
say that is what you used.
|
|
56
|
+
|
|
57
|
+
Do not dump the spec. Pull out the routes, commands, UI surfaces, CLI commands,
|
|
58
|
+
API endpoints, data states, and done-whens that matter for a human trying it.
|
|
59
|
+
For a rollback, lead with the path that proves the removed behavior is gone, then
|
|
60
|
+
include one unaffected regression path from the rollback spec.
|
|
61
|
+
|
|
62
|
+
## Step 2 - identify how to run the app
|
|
63
|
+
|
|
64
|
+
Use the Commands section in `AGENTS.md`. Match the project type:
|
|
65
|
+
|
|
66
|
+
- **Web app** - dev server command, URL, and the route or screen to open.
|
|
67
|
+
- **Server/API** - server command, base URL, endpoint, method, and expected
|
|
68
|
+
response shape.
|
|
69
|
+
- **CLI** - exact command(s), arguments, and expected output.
|
|
70
|
+
- **Library** - example command, test fixture, REPL snippet, or sample call.
|
|
71
|
+
- **Hybrid app** - list the smallest set of commands needed, such as backend plus
|
|
72
|
+
web dev server.
|
|
73
|
+
|
|
74
|
+
If the app may already be running, say how to reuse it. If a command is missing
|
|
75
|
+
from `AGENTS.md`, report that as a gap rather than inventing certainty.
|
|
76
|
+
|
|
77
|
+
## Step 3 - write the manual guide
|
|
78
|
+
|
|
79
|
+
Produce a short guide with these sections:
|
|
80
|
+
|
|
81
|
+
1. **Start** - commands to run and where to run them.
|
|
82
|
+
2. **Open** - URLs, screens, tabs, API endpoints, or CLI commands.
|
|
83
|
+
3. **Do** - clicks, inputs, selections, or command arguments.
|
|
84
|
+
4. **Expect** - visible result, output, response, state change, file, or lack of
|
|
85
|
+
error.
|
|
86
|
+
5. **Watch For** - common wrong outcomes, console or network errors, stale data,
|
|
87
|
+
missing fields, bad empty states, layout issues, or safety warnings.
|
|
88
|
+
|
|
89
|
+
Keep it concrete. Prefer:
|
|
90
|
+
|
|
91
|
+
Open http://127.0.0.1:7788/api/snapshot
|
|
92
|
+
Expect a JSON object with `generated_at`, `services`, `projects`, and
|
|
93
|
+
`conflicts`.
|
|
94
|
+
|
|
95
|
+
Avoid:
|
|
96
|
+
|
|
97
|
+
Check that the snapshot works.
|
|
98
|
+
|
|
99
|
+
## Step 4 - include confidence and gaps
|
|
100
|
+
|
|
101
|
+
End with:
|
|
102
|
+
|
|
103
|
+
- **Best signal** - the one thing the user should try first.
|
|
104
|
+
- **Optional deeper checks** - only if useful.
|
|
105
|
+
- **Gaps** - anything the guide cannot know from the docs, such as missing route
|
|
106
|
+
names, seed data, credentials, or external services.
|
|
107
|
+
|
|
108
|
+
If the feature is not user-visible, say so and provide the closest manual signal,
|
|
109
|
+
such as an API response, CLI output, log line, or unit test command.
|
|
110
|
+
|
|
111
|
+
## Rules
|
|
112
|
+
|
|
113
|
+
- Read-only only. Do not edit, commit, merge, push, install, or delete.
|
|
114
|
+
- Do not run the app or verification commands in guide mode. If the user asks
|
|
115
|
+
you to try it for them, leave guide mode and explicitly route to `/check`
|
|
116
|
+
verification, following its activity and authorization rules.
|
|
117
|
+
- Do not pretend a path is known when the spec does not say it. Give the best
|
|
118
|
+
likely path and label uncertainty.
|
|
119
|
+
- Keep the guide short enough to follow while the app is open.
|
|
120
|
+
- Match the project's commands from `AGENTS.md`.
|
|
121
|
+
|
|
122
|
+
## Formatting
|
|
123
|
+
|
|
124
|
+
Format the output to match the project's conventions in
|
|
125
|
+
`devflow/context/ai-interaction.md`: concise, scannable markdown, with numbered
|
|
126
|
+
steps for the manual path and short bullets for warnings.
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Check verification
|
|
2
|
+
|
|
3
|
+
**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.
|
|
4
|
+
|
|
5
|
+
Verification activity was started by the dispatcher before loading this reference.
|
|
6
|
+
|
|
7
|
+
Where this sits in the workflow:
|
|
8
|
+
|
|
9
|
+
/implement -> [check] -> /complete
|
|
10
|
+
(built a (run the app, (only once the
|
|
11
|
+
step or prove each done-whens are
|
|
12
|
+
the feature) done-when) proven)
|
|
13
|
+
|
|
14
|
+
`/implement` builds and does a quick build-plus-screenshot check inline. `/check`
|
|
15
|
+
is the deeper, repeatable gate for when a "done when" needs the *real running app*,
|
|
16
|
+
not just a green build: a click that triggers a download, a route that returns a
|
|
17
|
+
file, a flow across screens. Run it on a single step whose done-when is
|
|
18
|
+
behavioral, or on the whole feature as the acceptance check before `/complete`.
|
|
19
|
+
|
|
20
|
+
The point is evidence. A passing build proves the code compiles; `/check` proves
|
|
21
|
+
the thing the spec promised actually happens. It changes no source and commits
|
|
22
|
+
nothing - it runs the app and reports what it saw.
|
|
23
|
+
|
|
24
|
+
## Input
|
|
25
|
+
|
|
26
|
+
Optional: a specific thing to check (a step, a flow, a URL). With no argument,
|
|
27
|
+
verify the whole current feature against every "done when" in
|
|
28
|
+
`devflow/context/{xxx-slug}/spec.md`.
|
|
29
|
+
|
|
30
|
+
## Step 1 - build the checklist
|
|
31
|
+
|
|
32
|
+
Read `devflow/config.json` first. A missing file means the built-in defaults
|
|
33
|
+
apply. If the file exists but is invalid, stop and point the user to `/doctor`.
|
|
34
|
+
Configuration never grants permission to start a server or take any other action
|
|
35
|
+
that the project instructions or user have not authorized.
|
|
36
|
+
The quality-gate config controls automatic invocation only. An explicit `/check`
|
|
37
|
+
or `$check` request always runs.
|
|
38
|
+
|
|
39
|
+
Read `devflow/context/{xxx-slug}/spec.md`. Pull the observable "done when"
|
|
40
|
+
criteria from the build steps (and any acceptance notes in the Testing section).
|
|
41
|
+
Turn them into a concrete checklist of claims to prove - each one a specific,
|
|
42
|
+
observable behavior, not "it works". If the user named one thing, scope to that.
|
|
43
|
+
|
|
44
|
+
If there's no active feature spec, ask what to verify rather than guessing.
|
|
45
|
+
|
|
46
|
+
## Step 2 - get the app running
|
|
47
|
+
|
|
48
|
+
Use the project's real commands (see Commands in `AGENTS.md`). Match the project
|
|
49
|
+
type:
|
|
50
|
+
|
|
51
|
+
- **Web app** - start (or reuse) the dev/preview server, then drive a real browser
|
|
52
|
+
to the relevant routes. Prefer reusing an already-running server over starting a
|
|
53
|
+
duplicate. If `AGENTS.md` declares `Browser tests: <command>`, run that exact
|
|
54
|
+
command as repeatable evidence and use its harness for covered interactions.
|
|
55
|
+
Reuse runner-owned server lifecycle instead of starting a duplicate. A green
|
|
56
|
+
suite is one evidence source, not proof of claims it does not observe. If no
|
|
57
|
+
command is declared but Playwright is already installed, prefer it for browser
|
|
58
|
+
driving, screenshots, console errors, and failed request checks. Never install
|
|
59
|
+
it from `/check`; use another real-browser evidence path and report what you
|
|
60
|
+
used, or point to `/browser-tests` for later optional setup.
|
|
61
|
+
- **CLI** - run the actual command(s) with representative inputs.
|
|
62
|
+
- **Server/API** - start it and hit the endpoints.
|
|
63
|
+
- **Library** - exercise the public API through an example or the test command.
|
|
64
|
+
|
|
65
|
+
If a `test` command is declared in `AGENTS.md`, you may run it as *one* input, but
|
|
66
|
+
`/check` is broader than unit tests: it checks real behavior, which is exactly the
|
|
67
|
+
evidence UI and integration steps ride on instead of unit tests.
|
|
68
|
+
|
|
69
|
+
## Step 3 - exercise each claim
|
|
70
|
+
|
|
71
|
+
Drive the app to each checklist item and capture evidence as you go:
|
|
72
|
+
|
|
73
|
+
- Navigate and interact for real (click, type, submit, download) - don't assert
|
|
74
|
+
from the code what the running app would do.
|
|
75
|
+
- Capture **screenshots** for visual/UI claims, **output** for CLI/API claims.
|
|
76
|
+
- Watch for **console errors and failed network requests**; a clean-looking screen
|
|
77
|
+
with errors in the console is not a pass.
|
|
78
|
+
|
|
79
|
+
With `verification.uiEvidence: "required"`, every UI claim needs direct browser
|
|
80
|
+
evidence, including a screenshot and the relevant console and network check. If
|
|
81
|
+
that evidence path is unavailable, mark the claim unverifiable instead of
|
|
82
|
+
passing it from build output. With `when-available`, use the strongest available
|
|
83
|
+
evidence and report any gap plainly.
|
|
84
|
+
|
|
85
|
+
## Step 4 - report
|
|
86
|
+
|
|
87
|
+
Give a short, honest verdict, one line per checklist item:
|
|
88
|
+
|
|
89
|
+
[pass] Download PDF saves certificate-<slug>.pdf - file downloaded, opened to the cert
|
|
90
|
+
[pass] Both buttons show a loading state - screenshot: loading-state.png
|
|
91
|
+
[fail] PDF border missing - printBackground not set; screenshot: pdf-no-border.png
|
|
92
|
+
[skip] Vercel render - can't verify locally (feature 9)
|
|
93
|
+
|
|
94
|
+
Then state the bottom line: are all the feature's done-whens proven, or not yet.
|
|
95
|
+
|
|
96
|
+
- All proven -> update only the `**Status:**` line in
|
|
97
|
+
`devflow/context/{xxx-slug}/spec.md` to `verified`, then say it is ready for
|
|
98
|
+
`/complete`.
|
|
99
|
+
- Anything failed -> update only that status line to `verification failed`, then
|
|
100
|
+
hand back to `/implement`; name what to fix. Do not fix it here.
|
|
101
|
+
- Anything unverifiable -> update only that status line to `verification
|
|
102
|
+
incomplete`, then say why; never report it as a pass.
|
|
103
|
+
|
|
104
|
+
The status-line update is generated workflow state, not a product-source edit.
|
|
105
|
+
Do not change the spec, checkboxes, findings, or product files from `/check`.
|
|
106
|
+
|
|
107
|
+
## Rules
|
|
108
|
+
|
|
109
|
+
- **Observe product behavior, don't repair it.** `/check` changes only the
|
|
110
|
+
current spec's status line as described above. It never edits product source,
|
|
111
|
+
commits, or merges. Fixing is `/implement`'s job.
|
|
112
|
+
- **Evidence or it didn't happen.** Every `pass` is backed by something observed -
|
|
113
|
+
a screenshot, output, a response. No assumed passes from reading the code.
|
|
114
|
+
- **Honest over green.** "Couldn't verify" and "failed" are valid, useful results.
|
|
115
|
+
Faking a pass defeats the entire gate.
|
|
116
|
+
- **Check the spec, not vibes.** Verify against the done-whens in
|
|
117
|
+
`spec.md`, so "works" means what the spec said it would do.
|
|
118
|
+
|
|
119
|
+
## Formatting
|
|
120
|
+
|
|
121
|
+
Format the output to match the project's conventions in
|
|
122
|
+
`devflow/context/ai-interaction.md`: concise, scannable markdown, with lists for
|
|
123
|
+
enumerations and tables for matrices rather than dense paragraphs.
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ci
|
|
3
|
-
description: "[devflow] Set up or normalize one project Verify command and matching GitHub Actions checks while preserving existing CI. Use for /ci, GitHub Actions setup, pull-request checks, automatic checks, or aligning verification."
|
|
3
|
+
description: "[devflow] Set up or normalize one project Verify command and matching GitHub Actions checks while preserving existing CI, with an optional local pre-push hook. Use for /ci, GitHub Actions setup, pull-request checks, automatic checks, pre-push hooks, or aligning verification."
|
|
4
|
+
argument-hint: "[--hook | --no-hook]"
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# ci - set up automatic GitHub checks
|
|
7
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.
|
|
10
|
+
|
|
8
11
|
**First action:** Before project inspection, preflight, or any other tool call,
|
|
9
12
|
publish `running` to `devflow/.state/run.json` using the dashboard activity
|
|
10
13
|
contract in `AGENTS.md`.
|
|
@@ -15,7 +18,7 @@ Where this sits in the workflow:
|
|
|
15
18
|
(project commands) (setup) (same recipe) (pull requests)
|
|
16
19
|
|
|
17
20
|
This skill gives local work and GitHub one shared automated command. It is an
|
|
18
|
-
optional setup task, not a requirement for using
|
|
21
|
+
optional setup task, not a requirement for using DevFlow.
|
|
19
22
|
|
|
20
23
|
Keep the beginner explanation simple:
|
|
21
24
|
|
|
@@ -23,9 +26,12 @@ Keep the beginner explanation simple:
|
|
|
23
26
|
- **GitHub Actions is the worker.** It runs the same recipe automatically.
|
|
24
27
|
- **A GitHub ruleset is the lock.** That optional remote setting can require the
|
|
25
28
|
worker to report green before merge.
|
|
29
|
+
- **A pre-push hook is the early warning.** That optional local setting runs the
|
|
30
|
+
recipe before a push leaves the machine. It is a convenience, not the lock:
|
|
31
|
+
`git push --no-verify` skips it.
|
|
26
32
|
|
|
27
|
-
This skill configures the recipe and worker
|
|
28
|
-
pushes, publishes,
|
|
33
|
+
This skill configures the recipe and worker, and adds the hook only when the
|
|
34
|
+
user opts in. It never changes the remote ruleset, pushes, publishes, or deploys.
|
|
29
35
|
|
|
30
36
|
## Input
|
|
31
37
|
|
|
@@ -47,7 +53,7 @@ Read enough to identify the real project setup:
|
|
|
47
53
|
- `.github/workflows/` and any documented external CI
|
|
48
54
|
- git's current branch, configured default branch, and remotes when available
|
|
49
55
|
|
|
50
|
-
Do not assume npm, Node.js, `main`, or GitHub from the
|
|
56
|
+
Do not assume npm, Node.js, `main`, or GitHub from the DevFlow template. Do not
|
|
51
57
|
run installs or edit files during inspection.
|
|
52
58
|
|
|
53
59
|
If an existing workflow already provides equivalent pull-request checks, explain
|
|
@@ -107,6 +113,33 @@ before writing the push trigger instead of guessing. Preserve all other workflow
|
|
|
107
113
|
files. When another workflow overlaps, report the overlap and ask whether to
|
|
108
114
|
reuse, align, or leave it alone.
|
|
109
115
|
|
|
116
|
+
## Step 3b - offer a local pre-push hook (opt-in)
|
|
117
|
+
|
|
118
|
+
After the workflow exists, ask one question and default to no:
|
|
119
|
+
|
|
120
|
+
Also add a local pre-push hook that runs Verify before every push? [y/N]
|
|
121
|
+
|
|
122
|
+
Skip the question when the request already answered it (for example "/ci with
|
|
123
|
+
hook" or "no hook"). When the answer is no, write nothing and move on. When it
|
|
124
|
+
is yes:
|
|
125
|
+
|
|
126
|
+
1. Write `.githooks/pre-push` (mode 755) that announces itself and then runs
|
|
127
|
+
the exact `Verify` command from `AGENTS.md` with `exec`, so the command's
|
|
128
|
+
exit code is the hook's exit code.
|
|
129
|
+
2. Point git at the folder: `git config core.hooksPath .githooks`.
|
|
130
|
+
3. For JavaScript and TypeScript projects, add a `prepare` script,
|
|
131
|
+
`git config core.hooksPath .githooks 2>/dev/null || true`, so a fresh
|
|
132
|
+
install wires the hook without a manual step. The `|| true` keeps installs
|
|
133
|
+
working where no git checkout exists, such as a deploy build. For other
|
|
134
|
+
stacks, document the `git config` line in the README instead.
|
|
135
|
+
4. Run the hook once (`.githooks/pre-push`). If it fails, remove what this
|
|
136
|
+
step added and report the failing subcommand. Never leave a hook the
|
|
137
|
+
project cannot pass.
|
|
138
|
+
|
|
139
|
+
The hook and the workflow run the same `Verify` command; if one changes, the
|
|
140
|
+
other changes with it. Say in the report that `--no-verify` bypasses the hook,
|
|
141
|
+
so the GitHub ruleset remains the lock.
|
|
142
|
+
|
|
110
143
|
## Step 4 - prove the setup locally
|
|
111
144
|
|
|
112
145
|
Run the exact documented `Verify` command locally. The individual build, test,
|
|
@@ -134,6 +167,7 @@ Finish with a concise setup report:
|
|
|
134
167
|
- checks included and checks omitted
|
|
135
168
|
- test gate status
|
|
136
169
|
- workflow path and triggers
|
|
170
|
+
- whether a pre-push hook was added, and that `--no-verify` bypasses it
|
|
137
171
|
- local Verify result and whether CI is only prepared locally or confirmed by a
|
|
138
172
|
successful GitHub run
|
|
139
173
|
- files changed
|
|
@@ -145,7 +179,7 @@ part of this skill.
|
|
|
145
179
|
|
|
146
180
|
## Interaction with other skills
|
|
147
181
|
|
|
148
|
-
- `/tests` adds the real test command to an existing Verify command, but never
|
|
182
|
+
- `/setup-tests` or `/test` adds the real test command to an existing Verify command, but never
|
|
149
183
|
creates CI by itself.
|
|
150
184
|
- `/implement`, `/complete`, and `/autopilot` run Verify when it is documented,
|
|
151
185
|
with their existing fallback behavior when it is absent.
|
|
@@ -156,8 +190,8 @@ part of this skill.
|
|
|
156
190
|
|
|
157
191
|
- Preserve existing CI and custom checks.
|
|
158
192
|
- Never invent tests or install a runner as part of CI setup.
|
|
159
|
-
- Never add
|
|
160
|
-
|
|
193
|
+
- Never add coverage, browser tests, security scans, or matrices by default.
|
|
194
|
+
- Add a git hook only through the Step 3b opt-in, never silently.
|
|
161
195
|
- Never push or change a remote ruleset without separate explicit approval.
|
|
162
196
|
- Keep one exact Verify command shared by local work and GitHub.
|
|
163
197
|
|
|
@@ -100,6 +100,10 @@ Gather these, then summarize. Do not dump file contents.
|
|
|
100
100
|
report it as an obsolete installer artifact. Its absence is healthy. An
|
|
101
101
|
unchanged managed copy can be removed by the updater; a modified copy needs
|
|
102
102
|
user review.
|
|
103
|
+
- Check whether `AGENTS.md` contains substantive proportional-engineering
|
|
104
|
+
guidance (`## Proportional engineering` or equivalent rules). Warn if
|
|
105
|
+
missing, explaining that updates preserve this file and provide manual repair
|
|
106
|
+
guidance.
|
|
103
107
|
- Check whether `AGENTS.md` has a `## Commands` section with dev and build
|
|
104
108
|
commands.
|
|
105
109
|
- Report missing lint or test commands as informational unless the project has
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: explore
|
|
3
|
+
description: "[devflow] Explore an idea against the actual codebase without changing files. Investigate whether a change would help, compare alternatives and tradeoffs, and discuss uncertainty before deciding whether to plan anything. Use for /explore, considering an idea, or weighing options without writing a spec."
|
|
4
|
+
argument-hint: "[<idea or question>]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# explore - investigate an idea before deciding to build
|
|
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.
|
|
10
|
+
|
|
11
|
+
Explore is a read-only conversation grounded in the actual project. It can help
|
|
12
|
+
with questions such as whether caching would help a dashboard, whether teams
|
|
13
|
+
belong in the product, or which upload approach fits existing code.
|
|
14
|
+
|
|
15
|
+
No plans or active feature are required. Do not require `/overview`, invent a
|
|
16
|
+
plan, or treat missing DevFlow context as a blocker to discussing the idea.
|
|
17
|
+
This command never writes activity state, including `devflow/.state/run.json`.
|
|
18
|
+
|
|
19
|
+
## Start from the question
|
|
20
|
+
|
|
21
|
+
Use the supplied topic or relevant conversation context. With neither, ask what
|
|
22
|
+
the user wants to investigate. For a vague idea, state a tentative interpretation
|
|
23
|
+
and ask a focused question only when its answer changes the investigation.
|
|
24
|
+
|
|
25
|
+
Reuse context already loaded in the session. Read relevant project instructions,
|
|
26
|
+
code, tests as text, manifests, and existing plans when they help answer the
|
|
27
|
+
question. Follow the actual implementation far enough to support your claims;
|
|
28
|
+
point to concrete files or symbols. Avoid scanning unrelated parts of the repo.
|
|
29
|
+
Read-only Git inspection can establish what exists or is already in progress.
|
|
30
|
+
|
|
31
|
+
Authoritative documentation lookup is appropriate when technical uncertainty
|
|
32
|
+
needs it. Distinguish documented facts from what this project actually uses.
|
|
33
|
+
Missing code or evidence is an uncertainty to explain, not permission to execute
|
|
34
|
+
an experiment or to invent current behavior.
|
|
35
|
+
|
|
36
|
+
## Discuss the options
|
|
37
|
+
|
|
38
|
+
Keep the conversation proportional to the question. Compare plausible options
|
|
39
|
+
against the user's needs and existing project constraints. Include doing nothing
|
|
40
|
+
when the current behavior may already be sufficient. Do not invent scale,
|
|
41
|
+
security requirements, or new abstractions to justify a change.
|
|
42
|
+
|
|
43
|
+
Explain the strongest case against your recommendation and how confident you
|
|
44
|
+
are. Separate observed facts, assumptions, and unanswered questions. Say what
|
|
45
|
+
evidence could change the recommendation without gathering it through execution.
|
|
46
|
+
An unresolved question or a recommendation to leave the project alone is a valid
|
|
47
|
+
outcome.
|
|
48
|
+
|
|
49
|
+
Use a small diagram in the response when it makes a relationship or tradeoff
|
|
50
|
+
clearer. Do not create diagram files. There is no mandatory output template,
|
|
51
|
+
report, question count, or next-step checklist. Follow the user's responses and
|
|
52
|
+
let the discussion continue as long as useful.
|
|
53
|
+
|
|
54
|
+
## Keep the boundaries clear
|
|
55
|
+
|
|
56
|
+
- Never create, edit, or delete files, including specs, plans, notes, generated
|
|
57
|
+
output, and activity state. Do not save the conversation into the project.
|
|
58
|
+
- Never install dependencies, execute product code, run tests or builds, start
|
|
59
|
+
servers, perform browser interactions, or call state-changing tools. Read
|
|
60
|
+
source and existing evidence instead of testing a hypothesis by execution.
|
|
61
|
+
- Never create or switch branches, commit, merge, push, publish, or deploy.
|
|
62
|
+
- Never turn a request to discuss an idea into approval to plan or implement it.
|
|
63
|
+
If the user asks for changes, explain the appropriate handoff and keep this
|
|
64
|
+
Explore invocation read-only. Do not invoke another command automatically.
|
|
65
|
+
|
|
66
|
+
## Neighbors and handoff
|
|
67
|
+
|
|
68
|
+
- `/brief` explains an existing build-plan item, its scope, dependencies, and
|
|
69
|
+
size. Explore can discuss an unplanned idea or question a planned approach.
|
|
70
|
+
- `/discovery` develops broader product direction and reviewed planning drafts.
|
|
71
|
+
Explore does not draft either planning file.
|
|
72
|
+
- `/debug` reproduces and isolates an actual failure. Explore discusses options
|
|
73
|
+
without executing code to diagnose or verify them.
|
|
74
|
+
- `/feature` writes a buildable spec; `/fix` specifies a confirmed small change.
|
|
75
|
+
Suggest the appropriate command only when the user is ready to proceed.
|
|
76
|
+
|
|
77
|
+
Do not force a handoff at the end of every response. Keep discussing the idea
|
|
78
|
+
when that is what the user wants, and leave the project unchanged.
|
|
@@ -218,6 +218,7 @@ code exists. Run the draft against these questions:
|
|
|
218
218
|
anything pushed to "out of scope" that this feature actually can't ship without?
|
|
219
219
|
- **Done-whens.** Is each one observable and checkable by `/check`, or is it a
|
|
220
220
|
vague "it works"? Make it concrete.
|
|
221
|
+
- **Proportionality.** Does any proposed abstraction, dependency, service, config surface, or security mechanism lack a current requirement, or duplicate existing code/platform features? If so, remove it.
|
|
221
222
|
- **Testing.** Does the predicted coverage match the gate - in-scope logic gets a
|
|
222
223
|
test when a `test` command is declared in `AGENTS.md`, UI/integration rides on
|
|
223
224
|
screenshot + build?
|