From vibe-ic
Canonical reference for the Analog A1-A9 design track: spec extraction, topology, netlist, corner sweep, layout, per-block PV (DRC/LVS), post-layout resim, hardmacro, and HIL. Use when walking the A1-A9 plan step-by-step without the unified slash command.
How this skill is triggered — by the user, by Claude, or both
Slash command
/vibe-ic:analog-flow-orchestrateThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **Doctrine (v0.1.50):** 把修法寫進工具,而非寫進 prompt.
Doctrine (v0.1.50): 把修法寫進工具,而非寫進 prompt. Programs first (runner + 9 A-step check gates); AI is the backstop.
# 1. Drive the deterministic runner first:
python3 plugins/vibe-ic/programs/analog_one_shot_runner.py <project>
# 2. After each A-step, the corresponding check gate runs deterministically:
python3 plugins/vibe-ic/programs/analog_a1_spec_extract_check.py
python3 plugins/vibe-ic/programs/analog_a2_topology_select_check.py
python3 plugins/vibe-ic/programs/analog_a3_netlist_gen_check.py
python3 plugins/vibe-ic/programs/analog_a4_corner_sweep_check.py
python3 plugins/vibe-ic/programs/analog_a5_layout_check.py
python3 plugins/vibe-ic/programs/analog_a6_block_pv_check.py
python3 plugins/vibe-ic/programs/analog_a7_post_layout_resim_check.py
python3 plugins/vibe-ic/programs/analog_a8_hardmacro_gen_check.py
python3 plugins/vibe-ic/programs/analog_a9_hw_verify_check.py
# 3. Ordering gate — A8 must finish before digital Step 15 floorplan
# (Hard rules #1 + #2), enforced deterministically:
python3 plugins/vibe-ic/programs/analog_a8_before_floorplan_check.py <project>
The skill is the CANONICAL REFERENCE for A1-A9 semantics. **The runner
Merged into
/vibe-ic-analogslash command (v1.6.13+). This skill remains as the canonical reference for the A1-A9 step semantics, the per-step skill mapping, and the gate-predicate definitions. The slash command implements the orchestration workflow described here so the agent does not have to invoke skill + runner separately. Use this skill directly when you want the A1-A9 plan without first running the deterministic runner; otherwise prefer/vibe-ic-analog.
The analog counterpart to flow-orchestrate. Manages the complete analog design pipeline from spec extraction through hardware-verified convergence to hardmacro packaging. Runs in parallel with the digital track (Steps 1-13), converging before digital Step 15 (Floorplan; was Step 14 pre-Wave-91).
generated_docs/L1_DATASHEET.json + generated_docs/L5_ADI_SPEC.json + PDKhardmacro/<block>/ deliverables (GDS + LEF + Liberty + behavioral Verilog) per analog blockanalog_flow_compliance_check exits 0| # | Step | Skill | Gate |
|---|---|---|---|
| A1 | Analog Spec Extraction | analog-spec-extract | analog/<block>/spec.json per detected block |
| A2 | Topology + Initial Sizing | analog-topology-select + analog-sizing | topology.md + sizing.md per block |
| A3 | Netlist Generation | analog-netlist-gen | analog_netlist_pdk_check exits 0 |
| A4 | Corner Sweep + Optimization | analog-sizing-loop | analog_corner_sweep_check exits 0 |
| A5 | Analog Layout | analog-layout + eda_analog_layout | layout.mag per block |
| A6 | Per-Block Physical Verification (DRC + LVS) | drc-fix + lvs-triage | analog_a6_block_pv_check exits 0 |
| A7 | Post-Layout Extraction + Resim | analog-extraction-resim | analog_pre_vs_post_layout_check exits 0 |
| A8 | Hardmacro Generation | analog-hardmacro-gen | analog_hardmacro_check exits 0 |
| A9 | HW Verification + Mixed-Signal | analog-hw-tuning-loop + mixed-signal-cosim | analog_hw_spice_correlation_check + mixed_signal_cosim_check exit 0 |
v1.6.14 Wave 90 — step renumber. Pre-release decimal/sub-step ids were integerised; the analog track is now A1-A9 (A1-A5 unchanged, per-block PV is A6, Resim/Hardmacro/Cosim are A7/A8/A9).
programs/analog_a8_before_floorplan_check.py — FAILs when a floorplan
DEF exists but any analog block is still missing its A8 hardmacro LEF.analog_a8_before_floorplan_check.py ordering gate (every step ≤ A8
must precede floorplan; A9 is the sole exception).programs/analog_flow_compliance_check.py (every step is
PASS or carries a waiver in analog/waivers.json).analog_flow_compliance_check.py.plan → execute_step_AN → gate_AN → observe → (retry ≤3 or abort) → next step
↓
final: analog_flow_compliance_check
generated_docs/L5_ADI_SPEC.json or scan RTL for analog
modules. Enforced by programs/analog_block_coverage_check.py +
programs/analog_content_detected_must_emit_l5_check.py (deterministic
JSON-read / module-scan; FAILs if docs document analog content but L5 omits it).programs/analog_one_shot_runner.py (source of truth, not this prose).analog/status.json (program-emittable) +
analog/flow_summary.md (LLM narrative).programs/analog_flow_compliance_check.py must exit 0,
and the ordering gate programs/analog_a8_before_floorplan_check.py
must not FAIL.When an A-step gate FAILs, the deterministic runner reports which gate failed; deciding what to change before the retry (resize a device, pick a different topology, relax a corner, loosen a layout constraint) and whether to abort vs continue after ≤3 retries is genuine engineering judgment that cannot be reduced to a fixed program. The same applies to the STOP-and-ask branch under "Inputs to gather" — clarifying ambiguous / missing PDK, block list, HW availability or target specs from a human is interaction, not a check.
Digital Track Analog Track
Step 1: spec-to-rtl A1: spec extraction ← both start from L1-L27
Step 2: lint A2: topology + sizing
Step 3: CDC/RDC A3: netlist gen
Step 4: simulation A4: corner sweep
Step 5: formal A5: analog layout
Step 6: FPGA proto A6: per-block DRC/LVS
Step 7-13: synth+DFT A7: extraction + resim
A8: hardmacro gen
↓ A8 DONE
Step 14: pre-PnR Yosys gate (Wave 91 sentinel)
Step 15: Floorplan ◄─── hardmacro LEF/GDS placed
Step 16-28: PnR+STA A9: HW verification (parallel)
Step 29-36: signoff A9: mixed-signal cosim
If any input is missing, STOP and ask.
analog/status.json{
"blocks": ["ldo_1v8", "por", "rc_osc"],
"steps": {
"ldo_1v8": {
"A1": {"status": "PASS", "started": "...", "ended": "..."},
"A2": {"status": "PASS"},
"A3": {"status": "PASS"},
"A4": {"status": "PASS", "iterations": 3},
"A5": {"status": "PASS"},
"A6": {"status": "PASS", "drc_clean": true, "lvs_match": true},
"A7": {"status": "PASS", "degradation_pct": 8.2},
"A8": {"status": "PASS"},
"A9": {"status": "PASS", "hw_verified": true, "cosim_pass": true}
}
},
"all_pass": true
}
analog/flow_summary.md — human-readable summaryanalog_flow_compliance_check exit 0At end of analog flow, run:
python3 plugins/vibe-ic/programs/analog_flow_compliance_check.py \
<project_dir> --json <project_dir>/reports/analog_compliance.json
Exit 0 → declare PASS. Exit 1 → list failures and recommend next action.
After producing your output, save it to a file and run:
python3 plugins/vibe-ic/_shared/skill_compliance_check.py \
--requirements plugins/vibe-ic/skills/analog-flow-orchestrate/compliance.yaml \
<your_output_file>
Exit 0 = PASS, exit 1 = FAIL with specific missing elements listed.
Your task is not complete until the audit returns PASS.
npx claudepluginhub vibeic/vibe-ic --plugin vibe-icGuides completion of development work by verifying tests, detecting environment, and presenting structured options for merge, PR, or cleanup.
Enforces test-driven development: write failing test first, then minimal code to pass. Use when implementing features or bugfixes.
Guides creation and editing of skills using test-driven development with pressure scenarios and subagents to verify agent compliance.