← Commit history

Publish 1.0.0

Drew Owens ·48db205fef ·3mo ago ·parent 6d92c02
6 files changed +166
SKILL.mdadded+64
@@ -0,0 +1,64 @@+---+name: molecule-pipeline+description: Top-level router for moving molecules between EDA tools, the Adom wiki, and Hydrogen. ONE entry point for "publish/export this molecule to the wiki" (any EDA) and "go get that molecule and import it to Hydrogen" — detects the direction and source, then routes to the right skill chain (EDA export skill → molecule-publish → adom-molecule-import). Use when the user says "publish my molecule", "ship this board as a molecule", "molecule to the wiki", "get molecule X into my Hydrogen", "import that molecule", "move a molecule from <EDA> to hydrogen", or names a molecule + a destination without naming tools.+user-invocable: true+argument-hint: "<molecule name> [from <kicad|fusion|altium|wiki>] [to <wiki|hydrogen>]"+---++# molecule-pipeline — the coordination layer++One mental model for the whole trip. Humans say what they want; this skill+picks the chain and the downstream skills fill in the constraint knowledge+(preflight gates, OCCT molecule-mode routing, stats verification, packaging).++```+ KiCad ──kicad-export-molecule──┐+ Fusion ─fusion-export-molecule─┼→ molecule-publish → WIKI → adom-molecule-import → HYDROGEN+ Altium ─altium-export-molecule─┘   (convert+package+publish)   (authenticated fetch + register)+```++## Routing table++| User intent | Route |+|---|---|+| "publish/export this molecule" + source is **KiCad** | `kicad-export-molecule` → hands off to `molecule-publish` |+| ... source is **Fusion 360** | `fusion-export-molecule` → `molecule-publish` |+| ... source is **Altium** | `altium-export-molecule` (direct-path redesign in progress — owner Barrett) |+| "I already have the files" (STEP + schematic + board) | straight to `molecule-publish` |+| "get/import molecule X to Hydrogen" | `adom-molecule-import` |+| "publish AND import" (full trip) | EDA skill → `molecule-publish` → `adom-molecule-import`, in order, verifying each stage before the next |+| plain PCB, not yet a molecule (no wings/machine pins) | `kicad-to-molecule` FIRST, then re-enter here |++Detect the source EDA by asking or by the files at hand: `.kicad_pcb`/`.kicad_sch`+→ KiCad; `.fbrd`/`.f3d`/`.brd`+`.sch` → Fusion; `.PcbDoc`/`.SchDoc` → Altium.++## Invariants (hold across every route)++1. **Bare-minimum bundle** reaches the wiki: STEP + schematic + board/layout ++   metadata. No exceptions — a molecule page missing any of these is+   incomplete.+2. **The only GLB is OCCT's.** EDA-native GLB export (KiCad, Fusion,+   service-kicad) is never used for molecules.+3. **STEP is exported on the design machine** so machine-pin/contact/marker+   models bake in.+4. **Every stage verifies before the next starts** — conversion stats gates,+   publish `model_3d_path` check, import wire-attach check. A failed gate+   stops the pipeline; it is never "probably fine".+5. **Import reuses, never regenerates** — `--no-optimize` with the published+   GLB.++## Why the layers are skills (not one mega-tool)++The middle (convert→package→publish) is deterministic and may become a CLI+verb once the step2glb CLI ships molecule flags (adom-step2glb #99). The+edges cannot be: EDA export needs laptop bridges + human-visible judgment,+and import needs owner/collision decisions. This router stays thin either+way — if a CLI absorbs the middle, only `molecule-publish` shrinks.++## Related++- `kicad-export-molecule`, `fusion-export-molecule`, `altium-export-molecule` — EDA front-ends+- `molecule-publish` — convert + package + publish (the middle)+- `adom-molecule-import` — wiki → Hydrogen (ships with adom/adom-molecule)+- `kicad-to-molecule` — molecule-ize a plain PCB first+- `adom-step2glb` — the conversion CLI/service underneath
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-cli pcb export step</span> <span class="fl">--subst-models -o ABC.step</span></div>+      <div class="ok">   ABC.step                           written   3.2 MB</div>+      <div><span class="p">$</span> <span class="cmd">curl POST /convert?molecule=true</span> <span class="fl">step + board</span></div>+      <div class="ok">   anchored  gold pins  footprint_applied  contact_z 5.35mm</div>+      <div><span class="p">$</span> <span class="cmd">route: kicad-export-molecule → molecule-publish → adom-molecule-import</span></div>+      <div class="ok">   full trip verified — wires attach clean</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/molecule-pipeline"+rm -rf "$SKILLS_DIR/molecule-pipeline"+mkdir -p "$SKILLS_DIR/molecule-pipeline"+cp "$PKG_DIR/SKILL.md" "$SKILLS_DIR/molecule-pipeline/SKILL.md"+echo "Installed skill → $SKILLS_DIR/molecule-pipeline/SKILL.md"
package.jsonadded+45
@@ -0,0 +1,45 @@+{+  "slug": "molecule-pipeline",+  "version": "1.0.0",+  "type": "skill",+  "description": "Top-level router for moving molecules between EDA tools, the wiki, and Hydrogen: one entry point that routes publish/import intents to the right skill chain and enforces the pipeline invariants.",+  "tags": [+    "molecule",+    "pipeline",+    "wiki",+    "hydrogen",+    "skill"+  ],+  "dependencies": {+    "adom/molecule-publish": "^1.0.0",+    "adom/adom-molecule": "^1.1.3"+  },+  "scripts": {+    "install": "./install.sh",+    "uninstall": "./uninstall.sh"+  },+  "hero": {+    "headline": "One entry point for molecules",+    "subhead": "EDA to wiki to Hydrogen - routed, gated, verified",+    "screenshot": "docs/shot.png"+  },+  "discovery_triggers": [+    "publish my molecule",+    "ship this board as a molecule",+    "get molecule into hydrogen",+    "move a molecule",+    "molecule pipeline",+    "import that molecule to hydrogen"+  ],+  "discovery_pitch": "Top-level router for moving molecules between EDA tools, the wiki, and Hydrogen: one entry point that routes publish/import intents to the right skill chain and enforces the pipeline invariants.",+  "sample_prompts": [+    {+      "label": "Full trip",+      "prompt": "Publish my KiCad molecule ABC and import it into my Hydrogen account"+    },+    {+      "label": "Import only",+      "prompt": "Go get the piprobe molecule from the wiki and import it to Hydrogen"+    }+  ]+}\ No newline at end of file
uninstall.shadded+3
@@ -0,0 +1,3 @@+#!/bin/bash+rm -rf "$HOME/.claude/skills/molecule-pipeline"+echo "Removed molecule-pipeline skill"