# Rtl P3 Uarch Team

> Phase 3 uArch with parallel team workers: dual-stream per-block uArch + BFM development. Use for 'uarch team', 'Phase 3 team', 'parallel uarch'.

- Skill: `babyworm/rtl-p3-uarch-team` (Agent Skill)
- Install (CLI): `npx skillmds@latest add babyworm/rtl-p3-uarch-team`
- Raw SKILL.md: https://api.skillmd.com/api/skills/babyworm/rtl-p3-uarch-team/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: babyworm (https://skillmd.com/u/babyworm)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/babyworm/rtl-p3-uarch-team

---


<Purpose>
Execute Phase 3 uArch design pipeline using Claude Code native team infrastructure.
The skill (main session) handles team lifecycle: TeamCreate, coordinator + worker
spawning, task monitoring, and cleanup. The coordinator teammate manages task graphs
and directs workers via SendMessage.
</Purpose>

<Use_When>
- Phase 2 architecture is complete and uArch design is needed
- User says "uarch team", "Phase 3 team", "parallel uarch"
- Have multiple modules requiring parallel uarch design
- Need maximum parallelism for dual-stream uArch + BFM development
</Use_When>

<Do_Not_Use_When>
- Phase 2 architecture not complete (run p2-arch-design first)
- Single module only (use rtl-p3-uarch-design for simpler flow)
- Only need BFM (use bfm-develop)
</Do_Not_Use_When>

## Prerequisites

Phase 2 completion required:
- `docs/phase-2-architecture/architecture.md` must exist
- `refc/` directory with C reference model must exist

If prerequisites are missing: WARNING — recommend running `/rtl-agent-team:p2-arch-design`.
Proceed with available artifacts — orchestrator will adapt scope.

## Execution

```python
# Step 1: Team creation (main session = leader)
TeamCreate(team_name="p3-uarch", description="Phase 3 uArch: dual-stream uArch + BFM development")

# Step 2: Write team-config.json for hook consumption
Write(".rat/state/team-config.json", json.dumps({
    "team_mode": true,
    "team_name": "p3-uarch",
    "leader_session_id": "<current_session_id>",
    "coordinator_name": "coordinator",
    "worker_count": 3,
    "phase": "p3",
    "created_at": "<ISO_TIMESTAMP>"
}))

# Step 3: Prepare directories
Bash("mkdir -p docs/phase-3-uarch reviews/phase-3-uarch .rat/scratch/phase-3")

# Step 4: Create initial task graph (T1 and T2 are independent — no dependencies)
TaskCreate(subject="T1: uArch Design",
           description="Per-block micro-architecture design from architecture spec")
TaskCreate(subject="T2: BFM Development",
           description="Bus Functional Model development from architecture spec")

# Step 5: Spawn coordinator as teammate (orchestrator)
Agent(team_name="p3-uarch", subagent_type="rtl-agent-team:p3-uarch-team-orchestrator",
      name="coordinator", description="P3 uArch coordination",
      prompt="You are the Phase 3 uArch coordinator in team 'p3-uarch'. "
             "Manage the task graph using TaskCreate/TaskList/TaskUpdate. "
             "Direct workers via SendMessage. "
             "Initial tasks T1 (uarch) and T2 (BFM) already created by leader. "
             "Create dynamic tasks (T3 BFM gate, T4-T10 review rounds), then perform Step 3.7/3.8 "
             "iron artifact production (REQ-U-* from resolved OPEN-2-*) + open resolution + "
             "zero-opens + ambiguity gate, then Step 3.9 compliance. "
             "Signal leader ONLY after the Phase 3 Gate (Step 4) passes — including the "
             "Step 3.9 compliance check, ADR generation, and the mandatory Codex cross-review. "
             "User input: $ARGUMENTS")

# Step 6: Spawn workers as teammates (3 general-purpose)
Agent(team_name="p3-uarch", subagent_type="rtl-agent-team:uarch-designer",
      name="uarch-worker", description="P3 uArch design and review",
      prompt="You are a Phase 3 uArch worker in team 'p3-uarch'. "
             "Coordinator: 'coordinator' (send results via SendMessage). "
             "Phase artifacts: docs/phase-3-uarch/, reviews/phase-3-uarch/. "
             "Specialty: per-block uArch design, timing review, algorithm consistency. "
             "For specialist work, spawn: Task(subagent_type='rtl-agent-team:<specialist>', prompt='...'). "
             "Examples: timing-advisor for timing review, vcodec-architecture-expert for domain. "
             "Follow the Team Worker Protocol section of your agent definition. "
             "Scratch dir: .rat/scratch/phase-3/ (for write-restricted outputs).")
Agent(team_name="p3-uarch", subagent_type="rtl-agent-team:bfm-dev",
      name="bfm-worker", description="P3 BFM development",
      prompt="You are a Phase 3 BFM worker in team 'p3-uarch'. "
             "Coordinator: 'coordinator' (send results via SendMessage). "
             "Phase artifacts: bfm/, docs/phase-3-uarch/. "
             "Specialty: BFM development, BFM correctness review, I/O logging. "
             "For specialist work, spawn: Task(subagent_type='rtl-agent-team:ref-model-dev', prompt='...'). "
             "Follow the Team Worker Protocol section of your agent definition.")
Agent(team_name="p3-uarch", subagent_type="rtl-agent-team:rtl-architect",
      name="review-worker", description="P3 review lead",
      prompt="You are a Phase 3 review worker in team 'p3-uarch'. "
             "Coordinator: 'coordinator' (send results via SendMessage). "
             "Phase artifacts: reviews/phase-3-uarch/. "
             "Specialty: feature preservation review, aggregation, final consolidation. "
             "For specialist work, spawn: Task(subagent_type='rtl-agent-team:<specialist>', prompt='...'). "
             "Follow the Team Worker Protocol section of your agent definition. "
             "Scratch dir: .rat/scratch/phase-3/ (for write-restricted outputs).")

# Step 7: Leader wait — teardown is gated on the COORDINATOR SIGNAL, not on TaskList.
# "All tasks completed" is necessary but NOT sufficient: the coordinator's post-gate
# work (compliance check, ADR generation, phase summary, Codex cross-review) runs via
# direct Task() calls that never appear in the shared task graph.
while True:
    if coordinator_signaled_phase_complete:
        # SendMessage from 'coordinator' — sent only after the phase gate
        # AND all post-gate mandatory steps pass (see coordinator prompt above)
        break
    tasks = TaskList()
    if all(t.status == "completed" for t in tasks):
        # Task graph drained but no coordinator signal yet → the coordinator is
        # still running gate/post-gate steps. KEEP WAITING — do NOT TeamDelete.
        pass
    # Continue polling

# Step 8: Cleanup
TeamDelete()
Bash("rm -f .rat/state/team-config.json")
Bash("rm -rf .rat/scratch/phase-3/")
```

## Workflow Notes

- Open Resolution: resolve all OPEN-2-* items from Phase 2 `open-requirements.json`
- Zero-Opens Invariant: no unresolved OPEN-* items may pass to Phase 4
- Exit gate includes `open-resolved`, `zero-remaining-opens`, and `ambiguity-pass`
- Exit gate includes `compliance-pass` (compliance-checker vs P1+P2 iron, orchestrator Step 3.9)

