feat(atlas): enforce mandatory manual code review and direct boulder state checks
- VERIFICATION_REMINDER: add Step 2 manual code review (non-negotiable) - Require Read of EVERY changed file line by line - Cross-check subagent claims vs actual code - Verify logic correctness, completeness, edge cases, patterns - Add Step 5: direct boulder state check via Read plan file - Count remaining tasks directly, no cached state - BOULDER_CONTINUATION_PROMPT: add first rule to read plan file immediately - verification-reminders.ts: restructure steps 5-8 for boulder/todo checks - Atlas default.ts (Claude): enhance 3.4 QA with A/B/C/D sections - A: Automated verification - B: Manual code review (non-negotiable) - C: Hands-on QA (if applicable) - D: Check boulder state directly - Atlas gpt.ts (GPT-5.2): apply same QA enhancements with GPT-optimized structure - verification_rules: update both Claude and GPT versions with manual review requirements Addresses issue where Atlas would skip manual code inspection after delegation, leading to rubber-stamping of broken or incomplete work.
This commit is contained in:
@@ -33,6 +33,7 @@ export const BOULDER_CONTINUATION_PROMPT = `${createSystemDirective(SystemDirect
|
||||
You have an active work plan with incomplete tasks. Continue working.
|
||||
|
||||
RULES:
|
||||
- **FIRST**: Read the plan file NOW to check exact current progress — count remaining \`- [ ]\` tasks
|
||||
- Proceed without asking for permission
|
||||
- Change \`- [ ]\` to \`- [x]\` in the plan file when done
|
||||
- Use the notepad at .sisyphus/notepads/{PLAN_NAME}/ to record learnings
|
||||
@@ -48,15 +49,36 @@ Tests FAILING, code has ERRORS, implementation INCOMPLETE - but they say "done".
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
**STEP 1: VERIFY WITH YOUR OWN TOOL CALLS (DO THIS NOW)**
|
||||
**STEP 1: AUTOMATED VERIFICATION (DO THIS FIRST)**
|
||||
|
||||
Run these commands YOURSELF - do NOT trust agent's claims:
|
||||
1. \`lsp_diagnostics\` on changed files → Must be CLEAN
|
||||
2. \`bash\` to run tests → Must PASS
|
||||
3. \`bash\` to run build/typecheck → Must succeed
|
||||
4. \`Read\` the actual code → Must match requirements
|
||||
|
||||
**STEP 2: DETERMINE IF HANDS-ON QA IS NEEDED**
|
||||
**STEP 2: MANUAL CODE REVIEW (NON-NEGOTIABLE — DO NOT SKIP)**
|
||||
|
||||
Automated checks are NECESSARY but INSUFFICIENT. You MUST read the actual code.
|
||||
|
||||
**RIGHT NOW — \`Read\` EVERY file the subagent touched. No exceptions.**
|
||||
|
||||
For EACH changed file, verify:
|
||||
1. Does the implementation logic ACTUALLY match the task requirements?
|
||||
2. Are there incomplete stubs (TODO comments, placeholder code, hardcoded values)?
|
||||
3. Are there logic errors, off-by-one bugs, or missing edge cases?
|
||||
4. Does it follow existing codebase patterns and conventions?
|
||||
5. Are imports correct? No unused or missing imports?
|
||||
6. Is error handling present where needed?
|
||||
|
||||
**Cross-check the subagent's claims against reality:**
|
||||
- Subagent said "Updated X" → READ X. Is it actually updated?
|
||||
- Subagent said "Added tests" → READ tests. Do they test the RIGHT behavior?
|
||||
- Subagent said "Follows patterns" → COMPARE with reference. Does it actually?
|
||||
|
||||
**If you cannot explain what the changed code does, you have not reviewed it.**
|
||||
**If you skip this step, you are rubber-stamping broken work.**
|
||||
|
||||
**STEP 3: DETERMINE IF HANDS-ON QA IS NEEDED**
|
||||
|
||||
| Deliverable Type | QA Method | Tool |
|
||||
|------------------|-----------|------|
|
||||
@@ -66,7 +88,7 @@ Run these commands YOURSELF - do NOT trust agent's claims:
|
||||
|
||||
Static analysis CANNOT catch: visual bugs, animation issues, user flow breakages.
|
||||
|
||||
**STEP 3: IF QA IS NEEDED - ADD TO TODO IMMEDIATELY**
|
||||
**STEP 4: IF QA IS NEEDED - ADD TO TODO IMMEDIATELY**
|
||||
|
||||
\`\`\`
|
||||
todowrite([
|
||||
@@ -76,7 +98,8 @@ todowrite([
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
**BLOCKING: DO NOT proceed to Step 4 until Steps 1-3 are VERIFIED.**`
|
||||
**BLOCKING: DO NOT proceed until Steps 1-4 are ALL completed.**
|
||||
**Skipping Step 2 (manual code review) = unverified work = FAILURE.**`
|
||||
|
||||
export const ORCHESTRATOR_DELEGATION_REQUIRED = `
|
||||
|
||||
|
||||
@@ -26,7 +26,16 @@ export function buildOrchestratorReminder(
|
||||
|
||||
${buildVerificationReminder(sessionId)}
|
||||
|
||||
**STEP 4: MARK COMPLETION IN PLAN FILE (IMMEDIATELY)**
|
||||
**STEP 5: CHECK BOULDER STATE DIRECTLY (EVERY TIME — NO EXCEPTIONS)**
|
||||
|
||||
Do NOT rely on cached progress. Read the plan file NOW:
|
||||
\`\`\`
|
||||
Read(".sisyphus/tasks/${planName}.yaml")
|
||||
\`\`\`
|
||||
Count exactly: how many \`- [ ]\` remain? How many \`- [x]\` completed?
|
||||
This is YOUR ground truth. Use it to decide what comes next.
|
||||
|
||||
**STEP 6: MARK COMPLETION IN PLAN FILE (IMMEDIATELY)**
|
||||
|
||||
RIGHT NOW - Do not delay. Verification passed → Mark IMMEDIATELY.
|
||||
|
||||
@@ -36,14 +45,14 @@ Update the plan file \`.sisyphus/tasks/${planName}.yaml\`:
|
||||
|
||||
**DO THIS BEFORE ANYTHING ELSE. Unmarked = Untracked = Lost progress.**
|
||||
|
||||
**STEP 5: COMMIT ATOMIC UNIT**
|
||||
**STEP 7: COMMIT ATOMIC UNIT**
|
||||
|
||||
- Stage ONLY the verified changes
|
||||
- Commit with clear message describing what was done
|
||||
|
||||
**STEP 6: PROCEED TO NEXT TASK**
|
||||
**STEP 8: PROCEED TO NEXT TASK**
|
||||
|
||||
- Read the plan file to identify the next \`- [ ]\` task
|
||||
- Read the plan file AGAIN to identify the next \`- [ ]\` task
|
||||
- Start immediately - DO NOT STOP
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
@@ -57,7 +66,12 @@ export function buildStandaloneVerificationReminder(sessionId: string): string {
|
||||
|
||||
${buildVerificationReminder(sessionId)}
|
||||
|
||||
**STEP 4: UPDATE TODO STATUS (IMMEDIATELY)**
|
||||
**STEP 5: CHECK YOUR PROGRESS DIRECTLY (EVERY TIME — NO EXCEPTIONS)**
|
||||
|
||||
Do NOT rely on memory or cached state. Run \`todoread\` NOW to see exact current state.
|
||||
Count pending vs completed tasks. This is your ground truth for what comes next.
|
||||
|
||||
**STEP 6: UPDATE TODO STATUS (IMMEDIATELY)**
|
||||
|
||||
RIGHT NOW - Do not delay. Verification passed → Mark IMMEDIATELY.
|
||||
|
||||
@@ -66,15 +80,15 @@ RIGHT NOW - Do not delay. Verification passed → Mark IMMEDIATELY.
|
||||
|
||||
**DO THIS BEFORE ANYTHING ELSE. Unmarked = Untracked = Lost progress.**
|
||||
|
||||
**STEP 5: EXECUTE QA TASKS (IF ANY)**
|
||||
**STEP 7: EXECUTE QA TASKS (IF ANY)**
|
||||
|
||||
If QA tasks exist in your todo list:
|
||||
- Execute them BEFORE proceeding
|
||||
- Mark each QA task complete after successful verification
|
||||
|
||||
**STEP 6: PROCEED TO NEXT PENDING TASK**
|
||||
**STEP 8: PROCEED TO NEXT PENDING TASK**
|
||||
|
||||
- Identify the next \`pending\` task from your todo list
|
||||
- Run \`todoread\` AGAIN to identify the next \`pending\` task
|
||||
- Start immediately - DO NOT STOP
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
Reference in New Issue
Block a user