TDD
pietheinstrengholt/rssmonster
Test-driven development. An agent skill from pietheinstrengholt/rssmonster.
A skill your agent uses when a DELIVER roadmap already exists and you need to dispatch exactly one identified step through its TDD cycle.
$ npx skills add nWave-ai/nWave --skill nw-execute -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install nWave-ai/nWave nw-execute --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-execute .claude/skills/nw-execute && 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-execute" agent skill from https://github.com/nWave-ai/nWave/tree/main/nWave/skills/nw-execute into .claude/skills/nw-execute/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nw-execute", 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-executeType 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-execute -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install nWave-ai/nWave nw-execute --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-execute .agents/skills/nw-execute && 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-execute" agent skill from https://github.com/nWave-ai/nWave/tree/main/nWave/skills/nw-execute into .agents/skills/nw-execute/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nw-execute", 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-execute -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install nWave-ai/nWave nw-execute --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-execute .cursor/skills/nw-execute && 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-execute" agent skill from https://github.com/nWave-ai/nWave/tree/main/nWave/skills/nw-execute into .cursor/skills/nw-execute/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nw-execute", 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-execute--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-execute -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install nWave-ai/nWave nw-execute --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-execute .gemini/skills/nw-execute && 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-execute" agent skill from https://github.com/nWave-ai/nWave/tree/main/nWave/skills/nw-execute into .gemini/skills/nw-execute/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nw-execute", 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-executeInstalls 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-execute -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-execute .github/skills/nw-execute && 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-execute" agent skill from https://github.com/nWave-ai/nWave/tree/main/nWave/skills/nw-execute into .github/skills/nw-execute/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nw-execute", 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-execute -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-execute --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-execute .opencode/skills/nw-execute && 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-execute" agent skill from https://github.com/nWave-ai/nWave/tree/main/nWave/skills/nw-execute into .opencode/skills/nw-execute/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nw-execute", 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-executeA skill your agent uses when a DELIVER roadmap already exists and you need to dispatch exactly one identified step through its TDD cycle.
Nw Execute is an agent skill from nWave-ai/nWave. Use when a DELIVER roadmap already exists and you need to dispatch exactly one identified step through its TDD cycle. Use nw-roadmap to create the plan, nw-deliver for the whole wave, and nw-continue to resume at the next inferred step.
Its SKILL.md is about 3k 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, covering Test-driven development. 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.
5 steps, taken from the first numbered list 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:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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 Execute loads about 3k tokens when it runs. Until then it costs about 62 tokens; SKILL.md has 528 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). 528 words, ~3,018 tokens.
.claude/skills/nw-execute/SKILL.md (or your agent's skills folder).Wave: EXECUTION_WAVE | Agent: Dispatched agent (specified by caller)
Dispatch one unit of DELIVER work to an agent: a single roadmap step. /nw-execute extracts the step from roadmap.json and dispatches it for the 3-phase TDD canon; the agent appends phase events to execution-log.json.
/nw-execute @{agent} "{feature-id}" "{step-id}"docs/feature/{feature-id}/deliver/roadmap.json — Orchestrator reads once, extracts step contextdocs/feature/{feature-id}/deliver/execution-log.json — Agent appends only (never reads)Before dispatching the agent, read rigor config from .nwave/des-config.json (key: rigor). If absent, use standard defaults.
agent_model: Pass as model parameter to Agent tool. If "inherit", omit model (inherits from session).tdd_phases: Modify the TDD_PHASES section in the DES template to match the configured phases. The 3-phase canon (ADR-025) is [RED, GREEN, COMMIT]; the lean variant is [RED, GREEN]. Legacy 5-phase contract ([PREPARE, RED_ACCEPTANCE, RED_UNIT, GREEN, COMMIT]) and its lean variant ([RED_UNIT, GREEN]) remain supported for audit-log replay of pre-2026-05-07 commits. Remove omitted phases' instructions from the template.refactor_pass: If false, skip COMMIT phase refactoring instructions..nwave/des-config.json key rigor (default: standard if absent). Gate: config loaded or default applied.roadmap.json and execution-log.json exist under docs/feature/{feature-id}/deliver/. Gate: both files present; report path-not-found if missing.step_id: "{step-id}" with ~50 lines context. Gate: step found; report available step IDs if missing.@{agent}
Use this DES template verbatim. Fill {placeholders} from roadmap. Without DES markers, hooks cannot validate.
<!-- DES-VALIDATION : required -->
<!-- DES-PROJECT-ID : {feature-id} -->
<!-- DES-STEP-ID : {step-id} -->
# DES_METADATA
Step: {step-id}
Feature: {feature-id}
Command: /nw-execute
# AGENT_IDENTITY
Agent: {agent-name}
# SKILL_LOADING
Before starting TDD phases, read your skill files for methodology guidance.
Skills path: ~/.claude/skills/nw-{skill-name}/SKILL.md
Always load before RED: tdd-methodology.md, quality-framework.md (3-phase canon, ADR-025) — legacy 5-phase logs reference loading at PREPARE.
Load on-demand per phase as specified in your Skill Loading Strategy table.
# TASK_CONTEXT
{step context from roadmap - name|criteria|test_file|scenario_name|implementation_notes|deps|files_to_modify (per nWave/templates/roadmap-schema.json)}
# DESIGN_CONTEXT
{Summary of architectural decisions relevant to this step, extracted by the orchestrator from docs/product/architecture/brief.md and wave-decisions.md. Include: component structure, dependency boundaries, technology choices, and any design constraints that affect implementation. If no design artifacts exist, write "No design artifacts available — use project conventions."}
# TDD_PHASES
3-phase canon (ADR-025, 2026-05-07). Execute in order:
1. RED - Activate the pre-authored acceptance test (PRIMARY TBU DEFENSE); write PBT unit tests ONLY if the AT cannot reach GREEN without them.
AT activation: If TASK_CONTEXT includes test_file, locate it and remove the @skip/@ignore/@pending/xit/.skip/[Ignore] marker from the target scenario (the AT scaffold was authored by DISTILL — DELIVER does NOT re-author ATs). Run it — must fail for business logic reason (not import/syntax error). Fail-for-right-reason gate: collected ≥ 1, failures ≥ 1, no collection errors, semantic AssertionError / expected-exception-not-thrown.
PORT-TO-PORT PRINCIPLE: The acceptance test exercises the scenario through
the driving port (application service, orchestrator, CLI handler, API controller),
not a decomposed helper or internal class. A correctly-written port-to-port test
makes TBU structurally impossible — if a new function were missing or unwired,
THIS test stays RED. That is the entire point: GREEN is unreachable without wiring.
Litmus test: "If I delete the call-site that wires the new code, does this test fail?"
If no → the test is at the wrong level. Stop and flag to orchestrator (DISTILL re-author needed).
Conditional unit-test authoring: write PBT unit tests (or integration tests for adapter/infrastructure code — adapters use real infrastructure, never mocked unit tests) ONLY when the AT requires them to reach GREEN. If the AT can pass via direct minimal implementation, skip unit-test authoring inside RED.
2. GREEN - Minimal code to pass AT + any unit tests authored in RED.
After GREEN: run FULL test suite. If all pass, proceed to COMMIT immediately.
Smell test: if any new function is only called from test code, your acceptance
test is at the wrong abstraction level — stop and flag.
Never move to new task or stop without committing green code.
3. COMMIT - Commit this step's owned files via `des-commit` (parallel-safe).
Use `des-commit` instead of raw `git add` / `git commit`. It holds an
exclusive lock and commits ONLY the paths you pass, so a parallel agent's
staged work is never swept into your commit (issue #51 / ADR-027). Pass
EVERY file you created or modified for this step (production + tests) as
`--owned-paths`; anything omitted is not committed. des-commit
--owned-paths <all files this step created/modified>
--step-id {step-id}
--task-id {project_id}
--message "feat(feature-id): implement feature X"
Pass the bare `project_id` value (for example `44`, not `#44` and not the
step id). The `Step-Id: {step-id}` and `Task-Id: {project_id}` trailers
required for DES verification are appended automatically in one git trailer
block. Resulting commit for project 44:feat(feature-id): implement feature X
Step-Id: 02-01 Task-Id: 44
LEGACY 5-PHASE CONTRACT (ADR-024 era, pre-2026-05-07): PREPARE → RED_ACCEPTANCE → RED_UNIT → GREEN → COMMIT. Preserved for audit-log replay only — new work uses the 3-phase canon above. Audit-log entries referencing RED_ACCEPTANCE/RED_UNIT/PREPARE represent merged sub-steps now folded into RED.
# QUALITY_GATES
- All tests pass before COMMIT
- No skipped phases without blocked_by reason
- Coverage maintained or improved
# OUTCOME_RECORDING
Immediately after ACTUALLY EXECUTING each phase — and BEFORE any
permission-gated or interruption-prone command (e.g. `nix-build`, a network
fetch, a long verification run) — record it via the DES CLI. Do NOT batch
`des-log-phase` calls to end-of-run: a permission prompt or STOP between phases
drops the un-written entries, leaving an incomplete trace (e.g. 3/5) that fails
`des-verify-integrity` at finalize and forces a resume to re-log work already
done.
des-log-phase \
--project-dir docs/feature/{feature-id}/deliver \
--step-id {step-id} \
--phase {PHASE_NAME} \
--status EXECUTED \
--data PASS
For `--status EXECUTED`, `--data` MUST be exactly `PASS` or `FAIL` — no prose,
no prefix. The stop-hook StepCompletionValidator compares the value against
`{PASS, FAIL}` exactly; anything else (e.g. `--data "PASS: unit layer folded
into shape suite"`) is rejected as an INCOMPLETE_PHASE and the phase must be
re-logged. Put any explanation in your report to the orchestrator, not in
`--data`. Only `--status SKIPPED` may carry text — and only as a valid prefix
(see below).
For SKIPPED phases (genuinely not applicable):
des-log-phase \
--project-dir docs/feature/{feature-id}/deliver \
--step-id {step-id} \
--phase {PHASE_NAME} \
--status SKIPPED \
--data "NOT_APPLICABLE: reason"
CLI enforces real UTC timestamps and validates phase names.
Do NOT manually edit execution-log.json.
Use the DES CLI to record phase outcomes and create log files.
Python resolution: `$(command -v python3 || command -v python)` — works on macOS (python3 only), Linux, and Windows.
CRITICAL: Only the executing agent calls the CLI.
Orchestrator MUST NEVER write phase entries — only the agent that performed the work. A log entry without actual execution is a **violation that DES detects and that will cause integrity verification to fail**, blocking finalize.
# RECORDING_INTEGRITY
Valid Skip Prefixes: NOT_APPLICABLE, BLOCKED_BY_DEPENDENCY, APPROVED_SKIP, CHECKPOINT_PENDING
Anti-Fraud Rules:
- NEVER write EXECUTED for phases you did not actually perform
- NEVER invent timestamps — DES CLI generates real UTC timestamps
- DES audits all entries; integrity violations block finalize
# BOUNDARY_RULES
- Only modify files listed in step's files_to_modify
- Do not load roadmap.json
- Do not modify execution-log.json structure (append only)
- NEVER write execution-log entries for phases you did not execute
# TIMEOUT_INSTRUCTION
Target: 30 turns max. If approaching limit, COMMIT current progress.
If GREEN complete (all tests pass), MUST commit before returning — even at turn limit.Configuration:
maxTurns frontmatter field (not as a tool parameter)When subagent times out:
| Last Completed Phase (3-phase canon) | Legacy phase (5-phase) | Action | Rationale |
|---|---|---|---|
| GREEN (or later) | GREEN | Resume | Only COMMIT remains (~5 turns) |
| RED with partial GREEN | RED_UNIT with partial GREEN | Resume | Preserves implementation progress |
| RED only (pre-GREEN) | PREPARE or RED_ACCEPTANCE | Restart | Little context worth replaying |
Resume costs ~50% more tokens/call due to context replay (measured: 3.7K vs 2.5K tokens/call). For <5 remaining turns, resume is efficient. For 15+ turns, restart is cheaper.
/nw-execute @nw-software-crafter "des-us007-boundary-rules" "02-01"
/nw-execute @nw-researcher "auth-upgrade" "01-01"
/nw-execute @nw-software-crafter "des-us007" "03-01" # retry after failure<!-- Schema v4.0 — canonical source: TDDPhaseValidator.MANDATORY_PHASES -->
<!-- Build system injects mandatory phases from step-tdd-cycle-schema.json -->
{{MANDATORY_PHASES}}
Handoff To: /nw-review for post-execution review Deliverables: Updated execution-log.json, implementation artifacts, and git commits
© 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-execute of nWave-ai/nWave.
Open the folder on GitHubat commit da401a8
Nw Execute 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 Execute this skillnWave-ai/nWave | 617 | — | ~3k | Automated safety check: Pass | MIT | |
| TDDpietheinstrengholt/rssmonster | 564 | 30 repos | ~906 | Automated safety check: Pass | MIT | |
| TDD WorkflowhellangleZ/burn-in-cceverywhere-ralph | 112 | 11 repos | ~2.4k | Automated safety check: Pass | None | |
| TDDsanity-io/sanity | 6.4k | 20 repos | ~1k | Automated safety check: Pass | MIT | |
| Test Driven Developmentfarm-fe/farm | 5.6k | 51 repos | ~2.5k | Automated safety check: Pass | MIT | |
| Tapd Story PipelineTencentBlueKing/bk-bcs | 841 | — | ~2.6k | Automated safety check: Pass | Custom licence |
pietheinstrengholt/rssmonster
Test-driven development. An agent skill from pietheinstrengholt/rssmonster.
hellangleZ/burn-in-cceverywhere-ralph
A skill your agent uses when writing new features, fixing bugs, or refactoring code.
sanity-io/sanity
Test-driven development with red-green-refactor loop. An agent skill from sanity-io/sanity.
farm-fe/farm
A skill your agent uses when implementing any feature or bugfix, before writing implementation code
TencentBlueKing/bk-bcs
单需求实现流水线——把一个 TAPD 需求从零推进到代码提交。自动串联技术澄清、 开发计划、任务拆分、TDD 实现、架构/安全校验、代码提交六个阶段。
maddhruv/absolute
One-time setup for absolute: interview how you want it to behave (output style, autonomy, TDD strictness, spec dir, families) + detect the stack once, then write .absolute.config.json (project…
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
Creates new specialized agents using the 5-phase workflow (ANALYZE DESIGN CREATE VALIDATE REFINE).
nWave-ai/nWave
Applies the Refactoring Priority Premise (RPP) levels L1-L6 for systematic code refactoring.
Categories
A skill your agent uses when a DELIVER roadmap already exists and you need to dispatch exactly one identified step through its TDD cycle. Nw Execute is an agent skill from nWave-ai/nWave. Use when a DELIVER roadmap already exists and you need to dispatch exactly one identified step through its TDD cycle.
Nw Execute fits situations like: A DELIVER roadmap already exists and you need to dispatch exactly one identified step through its TDD cycle; tasks that involve Test-driven development.
Run `npx skills add nWave-ai/nWave --skill nw-execute -a claude-code`. Or copy the skill folder (nWave/skills/nw-execute in nWave-ai/nWave) into .claude/skills/nw-execute in your project. Claude Code loads it when a task matches its description.
Run `npx skills add nWave-ai/nWave --skill nw-execute -a codex`. Or copy the skill folder (nWave/skills/nw-execute in nWave-ai/nWave) into .agents/skills/nw-execute 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-execute -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-execute, .gemini/skills/nw-execute, .github/skills/nw-execute and .opencode/skills/nw-execute in your project.
Going by SKILL.md and its folder, Nw Execute needs the command-line tools its instructions call (python). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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 Execute is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k 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 Execute: TDD (pietheinstrengholt/rssmonster, 564 stars), TDD Workflow (hellangleZ/burn-in-cceverywhere-ralph, 112 stars), TDD (sanity-io/sanity, 6.4k stars) and Test Driven Development (farm-fe/farm, 5.6k 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 617 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.