ワンクリックで
vs-build-it
Use when the user says build-it, implement this plan, take it from here, or wants autonomous plan-to-code execution.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use when the user says build-it, implement this plan, take it from here, or wants autonomous plan-to-code execution.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Analyze Codex, Claude Code, or Cursor threads, transcripts, and transcriptions. Use for thread analysis, transcript review, conversation audits, agent-performance diagnosis, comparing sessions, finding loops or corrections, and extracting decisions, outcomes, evidence, and actionable improvements.
Internal reference for vs shared conventions: artifact paths, project ID resolution, storage preference, and skill taxonomy.
Use when asked to scan a named external repo for ideas worth porting. Produces a cited, ranked steals report.
Use when asked to QA, test this site or app, find bugs, or test and fix a user-facing interface. Runs harness-aware browser or computer-use QA, fixes issues, and re-verifies.
Use when the user wants to create/open a pull request, submit changes for review, send changes to dev, or otherwise ship local Git changes. Also use for explicit commit and push or push to main/master or the current branch requests. Requires affirmative publish intent; do not use for review/readiness-only requests. Creates and verifies a GitHub PR by default; honors explicit direct pushes and babysits only when requested.
Use when asked to watch a PR, fix CI, address review comments, or keep a branch merge-ready in a loop.
| name | vs-build-it |
| description | Use when the user says build-it, implement this plan, take it from here, or wants autonomous plan-to-code execution. |
| disable-model-invocation | true |
Work within the user's stated plan or requested outcome; stop for strategic blockers, product-intent changes, unrelated refactors, or explicit safety boundaries.
Build-it takes a plan (or generates one if needed) and runs seven phases within that scope:
/vs-ship-itResolve tactical implementation decisions locally; do not expand scope beyond what is directly required for the stated outcome.
Build-it is a workflow. It composes building blocks instead of inventing one-off behavior:
vs-pushback stress-tests the plan in Phase 1.vs-decide-for-me owns the no-questions decision ladder for tactical uncertainty.vs-tdd guides implementation; vs-debug-mode is loaded only after evidence
shows that ordinary red/green feedback is insufficient.vs-roast-review and vs-deslop clean and review risky or substantial diffs
in Phase 4; small diffs stay in the parent.vs-qa tests affected user-visible browser behavior in Phase 5.vs-verify produces the final evidence-backed completion status.vs-brief produces the human-readable orientation layer and renders captured
before-and-after evidence for the handoff.When the user explicitly requests a Codex goal and goal tools are available, use it as the run-level progress contract for build-it:
../vs-internal-shared/references/codex-goal.md during Phase 0.../vs-internal-shared/references/subagents.md before delegating any work.create_goal.These apply the shared vs-decide-for-me contract to every question that would normally go to the user:
Build-it runs fully autonomous with one exception:
If the roast phase produces a NOT_READY verdict (score below 60) with unresolved high-severity issues, stop and present the findings to the user. The plan needs human judgment before execution — build-it is not the right tool for a fundamentally broken plan.
For READY or READY_WITH_RISKS verdicts: continue autonomously.
These are the behaviors evals punish hardest; prioritize them during autonomous runs.
## Build It Complete, the pipeline table, decision log, guardrail results, flagged review items, and an explicit next step.Load and follow ../vs-internal-shared/references/codex-goal.md
when the user asks build-it to use a Codex goal.
git status and git diff to understand the current state.If no plan was provided, inspect the relevant code and produce a concise plan in the parent. Delegate planning only when the task is non-trivial and has a distinct exploration lane that benefits from fresh context. Use one planning subagent, give it exact paths and the expected plan shape, then verify its plan against the code before adopting it.
Log whether the plan was produced inline or delegated and why.
This replaces the need for the user to run /vs-shape-it or write a plan manually.
The roast phase (Phase 1) still stress-tests whatever plan comes out, so a weak
auto-generated plan gets caught by the circuit breaker.
Dry-run each guardrail command to confirm it works before starting execution:
# Test each detected command — we only care if it runs without "not found" errors
[test command] 2>&1 | head -5
[typecheck command] --noEmit 2>&1 | head -5
[lint command] 2>&1 | head -5
If any command fails due to missing dependencies: install them now.
Common fixes: bun install, npm install, pip install -r requirements.txt.
If installation is blocked by sandbox network limits but a declared guardrail is failing only because dev-only ambient types are missing (for example bun-types), prefer the smallest local compatibility fix in a dedicated support location (types/, test-only file move, or equivalent) rather than leaving the guardrail unverified. Do not change product/runtime behavior just to satisfy the guardrail.
If such a support-only guardrail fix is needed, treat it as a dedicated prep step before the real implementation loop:
Determine whether the requested change has a meaningful user-visible output. Capture the baseline now; do not reconstruct the before state after editing. Store captures in a scoped temporary directory outside the repository so they survive through Phase 7 without becoming product changes. Record the artifact paths with the comparison metadata.
No meaningful comparison and
do not manufacture a before-and-after section.Use existing render/test infrastructure. If the baseline cannot be captured without a forbidden dev server, missing credentials, or unavailable fixture, record the exact blocker; for UI work, do not downgrade to a text comparison.
Before extracting implementation steps, classify the work in this order:
Risk-first sequencing retires uncertainty; it is not permission to start with the largest defensive backend. Record the chosen vertical slice and deferred work in the decision log. If the smallest new value requires user access, surface that dependency instead of substituting easier lower-value work.
If not already on a feature branch, create one:
# Detect git user prefix from git config or CLAUDE.md conventions
GIT_USER=$(git config user.name 2>/dev/null | tr '[:upper:]' '[:lower:]' | tr ' ' '-')
Derive a branch name from the plan topic: {user-prefix}/{plan-topic}.
Use the branch prefix convention from CLAUDE.md if one exists.
git checkout -b <branch-name>
If already on a feature branch (not main/master/develop), stay on it.
Break the plan into discrete implementation steps. Each step should be:
List the steps and move on. Do not ask for confirmation.
Order steps using Step 1d before ordinary code dependencies. A foundation comes first only when it is the cheapest proof or is necessary for the smallest vertical slice. Prefer one end-to-end slice over separate contract-only, backend-only, and frontend-only milestones that delay observable behavior.
Load and follow the sibling skill at ../vs-pushback/SKILL.md. If the host cannot resolve sibling skill paths, run a lightweight adversarial review yourself (premise challenge, assumptions, feasibility, edge cases — same dimensions, less ceremony).
Vs-pushback is interactive by design. In build-it mode, every interactive point is auto-resolved:
After the roast completes, check the verdict:
Take every finding from Phase 1 and apply it to the plan:
After fixing, re-extract plan steps if the structure changed (new steps, removed steps, reordered dependencies).
Write the updated plan back to the plan file (or note the changes in the decision log if there is no plan file on disk).
Emit a short transition summary:
Phase 1-2 complete. Roast score: [N]/100. Fixed [X] high, [Y] medium issues. [Z] items noted as known risks. Proceeding to execution with [N] steps.
Implement the fixed plan. Execute directly unless independent steps make delegation materially faster or safer. Follow the shared subagent budget.
Load sibling skill ../vs-tdd/SKILL.md when the host can resolve it. Workers
follow TDD discipline: reproduce or specify behavior with a failing test, then
implement the minimum green change.
Load ../vs-debug-mode/SKILL.md only after a reproduction or guardrail fails in
an unexplained way, two focused fix attempts fail, or runtime state cannot be
observed through existing tests and logs. Add temporary instrumentation only at
the boundary needed to distinguish the active hypotheses; do not instrument
every modified function preemptively. Mark any temporary code with
build-it-debug so Phase 6 can remove it.
Group plan steps into layers based on dependencies:
Layer 0: [steps with no dependencies — can all run in parallel]
Layer 1: [steps that depend on Layer 0]
Layer 2: [steps that depend on Layer 1]
...
If all steps are independent (no shared files, no import dependencies between them), they are all Layer 0, but the selected shared effort budget still applies.
If the plan is small (3 or fewer steps) or all steps touch the same files: skip parallelism, execute sequentially on the current branch.
For a layer with genuinely independent work, launch at most two subagents. Batch additional independent steps or execute them in the parent. Each child gets:
Implement the assigned step using TDD:
1. Write a failing test that defines the expected behavior.
Match existing test patterns in the project. Run it — verify it fails.
(If no test infrastructure exists for this area, skip to step 2 and note it.)
2. Write the minimum implementation to make the test pass.
3. Run guardrails: [type check command], [test command], [lint command]
4. If guardrails fail: read the error. Check build-it-debug logs for context.
Fix and re-run. Max 2 retries. If still failing after retries, use the
debug skill's hypothesis approach: generate 3 hypotheses, investigate each.
5. Commit with a descriptive message (not "build-it step N").
Stage specific files only; avoid `git add .` or `git add -A`.
For a tiny single-bug TDD fix, after proving the red failure you may keep the
regression test uncommitted until the fix is ready, then make one self-contained
green commit that includes both the test and the minimal implementation.
[EASY TO MISS: "I ran the tests and they passed" without showing the
command output is not evidence. Include the actual exit code or output.]
6. Report: list files changed, tests written, guardrail results (pass/fail),
and any issues you could not resolve.
Parallel workers require disjoint write scopes. Before spawning, list each worker's owned paths (from the Execution Strategy when present); if two lanes intersect, run them sequentially or keep the shared files in the parent. A worker commits only inside its owned paths.
Brief each worker with curated context — objective, owned paths, evidence paths, guardrail commands, constraints, and expected return shape. Do not fork the full parent transcript for a scoped lane. Match reasoning effort (and model, when the host supports choosing one) to the lane: low for mechanical inventory, higher for ambiguous integration; take assignments from the Execution Strategy when present.
Every brief names a first milestone that retires a delivery risk or advances the smallest vertical slice before broad edits — for a fix lane, reproduce and report before editing. A worker that returns without evidence or changes has failed; re-scope the brief before re-spawning. After spawning, confirm each thread or subagent actually started; do not wait on an ID the host cannot resolve.
If delegation adds coordination cost, the host does not support subagents, or steps share files or dependencies, execute sequentially in the parent with the same guardrail gate after each step.
Layer transitions: Wait for all subagents in a layer to complete before starting the next layer. If a subagent in Layer N fails, assess whether Layer N+1 steps depend on it — if yes, execute those sequentially yourself with the fix. If no, continue the next layer in parallel.
Do not spend child budget reviewing partial layers. Inspect the integrated diff and run the final review once in Phase 4, after dependency and merge issues are visible together.
If execution settled a durable, repo-level architecture decision — one that is
expensive to reverse and future readers will ask "why did we do it this way"
(a shaped ADR from /vs-shape-it, or a decision-principle resolution that
changed the approach) — write an ADR alongside the code.
adr/ at the
repo root with a slug-only filename (lowercase, dash-separated, no numeric
prefix), and run /setup-adr to bootstrap scaffolding if none exists.docs: add ADR for [decision].Skip this for tactical implementation choices — ADRs are for repo-level decisions, not session notes.
After all layers complete, run the full validation suite:
Fix any integration issues introduced by combining parallel work.
Measure the integrated diff. A small, low-risk diff (at most 5 changed files and 300 changed lines, with no auth, security, persistence, migration, concurrency, payment, or public-API change) stays in the parent: inspect every changed file, search for reuse, run deterministic checks, and review correctness, security, error handling, and unnecessary complexity.
For larger or high-risk diffs, load ../vs-roast-review/SKILL.md and follow its
bounded methodology within the remaining workflow child budget. Load
../vs-deslop/SKILL.md only when the integrated diff contains confirmed
duplication, indirection, or generated-looking boilerplate that the parent
cannot remove confidently during its review. Keep either skill scoped to the
branch diff.
The skill normally waits for the user to pick which sins to fix. In build-it mode, auto-select option b) Critical + serious and apply immediately. Do not wait.
Before applying review findings, stress the implementation with focused edge case tests. Use one fresh subagent only when the remaining child budget permits and independent context is valuable; otherwise do this in the parent. Provide:
"Write tests that try to break this implementation. Cover edge cases, boundary conditions, and assumptions the code makes. Run the tests. Report which pass and which fail."
If the subagent finds failing tests: fix each failure, re-run the full test suite, commit test + fix atomically.
Merge findings from all review sources and deduplicate. For each finding that claims a bug: write a failing test first to confirm it's real. If you can't write a failing test, note it in the decision log instead of applying a speculative fix.
Then for each validated finding:
refactor: [description of cleanup]Detect if this is a web app:
# Check for web indicators
HAS_WEB=false
[ -f "next.config.js" ] || [ -f "next.config.ts" ] || [ -f "next.config.mjs" ] && HAS_WEB=true
[ -f "vite.config.ts" ] || [ -f "vite.config.js" ] && HAS_WEB=true
[ -f "angular.json" ] && HAS_WEB=true
grep -q '"start"' package.json 2>/dev/null && grep -qE '"(react|vue|svelte|next|nuxt|angular)"' package.json 2>/dev/null && HAS_WEB=true
echo "HAS_WEB=$HAS_WEB"
If not a web app, or the diff changes only server, build, test, documentation, or internal library code with no user-visible browser behavior: skip Phase 5.
If the diff changes routes, rendered components, interaction handlers, browser
state, styles, accessibility behavior, or another user-visible browser contract,
load sibling skill ../vs-qa/SKILL.md when the host can resolve it.
If the QA skill resolves: read it and follow its methodology in diff-aware mode — only test pages affected by the branch diff, not the full app.
For a UI comparison captured in Phase 0, save the after image during QA using the recorded route, state, viewport, and fixture. A screenshot of a different state is validation evidence, but it is not a before-and-after comparison.
If not found: skip the QA methodology. When a before image was already captured,
use the same capture mechanism for the after image even when vs-qa is
unavailable; this completes the comparison but is not a substitute for browser
QA. Do not attempt exploratory browser testing without the QA skill.
Use an existing reachable preview and available authentication context. If QA would require starting a forbidden dev server, obtaining new credentials, or asking for a routine URL that repository configuration cannot resolve, mark QA as not run with the exact missing prerequisite and continue to handoff.
If no temporary instrumentation or artifacts were added in Phase 3, skip to
Phase 7. Otherwise remove everything marked build-it-debug.
# Find all build-it-debug regions
grep -rn "build-it-debug" --include="*.ts" --include="*.tsx" --include="*.js" --include="*.jsx" --include="*.py" .
Remove every #region build-it-debug / #endregion build-it-debug block and the
code between them. Verify no functional code was accidentally wrapped in a debug region.
After removal:
chore: remove build-it debug instrumentationLoad and run ../vs-verify/SKILL.md when available and include its
## Verification Result in the handoff. If unavailable, record the final
guardrail commands and results manually.
The handoff verdict inherits the verification status. Use ## Build It Complete only for PASS or SKIPPED_TRIVIAL. For WARN, FAIL, or
BLOCKED, head the handoff ## Build It — <STATUS>, state exactly what was
not proven, and do not describe the outcome as fixed or working. When the work
fixes a reported bug, completion additionally requires the original
reproduction to pass — local guardrails alone do not earn "fixed".
For text output captured in Phase 0, rerun the same command and representative
input after final validation and retain the exact after output. For UI output,
use the paired images captured before implementation and during QA. Pass the
comparison evidence to vs-brief; if a required capture was blocked, pass the
blocker instead of inventing evidence.
Use the required shell in references/handoff.md and
include a minimal diff stat. If the user asked build-it to also ship, load and
follow ../vs-ship-it/SKILL.md; if the host cannot resolve it, say to type
/vs-ship-it and stop — do not hand-roll a PR flow in its place. Load ../vs-brief/SKILL.md only when the change is
non-trivial (more than 3 files, a durable design decision, user-requested PR
orientation, or meaningful before-and-after evidence).
NOT_READY verdict in Phase 1) and user-provided access, approval,
ownership, or strategic input required to prove the requested outcome. Surface
those dependencies before broad implementation.git stash --include-untracked and scoped
git restore over git reset --hard or git clean — stashes are
recoverable and destructive commands trip harness guards mid-recovery.Direct: emit Next only. Composed: return to caller.
Prev: /vs-shape-it | /vs-pushback | /vs-rfc-research | /vs-orchestrate
Next: /vs-ship-it
Relevant: /vs-bugfix | /vs-decide-for-me