Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/vibeic/vibe-icnpx agentmods add skills/vibeic/vibe-ic/synth-doctorWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/vibeic/vibe-ic/synth-doctor)<a href="https://agentmods.dev/skills/vibeic/vibe-ic/synth-doctor"><img src="https://agentmods.dev/badge/skills/vibeic/vibe-ic/synth-doctor/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/vibeic/vibe-ic/synth-doctor"><img src="https://agentmods.dev/badge/skills/vibeic/vibe-ic/synth-doctor.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00093 | $0.03801 |
| Opus 5.5 | $0.00037 | $0.01520 |
| Sonnet 5.5 | $0.00019 | $0.00760 |
| Haiku 4.5 | $0.00009 | $0.00380 |
Grade A, and why
synth-doctor scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 253 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Synth Doctor — EDA Error Classifier + Auto-Fix
Automatically diagnose EDA tool failures and provide actionable fix suggestions.
Tools
synth_doctor.py — Yosys Synthesis Errors
Run the program — do not re-derive the classification by hand. The 10-pattern
log→fix table below is implemented deterministically in
programs/synth_doctor.py; invoke it on any Yosys synth log and it emits
{matched_pattern, canonical_fix, confidence} per finding (chip-AGNOSTIC,
identical every run):
python3 programs/synth_doctor.py synth.log # human diagnosis
python3 programs/synth_doctor.py synth.log --fix # include the canonical fix recipe
python3 programs/synth_doctor.py synth.log --json # machine output {matched_pattern, canonical_fix, confidence}
Importable too: from synth_doctor import diagnose; diagnose(open('synth.log').read()).
Verdicts: CLEAN (no known signature — note the deny-list + length-floor mean a
clean log NEVER false-alerts), DIAGNOSED (≥1 known pattern, fix + confidence
attached), MANUAL_REVIEW (only an unrecognised error → UNKNOWN, no auto-fix),
MISSING (log file absent — graceful, exit 2, no crash). confidence is the
per-pattern auto-fix success rate from the 135-IC campaign (PRACTICAL_NOTES.md).
AI judgment still required when the program returns DIAGNOSED with low
confidence or MANUAL_REVIEW: the canonical fix is a recipe, not a blind patch.
For MULTI_DRIVER, the correct merge priority is an FSM-context judgement; for
WIDTH_MISMATCH, choose zero- vs sign-extend per signal signedness; for
SYNTAX_ERROR/UNKNOWN, read the raw error and decide. Apply the program's
classification first, then reason about the specific fix.
10 known patterns from 135-IC campaign (implemented in programs/synth_doctor.py):
| Pattern | Frequency | Auto-fixable |
|---|---|---|
| UNPACKED_ARRAY | Common | Yes — flatten to packed |
| MULTI_DRIVER | Common | Yes — merge to single always_ff |
| RETURN_IN_FUNC | Occasional | Yes — use func name assignment |
| PAST_IN_COMB | Occasional | Yes — shadow register |
| AUTOMATIC_IN_FF | Occasional | Yes — module-level wire |
| LATCH_INFERENCE | Common | Yes — add default assignments |
| SYNTAX_ERROR | Varies | Manual review needed |
| MODULE_NOT_FOUND | Rare | Yes — add source file |
| WIDTH_MISMATCH | Common | Yes — explicit sizing |
| UNKNOWN | Rare | Manual review needed |
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 253 lines · 93 tokens per session scan A 91f9d0cda60a
synth-doctor is a skill published in the GitHub repository vibeic/vibe-ic (28 stars, last pushed today), licensed Apache-2.0. It adds 93 tokens to every session and 3,801 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
vivado-cdc-audit
A Vivado workflow for reviewing clock-domain crossing, or CDC, reports in FPGA designs. CDC checks whether signals moving between unrelated clock rates are synchronized and transferred safely.
vivado-timing-closure
A Vivado workflow for finding and fixing setup, hold, and pulse-width timing problems in FPGA designs. Timing closure means meeting the required signal timing without changing the design's intended behavior.
vivado-waveform-debug
A Vivado waveform-debugging workflow for examining VCD simulation traces, which record signal values over time. It can query selected signals and time ranges without opening a full Vivado session.
analog-netlist-crawl
Crawl and analyze post-layout parasitic netlists without running SPICE. Answers "what's the effective resistance from node A to node B across this massive R mesh?", "inside the VREFN mesh, which device pins are electrically farthest apart?", "which nets have the worst coupling?", "where does settling bottleneck?" — by…
analog-design
Transistor-level circuit design for one analog sub-block. Produces Spectre netlist with hand-calculation rationale. Use when designing a specific circuit block after architecture is defined.
analog-verify
Pre-simulation review and Spectre simulation verification for analog circuits. Reviews circuit netlist and testbench, runs simulation, produces margin report. Use after analog-design completes a netlist.