P2 arch design policy
Internal reference: p2 arch design policy (agent-loaded; do not invoke).From its SKILL.md
npx -y skills add babyworm/rtl-agent-team --skill p2-arch-design-policyAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
11.2 KB, as published. Nobody here has run it
Phase 2 Architecture Design Policy
P1 Algorithm Candidate HW Review Criteria
For each functional area's candidates from P1's domain-analysis.md, evaluate:
- Gate count estimate (from literature or analytical estimation)
- Critical path depth (combinational logic levels)
- SRAM requirements (capacity, banking, port count)
- External memory bandwidth (bytes/pixel, access patterns)
- Achievable throughput at target frequency (pixels/cycle, blocks/cycle)
- Implementation risk (tool support, verification complexity, proven vs novel)
Architecture Review Criteria (Dynamic Convergence Protocol)
Dynamic convergence review (min 2, max 5 rounds), coordinated by rtl-architect:
- 3 mandatory parallel reviewers each round: (a) rtl-architect: spec compliance (Feature Coverage Checklist) + structural review (b) vcodec-architecture-expert: memory access patterns, performance analysis (c) ref-model-dev: architecture ↔ C model consistency (block mapping, data flow, interfaces)
- +1 conditional reviewer: (d) ref-model-reviewer: independent C model quality gate (algorithm fidelity, numerical precision, undefined behavior/build warning risk) when ref model is newly created or substantially revised
- ref-model-reviewer activation threshold: Invoke when ref model is newly created OR
30% of source lines changed from prior version. Both sequential and team orchestrators use this same threshold. Skip review tasks when ref model is unchanged.
- Each round: review → rebuttal (designer accepts/rejects each finding with rationale) → tree exploration for issues → targeted revision (rejections recorded in per-round artifact)
- Last round (converged or max reached): cross-block interface audit + memory conflict analysis
- Convergence check after round >= min_rounds: finding_delta < 0.1, all critical resolved, wonder stable
- After max_rounds if not converged → escalate to user via AskUserQuestion
Architecture Naming Conventions
- Block names:
snake_case(become RTL module names in Phase 4) - Interface descriptions: data width, protocol type, direction — NOT RTL port naming
- RTL naming conventions (i_/o_ prefix, clock/reset naming) applied in Phase 4, not here
HW Candidate Review Format
docs/phase-2-architecture/hw-candidate-review.md must contain:
- Per functional area: candidate list with algorithm description
- Comparison matrix columns: gate count, critical path depth, SRAM requirements, external memory BW, throughput at target freq, memory latency impact, implementation risk
- Selected candidate per area with REQ-NNN justification
- User decision record (AskUserQuestion response summary)
Bandwidth Analysis Workflow
- ref-model produces bandwidth_report.json during Step 3
- arch-designer consumes bandwidth_report.json during Step 4 (after synchronization)
- If bandwidth exceeds limits → adjust block partitioning or PARALLEL_LANES before review
Memory Architecture Classification
Each block's storage elements must be classified at architecture level:
- Local storage: SRAM or register file (Phase 3 specifies exact type: SP/TP/DP wrapper)
- Cross-domain storage: flag for dual-clock SRAM (DP) when read and write are in different clock domains
- External memory: DDR/HBM accessed via bus interface
Architecture does NOT select wrapper types (that is Phase 3 μArch responsibility), but MUST identify:
- Estimated capacity per block (bits = depth × width)
- Port count requirement (1 R/W, simultaneous R+W, multi-port)
- Clock domain: same domain (→ SP or TP in Phase 3) vs cross-domain (→ DP in Phase 3)
Memory Access Latency Awareness
Architecture review must verify:
- Per-block latency budget distinguishes compute cycles vs memory access cycles
- Default assumptions: internal memory = 1 cycle, external memory = 500 cycles
- MEM_LATENCY_EXTERNAL is parameterizable (design-specific, technology-dependent)
- Blocks with heavy external memory access have documented latency hiding strategy (prefetch, double buffering, pipelining, or accepted latency penalty with justification)
- bandwidth_report.json estimated cycle counts validated against timing_constraints.json budgets
- Comparison of estimated latency WITH and WITHOUT latency hiding, to quantify strategy benefit
Wonder Log (Required)
Each review round MUST produce a wonder-log entry:
- File:
docs/phase-2-architecture/wonder-log.md - Format: Markdown table with columns: Round, Assumption, Domain, Risk(H/M/L), Resolution
- Purpose: Track unvalidated assumptions across rounds
- Exit gate: All High-risk assumptions must be resolved or explicitly accepted before phase completion
Review Convergence Criteria
Review rounds use dynamic convergence instead of fixed 3 rounds:
| Parameter | Value | Rationale |
|---|---|---|
| min_rounds | 2 | Minimum for meaningful review |
| max_rounds | 5 | Prevent infinite loops |
| finding_delta_threshold | 0.1 | < 10% new findings = stable |
| critical_resolution | ALL | All Critical/High must be resolved |
| wonder_stability | true | No new High-risk assumptions |
Early exit (round 2): When findings converge quickly (simple designs) Extended review (rounds 4-5): For complex designs with emergent issues
This is inspired by Ouroboros's ConvergenceCriteria:
- Stability signal: finding_delta < threshold
- Stagnation detection: same findings repeated across rounds
- Oscillation detection: finding toggling resolved↔reopened
Escalation & Stop Conditions
- max_rounds reached but issues remain → escalate to user via AskUserQuestion
- Domain constraint conflict → document conflict, ask user for priority
- Memory access infeasible (bandwidth exceeds technology) → escalate, propose alternative
- Architecture ↔ ref model fundamental mismatch → escalate, may require ref model rewrite
Architecture Feature Completeness Gate
Phase 2 architecture review MUST verify that ALL spec features flow through to the design:
-
Spec-to-architecture mapping: Every REQ-F-* from P1 must map to an architecture block
- Missing mapping → CRITICAL finding (spec feature not architected)
-
Ref model-to-architecture alignment: When C reference model exists:
- Compare ref model function coverage against spec feature list
- "Enum declared but not called in any function" → COVERAGE_GAP
- Escalate gaps to user: "Spec feature X exists in enum but ref model doesn't implement it"
-
Omission justification: Spec features omitted from architecture require:
- User-approved ADR from Phase 1 (with documented impact)
- ADR-less omissions → Phase 2 gate FAIL
-
Impact quantification (domain-specific):
- Codec: BD-rate impact of omitted modes/tools
- Processor: missing instruction coverage
- Generic: functional coverage percentage vs spec
Open Resolution Protocol
Phase 2 receives docs/phase-1-research/open-requirements.json containing OPEN-1-* research topics.
For each OPEN-1-* item, the architecture team must:
- Conduct architecture research using the item's
candidatesandevaluation_criteria - Select a winner with quantitative justification (gate count, throughput, area, etc.)
- Record the decision in
docs/phase-2-architecture/iron-requirements.json(REQ-A-*) with:resolved_from: the OPEN-1-* ID that was resolvedresolution_rationale: why this candidate was selectedrejected_alternatives: all non-selected candidates with rejection reasonsupstream_compliance: verification that new REQ-A-* does not violate P1 ironviolation_policy:"agent_retry"(authority=2)acceptance_criteria: measurable criteria for the architectural decision
- Verify: ALL OPEN-1-* items must be resolved before Phase 2 exit
Phase 2 may also produce docs/phase-2-architecture/open-requirements.json (OPEN-2-*) for
research topics to be resolved by Phase 3 (e.g., micro-architecture choices).
Compliance Check Procedure
After docs/phase-2-architecture/iron-requirements.json (REQ-A-*) is finalized:
- Invoke compliance-checker agent with:
upstream_iron:["docs/phase-1-research/iron-requirements.json"]target_artifacts: Phase 2 output artifacts
- Gate: compliance-report.json verdict must be PASS
- On VIOLATION: enter authority-differentiated escalation ladder
- Authority 1 (P1 functional): Custom budget: Primary 3 + Fallback 2 + Last-chance 1
- Authority 2 (P2 architecture): Custom budget: Primary 4 + Fallback 3 + Last-chance 1
Upstream Challenge Protocol
If compliance VIOLATION persists after Primary stage and is technically infeasible:
- Orchestrator produces infeasibility assessment with quantitative evidence
- Compliance-checker validates the infeasibility claim
- If validated: produce upstream challenge report with PPA estimates
- Required fields: frequency_mhz, area_gate_count, pixel_rate_mpps, achievable_fps
- Present challenge to user via AskUserQuestion with comparison table
Ambiguity Gate (Phase 2)
Apply ambiguity scoring to all new REQ-A-* decisions:
- "Would re-evaluating this architecture produce the same conclusion?"
- Score ≤ 0.5 required before REQ-A-* becomes iron
- Ambiguous decisions cannot be iron
Final Checklist
- docs/phase-2-architecture/hw-candidate-review.md exists with per-block selection + HW rationale
- P1 algorithm candidates reviewed from HW perspective
- architecture.md exists with all blocks and data paths
- architecture.md includes D2 block diagram
- Every REQ (REQ-F-, REQ-P-, REQ-A-*) mapped to at least one architecture block
- Dynamic convergence review completed (min 2 rounds, or gaps escalated and approved)
- Memory access patterns reviewed for all large blocks
- Architecture ↔ ref model consistency verified
- Ref model code reviewed for quality and bitexact correctness
- reviews/phase-2-architecture/ref-model-review.md saved when ref model changed
- bandwidth_report.json reviewed, external memory bandwidth validated
- Internal vs external memory classified per block
- C model executed and verified — architecture produces correct results
- Tree exploration used for issue resolution in each review round
- Per-round review artifacts saved (r1.md, r2.md, and additional rounds if needed)
- reviews/phase-2-architecture/feature-coverage.md saved
- reviews/phase-2-architecture/architecture-review.md saved (consolidated)
- reviews/phase-2-architecture/architecture-diagram.md saved (D2)
- docs/decisions/ADR-*.md generated (3-5 key architectural decisions)
-
docs/phase-2-architecture/wonder-log.mdexists with per-round assumption tracking - All High-risk assumptions in wonder-log resolved or explicitly accepted
- Per-round review artifacts saved (r1.md through rN.md, minimum 2 rounds)
- All OPEN-1-* items from P1 resolved with rationale and rejected_alternatives
-
docs/phase-2-architecture/iron-requirements.jsonexists with REQ-A-* entries and resolved_from tracking - Compliance check against P1 iron: verdict = PASS
- Ambiguity score ≤ 0.5 for all new REQ-A-* requirements
-
docs/phase-2-architecture/open-requirements.json(OPEN-2-*) created for Phase 3 homework (if any)