Agent skill

pdd-build

Execute a completed PDD implementation plan step-by-step with validation gates.

Stars 351
Forks 27

Install this agent skill to your Project

npx add-skill https://github.com/mikeyobrien/rho/tree/main/skills/pdd-build

SKILL.md

PDD Build

Overview

This SOP takes a completed PDD project (design doc + implementation plan) and executes the implementation plan step-by-step using subagents. Each step is built by a subagent, then verified against user-defined "done" criteria before advancing. The user defines how completion is validated — automated tests, manual testing via tmux, browser validation via Playwriter, visual inspection, or any combination.

Parameters

  • project_dir (required): Path to the PDD project directory (e.g., .agents/planning/2026-02-10-review-extension)
  • validation_strategy (required): How the agent should verify each step is done. The user must explain this in detail.
  • start_step (optional, default: 1): Step number to start from (for resuming interrupted builds)

Constraints for parameter acquisition:

  • You MUST ask for all required parameters upfront in a single prompt
  • You MUST verify the project_dir contains the expected PDD artifacts before proceeding:
    • design/detailed-design.md must exist
    • implementation/plan.md must exist and contain a checklist
  • You MUST ask the user to describe their validation strategy in detail — this is the critical input
  • The user MUST explain how the agent should know a step is done. Examples:
    • "Run npm test and all tests must pass"
    • "Open a tmux session and test the CLI command as a user"
    • "Use the playwriter skill to open the browser and verify the UI renders correctly"
    • "Run the extension with pi -e ./index.ts in a tmux window and execute /review test.md"
    • A combination: "Run unit tests, then use playwriter to check the browser UI"
  • You MUST confirm you understand the validation strategy by summarizing it back
  • You MUST NOT proceed without explicit user confirmation of the validation strategy
  • You MUST check the implementation plan checklist for already-completed steps and offer to resume from the next incomplete step

Steps

1. Load and Parse the Implementation Plan

Read the PDD artifacts and prepare for execution.

Constraints:

  • You MUST read the following files:
    • {project_dir}/design/detailed-design.md
    • {project_dir}/implementation/plan.md
    • Any research files in {project_dir}/research/
  • You MUST parse the checklist from plan.md to determine which steps are complete and which remain
  • You MUST parse each step's details: objective, guidance, tests, integration notes, demo description
  • You MUST present a summary to the user:
    • Total steps, completed steps, remaining steps
    • The validation strategy as understood
    • Estimated scope of work
  • You MUST ask for confirmation before starting execution
  • You MUST NOT begin execution without explicit user go-ahead

2. Prepare the Build Context

Assemble the context documents that each subagent will need.

Constraints:

  • You MUST create a build context file at {project_dir}/implementation/build-context.md containing:
    • The full detailed design (or a focused summary if the design is very large)
    • The validation strategy
    • The current state of the implementation (which steps are done)
    • Any relevant research findings
  • You MUST identify file paths and directories the subagents will need to create or modify
  • You MUST verify that prerequisites exist (e.g., package.json, directory structure, dependencies)
  • You SHOULD create any prerequisite files or directories that don't exist yet
  • You MUST load any skills referenced in the validation strategy (e.g., playwriter, clipboard, notification)

3. Execute Steps

Execute each implementation step using a subagent, then validate.

Constraints:

  • You MUST execute steps sequentially unless the user explicitly approved parallel execution
  • For each step, you MUST follow this exact process:

3a. Brief the Subagent

  • You MUST construct a clear, self-contained prompt for the subagent that includes:
    • The step objective and guidance from the implementation plan
    • Relevant sections of the design doc (not the entire doc — only what's needed for this step)
    • The current file state (what exists, what was built in previous steps)
    • Explicit instructions on what files to create or modify
    • The test/verification criteria for this step
  • You MUST NOT include the entire design doc in every subagent prompt — extract only relevant sections
  • You MUST include the project's file structure context so the subagent knows where things are

3b. Launch the Subagent

  • You MUST use the subagent tool to execute the step
  • You SHOULD use async mode for steps that are expected to take a long time
  • You MUST monitor the subagent's progress if running async (check status periodically)
  • You MUST capture the subagent's output for review

3c. Verify the Step

  • You MUST verify the step is complete using the user-defined validation strategy

  • You MUST NOT skip validation — this is the critical gate

  • Validation methods (use whichever the user specified):

    Automated tests:

    • Run the test command (e.g., npm test, pytest, etc.)
    • All tests must pass
    • Check test output for failures

    Tmux manual testing:

    • Use rho_subagent to open a tmux window with the test scenario
    • Or use bash to run commands in a tmux session
    • Verify expected output or behavior

    Playwriter browser validation:

    • Load the playwriter skill
    • Navigate to the relevant URL
    • Verify UI elements render correctly
    • Check for visual regressions or interaction issues

    File verification:

    • Read created/modified files to verify they match expectations
    • Check that code compiles/parses correctly
    • Verify file structure matches the design

    Combination:

    • Execute each validation method in sequence
    • All must pass for the step to be considered done

3d. Handle Failures

  • If validation fails, you MUST:
    1. Analyze the failure — what went wrong?
    2. Determine if it's a subagent error (bad code) or a design issue (spec is wrong)
    3. For subagent errors: retry the step with additional context about the failure (max 2 retries)
    4. For design issues: STOP and notify the user — do not attempt to fix design problems autonomously
    5. Include the failure details and any error output in the retry prompt
  • You MUST NOT retry more than 2 times per step without user intervention
  • You MUST NOT silently skip failed validation
  • After 2 failed retries, you MUST stop and present the situation to the user with:
    • What was attempted
    • What failed and why
    • The subagent's output
    • Your recommendation for how to proceed

3e. Update the Checklist

  • On successful validation, you MUST update the checklist in plan.md to mark the step as complete ([x])
  • You MUST write a brief status note to {project_dir}/implementation/build-log.md with:
    • Step number and name
    • Timestamp
    • Validation result
    • Any notable decisions or deviations
  • You MUST notify the user of progress (e.g., "Step 3/12 complete: Web UI shell")

4. Integration Validation

After all steps are complete, validate the full system.

Constraints:

  • You MUST run the complete validation strategy against the finished implementation
  • You MUST verify that all checklist items are marked complete
  • You MUST test the end-to-end flow described in the design doc
  • You SHOULD run any additional integration tests that span multiple steps
  • If integration issues are found, you MUST:
    1. Identify which step(s) are affected
    2. Determine the fix
    3. Either fix directly or launch a targeted subagent
    4. Re-validate after fixing

5. Report Results

Present a final summary to the user.

Constraints:

  • You MUST create a build report at {project_dir}/implementation/build-report.md containing:
    • Total steps executed
    • Steps that passed on first attempt vs. required retries
    • Any deviations from the original design
    • Known issues or limitations discovered during build
    • Validation results summary
  • You MUST present the report to the user in conversation
  • You MUST highlight any areas that need manual attention
  • You MUST suggest next steps (e.g., "TUI mode follow-up", "deploy to global extensions", etc.)

Examples

Example 1: CLI Extension with Tests

Project dir: .agents/planning/2026-02-10-review-extension
Validation strategy: Run `npm test` in the extension directory after each step.
For steps that add UI, also run `pi -e ./index.ts` in a tmux window and
execute the /review command to verify it works interactively.

Example 2: Browser UI with Playwriter

Project dir: .agents/planning/2026-02-10-review-extension
Validation strategy: After each step that changes the UI, use the playwriter
skill to open http://localhost:<port> and verify:
- The page loads without console errors
- Key elements are visible (sidebar, code viewer, buttons)
- Interactions work (click file, click line number, type comment)
For non-UI steps, verify files exist and code parses without errors.

Example 3: Full Manual Testing

Project dir: .agents/planning/2026-02-10-review-extension
Validation strategy: After each step, open a tmux split and run the
extension. Test it as a user would — try the happy path, try edge cases,
try to break it. Report what works and what doesn't. Use the notification
skill to alert me if a step fails after retries.

Example 4: Hybrid

Project dir: .agents/planning/2026-02-10-review-extension
Validation strategy:
- Steps 1-2: verify files exist and `npm install` succeeds
- Steps 3-6: use playwriter to check the browser UI renders
- Steps 7-8: use playwriter to test submit/cancel WebSocket flow
- Steps 9-10: run `pi -e ./index.ts` in tmux and test /review command
- Steps 11-12: full playwriter mobile viewport test + manual tmux test

Troubleshooting

Subagent Produces Wrong Code

  • Include more design context in the retry prompt
  • Reference specific sections of the design doc
  • Include the error output verbatim
  • If the subagent consistently misunderstands, break the step into smaller sub-steps

Validation Is Flaky

  • Add retries with delays for timing-sensitive checks (e.g., server startup)
  • For browser validation, add explicit waits for elements
  • For tmux testing, allow time for commands to complete

Step Dependencies Are Wrong

  • If a step fails because a previous step's output is wrong, fix the earlier step first
  • Update the build log to note the dependency issue
  • Re-run both steps in order

Design Doc Has Gaps

  • STOP — do not guess at missing requirements
  • Note the gap in the build log
  • Ask the user for clarification
  • Resume after the gap is resolved

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results