Web Application Testing
anthropics/skills
Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.
Orchestrates the full DELIVER wave end-to-end (roadmap execute-all finalize).
$ npx skills add nWave-ai/nWave --skill nw-deliver -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install nWave-ai/nWave nw-deliver --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/nWave-ai/nWave.git skills-src && mkdir -p .claude/skills && cp -r skills-src/nWave/skills/nw-deliver .claude/skills/nw-deliver && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "nw-deliver" agent skill from https://github.com/nWave-ai/nWave/tree/main/nWave/skills/nw-deliver into .claude/skills/nw-deliver/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nw-deliver", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/nWave-ai/nWave/tree/main/nWave/skills/nw-deliverType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add nWave-ai/nWave --skill nw-deliver -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install nWave-ai/nWave nw-deliver --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nWave-ai/nWave.git skills-src && mkdir -p .agents/skills && cp -r skills-src/nWave/skills/nw-deliver .agents/skills/nw-deliver && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "nw-deliver" agent skill from https://github.com/nWave-ai/nWave/tree/main/nWave/skills/nw-deliver into .agents/skills/nw-deliver/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nw-deliver", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nWave-ai/nWave --skill nw-deliver -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install nWave-ai/nWave nw-deliver --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nWave-ai/nWave.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/nWave/skills/nw-deliver .cursor/skills/nw-deliver && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "nw-deliver" agent skill from https://github.com/nWave-ai/nWave/tree/main/nWave/skills/nw-deliver into .cursor/skills/nw-deliver/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nw-deliver", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/nWave-ai/nWave.git --path nWave/skills/nw-deliver--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add nWave-ai/nWave --skill nw-deliver -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install nWave-ai/nWave nw-deliver --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nWave-ai/nWave.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/nWave/skills/nw-deliver .gemini/skills/nw-deliver && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "nw-deliver" agent skill from https://github.com/nWave-ai/nWave/tree/main/nWave/skills/nw-deliver into .gemini/skills/nw-deliver/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nw-deliver", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install nWave-ai/nWave nw-deliverInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add nWave-ai/nWave --skill nw-deliver -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/nWave-ai/nWave.git skills-src && mkdir -p .github/skills && cp -r skills-src/nWave/skills/nw-deliver .github/skills/nw-deliver && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "nw-deliver" agent skill from https://github.com/nWave-ai/nWave/tree/main/nWave/skills/nw-deliver into .github/skills/nw-deliver/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nw-deliver", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nWave-ai/nWave --skill nw-deliver -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install nWave-ai/nWave nw-deliver --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nWave-ai/nWave.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/nWave/skills/nw-deliver .opencode/skills/nw-deliver && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "nw-deliver" agent skill from https://github.com/nWave-ai/nWave/tree/main/nWave/skills/nw-deliver into .opencode/skills/nw-deliver/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nw-deliver", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
nw-deliverOrchestrates the full DELIVER wave end-to-end (roadmap execute-all finalize).
Nw Deliver is an agent skill from nWave-ai/nWave. Orchestrates the full DELIVER wave end-to-end (roadmap execute-all finalize). Use when all prior waves are complete and the feature is ready for implementation.
Its SKILL.md is about 8.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Testing & QA. It works with Python. The repository describes itself as: AI agents that guide you from idea to working code, with you in control at every step. The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit da401a8. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gituvFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and uv, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Nw Deliver loads about 8.7k tokens when it runs. Until then it costs about 44 tokens; SKILL.md has 3,788 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from nWave-ai/nWave at commit da401a8, republished under its MIT licence (© nWave-ai). 3,788 words, ~8,662 tokens.
.claude/skills/nw-deliver/SKILL.md (or your agent's skills folder).Wave: DELIVER (wave 6 of 6)|Agent: Main Instance (orchestrator)|Command: /nw-deliver "{feature-description}"
Code examples in this skill use Python syntax for illustration only. They are NOT prescriptive about target language. nWave is language-agnostic per the "genericity and agnosticism" mandate (2026-05-24).
Before crafting, detect the target project's language from manifest files: package.json → TypeScript/JS; Cargo.toml → Rust; go.mod → Go; pyproject.toml/setup.py/Pipfile → Python; pom.xml/build.gradle → Java/Kotlin; *.csproj/*.fsproj → C#/F#; Gemfile → Ruby; Package.swift → Swift.
When the target language is NOT Python: adapt every code example to target conventions (imports, type system, test-framework idioms, file extensions, directory layout). Project conventions ALWAYS WIN over examples below.
Empirical anchor: skill examples being Python-only caused LLM to emit Python code in greenfield TS project. Fix per F-SKILL-EXAMPLES-LANGUAGE-LEAK. Connects [[feedback_language_adapter_plugin_architecture_2026_05_24]].
Orchestrates complete DELIVER wave: feature description → production-ready code with mandatory quality gates. You (main Claude instance) coordinate by delegating to specialized agents via Task tool. Final wave (DISCOVER > DISCUSS > SPIKE > DESIGN > DEVOPS > DISTILL > DELIVER).
Sub-agents cannot use Skill tool or /nw-* commands. You MUST:
~/.claude/skills/nw-{skill-name}/SKILL.md)Provenance: feature lean-wave-documentation — D2 (schema-typed sections), D10 (one-line expansion descriptions). Tier-1 [REF] sections (always emitted) + Tier-2 EXPANSION CATALOG items (lazy, on-demand) are the two output bands. Implementation details live in code; the wave-delta sections are pointers + structured summaries. Full contract: nWave/skills/nw-density-resolution-contract/SKILL.md.
Under ## Wave: DELIVER / [REF] <Section> headings:
<N> of <M> from the .feature file with timestampRendered under ## Wave: DELIVER / [WHY|HOW] <Section> only when requested via --expand <id> (DDD-2), the broad wave-end menu (expansion_prompt = "ask"), a declared trigger under expansion_prompt = "ask-intelligent", mode = "full" auto-expansion, or an ad-hoc user request mid-session.
| Expansion ID | Tier label | One-line description |
|---|---|---|
refactoring-journal | [HOW] | L1-L6 refactoring log with rationale per micro-transformation |
retrospective-notes | [WHY] | 5 Whys analysis on issues encountered, lessons learned, what to repeat/avoid |
performance-measurements | [WHY] | Benchmarks, profiling output, latency/memory deltas vs baseline |
alternative-implementations-rejected | [WHY] | Implementation approaches tried and rejected with one-paragraph reason each |
mutation-testing-report | [HOW] | Mutmut/Pitest output: kill rate, surviving mutants, mitigation actions |
architecture-decision-deviations | [WHY] | Where DELIVER deviated from DESIGN and the back-propagation logged in upstream-issues.md |
coverage-deltas | [HOW] | Per-module coverage delta with rationale for any drops |
expansion-catalog-rationale | [WHY] | Why this set of expansions, why these defaults, why D10 enforces one-line descriptions |
Call resolve_density(global_config) from scripts/shared/density_config.py after reading ~/.nwave/global-config.json (missing/malformed = empty dict). Returns mode ("lean" | "full") + expansion_prompt ("ask" | "ask-intelligent" | "always-skip" | "always-expand" | "smart") per the D12 cascade (resolver-internal, DDD-5 — do NOT replicate locally). Branch on density.mode for what to emit; branch on density.expansion_prompt at wave end for menu behaviour. DELIVER declares no ask-intelligent triggers: emit no menu and the shared-contract no-trigger skip event; do not invent triggers. Full cascade detail, branch semantics, ad-hoc override workflow: nWave/skills/nw-density-resolution-contract/SKILL.md.
Every expansion choice emits a DocumentationDensityEvent (dataclass at src/des/domain/telemetry/documentation_density_event.py) via event.to_audit_event() → JsonlAuditLogWriter().log_event(...). Schema fields per D4: feature_id, wave, expansion_id, choice, timestamp. For this wave the schema declares "wave": "DELIVER". Use helper scripts/shared/telemetry.py:write_density_event(...) — do NOT write JSONL directly.
Wave-specific signal: a DELIVER wave recording choice = "expand" for retrospective-notes indicates the team needed deeper learning capture; over time the data drives whether retrospective notes should be promoted to Tier-1. Full emission rules: nWave/skills/nw-density-resolution-contract/SKILL.md.
nWave/templates/roadmap-schema.json, pass in DES template.DES monitoring is non-negotiable. Circumventing DES — faking step IDs, omitting markers, or writing log entries manually — is a violation that invalidates the delivery. DES detects unmonitored steps and flags them; finalize blocks until every flagged step is re-executed through a properly instrumented Task. There is no workaround: unverified steps cannot pass integrity verification, and the delivery cannot be finalized. Without DES monitoring, nWave cannot verify TDD phase compliance. For non-deliver tasks (docs, research, one-off edits): <!-- DES-ENFORCEMENT : exempt -->.
Before dispatching any agent, read the rigor profile from .nwave/des-config.json (key: rigor). If absent, use standard defaults.
How rigor affects deliver phases:
| Setting | Effect |
|---|---|
agent_model | Pass as model parameter to all Task tool invocations for crafter agents. If "inherit", omit model parameter (Task tool inherits from session). |
reviewer_model | Pass as model parameter to reviewer Task invocations. If "skip", skip Phase 4 entirely. |
review_enabled | If false, skip Phase 4 (Adversarial Review). |
double_review | If true, run Phase 4 twice with separate review scopes. |
tdd_phases | Pass to crafter in DES template. Replace # TDD_PHASES section with the configured phases. The 3-phase canon (ADR-025) is [RED, GREEN, COMMIT]; legacy 5-phase contract is [PREPARE, RED_ACCEPTANCE, RED_UNIT, GREEN, COMMIT]. If lean profile ([RED_UNIT, GREEN] legacy or [RED, GREEN] canon), omit setup/commit instructions accordingly. |
refactor_pass | If false, skip Phase 3 (Complete Refactoring). |
mutation_enabled | If false, skip Phase 5 regardless of mutation strategy in CLAUDE.md. |
Task invocation with rigor model:
Task(
subagent_type="{agent}",
model=rigor_agent_model, # omit this line entirely if "inherit"
max_turns=45,
prompt=...,
)Before beginning DELIVER work, read prior wave content. With lean v3.14, all wave decisions live in a single feature-delta.md (sections tagged ## Wave: <NAME> / [REF|WHY|HOW] <Section>); legacy multi-file directories are no longer produced.
feature-delta.md.docs/feature/{feature-id}/feature-delta.md under ## Wave: DISCUSS / [REF] ... sections. Already encoded as acceptance scenarios — read for elevator pitch extraction (Phase 3.5) and clarification only.docs/product/architecture/brief.md (cross-feature SSOT — component boundaries, driving ports, C4 diagrams). PLUS read docs/feature/{feature-id}/feature-delta.md filtered to ## Wave: DESIGN / [REF] ... sections — DDD list, component decomposition, driving/driven ports, technology choices, decisions table, reuse analysis.feature-delta.md under ## Wave: DEVOPS / [REF] ... sections. Read only if test environment issues arise.feature-delta.md ## Wave: DISTILL / [REF] ... sections — scenario list with tags, walking skeleton strategy, adapter coverage, scaffold inventory, test placement, driving adapter coverage, pre-requisites.feature files at the test placement path declared in DISTILL (e.g. tests/{feature-id-or-bounded-context}/acceptance/*.feature) — these are the authoritative specificationREADING ENFORCEMENT: You MUST read feature-delta.md (full file) AND docs/product/architecture/brief.md AND every .feature file referenced in the DISTILL Test Placement section before proceeding. After reading, output a confirmation checklist (✓ {file} for each read, ⊘ {file} (not found) for missing). Do NOT skip files that exist — skipping causes implementation disconnected from architecture and acceptance tests.
Migration fallback for legacy features: If docs/feature/{feature-id}/feature-delta.md does NOT exist BUT legacy multi-file directories (discuss/, design/, devops/, distill/) DO exist, treat the legacy layout as authoritative for THIS feature only. Read all files in those directories. Future waves should consolidate to feature-delta.md per lean v3.14.
Upstream issues check: look for ## Wave: <NAME> / [WHY] Upstream Issues sections in feature-delta.md (or legacy upstream-changes.md / upstream-issues.md files in legacy multi-file features). If unresolved issues exist, flag them to the user before starting implementation.
On-demand escalation: If during implementation a crafter encounters ambiguity not resolved by DISTILL tests or DESIGN architecture, the orchestrator re-reads specific sections of feature-delta.md — never re-reads the full file unnecessarily.
When DELIVER implementation reveals gaps or contradictions in prior waves:
## Wave: DELIVER / [WHY] Upstream Issues section appended to docs/feature/{feature-id}/feature-delta.md (lean v3.14 — Tier-2 expansion) OR docs/feature/{feature-id}/deliver/upstream-issues.md (legacy multi-file)At the start of execution, create these tasks using TaskCreate and follow them in order:
.nwave/des-config.json key rigor. Store: agent_model, reviewer_model, tdd_phases, review_enabled, double_review, mutation_enabled, refactor_pass. Use standard defaults if absent. Gate: rigor profile loaded or defaults set.0.5. Prior Wave Consultation — Read docs/feature/{feature-id}/feature-delta.md (lean v3.14: full file with DISCUSS/DESIGN/DEVOPS/DISTILL sections) + docs/product/architecture/brief.md + every .feature file declared in the DISTILL Test Placement section. Legacy fallback: if feature-delta.md is missing but multi-file dirs exist, read those instead. Flag contradictions, resolve before proceeding. Summarize key design decisions into a reusable DESIGN_CONTEXT block for crafter dispatch (component structure, boundaries, tech choices, data models). Gate: all required files read, confirmation checklist output, no unresolved contradictions.
feature-id (kebab-case), create docs/feature/{feature-id}/deliver/.execution-log.json via CLI: des-init-log --project-dir docs/feature/{feature-id}/deliver --feature-id {feature-id}. Do NOT use Write tool directly..nwave/des/deliver-session.json.execution-log.json created via CLI, session marker written.1.5. Detect Development Paradigm — Read project CLAUDE.md (project root, NOT ~/.claude/CLAUDE.md). Search "## Development Paradigm".
"functional" → @nw-functional-software-crafter or "object-oriented" → @nw-software-crafter (default).CLAUDE.md.@property tags signal PBT; example-based = fallback.1.6. Detect Mutation Testing Strategy — Read same CLAUDE.md, search "## Mutation Testing Strategy".
per-feature | nightly-delta | pre-release | disabled.nightly-delta (recommended mode — CI runs mutmut nightly on changed modules; keeps per-feature gates fast).CLAUDE.md edits during delivery take effect next run.1.7. Detect Deliverable Type (ADR-PST-003 / DDD-6) — Read deliverable_type from the SAME .nwave/des-config.json the runtime gate uses — this is the single source of truth (DESConfig.deliverable_type precedence, ADR-PST-002): (1) declared project .nwave/des-config.json key deliverable_type if in the known set {application, plugin, skill}; (2) else global ~/.nwave/global-config.json defaults.deliverable_type; (3) else root-only FS detection; (4) a present-but-typo'd value resolves to the safe default (treated as application). Do NOT re-detect independently — read what the gate reads so the verification plan and the enforcement gate never diverge.
application (or unresolved) → store application. Verification plan UNCHANGED (pytest / Hypothesis routing, @nw-software-crafter-reviewer).plugin → store plugin. The Phase 4 verification plan branches (see Phase 4).skill → store skill. The Phase 4 verification plan branches (see Phase 4)..nwave/des-config.json and stored for Phase 4 routing.Phase 1 — Roadmap Creation + Review — Gate: roadmap created, integrity verified, reviewer approved.
docs/feature/{feature-id}/deliver/roadmap.json exists with validation.status == "approved". If found in design/ instead, move to deliver/ and log warning.@nw-solution-architect to create roadmap.json (load ~/.claude/skills/nw-roadmap/SKILL.md). Step IDs MUST match NN-NN format (01-01, 01-02). If distill/ exists, architect MUST populate test_file and scenario_name per step.des-verify-integrity docs/feature/{feature-id}/deliver/ --roadmap-only — validates roadmap.json against the schema only; execution-log cross-reference is skipped (no log entries exist yet pre-crafter). Exit 0 = roadmap OK; exit 1 = schema errors printed; exit 2 = file missing or usage error. BLOCK on any non-zero exit; fix before dispatching any crafter.@nw-acceptance-designer-reviewer to review roadmap (load ~/.claude/skills/nw-review/SKILL.md): verify every DISTILL scenario has a step, flag orphan scenarios as BLOCKER; flag steps covering 8+ scenarios as @sizing-review-needed; verify walking skeleton scenarios map to Phase 1 steps.Phase 2 — Execute All Steps — Gate: all steps reach COMMIT/PASS in execution-log.json.
roadmap.json in dependency order.execution-log.json for prior completion (resume mode).execute.md (load ~/.claude/skills/nw-execute/SKILL.md). Include DES markers (DES-VALIDATION, DES-PROJECT-ID, DES-STEP-ID) + all mandatory sections. Functional crafter → PBT default; @property tags signal PBT.execution-log.json per step.max_turns.tests/acceptance/{feature-id}/. Fix failures before proceeding to next step. No deferral.3.5. Post-Merge Integration Gate (Hard Gate) — AFTER all steps reach COMMIT/PASS, BEFORE Phase 3. Gate: full acceptance suite passes in all environments AND every story's Elevator Pitch demo command produces non-empty output.
uv run pytest tests/acceptance/{feature-id}/ -v --tb=short.## Wave: DEVOPS / [REF] Environment Matrix section of feature-delta.md (lean v3.14) OR docs/feature/{feature-id}/devops/environments.yaml (legacy multi-file). If neither, use defaults: clean, with-pre-commit, with-stale-config.## Wave: DISCUSS / [REF] User Stories with Elevator Pitches section of feature-delta.md (lean v3.14) OR docs/feature/{feature-id}/discuss/user-stories.md (legacy) that is NOT tagged @infrastructure:After: run ... → sees ... linedocs/feature/{feature-id}/feature-delta.md as ## Wave: DELIVER / [REF] Demo Evidence (lean v3.14 — single narrative file) OR docs/feature/{feature-id}/deliver/wave-decisions.md under a ## Demo Evidence — {date} section (legacy multi-file). Do NOT create a separate demo-output file.execution-log.json: {"gate": "post-merge-integration", "status": "PASS", "environments_tested": [...], "stories_demoed": [...], "timestamp": "ISO-8601"}.Phase 3 — Complete Refactoring (L1-L6) — [SKIP if rigor.refactor_pass = false]. Gate: all tests green after each module refactored.
git diff --name-only {base-commit}..HEAD -- '*.py' | sort -u. Split into PRODUCTION_FILES (src/) and TEST_FILES (tests/)./nw-refactor {files} --levels L1-L6 via selected crafter with DES orchestrator markers: <!-- DES-VALIDATION : required -->, <!-- DES-PROJECT-ID : {feature-id} -->, <!-- DES-MODE : orchestrator -->.Phase 4 — Adversarial Review — [SKIP if rigor.review_enabled = false or rigor.reviewer_model = "skip"]. Gate: review passed or one revision complete. Reviewer routing branches on the deliverable type stored in step 1.7 (ADR-PST-003 / DDD-6):
application (or unresolved) — UNCHANGED:
/nw-review @nw-software-crafter-reviewer implementation "{execution-log-path}" with model=rigor.reviewer_model and DES orchestrator markers.rigor.double_review = true → run review a second time with different scope focus.plugin — dispatch @nw-plugin-validator (Claude Code plugin structure/schema) AND @nw-skill-reviewer (SKILL.md quality), both on Haiku, plus @nw-software-crafter-reviewer for any application-layer code in the same feature. Verification evidence is behavioral Gherkin + example-interaction evidence (the plugin demonstrated through its real invocation path), with optional bats/shellcheck for any shell. NOT pytest/Hypothesis-centric. One revision pass on rejection → proceed.
skill — dispatch @nw-skill-reviewer (SKILL.md quality, Haiku). Do NOT dispatch @nw-plugin-validator (no plugin structure to validate). Verification evidence is behavioral Gherkin. One revision pass on rejection → proceed.
Authoring stays with @nw-agent-builder: when a plugin/skill review finds content to author or rewrite, route the fix to @nw-agent-builder — the validators/reviewers are read-only. The four *-development specialist agents remain DEFERRED.
Phase 5 — Mutation Testing — [SKIP if rigor.mutation_enabled = false]. Gate: ≥80% kill rate or strategy skip logged.
per-feature → gate ≥80% kill rate (load ~/.claude/skills/nw-mutation-test/SKILL.md).nightly-delta → SKIP; log "handled by CI nightly pipeline".pre-release → SKIP; log "handled at release boundary".disabled → SKIP; log "disabled per project configuration".Phase 6 — Deliver Integrity Verification — Gate: verify_deliver_integrity exits 0.
des-verify-integrity docs/feature/{feature-id}/deliver/..nwave/des-config.json (rigor.tdd_phases), intersected with the canonical TDDSchema. 3-phase ADR-025 projects ([RED, GREEN, COMMIT]) verify cleanly. Legacy 5-phase projects continue to verify unchanged. Empty intersection → exit 2 with diagnostic naming the offending rigor phases (fix .nwave/des-config.json and rerun).Phase 7 — Finalize — Gate: evolution archived, session markers removed, commit pushed, hook offer made (if applicable).
@nw-platform-architect to archive to docs/evolution/ (load ~/.claude/skills/nw-finalize/SKILL.md).rm -f .nwave/des/deliver-session.json .nwave/des/des-task-active..git/hooks/pre-push). If NOT installed AND not previously declined (no .nwave/hook-offer-declined marker): offer the user ONCE — suggest running pre-commit install --hook-type pre-commit --hook-type pre-push so tests also run automatically on commit/push. This is an OFFER, not enforcement; it does NOT replace the crafter's own mandatory terminating test run (the suite always runs at the end of every code modification regardless of hooks — feedback_target_machine_independence_2026_05_15). If the user declines, write .nwave/hook-offer-declined and do not re-offer.Phase 8 — Retrospective (conditional) — Skip if clean execution. Gate: 5 Whys documented or clean-run noted.
@nw-troubleshooter for 5 Whys analysis.Phase 9 — Report Completion — Display summary: phases, steps, reviews, artifacts. Gate: report output, return to DISCOVER for next iteration.
Follow this flow directly. Do not delegate orchestration.
Per phase:
.develop-progress.json for resume capability.DES markers required for step execution. Without markers → unmonitored. Full DES Prompt Template in ~/.claude/skills/nw-execute/SKILL.md.
When dispatching steps via Agent tool, use the COMPLETE DES template from execute.md verbatim. Fill all {placeholders} from roadmap step context. The DES hook validates the prompt BEFORE the sub-agent starts — abbreviated prompts that delegate template reading to the sub-agent will be BLOCKED.
Copy the template from the code block in ~/.claude/skills/nw-execute/SKILL.md (between ``` markers), fill placeholders, and pass as the Agent prompt. The template sections are defined in execute.md — do not hardcode the list here.
Task(
subagent_type="{agent}",
model=rigor_agent_model, # omit if "inherit"
prompt=f'''
<!-- DES-VALIDATION : required -->
<!-- DES-PROJECT-ID : {project_id} -->
<!-- DES-STEP-ID : {step_id} -->
# DES_METADATA
Step: {step_id}
Feature: {project_id}
Command: /nw-execute
# AGENT_IDENTITY
Agent: {agent}
# SKILL_LOADING
Before starting TDD phases, read your skill files for methodology guidance.
Skills path: ~/.claude/skills/nw-{skill-name}/SKILL.md
Always load at PREPARE: tdd-methodology.md, quality-framework.md
Load on-demand per phase as specified in your Skill Loading Strategy table.
# TASK_CONTEXT
{step context extracted from roadmap - name|criteria|test_file|scenario_name|implementation_notes|deps|files_to_modify (per nWave/templates/roadmap-schema.json)}
# DESIGN_CONTEXT
{Summarize key architectural decisions from design wave artifacts read at step 0.5.
Include: component structure, dependency-inversion boundaries, technology choices,
data models, and any design constraints relevant to this step.
Source files: docs/product/architecture/brief.md, wave-decisions.md.
If no design artifacts exist, write "No design artifacts available — use project conventions."}
# TDD_PHASES
... (copy remaining sections from execute.md template verbatim)
# TIMEOUT_INSTRUCTION
Target: 30 turns max. If approaching limit, COMMIT current progress.
''',
description="{phase description}"
)After roadmap creation, before reviewer, run these checks:
_method()). HIGH → return to architect.files_to_modify. HIGH → return to architect.^\d{2}-\d{2}$. HIGH → return to architect.feature-delta.md contains ## Wave: DISTILL / [REF] ... sections OR docs/feature/{feature-id}/distill/ exists (legacy), flag steps missing test_file/scenario_name. HIGH → return to architect..develop-progress.json on start for resume state.roadmap.json exists with validation.status == "approved".execution-log.json.feature-description (string, required, min 10 chars)feature-id: strip prefixes (implement|add|create), remove stop words, kebab-case, max 5 wordsSingle narrative file: docs/feature/{feature-id}/feature-delta.md — implementation summary, files modified, scenarios green count, DoD check, demo evidence, quality gates, pre-requisites all become ## Wave: DELIVER / [REF|WHY|HOW] <Section> headings. Implementation details live in code; the wave-delta sections are pointers + structured summaries.
Machine artifacts (declared, parseable by DES + downstream tooling):
docs/feature/{feature-id}/roadmap.json — step-by-step execution plan (created by nw-solution-architect, consumed by DES dispatcher)docs/feature/{feature-id}/execution-log.json — DES audit log of phase events per step (created by des-init-log, written by crafter sub-agents only)docs/feature/{feature-id}/.develop-progress.json — resume marker for skip-and-resumeLong-term archive (outside the feature dir): docs/evolution/{feature-id}-evolution.md — written by the platform architect at finalize time; cross-feature retrospective context.
SSOT updates (per Recommendation 3 / back-propagation contract):
docs/product/architecture/brief.md — append shipped components to the Component Inventory subsection; mark previously-planned components that did NOT ship as deferred.docs/product/kpi-contracts.yaml — record measured baselines for each outcome KPI (the value at GA / first dogfood) so future deltas have a reference point.Legacy multi-file outputs (implementation-notes.md, commits.md, retrospective.md as separate files in docs/feature/{id}/deliver/) are NOT produced — that content lives in feature-delta.md and docs/evolution/. Validator: scripts/validation/validate_feature_layout.py.
Roadmap review (1 review, max 2 attempts)|Per-step TDD cycle (3-phase canon RED→GREEN→COMMIT per ADR-025, or legacy 5-phase PREPARE→RED_ACCEPTANCE→RED_UNIT→GREEN→COMMIT for pre-2026-05-07 audit-log replay)|Paradigm-appropriate crafter|L1-L6 refactoring (Phase 3)|Adversarial review + Testing Theater detection (Phase 4)|Mutation ≥80% if per-feature (Phase 5)|Integrity verification (Phase 6)|All tests passing per phase
After each crafter step's COMMIT, verify the files modified match the DESIGN specification:
## Wave: DESIGN / [REF] Component Decomposition table in feature-delta.md (lean v3.14) OR docs/feature/{feature-id}/design/architecture-design.md "Changes Per File" table (legacy multi-file)git diff --name-only for the crafter's commitThis gate prevents the pattern where crafters create parallel implementations instead of extending existing components (see RCA docs/analysis/rca-systematic-duplication-despite-design.md).
A feature CANNOT be marked COMPLETE unless ALL waves in its scope have been executed:
.feature + test_*.py)__SCAFFOLD__ = True must not exist in any production fileViolating this rule creates dead code, dual paths, and accumulated technical debt.
/nw-deliver "Implement user authentication with JWT" → roadmap → review → TDD all steps → mutation → finalize → report
Same command → loads .develop-progress.json → skips completed → resumes from failure
For manual granular control, use individual commands:
/nw-roadmap @nw-solution-architect "goal"
/nw-execute {selected-crafter} "feature-id" "01-01"
/nw-finalize @nw-platform-architect "feature-id"DELIVER is final wave. After completion → DISCOVER for next feature or mark project complete.
© nWave-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in nWave/skills/nw-deliver of nWave-ai/nWave.
Open the folder on GitHubat commit da401a8
Nw Deliver next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Nw Deliver this skillnWave-ai/nWave | 616 | — | ~8.7k | Automated safety check: Pass | MIT | |
| Web Application Testinganthropics/skills | 180k | 51 repos | ~966 | Automated safety check: Pass | Apache-2.0 | |
| OpenHarness End-to-End EvalsHKUDS/OpenHarness | 16k | 1 repos | ~2.1k | Automated safety check: Notes | MIT | |
| Adk Verify Snippetsgoogle/adk-python | 22k | — | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| Apple Container Test RunnerRustPython/RustPython | 22k | — | ~467 | Automated safety check: Pass | MIT | |
| JSON Repair Docs Demo Local Testmangiucugna/json_repair | 5.1k | — | ~549 | Automated safety check: Pass | MIT |
anthropics/skills
Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.
HKUDS/OpenHarness
Validates OpenHarness features by running real multi-turn agent loops with live LLM calls against an unfamiliar codebase, checking actual tool execution.
google/adk-python
Checks that every Python code block in a Markdown file actually compiles and runs, by extracting each block to a temporary file, executing it in an isolated subprocess, and writing a pass/fail…
RustPython/RustPython
Runs RustPython tests inside a Linux container built with Apple's container CLI, so macOS users can compare Linux results with their local ones.
mangiucugna/json_repair
Runs the json_repair docs demo against a local Flask API and static server, so changes to docs/app.py or the docs UI are checked end to end before publishing.
astral-sh/ruff
A skill your agent uses when a user asks to wobble ty constraint ordering, check constraint-set or TDD ordering determinism, test reversed constraint/typevar IDs, or investigate nondeterministic ty…
nWave-ai/nWave
DELIVER wave orchestration workflow -- 9 phases from baseline to finalization.
nWave-ai/nWave
Generates C4 architecture diagrams (context, container, component) in Mermaid or PlantUML.
nWave-ai/nWave
Generates 3-5 divergent design directions through JTBD analysis, competitive research, structured brainstorming, and taste evaluation before convergence.
nWave-ai/nWave
Creates evidence-based documentation following DIVIO/Diataxis principles.
nWave-ai/nWave
A skill your agent uses when a DELIVER roadmap already exists and you need to dispatch exactly one identified step through its TDD cycle.
nWave-ai/nWave
Creates new specialized agents using the 5-phase workflow (ANALYZE DESIGN CREATE VALIDATE REFINE).
Works with
Categories
Orchestrates the full DELIVER wave end-to-end (roadmap execute-all finalize). Nw Deliver is an agent skill from nWave-ai/nWave. Orchestrates the full DELIVER wave end-to-end (roadmap execute-all finalize).
Nw Deliver fits situations like: all prior waves are complete and the feature is ready for implementation.
Run `npx skills add nWave-ai/nWave --skill nw-deliver -a claude-code`. Or copy the skill folder (nWave/skills/nw-deliver in nWave-ai/nWave) into .claude/skills/nw-deliver in your project. Claude Code loads it when a task matches its description.
Run `npx skills add nWave-ai/nWave --skill nw-deliver -a codex`. Or copy the skill folder (nWave/skills/nw-deliver in nWave-ai/nWave) into .agents/skills/nw-deliver in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nWave-ai/nWave --skill nw-deliver -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/nw-deliver, .gemini/skills/nw-deliver, .github/skills/nw-deliver and .opencode/skills/nw-deliver in your project.
Going by SKILL.md and its folder, Nw Deliver needs the command-line tools its instructions call (git and uv). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use git and uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Nw Deliver is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 8.7k tokens (SKILL.md is roughly 35k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Nw Deliver: Web Application Testing (anthropics/skills, 180k stars), OpenHarness End-to-End Evals (HKUDS/OpenHarness, 16k stars), Adk Verify Snippets (google/adk-python, 22k stars) and Apple Container Test Runner (RustPython/RustPython, 22k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
nWave-ai (a GitHub organization) maintains it in nWave-ai/nWave, which has 616 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on September 16, 2026.
Source: nWave-ai/nWave on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.