name: arch-review description: "This skill should be used when conducting architecture review with area/performance/power tradeoff analysis. Saves review reports to reviews/ directory." user-invocable: true
Note: This skill intentionally saves to reviews/phase-2-architecture/ because it
re-validates the Phase 2 architecture after RTL implementation. It updates (not replaces)
the existing Phase 2 review artifacts with post-RTL findings per Hierarchical Spec Compliance.
## Feature Coverage Checklist
| REQ ID | RTL Module | Status |
|--------|-----------|--------|
## Findings
### [severity] Finding-N: ...
## Verdict
PASS | FAIL: [reason]
```
- Categorize issues: BLOCKER / WARN / SUGGESTION
- Any MISSING requirement is automatically a BLOCKER
- Any PARTIAL requirement is at minimum a WARN
Task(subagent_type="rtl-agent-team:rtl-architect", prompt="READ-ONLY review. (1) Read requirements.json and check every REQ-NNN item for implementation in rtl/. Produce a Feature Coverage Checklist with per-REQ status: COVERED, PARTIAL, or MISSING. (2) Compare docs/phase-3-uarch/.md against rtl/. List any spec-RTL mismatches, missing modules, or unspecified additions. Verify port naming follows project convention: i_ prefix for inputs, o_ prefix for outputs, io_ prefix for bidirectional. Save the review result to reviews/phase-2-architecture/architecture-review.md in standard review Markdown format with Date, Reviewer (rtl-architect, timing-advisor, rtl-critic), Upper Spec (requirements.json, docs/phase-3-uarch/.md), Verdict, Feature Coverage Checklist table, Findings, and Verdict sections. If the file already exists, update it with the latest review results. Output final verdict: VERDICT: PASS or VERDICT: FAIL — [N] spec violations found.")
Task(subagent_type="rtl-agent-team:timing-advisor", prompt="READ-ONLY review. Analyze rtl/ pipeline depth, clock domains ({domain}_clk naming, e.g. sys_clk), and reset strategy ({domain}_rst_n naming, e.g. sys_rst_n). Flag timing feasibility concerns and any clock/reset naming violations.")
Task(subagent_type="rtl-agent-team:rtl-critic", prompt="READ-ONLY review. Assess rtl/ code quality: synthesizability, coding style (lowRISC base with project overrides: i_/o_/io_ port prefixes, {domain}clk/{domain}rst_n naming, logic only, u instance prefix, gen generate prefix), maintainability. List issues with severity.")
</Tool_Usage>
<Coding_Convention_Requirements>
Reviewers must verify these project-specific conventions (overrides lowRISC defaults):
- Port prefixes: `i_` (input), `o_` (output), `io_` (bidirectional) — NOT suffix `_i`/`_o`
- Clock naming: `clk` (single domain) or `{domain}_clk` (multiple domains, e.g., `sys_clk`) — NOT `clk_i`
- Reset naming: `rst_n` (single domain) or `{domain}_rst_n` (multiple domains, e.g., `sys_rst_n`) — NOT `rst_ni`
- Data types: `logic` only — `reg`/`wire` forbidden
- Instance prefix: `u_` (e.g., `u_fifo`) — generate prefix: `gen_`
- Any deviation from these conventions is at minimum a WARN finding
</Coding_Convention_Requirements>
<Examples>
<Good>
Three parallel reviews complete; rtl-architect finds missing error-handling state in FSM (BLOCKER);
timing-advisor flags 7-stage pipeline exceeding timing budget (WARN); rtl-critic notes inconsistent
reset polarity (WARN). All reported in reviews/phase-2-architecture/architecture-review.md, no RTL touched.
</Good>
<Bad>
Having rtl-architect also fix the issues it finds — mixing review with implementation defeats
the READ-ONLY audit purpose.
</Bad>
</Examples>
<Escalation_And_Stop_Conditions>
- BLOCKER found → surface immediately to user before completing report
- Spec document missing → halt, inform user that docs/phase-3-uarch/*.md is required
- Conflicting findings between reviewers → include both perspectives in report
</Escalation_And_Stop_Conditions>
<Final_Checklist>
- [ ] All three agents ran READ-ONLY with no file modifications
- [ ] reviews/phase-2-architecture/architecture-review.md written with findings per reviewer
- [ ] **Feature Coverage Checklist included with per-REQ-NNN status**
- [ ] **rtl-architect verdict output: VERDICT: PASS or VERDICT: FAIL — [N] spec violations found**
- [ ] Any MISSING requirement categorized as BLOCKER
- [ ] Issues categorized as BLOCKER / WARN / SUGGESTION
- [ ] BLOCKERs highlighted prominently in report
- [ ] **reviews/phase-2-architecture/architecture-review.md saved (or updated) with review result**
</Final_Checklist>