<< All versions
Skill v1.0.0
currentLLM-judged scan90/100babyworm/rtl-agent-team/rtl-p4s-bugfix-policy
──Details
PublishedOctober 23, 2026 at 11:22 AM
Content Hashsha256:faf12d51484e4428...
Git SHAf6d869fe4511
──Files
Files (1 file, 3.3 KB)
SKILL.md3.3 KBactive
SKILL.md · 82 lines · 3.3 KB
version: "1.0.0" name: rtl-p4s-bugfix-policy description: "Internal reference: rtl p4s bugfix policy (agent-loaded; do not invoke)." user-invocable: false
RTL Bug Fix Policy
Mandatory 4-Step Sequence (per module)
- Analyze → identify root cause and affected modules
- Fix + Lint → modify RTL, run
verilator --lint-only -Wall(max 3 lint rounds) - TB → create or update testbench (at least 1 test per modified module)
- Functional Verification → run simulation, ALL tests must PASS
Each step can only proceed after the previous step is complete. Lint is a necessary condition, NOT sufficient — simulation is required.
Parallel UNIT_FIX Decision Tree
| Failure Pattern | Handling | Parallelism | |
|---|---|---|---|
| Different modules, UNIT_FIX | Parallel rtl-p4s-bugfix, one per module | run_in_background: true | |
| Same module, multiple failures | Sequential within single task | No | |
| INTEGRATION_FIX (cross-module) | Always sequential | No | |
| Mixed UNIT_FIX + INTEGRATION_FIX | INTEGRATION_FIX first, then UNIT_FIX in parallel | Partial |
Verification-done marker created ONLY after ALL parallel fixes pass functional verification.
Phase 5→4 Feedback Mode
| Fix Type | After Fix | Re-verify | |
|---|---|---|---|
| UNIT_FIX (SVA fail) | lint → unit TB → unit sim | Only affected Phase 5 sub-phase | |
| UNIT_FIX (sim fail) | lint → unit TB → unit sim | Only affected Phase 5 sub-phase | |
| INTEGRATION_FIX | lint → unit TB + integration TB → sim | 5b + 5c |
In feedback mode: lesson-learned recording is mandatory (not just recommended).
Escalation & Stop Conditions
- Lint fails 3 times → escalate to rtl-architect for design review
- Cannot write TB (no ref model) → write minimal self-checking TB, report ref model requirement to user
- Simulation fails after 2 fix iterations → escalate to waveform-analyzer + rtl-bug-repro skill
- Simulator not installed → eda-runner provides installation instructions
TB Signal Naming Convention
dut.sys_clk,dut.sys_rst_n(clock/reset)dut.i_*,dut.o_*(input/output ports)- TB check:
ls sim/*/test_*.py sim/*/tb_*.sv 2>/dev/null
Advanced Rules
Integration bugs (multi-module):
- Both per-module unit TBs AND top-level integration TB needed
- Unit TBs: verify individual module I/O
- Integration TB: verify data flow between modules
When regression suite available:
- Recommended to re-run full regression after fix
- Use rtl-p5s-func-verify skill for multi-seed verification
Compound mode bugs (e.g., MODE_RECON):
- Test individual modes first, then compound mode tests, then mode transition scenarios
Final Checklist
- [ ] Bug root cause identified
- [ ] RTL fix complete
- [ ] Lint passed (verilator --lint-only -Wall, 0 errors)
- [ ] TB created or updated (at least 1 test per modified module)
- [ ] Bug reproduction scenario included as a test case
- [ ] Functional simulation executed (cocotb or verilator sim)
- [ ] All tests PASS
- [ ] Verification-done marker created (.rat/state/rtl-verify-done)
- [ ] TB signal naming convention followed
- [ ] Multi-module failures classified (UNIT_FIX vs INTEGRATION_FIX)
- [ ] Independent UNIT_FIX modules fixed in parallel (not sequentially)
- [ ] All parallel fixes passed functional verification before verify-done marker