Skip to main content

copperhead

Change or verify a KiCad project through copperhead's gated pipeline. Use whenever a task touches .kicad_sch or .kicad_pcb files, a schematic, a PCB layout, a netlist, ERC/DRC, a BOM, or hardware design docs — instead of editing those files directly.

소스 정보

저장소
copperheadhq/copperhead
최근 소스 활동
2026년 9월 6일 20:06
감지된 SKILL.md 언어
영어
스타
299
포크
72

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
copperhead
description
Change or verify a KiCad project through copperhead's gated pipeline. Use whenever a task touches .kicad_sch or .kicad_pcb files, a schematic, a PCB layout, a netlist, ERC/DRC, a BOM, or hardware design docs — instead of editing those files directly.
# Working on a KiCad project with copperhead This repository is a real hardware project. Its `.kicad_sch` and `.kicad_pcb` files are s-expression files where a small textual mistake produces a board that cannot be manufactured, and the damage is not visible in a diff. **Do not edit `.kicad_sch`, `.kicad_pcb`, or their generated docs with your own file tools.** Use the `copperhead_*` MCP tools. They run a pipeline that you cannot reproduce by editing files yourself: - the change is gated on a validated OpenSpec proposal before any edit tool exists - every mutation is verified with real ERC, and DRC when the board changed - a failure repairs, and then rolls the working tree back to its pre-run state - the design docs, the constraint registry, and the decision log are kept in step Editing the files directly bypasses all of it. A change that "looks right" in a diff is exactly the change this pipeline exists to catch. ## Which tool | You want to | Call | | --- | --- | | Change anything about the design | `copperhead_do` with the request in plain language | | Know whether the project is currently sound | `copperhead_check` | | Find docs/constraints that disagree with the board | `copperhead_sync` | | Fix that drift too | `copperhead_sync` with `resolve: true` | | Set up docs memory on a project that has none | `copperhead_init` (also installs a `pre-commit` hook running `copperhead check` — say so before calling it) | | Work out why a tool said something was unavailable | `copperhead_doctor` | ## How to read the results `copperhead_do` returns a status, and each one means something specific: - **`committed`** — the change passed verification and was committed. Report the commit and the files touched. - **`rolled_back`** — verification could not be satisfied, so the tree was restored. **This is not an error and not your failure to handle.** Nothing is broken. Read the transcript path in the result, tell the user what could not be satisfied, and ask before trying a different approach. Do not retry the same request verbatim, and do not attempt the edit by hand instead. - **`refused`** — the pipeline declined the request. Relay the reason; it is usually a budget or a constraint the request violates, and the user needs to decide. - **`dry_run`** — the change was proposed and nothing was written. `copperhead_check` returning violations is information, not a failure to work around. Surface it. If any tool returns an `unavailable` error, call `copperhead_doctor` before concluding anything: it reports whether node, kicad-cli, git, openspec and the model credential are actually present, and it works even when they are not. ## Before a large or risky change Run `copperhead_do` with `dry_run: true` first and show the user what it proposes. ## What this skill does not cover These tools operate on one repository, configured when the server started. They cannot edit arbitrary paths, run raw KiCad commands, or drive part of the loop — by design. If a task needs something outside the pipeline, say so rather than reaching for your own file tools on the KiCad files. **The MCP surface is experimental.** Tool names, inputs, and result shapes may change between copperhead releases.
GitHub에서 보기