<!-- SYNC:evidence-based-reasoning -->[IMPORTANT] Use
TaskCreateto break ALL work into small tasks BEFORE starting — including tasks for each file read. This prevents context loss from long files. For simple tasks, AI MUST ATTENTION ask user whether to skip.
<!-- /SYNC:evidence-based-reasoning --> <!-- SYNC:design-patterns-quality -->Evidence-Based Reasoning — Speculation is FORBIDDEN. Every claim needs proof.
- Cite
file:line, grep results, or framework docs for EVERY claim- Declare confidence: >80% act freely, 60-80% verify first, <60% DO NOT recommend
- Cross-service validation required for architectural changes
- "I don't have enough evidence" is valid and expected output
BLOCKED until:
- [ ]Evidence file path (file:line)- [ ]Grep search performed- [ ]3+ similar patterns found- [ ]Confidence level statedForbidden without proof: "obviously", "I think", "should be", "probably", "this is because" If incomplete → output:
"Insufficient evidence. Verified: [...]. Not verified: [...]."
<!-- /SYNC:design-patterns-quality --> <!-- SYNC:double-round-trip-review -->Design Patterns Quality — Priority checks for every code change:
- DRY via OOP: Same-suffix classes (
*Entity,*Dto,*Service) MUST ATTENTION share base class. 3+ similar patterns → extract to shared abstraction.- Right Responsibility: Logic in LOWEST layer (Entity > Domain Service > Application Service > Controller). Never business logic in controllers.
- SOLID: Single responsibility (one reason to change). Open-closed (extend, don't modify). Liskov (subtypes substitutable). Interface segregation (small interfaces). Dependency inversion (depend on abstractions).
- After extraction/move/rename: Grep ENTIRE scope for dangling references. Zero tolerance.
- YAGNI gate: NEVER recommend patterns unless 3+ occurrences exist. Don't extract for hypothetical future use.
Anti-patterns to flag: God Object, Copy-Paste inheritance, Circular Dependency, Leaky Abstraction.
<!-- /SYNC:double-round-trip-review -->Deep Multi-Round Review — THREE mandatory escalating-depth rounds. NEVER combine. NEVER PASS after Round 1 alone.
Round 1: Normal review building understanding. Read all files, note issues. Round 2: MANDATORY re-read ALL files from scratch. Focus on:
- Cross-cutting concerns missed in Round 1
- Interaction bugs between changed files
- Convention drift (new code vs existing patterns)
- Missing pieces (what should exist but doesn't)
Round 3: MANDATORY adversarial simulation (for >3 files or cross-cutting changes). Pretend you are using/running this code RIGHT NOW:
- "What input causes failure? What error do I get?"
- "1000 concurrent users — what breaks?"
- "After deployment rollback — backward compatible?"
- "Can I debug issues from logs/monitoring output?"
Rules: NEVER rely on prior round memory — re-read everything. NEVER declare PASS after Round 1. Final verdict must incorporate ALL rounds. Report must include
## Round 2 Findingsand## Round 3 Findingssections.
docs/project-reference/domain-entities-reference.md— Domain entity catalog, relationships, cross-service sync (read when task involves business entities/models) (content auto-injected by hook — check for [Injected: ...] header before reading)
Critical Purpose: Ensure quality — no flaws, no bugs, no missing updates, no stale content. Verify both code AND documentation.
External Memory: For complex or lengthy work (research, analysis, scan, review), write intermediate findings and final results to a report file in
plans/reports/— prevents context loss and serves as deliverable.
<!-- SYNC:rationalization-prevention -->Evidence Gate: MANDATORY IMPORTANT MUST ATTENTION — every claim, finding, and recommendation requires
file:lineproof or traced evidence with confidence percentage (>80% to act, <80% must verify first).
<!-- /SYNC:rationalization-prevention --> <!-- SYNC:logic-and-intention-review -->Rationalization Prevention — AI skips steps via these evasions. Recognize and reject:
| Evasion | Rebuttal | | ---------------------------- | ------------------------------------------------------------- | | "Too simple for a plan" | Simple + wrong assumptions = wasted time. Plan anyway. | | "I'll test after" | RED before GREEN. Write/verify test first. | | "Already searched" | Show grep evidence with
file:line. No proof = no search. | | "Just do it" | Still need TaskCreate. Skip depth, never skip tracking. | | "Just a small fix" | Small fix in wrong location cascades. Verify file:line first. | | "Code is self-explanatory" | Future readers need evidence trail. Document anyway. | | "Combine steps to save time" | Combined steps dilute focus. Each step has distinct purpose. |
<!-- /SYNC:logic-and-intention-review --> <!-- SYNC:bug-detection -->Logic & Intention Review — Verify WHAT code does matches WHY it was changed.
- Change Intention Check: Every changed file MUST ATTENTION serve the stated purpose. Flag unrelated changes as scope creep.
- Happy Path Trace: Walk through one complete success scenario through changed code
- Error Path Trace: Walk through one failure/edge case scenario through changed code
- Acceptance Mapping: If plan context available, map every acceptance criterion to a code change
NEVER mark review PASS without completing both traces (happy + error path).
<!-- /SYNC:bug-detection --> <!-- SYNC:test-spec-verification -->Bug Detection — MUST ATTENTION check categories 1-4 for EVERY review. Never skip.
- Null Safety: Can params/returns be null? Are they guarded? Optional chaining gaps?
.find()returns checked?- Boundary Conditions: Off-by-one (
<vs<=)? Empty collections handled? Zero/negative values? Max limits?- Error Handling: Try-catch scope correct? Silent swallowed exceptions? Error types specific? Cleanup in finally?
- Resource Management: Connections/streams closed? Subscriptions unsubscribed on destroy? Timers cleared? Memory bounded?
- Concurrency (if async): Missing
await? Race conditions on shared state? Stale closures? Retry storms?- Stack-Specific: JS:
===vs==,typeof null. C#:async void, missingusing, LINQ deferred execution.Classify: CRITICAL (crash/corrupt) → FAIL | HIGH (incorrect behavior) → FAIL | MEDIUM (edge case) → WARN | LOW (defensive) → INFO
<!-- /SYNC:test-spec-verification --> <!-- SYNC:fix-layer-accountability -->Test Spec Verification — Map changed code to test specifications.
- From changed files → find TC-{FEAT}-{NNN} in
docs/business-features/{Service}/detailed-features/{Feature}.mdSection 15- Every changed code path MUST ATTENTION map to a corresponding TC (or flag as "needs TC")
- New functions/endpoints/handlers → flag for test spec creation
- Verify TC evidence fields point to actual code (
file:line, not stale references)- Auth changes → TC-{FEAT}-02x exist? Data changes → TC-{FEAT}-01x exist?
- If no specs exist → log gap and recommend
/tdd-specNEVER skip test mapping. Untested code paths are the #1 source of production bugs.
<!-- /SYNC:fix-layer-accountability -->Fix-Layer Accountability — NEVER fix at the crash site. Trace the full flow, fix at the owning layer.
AI default behavior: see error at Place A → fix Place A. This is WRONG. The crash site is a SYMPTOM, not the cause.
MANDATORY before ANY fix:
- Trace full data flow — Map the complete path from data origin to crash site across ALL layers (storage → backend → API → frontend → UI). Identify where the bad state ENTERS, not where it CRASHES.
- Identify the invariant owner — Which layer's contract guarantees this value is valid? That layer is responsible. Fix at the LOWEST layer that owns the invariant — not the highest layer that consumes it.
- One fix, maximum protection — Ask: "If I fix here, does it protect ALL downstream consumers with ONE change?" If fix requires touching 3+ files with defensive checks, you are at the wrong layer — go lower.
- Verify no bypass paths — Confirm all data flows through the fix point. Check for: direct construction skipping factories, clone/spread without re-validation, raw data not wrapped in domain models, mutations outside the model layer.
BLOCKED until:
- [ ]Full data flow traced (origin → crash)- [ ]Invariant owner identified withfile:lineevidence- [ ]All access sites audited (grep count)- [ ]Fix layer justified (lowest layer that protects most consumers)Anti-patterns (REJECT these):
- "Fix it where it crashes" — Crash site ≠ cause site. Trace upstream.
- "Add defensive checks at every consumer" — Scattered defense = wrong layer. One authoritative fix > many scattered guards.
- "Both fix is safer" — Pick ONE authoritative layer. Redundant checks across layers send mixed signals about who owns the invariant.
OOP & DRY Enforcement: MANDATORY IMPORTANT MUST ATTENTION — flag duplicated patterns that should be extracted to a base class, generic, or helper. Classes in the same group or suffix (ex *Entity, *Dto, *Service, etc...) MUST ATTENTION inherit a common base (even if empty now — enables future shared logic and child overrides). Verify project has code linting/analyzer configured for the stack.
Quick Summary
Goal: Ensure technical correctness through three practices: receiving feedback with verification over performative agreement, requesting systematic reviews via code-reviewer subagent, and enforcing verification gates before completion claims.
MANDATORY IMPORTANT MUST ATTENTION Plan ToDo Task to READ the following project-specific reference docs:
docs/project-reference/code-review-rules.md— anti-patterns, review checklists, quality standards (READ FIRST)backend-patterns-reference.md— backend CQRS, validation, entity patternsfrontend-patterns-reference.md— component hierarchy, store, forms patternsdocs/project-reference/design-system/README.md— design tokens, component inventory, iconsIf files not found, search for: project coding standards, architecture documentation.
Workflow:
- Create Review Report — Initialize report file in
plans/reports/code-review-{date}-{slug}.md - Phase 1: File-by-File — Review each file, update report with issues (naming, typing, magic numbers, responsibility)
- Phase 2: Holistic Review — Re-read accumulated report, assess overall approach, architecture, duplication
- Phase 3: Final Result — Update report with overall assessment, critical issues, recommendations
Key Rules:
- Report-Driven: Build report incrementally, re-read for big picture
- Two-Phase: Individual file review → holistic assessment of accumulated findings
- No Performative Agreement: Technical evaluation, not social comfort ("You're right!" banned)
- Verification Gates: Evidence required before any completion claims (tests pass, build succeeds)
Code Review
Three practices: (1) Receiving feedback with technical rigor, (2) Requesting systematic reviews via code-reviewer subagent, (3) Enforcing verification gates before completion claims.
<!-- SYNC:graph-assisted-investigation --><!-- /SYNC:graph-assisted-investigation -->Graph-Assisted Investigation — MANDATORY when
.code-graph/graph.dbexists.HARD-GATE: MUST ATTENTION run at least ONE graph command on key files before concluding any investigation.
Pattern: Grep finds files →
trace --direction bothreveals full system flow → Grep verifies details| Task | Minimum Graph Action | | ------------------- | -------------------------------------------- | | Investigation/Scout |
trace --direction bothon 2-3 entry files | | Fix/Debug |callers_ofon buggy function +tests_for| | Feature/Enhancement |connectionson files to be modified | | Code Review |tests_foron changed functions | | Blast Radius |trace --direction downstream|CLI:
python .claude/scripts/code_graph {command} --json. Use--node-mode filefirst (10-30x less noise), then--node-mode functionfor detail.
Run
python .claude/scripts/code_graph query tests_for <function> --jsonon changed functions to flag coverage gaps.
Review Mindset (NON-NEGOTIABLE)
Be skeptical. Every claim needs traced proof with file:line evidence. Confidence >80% to act.
- NEVER accept code correctness at face value — trace call paths to confirm
- NEVER include a finding without
file:lineevidence (grep results, read confirmations) - ALWAYS question: "Does this actually work?" → trace it. "Is this all?" → grep cross-service.
- ALWAYS verify side effects: check consumers and dependents before approving
Core Principles (ENFORCE ALL)
| Principle | Rule |
| ------------------ | ----------------------------------------------------------------------------------------------------------- |
| YAGNI | Flag code solving hypothetical problems (unused params, speculative interfaces) |
| KISS | Flag unnecessary complexity. "Is there a simpler way?" |
| DRY | Grep for similar/duplicate code. 3+ similar patterns → flag for extraction |
| Clean Code | Readable > clever. Names reveal intent. Functions do ONE thing. Nesting <=3. Methods <30 lines |
| Convention | MUST ATTENTION grep 3+ existing examples before flagging violations. Codebase convention wins over textbook |
| No Bugs | Trace logic paths. Verify edge cases (null, empty, boundary). Check error handling |
| Proof Required | Every claim backed by file:line evidence. Speculation is forbidden |
| Doc Staleness | Cross-ref changed files against related docs. Flag stale/missing updates |
Technical correctness over social comfort. Verify before implementing. Evidence before claims.
Graph-Enhanced Review (RECOMMENDED if graph.db exists)
python .claude/scripts/code_graph graph-blast-radius --json— prioritize files by impact (most dependents first)python .claude/scripts/code_graph query tests_for <function_name> --json— flag untested changed functionspython .claude/scripts/code_graph trace <file> --direction downstream --json— downstream impact (events, bus, cross-service)python .claude/scripts/code_graph trace <file> --direction both --json— full flow context for controllers/commands/handlers- Wide blast radius (>20 impacted nodes) = high-risk. Flag in report.
Review Approach (Report-Driven Two-Phase - CRITICAL)
⛔ MANDATORY FIRST: Create Todo Tasks Before starting, call TaskCreate with review phase tasks:
[Review Phase 1] Create report file- in_progress[Review Phase 1] Review file-by-file and update report- pending[Review Phase 2] Re-read report for holistic assessment- pending[Review Phase 3] Generate final review findings- pending[Review Round 2] Focused re-review of all files- pending[Review Final] Consolidate Round 1 + Round 2 findings- pending Update todo status as each phase completes.
Step 0: Create Report File
- Create
plans/reports/code-review-{date}-{slug}.md - Initialize with Scope, Files to Review sections
Phase 1: File-by-File Review (Build Report) For EACH file, immediately update report with:
- File path, Change Summary, Purpose, Issues Found
- Check naming, typing, magic numbers, responsibility placement
- Convention check: Grep for 3+ similar patterns in codebase — does new code follow existing convention?
- Correctness check: Trace logic paths — does the code handle null, empty, boundary values, error cases?
- DRY check: Grep for similar/duplicate code — does this logic already exist elsewhere?
Phase 2: Holistic Review (Review the Report) After ALL files reviewed, re-read accumulated report to see big picture:
- Technical Solution: Does overall approach make sense as unified plan?
- Responsibility: New files in correct layers? Logic in LOWEST layer?
- Backend: Mapping in Command/DTO (not Handler)?
- Frontend: Constants/columns in Model (not Component)?
- Duplication: Any duplicated logic across changes? Similar code elsewhere? (grep to verify)
- Architecture: Clean Architecture followed? Service boundaries respected?
- Plan Compliance (if active plan exists): Check
## Plan Context→ if plan path exists, verify: implementation matches plan requirements, plan TCs have code evidence (not "TBD"), no plan requirement unaddressed - Design Patterns (per
design-patterns-quality-checklist.md): Pattern opportunities (switch→Strategy, scattered new→Factory)? Anti-patterns (God Object, Copy-Paste, Circular Dependency)? DRY via base classes/generics? Right responsibility layer? Tech-agnostic abstractions?
MUST ATTENTION CHECK — Clean Code: YAGNI (unused params, speculative interfaces)? KISS (simpler alternative exists)? Methods >30 lines or nesting >3? Abstractions for single-use?
MUST ATTENTION CHECK — Correctness: Null/empty/boundary handled? Error paths caught and propagated? Async race conditions? Trace one happy path + one error path through business logic.
Documentation Staleness Check:
Cross-reference changed files against related documentation:
| Changed file pattern | Docs to check |
| ---------------------- | ------------------------------------------------------------------------------ |
| Service code ** | Business feature docs for affected service |
| Frontend code ** | Frontend patterns doc, relevant business-feature docs |
| Framework code ** | Backend patterns doc, advanced patterns doc |
| .claude/hooks/** | .claude/docs/hooks/README.md, hook count tables in .claude/docs/hooks/*.md |
| .claude/skills/** | .claude/docs/skills/README.md, skill catalogs |
| .claude/workflows/** | CLAUDE.md workflow catalog, .claude/docs/ references |
Flag stale counts/tables/examples, missing docs for new features, outdated test specs. Do NOT auto-fix — flag in report with specific stale section and what changed.
Phase 3: Final Review Result Update report with: Overall Assessment, Critical Issues, High Priority, Architecture Recommendations, Documentation Staleness, Positive Observations
Round 2: Focused Re-Review (MANDATORY — Fresh-Context)
Protocol: Fresh-Context Review (SYNC:fresh-context-review) — Round 2 is delegated to a fresh sub-agent for unbiased review.
After completing Phase 3 (Round 1), spawn a fresh code-reviewer sub-agent for Round 2:
Agent({
description: "Fresh-context Round 2 deep review",
subagent_type: "code-reviewer",
prompt: "## Task\nReview ALL uncommitted changes for code quality. This is a focused deep review.\nYou are reviewing with completely fresh eyes — no knowledge of any prior review round.\n\n## Review Scope\nRun git diff to see all uncommitted changes.\n\n## Focus Areas\n- Cross-cutting concerns spanning multiple changed files\n- Interaction bugs between changed files\n- Convention drift (new code vs existing patterns — grep 3+ examples)\n- Missing pieces (what should exist but doesn't)\n- Subtle edge cases (null, empty, boundary, off-by-one)\n- Logic errors that may have been accepted at face value\n- Bug patterns that only emerge when viewing cross-file interactions\n- Test spec gaps visible only after seeing the full change set\n\nRead docs/project-reference/code-review-rules.md for project standards.\nWrite findings to plans/reports/code-review-round2-{date}.md\n\n## Output\nReturn structured findings:\n- **Status**: PASS or FAIL\n- **Issues**: [list with file:line evidence]\n- **Issue Count**: {number}\n\nEvery finding MUST have file:line evidence. No speculation."
})
After sub-agent returns:
- Read the sub-agent's report from
plans/reports/code-review-round2-{date}.md - Integrate findings into the main report as
## Round 2 Findings (Fresh-Context) - Proceed to Round 3 (adversarial simulation) with combined Round 1 + Round 2 knowledge
- Final verdict must incorporate findings from BOTH rounds
Clean Code Rules (MUST ATTENTION CHECK)
| # | Rule | Details |
| --- | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| 1 | No Magic Values | All literals → named constants |
| 2 | Type Annotations | Explicit parameter and return types on all functions |
| 3 | Single Responsibility | One concern per method/class. Event handlers/consumers: one handler = one concern. NEVER bundle — platform swallows exceptions silently |
| 4 | DRY | No duplication; extract shared logic |
| 5 | Naming | Specific (employeeRecords not data), Verb+Noun methods, is/has/can/should booleans, no abbreviations |
| 6 | Performance | No O(n²) (use dictionary). Project in query (not load-all). ALWAYS paginate. Batch-by-IDs (not N+1) |
| 7 | Entity Indexes | Collections: index management methods. EF Core: composite indexes. Expression fields match index order. Text search → text indexes |
Data Lifecycle Rules (MUST ATTENTION CHECK)
Decision test: "Delete DB and start fresh — does this data still need to exist?" Yes → Seeder. No → Migration.
| Type | Contains | NEVER contains | | ------------- | ---------------------------------------------------------------------- | ------------------------------------------------ | | Seeder | Default records, system config, reference data (idempotent, every run) | Schema changes | | Migration | Schema changes, column adds/removes, data transforms, indexes | Default records, permission seeds, system config |
// ❌ Seed data in migration — lost after DB reset
class SeedDefaultRecords : DataMigrationExecutor { ... }
// ✅ Idempotent seeder — always runs
class ApplicationDataSeeder { if (exists) return; else create(); }
Legacy Frontend Pattern Compliance
When reviewing legacy frontend apps (check docs/project-config.json → modules[].tags for "legacy"), MUST ATTENTION verify:
- [ ] Component extends base component class (search for: app base component hierarchy) with
super(...)in constructor - [ ] Uses subscription cleanup pattern (search for: subscription cleanup pattern) — NO manual
Subjectdestroy - [ ] Services extend API service base class — NO direct
HttpClient - [ ] Store API calls use store effect pattern — NOT deprecated patterns
CRITICAL anti-patterns to flag:
// ❌ Manual destroy Subject / takeUntil pattern
private destroy$ = new Subject<void>();
.pipe(takeUntil(this.destroy$))
// ❌ Raw Component without base class
export class MyComponent implements OnInit, OnDestroy { }
When to Use This Skill
| Practice | Triggers | MUST ATTENTION READ |
| ---------------------- | ------------------------------------------------------------------------------------------ | ---------------------------------------------- |
| Receiving Feedback | Review comments received, feedback unclear/questionable, conflicts with existing decisions | references/code-review-reception.md |
| Requesting Review | After each subagent task, major feature done, before merge, after complex bug fix | references/requesting-code-review.md |
| Verification Gates | Before any completion claim, commit, push, or PR. ANY success/satisfaction statement | references/verification-before-completion.md |
Quick Decision Tree
SITUATION?
│
├─ Received feedback
│ ├─ Unclear items? → STOP, ask for clarification first
│ ├─ From human partner? → Understand, then implement
│ └─ From external reviewer? → Verify technically before implementing
│
├─ Completed work
│ ├─ Major feature/task? → Request code-reviewer subagent review
│ └─ Before merge? → Request code-reviewer subagent review
│
└─ About to claim status
├─ Have fresh verification? → State claim WITH evidence
└─ No fresh verification? → RUN verification command first
Receiving Feedback Protocol
Pattern: READ → UNDERSTAND → VERIFY → EVALUATE → RESPOND → IMPLEMENT
- NEVER use performative agreement ("You're right!", "Great point!", "Thanks for...")
- NEVER implement before verification
- MUST ATTENTION restate requirement, ask questions, or push back with technical reasoning
- MUST ATTENTION ask for clarification on ALL unclear items BEFORE starting
- MUST ATTENTION grep for usage before implementing suggested "proper" features (YAGNI check)
Source handling: Human partner → implement after understanding. External reviewer → verify technically, push back if wrong.
Full protocol: references/code-review-reception.md
Requesting Review Protocol
- Get git SHAs:
BASE_SHA=$(git rev-parse HEAD~1)andHEAD_SHA=$(git rev-parse HEAD) - Dispatch code-reviewer subagent with: WHAT_WAS_IMPLEMENTED, PLAN_OR_REQUIREMENTS, BASE_SHA, HEAD_SHA, DESCRIPTION
- Act on feedback: Critical → fix immediately. Important → fix before proceeding. Minor → note for later.
Full protocol: references/requesting-code-review.md
Verification Gates Protocol
Iron Law: NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE
Gate: IDENTIFY command → RUN it → READ output → VERIFY it confirms claim → THEN claim. Skip any step = lying.
| Claim | Required Evidence | | ---------------- | ------------------------------- | | Tests pass | Test output shows 0 failures | | Build succeeds | Build command exit 0 | | Bug fixed | Original symptom test passes | | Requirements met | Line-by-line checklist verified |
Red Flags — STOP: "should"/"probably"/"seems to", satisfaction before verification, committing without verification, trusting agent reports.
Full protocol: references/verification-before-completion.md
Related
code-simplifierdebug-investigaterefactoring
Systematic Review Protocol (for 10+ changed files)
When the changeset is large (10+ files), categorize files by concern, fire parallel
code-reviewersub-agents per category, then synchronize findings into a holistic report. Seereview-changes/SKILL.md§ "Systematic Review Protocol" for the full 4-step protocol (Categorize → Parallel Sub-Agents → Synchronize → Holistic Assessment).
Workflow Recommendation
MANDATORY IMPORTANT MUST ATTENTION — NO EXCEPTIONS: If you are NOT already in a workflow, you MUST ATTENTION use
AskUserQuestionto ask the user. Do NOT judge task complexity or decide this is "simple enough to skip" — the user decides whether to use a workflow, not you:
- Activate
quality-auditworkflow (Recommended) — code-review → plan → code → review-changes → test- Execute
/code-reviewdirectly — run this skill standalone
Architecture Boundary Check
For each changed file, verify it does not import from a forbidden layer:
- Read rules from
docs/project-config.json→architectureRules.layerBoundaries - Determine layer — For each changed file, match its path against each rule's
pathsglob patterns - Scan imports — Grep the file for
using(C#) orimport(TS) statements - Check violations — If any import path contains a layer name listed in
cannotImportFrom, it is a violation - Exclude framework — Skip files matching any pattern in
architectureRules.excludePatterns - BLOCK on violation — Report as critical:
"BLOCKED: {layer} layer file {filePath} imports from {forbiddenLayer} layer ({importStatement})"
If architectureRules is not present in project-config.json, skip this check silently.
Next Steps
MANDATORY IMPORTANT MUST ATTENTION — NO EXCEPTIONS after completing this skill, you MUST ATTENTION use AskUserQuestion to present these options. Do NOT skip because the task seems "simple" or "obvious" — the user decides:
- "/fix (Recommended)" — If review found issues that need fixing
- "/watzup" — If review is clean, wrap up session
- "Skip, continue manually" — user decides
AI Agent Integrity Gate (NON-NEGOTIABLE)
Completion ≠ Correctness. Before reporting ANY work done, prove it:
- Grep every removed name. Extraction/rename/delete touched N files? Grep confirms 0 dangling refs across ALL file types.
- Ask WHY before changing. Existing values are intentional until proven otherwise. No "fix" without traced rationale.
- Verify ALL outputs. One build passing ≠ all builds passing. Check every affected stack.
- Evaluate pattern fit. Copying nearby code? Verify preconditions match — same scope, lifetime, base class, constraints.
- New artifact = wired artifact. Created something? Prove it's registered, imported, and reachable by all consumers.
Closing Reminders
MANDATORY IMPORTANT MUST ATTENTION break work into small todo tasks using TaskCreate BEFORE starting.
MANDATORY IMPORTANT MUST ATTENTION validate decisions with user via AskUserQuestion — never auto-decide.
MANDATORY IMPORTANT MUST ATTENTION add a final review todo task to verify work quality.
MANDATORY IMPORTANT MUST ATTENTION READ the following files before starting:
- MANDATORY IMPORTANT MUST ATTENTION cite
file:lineevidence for every claim. Confidence >80% to act, <60% = do NOT recommend. <!-- /SYNC:evidence-based-reasoning:reminder --> <!-- SYNC:design-patterns-quality:reminder --> - MANDATORY IMPORTANT MUST ATTENTION check DRY via OOP (same-suffix → base class), right responsibility (lowest layer), SOLID. Grep for dangling refs after changes. <!-- /SYNC:design-patterns-quality:reminder --> <!-- SYNC:double-round-trip-review:reminder -->
- MANDATORY IMPORTANT MUST ATTENTION execute TWO review rounds. Round 2 delegates to fresh code-reviewer sub-agent (zero prior context) — never skip or combine with Round 1. <!-- /SYNC:double-round-trip-review:reminder --> <!-- SYNC:rationalization-prevention:reminder -->
- MANDATORY IMPORTANT MUST ATTENTION follow ALL steps regardless of perceived simplicity. "Too simple to plan" is an evasion, not a reason. <!-- /SYNC:rationalization-prevention:reminder --> <!-- SYNC:graph-assisted-investigation:reminder -->
- MANDATORY IMPORTANT MUST ATTENTION run at least ONE graph command on key files when graph.db exists. Pattern: grep → graph trace → grep verify. <!-- /SYNC:graph-assisted-investigation:reminder --> <!-- SYNC:logic-and-intention-review:reminder -->
- MANDATORY IMPORTANT MUST ATTENTION verify every changed file serves stated purpose. Trace happy + error paths. Flag scope creep. <!-- /SYNC:logic-and-intention-review:reminder --> <!-- SYNC:bug-detection:reminder -->
- MANDATORY IMPORTANT MUST ATTENTION check null safety, boundary conditions, error handling, resource management for every review. <!-- /SYNC:bug-detection:reminder --> <!-- SYNC:test-spec-verification:reminder -->
- MANDATORY IMPORTANT MUST ATTENTION map every changed function/endpoint to a TC-{FEAT}-{NNN}. Flag gaps, recommend
/tdd-spec. <!-- /SYNC:test-spec-verification:reminder --> <!-- SYNC:fix-layer-accountability:reminder --> - IMPORTANT MUST ATTENTION trace full data flow and fix at the owning layer, not the crash site. Audit all access sites before adding
?.. <!-- /SYNC:fix-layer-accountability:reminder -->