← Commit history

Publish 1.0.0

Drew Owens ·ee76283e66 ·3mo ago ·parent 8ea5993
6 files changed +145
SKILL.mdadded+65
@@ -0,0 +1,65 @@+---+name: altium-export-molecule+description: Ship an Altium Designer board to the Adom wiki as a molecule — route the .PcbDoc through KiCad 10's native Altium importer on the user's laptop, make it molecule-ready (markers + machine-pin 3D models), then follow kicad-export-molecule for the OCCT convert, wiki publish, and Hydrogen import. Use when the user says "altium molecule", "publish my altium board", "altium to hydrogen", "altium to the wiki", "PcbDoc molecule", "export molecule from altium". For KiCad sources see kicad-export-molecule; for Fusion see fusion-export-molecule.+user-invocable: true+argument-hint: "<.PcbDoc path> [--owner <hydrogen owner>]"+---++# altium-export-molecule — Altium board → KiCad → wiki molecule++> **Status: adapter.** There is no Altium bridge and the molecule board parser+> (molecule-metadata) reads `.kicad_pcb`/`.brd`, not `.PcbDoc`. The supported+> route is: **convert to KiCad once, then run the KiCad flow.** This skill+> covers the conversion + molecule-readiness fixups; everything after that is+> [`kicad-export-molecule`](https://wiki.adom.inc/adom/kicad-export-molecule).++## Stage 0 — Preflight++- `adom-desktop ping` works and the **KiCad bridge** is installed (the+  conversion runs in KiCad on the laptop; Altium itself is never driven).+- **KiCad 10** on the laptop — its Altium importer is what we use.+- Have the `.PcbDoc` (and `.SchDoc` if a symbol is wanted) on the laptop.++## Stage 1 — Import the Altium board into KiCad (laptop)++KiCad's native importer (GUI, driven via the bridge): **File → Import →+Non-KiCad Board File → Altium** on the `.PcbDoc`, then save as a KiCad+project. `kicad-cli` has no headless project-import, so this step goes+through the KiCad bridge (`kicad_open_*` + window verbs) or the user does it+by hand once.++Verify after import: board outline, copper, and drills survived; footprints+are sane. Altium importer output is good but not perfect — eyeball it in the+board editor before proceeding.++## Stage 2 — Make it molecule-ready (usually required)++Altium boards arrive WITHOUT the Adom molecule furniture. Check and fix:++- **4 corner machine pins + MP1–MP4 marker models** — if absent, this is a+  board-design task: use `kicad-to-molecule` (adds wings + corner machine+  pins) or place them manually from the Adom KiCad library.+- **Machine-pin/contact 3D models resolve locally** — they must load in+  KiCad's 3D viewer to be baked into the STEP.+- Pad drills for machine pins must match the standard buckets so the+  footprint parser classifies them (medium/large).++## Stage 3 — Hand off to the KiCad flow++From here the board IS a KiCad molecule. Follow+**`kicad-export-molecule`** end to end: STEP export on the laptop → OCCT+molecule-mode convert (anchored GLB + footprint + symbol) → `adom-wiki pkg+publish` → `adom-molecule-import` into Hydrogen.++## Footprint-library note (different job)++If the ask is just Altium **footprints** (`.PcbLib`/`.IntLib`) rather than a+board, that's `altium-pcblib` territory (native Rust parser → KiCad-shaped+pad JSON, used by chipsmith/concur) — not this skill.++## Related++- `kicad-export-molecule` — the flow this adapter feeds into+- `fusion-export-molecule` — Fusion 360 sibling+- `kicad-to-molecule` — add wings + machine pins to a plain board+- `adom-molecule-import` — the Hydrogen import half
docs/hero-src.htmladded+45
@@ -0,0 +1,45 @@+<!doctype html>+<html><head><meta charset="utf-8"><style>+  * { margin:0; padding:0; box-sizing:border-box; }+  body { width:1600px; height:1000px; background:+    radial-gradient(1200px 700px at 75% -10%, #14324a 0%, #0b1420 55%, #070d15 100%);+    font-family: 'Segoe UI', system-ui, sans-serif; overflow:hidden; position:relative; }+  .glow { position:absolute; width:900px; height:900px; border-radius:50%;+    background: radial-gradient(circle, rgba(45,212,191,.10) 0%, rgba(59,130,246,.06) 45%, transparent 70%);+    right:-180px; top:-260px; }+  .win { position:absolute; left:170px; top:210px; width:1260px; border-radius:14px;+    background:#0d1826; border:1px solid #1e3348;+    box-shadow: 0 40px 90px rgba(0,0,0,.65), 0 0 0 1px rgba(45,212,191,.05); }+  .bar { height:46px; display:flex; align-items:center; padding:0 18px; gap:8px;+    border-bottom:1px solid #16293c; }+  .dot { width:12px; height:12px; border-radius:50%; background:#22384e; }+  .title { margin-left:12px; color:#5b7astro; color:#5b7a99; font-size:14px; letter-spacing:.4px; }+  .body { padding:26px 34px 34px; font-family:'Cascadia Mono','Consolas',monospace; font-size:17px; line-height:1.85; }+  .p  { color:#7dd3c8; }+  .cmd{ color:#e6edf5; }+  .ok { color:#4ade80; }+  .fl { color:#8aa4c0; }+  .accent { position:absolute; left:0; right:0; top:0; height:3px; border-radius:14px 14px 0 0;+    background:linear-gradient(90deg,#2dd4bf,#3b82f6,#8b5cf6); }+</style></head><body>+  <div class="glow"></div>+  <div class="win">+    <div class="accent"></div>+    <div class="bar"><div class="dot"></div><div class="dot"></div><div class="dot"></div>+      <div class="title">adom-desktop &nbsp;·&nbsp; Fusion 360 Electronics &nbsp;·&nbsp; piprobe.fbrd</div></div>+    <div class="body">+      <div><span class="p">$</span> <span class="cmd">KiCad 10 File > Import > Altium</span> <span class="fl">sensor-hub.PcbDoc</span></div>+      <div class="ok">   sensor-hub.kicad_pcb saved — outline, copper, drills verified</div>+      <div><span class="p">$</span> <span class="cmd">kicad-to-molecule</span> <span class="fl">add wings + MP1-MP4 machine pins</span></div>+      <div class="ok">   molecule-ready — markers placed, 3D models resolve</div>+      <div><span class="p">$</span> <span class="cmd">kicad-export-molecule flow</span> <span class="fl">export + convert + publish</span></div>+      <div class="ok">   anchored GLB + footprint + symbol published</div>+      <div><span class="p">$</span> <span class="cmd">adom-wiki repo push adom/abc</span> <span class="fl">--files ...</span></div>+      <div class="ok">   source on the Files tab</div>+      <div><span class="p">$</span> <span class="cmd">adom-molecule create</span> <span class="fl">--glb ABC.glb --no-optimize</span></div>+      <div class="ok">   registered under caleb — no re-optimization</div>+      <div><span class="p">$</span> <span class="cmd">adom-molecule list</span></div>+      <div class="ok">   hydrogen.adom.inc/caleb/molecules/ABC — wires attach clean</div>+    </div>+  </div>+</body></html>
docs/shot.pngadded
⋯ 1 unchanged line ⋯
install.shadded+9
@@ -0,0 +1,9 @@+#!/bin/bash+set -e+PKG_DIR="$(cd "$(dirname "$0")" && pwd)"+SKILLS_DIR="$HOME/.claude/skills"+mkdir -p "$SKILLS_DIR/altium-export-molecule"+rm -rf "$SKILLS_DIR/altium-export-molecule"+mkdir -p "$SKILLS_DIR/altium-export-molecule"+cp "$PKG_DIR/SKILL.md" "$SKILLS_DIR/altium-export-molecule/SKILL.md"+echo "Installed skill → $SKILLS_DIR/altium-export-molecule/SKILL.md"
package.jsonadded+23
@@ -0,0 +1,23 @@+{+  "slug": "altium-export-molecule",+  "version": "1.0.0",+  "type": "skill",+  "description": "Ship an Altium Designer board to the Adom wiki as a molecule: KiCad 10's native Altium importer converts the .PcbDoc, molecule furniture (markers + machine pins) gets added, then the kicad-export-molecule flow handles OCCT conversion, wiki publish, and Hydrogen import.",+  "tags": ["molecule", "altium", "export", "kicad", "skill"],+  "dependencies": { "adom/kicad-export-molecule": "^1.0.0" },+  "scripts": { "install": "./install.sh", "uninstall": "./uninstall.sh" },+  "hero": {+    "headline": "Altium board to wiki molecule",+    "subhead": "PcbDoc through KiCad's importer, then the molecule pipeline end to end",+    "screenshot": "docs/shot.png"+  },+  "discovery_triggers": [+    "altium molecule", "publish my altium board", "altium to hydrogen",+    "altium to the wiki", "PcbDoc molecule", "export molecule from altium"+  ],+  "discovery_pitch": "Take an Altium .PcbDoc to a published wiki molecule and a Hydrogen account: KiCad-10 Altium import, molecule-readiness fixups, then the kicad-export-molecule pipeline.",+  "sample_prompts": [+    { "label": "Publish an Altium board", "prompt": "Publish my Altium board sensor-hub.PcbDoc as a molecule" },+    { "label": "Altium to Hydrogen", "prompt": "Get this PcbDoc into my Hydrogen account as a molecule" }+  ]+}
uninstall.shadded+3
@@ -0,0 +1,3 @@+#!/bin/bash+rm -rf "$HOME/.claude/skills/altium-export-molecule"+echo "Removed altium-export-molecule skill"