reviewer-architecture · v1 · 2026-10-09 · sha256 b94ef4a4d38772fe
reviewer-architecture v1A
Immutable. This exact content never changes and is served at /api/v1/blob/b94ef4a4d38772fe.
--- name: reviewer-architecture description: Performs architectural code reviews focusing on design patterns, duplication, circular dependencies, and refactoring impact. Is the design consistent with the codebase? Use when reviewing code changes for architectural concerns, code smells, or structural issues. license: MIT metadata: author: Andrew G. Brown (https://github.com/brownag) version: 1.0 source_repo: aigb-skills source_path: skills/reviewer-architecture/SKILL.md --- # Architectural Reviewer Performs deep architectural analysis of code changes, identifying design patterns, duplication, circular dependencies, and refactoring side effects. ## Review Complete When - **Scope** of affected files and modules is mapped - **Duplication** is audited (no new unnecessary copies, consolidation opportunities noted) - **Patterns** verified against codebase conventions (caller expectations, interface consistency) - **Circular dependencies** validated or ruled out for all affected modules - **Refactoring impact** assessed (stub files, side effects, progression toward goal) - **Summary table** shows status for all items - **Overall verdict** is clear ([PASS] patterns sound / [WARN] concerns noted / [FAIL] rework needed) A review is not complete if any architectural check has an "unknown" or "not checked" status. ## Instructions ### 1. Identify Scope Determine which files and modules are affected by the changes. Map the import/export graph for the affected modules. ### 2. Check for Duplication Search for duplicate or near-duplicate implementations across the codebase: ```bash # Find similar function names across files grep -rn "function getConsolidationFiles" --include="*.ts" --include="*.js" # Find similar patterns (e.g., path.join, fs.readdirSync) grep -rn "path.join.*map" --include="*.ts" --include="*.js" ``` For each duplicate found, assess: - Are the implementations identical or divergent? - Is there an intentional reason for the duplication? - Should they be consolidated into a shared utility? ### 3. Assess Architectural Patterns Evaluate whether the changes follow existing patterns in the codebase: - **Path resolution**: Do path-building functions return full paths consistently? Check against existing patterns like `discoverAgents()`. - **Import structure**: Is the import chain linear, or does it introduce cycles? - **Export surface**: Are exports aligned with how consumers use them? - **Module boundaries**: Do changes respect existing module responsibilities? ### 4. Trace Callers and Consumers For each changed function, verify all callers: ```bash # Find all callers of a function grep -rn "getStructuredConsolidationFiles" --include="*.ts" --include="*.js" grep -rn "createSession" --include="*.ts" --include="*.js" ``` Check: - Do all callers expect the same interface (e.g., full paths vs. bare filenames)? - Are there callers that might break with the change? - Are there unmet imports (functions used but not exported)? ### 5. Check Circular Dependencies Build the import graph for affected modules: ``` shared.ts -> paths.ts (one-way) agent-spawning.ts -> shared.ts (one-way) dream-execution.ts -> shared.ts + agent-spawning.ts (one-way) ``` Flag any cycles. Circular dependencies indicate architectural coupling that should be broken. ### 6. Evaluate Refactoring Impact When changes are part of a larger refactoring (e.g., extracting handlers from a monolith): - Are stub files created as intermediate artifacts? - Do new exports serve the refactoring goal? - Are there side effects on unrelated modules? - Is the refactoring progressing toward a clear architecture? ### 7. Report Findings Structure the review as: ```markdown ## Review ### 1. [Change Description] -- Status [PASS]/[WARN]/[FAIL] **Evidence:** - [Specific file:line references] - [Pattern comparisons] - [Caller verification] **Verdict:** [Brief conclusion] ### 2. Architectural Concerns #### 2a. [Issue] [WARN]/[INFO] [Description of the concern, why it matters, and a suggestion] ### Summary | Item | Status | Notes | |------|--------|-------| | [Item] | [PASS]/[WARN]/[FAIL] | [Brief note] | **[Overall verdict]** ``` Use status symbols: - [PASS] -- Correct, no issues - [WARN] -- Code smell or concern worth noting (not a blocker) - [FAIL] -- Architectural problem that should be addressed - [INFO] -- Informational, known state