Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .agents/skills/build-it/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@ description: 'When the human types `/build-it` (or "build it", "build this", "im

When the human types `/build-it` (or "build it", "build this", "implement it", "go build"), the plan is settled. Start implementing per the challenged plan. From here to handoff the chain runs without questions to the human, per AGENTS.md § The flow guarantee; the recovery paths below are the only sanctioned stops.

## Voice

Output prints to the human's chat: follow AGENTS.md § Voice. Pipe substantive drafts through `node scripts/voice-gate.js` and rewrite what it flags.

## The unattended-chain rule (why the stops below look the way they do)

The human may queue the entire remaining chain (challenge rounds, test-it, security-scan, wrap-up, handoff) and walk away. Each queued command fires the moment the previous turn ends. Three implications:
Expand All @@ -37,6 +33,10 @@ No plan survives contact with the code untouched, and under an unattended chain

The log lives in the plan file's `## Deviations` section, one bullet per departure with four parts: what the plan said, what the code forced, what was chosen, and a one-line lesson. Cite code locations. Implementation-challenge round 1 reads this section first and treats every entry as a prime target, because deviations are exactly where the work left the reviewed plan.

## During implementation: keep tool use coherent and checks targeted

Run independent reads or inspections together, but keep steps ordered when one's output feeds the next. Use bounded reads when only one section is needed. Put large command output in a file and return the useful summary without hiding evidence. Run targeted checks for the files and behavior being changed; test-it owns the first complete project check. Never combine unrelated edits or skip output just to improve a turn count.

## During implementation: commit as units land, no pull request

Work commits and pushes to the feature branch as coherent units complete. Do NOT open a pull request during build-it or the review rounds that follow; that's wrap-up's job, once, at the end. No-git mode: edit in place, and keep a running list of what changed in the plan file.
Expand Down
4 changes: 0 additions & 4 deletions .agents/skills/challenge-implementation-1/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@ description: 'Round 1 of implementation-challenge.'

Round 1 of implementation-challenge. Trace through the changes you just made and look for bugs or edge cases that weren't obvious. Aim for a thorough audit, not a quick scan. Fix what you find; don't just surface it.

## Voice

Output prints to the human's chat: follow AGENTS.md § Voice. Pipe substantive drafts through `node scripts/voice-gate.js` and rewrite what it flags.

## Guard: nothing to challenge

If no implementation was made in this conversation (no code edits, no file writes by the agent), decline with: "No implementation to challenge in this conversation. Make changes first, then run the challenge chain starting with round 1." Don't invent imaginary changes to challenge.
Expand Down
6 changes: 1 addition & 5 deletions .agents/skills/challenge-implementation-2/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@ description: 'Round 2 of implementation-challenge.'

Round 2 of implementation-challenge. Given how much this work matters, trace through the changes again from a different angle. Look for bugs or edge cases that weren't obvious in round 1. Fix what you find.

## Voice

Output prints to the human's chat: follow AGENTS.md § Voice. Pipe substantive drafts through `node scripts/voice-gate.js` and rewrite what it flags.

## Guard: nothing to challenge

If no implementation was made in this conversation, decline with: "No implementation to challenge in this conversation. Make changes first, then run the challenge chain starting with round 1."
Expand All @@ -30,7 +26,7 @@ If a different angle is clearly more relevant, override the default and say why.
1. **Read back your prior turns.** List every angle used so far (original implementation + round 1). Format: `Angles used: [round 0: X], [round 1: Y]`.
2. **Confirm the round-2 angle**: either "using the default for this round: check whether the earlier rounds' fixes broke anything new" OR "overriding the default to [angle]: [reason]". The angle must be different from rounds 0 and 1.

Then re-read each modified file in full surrounding context, paying particular attention to changes made during round 1.
Read every file changed during round 1 in full surrounding context, plus whatever files the round-2 angle newly requires. A file untouched since the last inspection does not need reprinting unless the conversation was compacted, the file changed since inspection, or this angle needs surrounding code no earlier round inspected. Any of those conditions forces a full read.

## What to look for

Expand Down
6 changes: 1 addition & 5 deletions .agents/skills/challenge-implementation-3/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@ description: 'Round 3 of implementation-challenge.'

Round 3 of implementation-challenge. Are you 200% sure you've covered this from every angle? Trace through the changes again from the round-3 angle. Fix what you find.

## Voice

Output prints to the human's chat: follow AGENTS.md § Voice. Pipe substantive drafts through `node scripts/voice-gate.js` and rewrite what it flags.

## Guard: nothing to challenge

If no implementation was made in this conversation, decline with: "No implementation to challenge in this conversation. Make changes first, then run the challenge chain starting with round 1."
Expand All @@ -30,7 +26,7 @@ If a different angle is clearly more relevant, override the default and say why.
1. **Read back your prior turns.** List every angle used so far (original implementation + rounds 1-2). Format: `Angles used: [round 0: X], [round 1: Y], [round 2: Z]`.
2. **Confirm the round-3 angle**: either "using the default for this round: how this code talks to its neighbours" OR "overriding the default to [angle]: [reason]". The angle must be different from rounds 0-2.

Then re-read each modified file in full surrounding context and trace every seam.
Read every file changed during round 2 in full surrounding context, plus callers, consumers, or other files the round-3 angle newly requires. A file untouched since the last inspection does not need reprinting unless the conversation was compacted, the file changed since inspection, or this angle needs surrounding code no earlier round inspected. Any of those conditions forces a full read. Then trace every seam.

## What to look for

Expand Down
6 changes: 2 additions & 4 deletions .agents/skills/challenge-implementation-4/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@ description: 'Round 4 of implementation-challenge.'

Round 4 of implementation-challenge. Trace through the changes again from the round-4 angle. Look for bugs the prior three rounds missed. Fix what you find.

## Voice

Output prints to the human's chat: follow AGENTS.md § Voice. Pipe substantive drafts through `node scripts/voice-gate.js` and rewrite what it flags.

## Guard: nothing to challenge

If no implementation was made in this conversation, decline with: "No implementation to challenge in this conversation. Make changes first, then run the challenge chain starting with round 1."
Expand All @@ -34,6 +30,8 @@ If the work touches no external services AND has no peer precedent to compare ag
1. **Read back your prior turns.** List every angle used so far (original implementation + rounds 1-3). Format: `Angles used: [round 0: X], [round 1: Y], [round 2: Z], [round 3: W]`.
2. **Confirm the round-4 angle**: either "using the default for this round: external concerns" OR "overriding the default to [angle]: [reason]". The angle must be different from rounds 0-3.

Read every file changed during round 3 in full surrounding context, plus whatever files or sources the round-4 angle newly requires. A file untouched since the last inspection does not need reprinting unless the conversation was compacted, the file changed since inspection, or this angle needs surrounding code no earlier round inspected. Any of those conditions forces a full read.

## Useful angles to rotate through

The canonical list lives in AGENTS.md § The challenge rounds: implementation / where data flows and what happens when something fails / how this code talks to its neighbours / how this code talks to outside services / config-file syntax and quoting pitfalls / what unusual or hostile inputs would break this? / what happens when shell scripts fail mid-pipeline? / will this code be discoverable when it feels unfamiliar? / is the sequence of steps right? / where else does the same root cause apply? / check whether the earlier rounds' fixes broke anything new / does this convention reach every place the mechanism reaches?
Expand Down
6 changes: 2 additions & 4 deletions .agents/skills/challenge-implementation-5/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@ description: 'Round 5 of implementation-challenge.'

Round 5 of implementation-challenge. Final-pass deep audit. Are you 200% sure you've covered this from every angle and fixed every bug? If not, keep tracing. Fix what you find.

## Voice

Output prints to the human's chat: follow AGENTS.md § Voice. Pipe substantive drafts through `node scripts/voice-gate.js` and rewrite what it flags.

## Guard: nothing to challenge

If no implementation was made in this conversation, decline with: "No implementation to challenge in this conversation. Make changes first, then run the challenge chain starting with round 1."
Expand Down Expand Up @@ -52,6 +48,8 @@ Look for:
1. **Read back your prior turns.** List every angle used so far (original implementation + rounds 1-4). Format: `Angles used: [round 0: V], [round 1: W], [round 2: X], [round 3: Y], [round 4: Z]`.
2. **Confirm the round-5 angle**: either "using the default for this round: over-engineering check and simpler solutions" OR "overriding the default to [angle]: [reason]".

Before hunting for cuts, re-read every file modified since implementation began in full surrounding context. Do not trust the diff; this round judges the accumulated implementation, including fixes from rounds 1 through 4.

## Auto-fix bugs found (when K > 0)

Same policy as round 1: fix now via a new commit on the feature branch (no pull request until wrap-up; in no-git mode fix in place and log it). Out-of-scope findings become observations, human-territory bugs defer with `[NEEDS HUMAN-R5: <one-line ask>]`. K counts high-confidence defects only; a cut that changes behavior needs the same confidence bar as a fix.
Expand Down
4 changes: 0 additions & 4 deletions .agents/skills/challenge-plan-1/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@ description: 'Round 1 of plan-challenge.'

Round 1 of plan-challenge. Are you sure you've done all the research and followed every thread needed to reach this conclusion? If not, keep going. Look for opportunities you might be missing.

## Voice

Output prints to the human's chat: follow AGENTS.md § Voice. Pipe substantive drafts through `node scripts/voice-gate.js` and rewrite what it flags.

## Guard: nothing to challenge

If no plan was presented in this conversation (no construct-the-plan run, no inline plan content, no plan file referenced), decline with: "No plan to challenge in this conversation. Draft one first with construct-the-plan, write the plan inline above this command, or name a plan file." Don't invent an imaginary plan to challenge.
Expand Down
4 changes: 0 additions & 4 deletions .agents/skills/challenge-plan-2/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@ description: 'Round 2 of plan-challenge.'

Round 2 of plan-challenge. Given how much this matters, trace through the plan again from a different angle. Be sure you've done all the research and followed every thread. Look for opportunities you might be missing.

## Voice

Output prints to the human's chat: follow AGENTS.md § Voice. Pipe substantive drafts through `node scripts/voice-gate.js` and rewrite what it flags.

## Guard: nothing to challenge

If no plan was presented in this conversation (no construct-the-plan run, no inline plan content, no plan file referenced), decline with: "No plan to challenge in this conversation. Draft one first with construct-the-plan, write the plan inline above this command, or name a plan file." Don't invent an imaginary plan to challenge.
Expand Down
4 changes: 0 additions & 4 deletions .agents/skills/challenge-plan-3/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@ description: 'Round 3 of plan-challenge.'

Round 3 of plan-challenge. Are you 200% sure you've covered this from every angle? If not, keep going.

## Voice

Output prints to the human's chat: follow AGENTS.md § Voice. Pipe substantive drafts through `node scripts/voice-gate.js` and rewrite what it flags.

## Guard: nothing to challenge

If no plan was presented in this conversation (no construct-the-plan run, no inline plan content, no plan file referenced), decline with: "No plan to challenge in this conversation. Draft one first with construct-the-plan, write the plan inline above this command, or name a plan file." Don't invent an imaginary plan to challenge.
Expand Down
4 changes: 0 additions & 4 deletions .agents/skills/challenge-plan-4/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@ description: 'Round 4 of plan-challenge.'

Round 4 of plan-challenge. Are you 200% sure you've covered this from every angle? If not, keep going.

## Voice

Output prints to the human's chat: follow AGENTS.md § Voice. Pipe substantive drafts through `node scripts/voice-gate.js` and rewrite what it flags.

## Guard: nothing to challenge

If no plan was presented in this conversation (no construct-the-plan run, no inline plan content, no plan file referenced), decline with: "No plan to challenge in this conversation. Draft one first with construct-the-plan, write the plan inline above this command, or name a plan file." Don't invent an imaginary plan to challenge.
Expand Down
4 changes: 0 additions & 4 deletions .agents/skills/challenge-plan-5/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@ description: 'Round 5 of plan-challenge.'

Round 5 of plan-challenge. The demotion-review round. Different shape from rounds 1-4: instead of picking a new angle and hunting new findings, round 5 deep-reads every claim the prior rounds parked as uncertain (the "demoted claims") and verifies whether each demotion was warranted.

## Voice

Output prints to the human's chat: follow AGENTS.md § Voice. Pipe substantive drafts through `node scripts/voice-gate.js` and rewrite what it flags. Say it plainly: "I went back through the claims I parked as uncertain; two were dismissed too quickly and go back in, three stay uncertain, one turned out to be a real problem and I've fixed the plan."

## Guard: nothing to challenge

If no plan was presented in this conversation, decline with: "No plan to challenge in this conversation. Draft one first with construct-the-plan, write the plan inline above this command, or name a plan file."
Expand Down
4 changes: 0 additions & 4 deletions .agents/skills/security-scan/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@ description: 'Single-round adversarial security scan.'

Single-round adversarial security scan. Scan a focused surface for findings anchored to named threat classes, argue against each candidate before believing it, and require an articulated reproduction path before anything gets reported. Run it after editing security-sensitive code (auth, payments, user data, anything that parses untrusted input) and BEFORE the implementation-challenge chain.

## Voice

Output prints to the human's chat: follow AGENTS.md § Voice. Pipe substantive drafts through `node scripts/voice-gate.js` and rewrite what it flags.

## Guard: nothing to scan

The scan covers the files modified by the agent in this conversation. If none, decline with: "No scan scope detected; make code edits in this conversation first, or name file paths explicitly after the command." Don't invent imaginary changes to scan.
Expand Down
4 changes: 0 additions & 4 deletions .agents/skills/start-up/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@ description: 'Run the session start-up.'

Run the session start-up. This is the chain's opener and the reading half of the pair that makes sessions continuous: handoff writes the note, start-up reads it.

## Voice

Output prints to the human's chat: follow AGENTS.md § Voice. Pipe substantive drafts through `node scripts/voice-gate.js` and rewrite what it flags.

## Step 1: Preflight

Check the ground you're standing on and act on what you find:
Expand Down
10 changes: 4 additions & 6 deletions .agents/skills/test-it/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@ description: 'When the human types `/test-it` (or "test it", "cover it", "write

When the human types `/test-it` (or "test it", "cover it", "write tests"), the implementation from build-it is in place and this stage proves it works. It sits between build-it and security-scan in the chain. It triages the change, writes new behavioral tests for what was just built, drives them to green, and stops the chain if it can't. No questions to the human except the halt case at the bottom (AGENTS.md § The flow guarantee).

## Voice

Output prints to the human's chat: follow AGENTS.md § Voice. Pipe substantive drafts through `node scripts/voice-gate.js` and rewrite what it flags.

## Build the check, don't punt verification

If you're about to write "worth a manual check," stop and build the check instead: a test, a script, a measurement, an automated walk-through. Verification is the agent's job. Handing the human a manual test is a failure of this stage, not diligence. A tool you need but can't reach is an access request, stated plainly; it is never a manual-test handoff.
Expand Down Expand Up @@ -52,7 +48,9 @@ Three cases when a test is red:

Two fix-and-rerun tries is the cap before halting (Step 5).

When the suite reaches green, run it once more before trusting it: a pass that doesn't reproduce is a red (flaky tests are how broken work slips through), and it routes through the same three cases above.
When the behavioral tests reach green, discover the project's canonical complete check in this order: explicit project rules, the verification commands the CI workflow actually runs, then package scripts if neither stronger source names it. Several CI verification commands remain an ordered set; don't guess a single replacement. If none defines a complete check, run the broadest existing suite and name the missing project-level check in the report instead of inventing a command. Run that complete check or set once. A red result routes through the same three cases above, and a substantive change after the green result earns another run.

Targeted checks remain unlimited while fixing. A new test involving time, randomness, concurrency, or an outside process gets one targeted canary rerun even when it first passes; deterministic tests do not need an unconditional second run.

A fourth case sits outside the code entirely: when an outside service fails mid-stage (an API down, a platform change), that is the world breaking, not the work. Log it, name it in the report's Deferred field, and never "fix" working code in response.

Expand Down Expand Up @@ -82,4 +80,4 @@ K counts real defects the tests revealed, fixed by changing the code. Report the

## Rationale (recorded so future edits don't drift it)

The stage exists because review rounds judging untested code argue about reasoning, while rounds judging tested code argue about evidence. The never-weaken rule and the plan-derived expectations both counter the same failure: an agent grading its own homework drifts toward whatever the code already does. The grader step brings in the one reviewer that can't recognize its own work, and the cited NeurIPS 2024 result is why that seat matters. The run-it-twice rule and the outside-service case adapt the acceptance-testing discipline in Mike Fishbein's infinite-headcount factory skills (flaky greens hide broken builds; a failure of the world is never a reason to edit working code). Recorded so the lineage survives edits.
The stage exists because review rounds judging untested code argue about reasoning, while rounds judging tested code argue about evidence. The never-weaken rule and the plan-derived expectations both counter the same failure: an agent grading its own homework drifts toward whatever the code already does. The grader step brings in the one reviewer that can't recognize its own work, and the cited NeurIPS 2024 result is why that seat matters. The narrow canary rule and the outside-service case adapt the acceptance-testing discipline in Mike Fishbein's infinite-headcount factory skills: risky tests must reproduce, while a failure of the world is never a reason to edit working code. Recorded so the lineage survives edits.
Loading