Analog Pipeline logo

Analog Pipeline

Community
Arcadia-1
analog-pipeline

MANDATORY — MUST load this skill when the user mentions: OTA, ADC, PLL, comparator, bandgap, LDO, amplifier, opamp, or any analog/mixed-signal IC design task. Full analog design pipeline: spec -> architecture -> design -> verify -> deliver. Orchestrates analog-decompose, analog-behavioral, analog-design, analog-review, analog-verify, analog-integrate, and analog-wiki skills.

Overview

PublisherArcadia-1
Repositoryanalog-agents
Skill nameanalog-pipeline
Stars
84
Forks
19
Bundled files
Instructions only
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by Arcadia-1 on GitHub. Read the source before you install it.

Installation

Install the Analog Pipeline AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/Arcadia-1/analog-agents/tree/main/skills/analog-pipeline
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/Arcadia-1/analog-agents.git /tmp/analog-agents
mkdir -p .claude/skills
cp -r /tmp/analog-agents/skills/analog-pipeline .claude/skills/analog-pipeline
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Analog Pipeline in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Analog Pipeline on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Analog Pipeline is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

analog-pipeline

Lightweight orchestrator for the full analog design pipeline. Sequences skill invocations, manages global state, and maintains iteration-log.yml. Does NOT dispatch agents directly, run simulations, or write netlists — only decides "which skill next" and "record what happened."

When to Use

Use this skill when:

  • Starting a new analog circuit block from a top-level spec
  • Designing a complex block that requires sub-block decomposition (ADC, PLL, etc.)
  • Iterating on an existing netlist that is failing specs
  • Preparing a verified netlist for Virtuoso migration

Do NOT use for:

  • Verilog-A behavioral modeling only — use veriloga skill
  • Virtuoso schematic editing without a netlist — use virtuoso skill

All circuit simulation and performance verification in this workflow are owned by the verifier agent, including simulation of existing netlists.

Required Input

Before invoking any agent, confirm these exist:

  1. spec.yml in the working directory (see spec format below) — OR use functional defaults
  2. servers.yml configured (copy from config/servers.example.yml and fill in)

No spec.yml? Use functional defaults

If spec.yml is missing or the user just wants the circuit to "work", do NOT block on creating a detailed spec. Instead, auto-generate a minimal spec.yml with L1 functional defaults for that block type:

Block typeFunctional defaults
Amplifier/OTAAll transistors in saturation (region <= 2), positive DC gain, output CM near target
ComparatorCorrect polarity output, resolves within the evaluation window, and reports input-referred offset when measurable
ADCCorrect digital codes for ramp input
OscillatorOscillation at roughly target frequency
Any blockDC operating point converges, no rail-stuck nodes, current balance at fold/mirror nodes

The auto-generated spec uses the process nominal supply (e.g., 0.9V for 28nm, 1.1V for 65nm, 1.8V for 180nm) and only L1 functional checks. The orchestrator proceeds immediately — no user confirmation needed for functional defaults.

When the user later provides quantitative targets (gain >= 60dB, UGBW >= 500MHz, etc.), upgrade to a full spec.yml with L2/L3 specs.

Spec Sheet Format

yaml
block: <circuit-block-name>
version: 1.0
process: <pdk-name>
supply: <nominal-supply-voltage>

specs:
  <spec_name>: { min: <value>, unit: <unit> }   # lower bound
  <spec_name>: { max: <value>, unit: <unit> }   # upper bound

corners:                        # required for L3 PVT only
  - { name: tt_27c, process: tt, voltage: 1.8, temp: 27 }
  - { name: ss_125c, process: ss, voltage: 1.62, temp: 125 }

Server Configuration

Read servers.yml. Use role_mapping if present. If absent, use default for all roles. Each agent prompt specifies which role it is — resolve the server from role_mapping at dispatch time.

Effort

Read shared-references/effort-contract.md for the full effort contract.

At startup, read the active effort level using the three-layer priority:

  1. Command-line --effort
  2. Project config config/effort.yml (with optional per-block overrides)
  3. Default: standard

Print the active effort level and parameters at startup:

[effort: intensive] corners=5, max_iter=5, reviewers=2, wiki=lesson+strategy

EDA Mode

Read shared-references/eda-modes.md for mode detection.

If servers.yml is not found and eda_mode is not explicitly set to full:

  • Print: [mode: review] No EDA detected — running in review mode
  • Skip /analog-behavioral regardless of effort
  • Skip /analog-integrate
  • Auto-escalate /analog-review effort: if configured effort < intensive, use intensive
  • /analog-verify runs in review-only mode (checklist + hand-calc, no simulation)
  • Final deliverable is a review-verified design package, not a simulation-verified one
  • Skip Virtuoso migration and L3 sign-off

If servers.yml exists:

  • Print: [mode: full] EDA detected — full simulation loop enabled
  • All skills operate normally

The Workflow

top-level spec.yml
        |
        +--------------------------------------+
        v                                      v
  librarian (background, optional)   architect agent (Phase 1)
  +-- select architecture, tradeoff analysis
  +-- decompose into sub-blocks
  +-- derive sub-block specs (budget allocation)
  +-- output: architecture.md + budget.md + blocks/*/spec.yml
        |
        v
  architect agent (Phase 2)
  +-- build Verilog-A behavioral model per sub-block
  +-- system-level behavioral simulation
  +-- verify top-level specs met at behavioral level
        |
        v
  +---------------------------------------------+
  |  For each sub-block:                        |
  |                                             |
  |    designer agent --> verifier agent         |
  |         ^                   |               |
  |         +------ FAIL -------+               |
  |                                             |
  |    (max iterations per effort level)        |
  +---------------------------------------------+
        |
        v
  architect agent (Phase 3)
  +-- replace behavioral models with verified netlists
  +-- integration testbench: top-level specs
  +-- output: integration verifier-report.md
        |
        v
  sign-off gate --> L3 PVT required
        |
        v
  designer agent: migrate to Virtuoso

Orchestration Flow

The pipeline sequences the following skill invocations:

  1. /analog-wiki consult — if wiki/ directory has entries, consult for architecture references and known anti-patterns
  2. /analog-decompose — architect Phase 1: decompose top-level spec into sub-block specs, write testbenches, create verification plans
  3. User gate — confirm architecture with user before proceeding. User may override architecture choice.
  4. /analog-behavioral — architect Phase 2: behavioral validation (effort >= standard; skipped at lite)
  5. For each sub-block: /analog-design -> /analog-review (effort >= standard; skipped at lite) -> /analog-verify, loop until convergence or iteration limit
  6. /analog-integrate — architect Phase 3: replace behavioral models with verified netlists, run integration verification
  7. L3 sign-off — verifier must complete L3 PVT on the integrated design; all specs must pass across all corners
  8. /analog-wiki archive-project — extract cases from iteration-log.yml, prompt architect for narrative.md (effort >= standard)
  9. Reflection narrative — architect writes retrospective: "what emerged that could not have been predicted?" (effort = exhaustive only)
  10. /analog-evolve review (effort >= standard) — extract lessons, propose checklist additions

After each sub-block converges, the pipeline runs a lightweight evolution check:

  • /analog-evolve wiki — extract lessons from this sub-block's iteration trajectory
  • /analog-evolve checklist — check if any verifier rejections suggest new checklist items

These are quick (read iteration-log + verifier-reports, propose entries) and do not block the next sub-block's design.

Agent Dispatch Rules

All agents must be dispatched in the background (run_in_background: true). The orchestrator never blocks on an agent. This enables two modes:

1. Parallel sub-block dispatch

When multiple sub-blocks are independent, dispatch their designer (or verifier) agents simultaneously in a single message with multiple Agent tool calls:

Sub-blocks A, B, C are independent ->
  dispatch designer-A, designer-B, designer-C in one message, all background
  -> as each completes, dispatch its verifier in background
  -> as each verifier completes, architect reviews

2. Non-blocking sequential dispatch

Even for a single sub-block, dispatch in background so the orchestrator can:

  • Prepare the next sub-block's spec while the current one is being designed
  • Discuss with the user while simulation runs
  • Review iteration-log.yml or update documentation

The orchestrator is notified automatically when a background agent completes — do not poll or sleep.

Operational exception: the orchestrator MAY inspect remote Spectre job state at any time for observability and debugging, for example with virtuoso-bridge sim-jobs (and virtuoso-bridge sim-cancel <id> if a stuck job must be terminated). This is only for simulation job monitoring; it must not replace agent-completion notifications or become the primary synchronization mechanism between agents.

Verifier dispatch rule

CRITICAL: When dispatching a verifier, always include this instruction in the prompt: "You are a verifier. Do NOT modify any .scs netlist files. Only run simulations and report results. If the circuit doesn't work, report the failure — do not fix it."

The orchestrator must NOT run simulations directly — always dispatch a verifier agent.

Verification Levels

LevelWhenCornersPurpose
L1 Functionaldefault, every iterationTT 27C nominalDoes the circuit perform its basic function?
L2 Performancewhen L1 passes, before claiming convergenceTT 27C nominalDo all specs meet targets at typical?
L3 Robustnessmandatory before deliveryFull corner matrix from spec.ymlDo specs hold across all PVT corners?

Iteration Log

The orchestrator maintains iteration-log.yml at the project root. Every agent handoff appends an entry. This log is the single source of truth for what happened during the design process.

Format

yaml
project: <top-level block name>
started: <ISO timestamp>
architecture: <selected architecture>

blocks:
  <block-name>:
    iterations:
      - iteration: 1
        timestamp: <ISO>
        designer_changes:
          - param: W1
            from: null       # first iteration
            to: 10u
            reason: "gm/Id = 15 target for noise spec"
        optimizer_used: false
        verification_level: L1
        verification_redo: false
        results:
          - spec: offset
            target: "< 1mV"
            measured: 0.8mV
            margin: +0.2mV
            status: pass
        outcome: fail

    total_iterations: 3
    total_verification_redos: 1
    optimizer_invocations: 1
    converged: true
    final_level: L2

summary:
  total_blocks: 4
  total_iterations: 11
  total_verification_redos: 2
  optimizer_invocations: 1
  escalations_to_user: 0
  lessons_learned:
    - "comparator offset at SS corner was 2.8x worse than TT — budget 3x margin next time"

Who Writes What

FieldWritten by
iterations[].designer_changesorchestrator, from designer's rationale.md diff
iterations[].optimizer_used/configorchestrator, from designer's report
iterations[].verification_redoorchestrator, when verifier rejects pre-simulation
iterations[].resultsorchestrator, from verifier's verifier-report.md
summary.lessons_learnedarchitect, at project completion

The orchestrator appends to iteration-log.yml after every handoff. Agents read it for context but do not modify past entries.

Project Directory Structure

Each project (or sub-block in a multi-block system) follows this layout. Agent outputs are organized by owner — each agent writes only to its own area.

<project>/
+-- spec.yml                          # architect: top-level or sub-block spec
+-- servers.yml                       # config: simulation server connection
+-- iteration-log.yml                 # orchestrator: full iteration history
|
+-- architect/                        # architect output
|   +-- architecture.md               # topology selection, block diagram, interfaces
|   +-- budget.md                     # power/noise/timing budget allocation
|   +-- verification-plan.md          # what to verify and how (per level)
|   +-- behavioral.va                 # Verilog-A behavioral model (if applicable)
|
+-- circuit/                          # designer output
|   +-- <block>.scs                   # transistor-level netlist (primary)
|   +-- <block>_open_cmfb.scs         # variant with exposed CMFB node (debug)
|   +-- rationale.md                  # sizing justification, change log per iteration
|
+-- testbench/                        # architect output (stimulus + analysis setup)
|   +-- tb_<block>_dcop.scs           # DC operating point
|   +-- tb_<block>_ac.scs             # AC frequency response
|   +-- tb_<block>_tran.scs           # transient step response
|   +-- tb_<block>_stb.scs            # stability (loop gain / phase margin)
|
+-- verifier-reports/                 # verifier output
|   +-- L1-functional/
|   |   +-- dc-op-point.md
|   |   +-- <date>_<description>.md
|   +-- L2-performance/
|       +-- <date>_<description>.md
|
+-- librarian/                        # librarian output (optional)
|   +-- survey-report.md
|   +-- library-index.md
|
+-- sim_raw/                          # simulation output (auto, gitignored)
+-- plots/                            # generated plots (auto)

Simple Blocks (Single Sub-block)

For simple blocks that don't need decomposition (e.g., a standalone comparator or bias circuit), the architect phase can be lightweight:

  • Phase 1: document the topology choice and key design equations in architecture.md
  • Phase 2: skip behavioral modeling if the block is simple enough
  • Phase 3: skip integration (there's only one block)

The orchestrator may skip architect entirely for trivial blocks if the user agrees.

Related Skills

SkillPurpose
/analog-decomposeArchitect Phase 1: decompose top-level spec into sub-block specs
/analog-behavioralArchitect Phase 2: behavioral validation with Verilog-A models
/analog-designDesigner: transistor-level netlist for one sub-block
/analog-reviewCross-model circuit audit with divergence analysis
/analog-verifyVerifier: pre-sim review + Spectre simulation
/analog-integrateArchitect Phase 3: integration verification
/analog-wikiKnowledge graph: consult, add, archive design knowledge
/analog-learnInteractive design teaching and learning companion
/analog-exploreDesign space exploration with hand calculations
/analog-auditStatic netlist audit service
/analog-evolveSelf-evolution: extract lessons, evolve checklists and prompts

Frequently asked questions

What does the Analog Pipeline AI skill do?

MANDATORY — MUST load this skill when the user mentions: OTA, ADC, PLL, comparator, bandgap, LDO, amplifier, opamp, or any analog/mixed-signal IC design task. Full analog design pipeline: spec -> architecture -> design -> verify -> deliver. Orchestrates analog-decompose, analog-behavioral, analog-design, analog-review, analog-verify, analog-integrate, and analog-wiki skills.

Why use Analog Pipeline on TypingMind?

Because you install it once and use it with any model. Analog Pipeline is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Analog Pipeline in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Arcadia-1/analog-agents/tree/main/skills/analog-pipeline. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Analog Pipeline?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Analog Pipeline?

As many as you like. As long as a model supports skills, you can use Analog Pipeline with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Analog Pipeline AI skill free?

It is published on GitHub by Arcadia-1. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇