[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-2248":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":13,"stars7d":15,"stars30d":16,"stars90d":14,"forks30d":14,"starsTrendScore":17,"compositeScore":18,"rankGlobal":9,"rankLanguage":9,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":9,"pushedAt":9,"updatedAt":41,"readmeContent":42,"aiSummary":43,"trendingCount":14,"starSnapshotCount":14,"syncStatus":44,"lastSyncTime":45,"discoverSource":46},2248,"wrench-board","Junkz3\u002Fwrench-board","Junkz3","A senior microsoldering technician, available to every repair shop from the seasoned pro to the apprentice. Powered by Claude Opus 4.8",null,"Python",168,35,1,0,4,36,3,4.67,"Other",false,"main",true,[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"agentic-ai","agents","ai-safety","anthropic","boardview","claude","claude-managed-agents","e-waste","electronics-repair","fastapi","hackathon","kicad","microsoldering","opus-4-7","pcb","python","right-to-repair","2026-06-12 02:00:39","\u003Cp align=\"center\">\n  \u003Cimg src=\"docs\u002Fassets\u002Fwrench-mascot.svg\" alt=\"Wrench Board mascot\" width=\"160\" \u002F>\n\u003C\u002Fp>\n\n# Wrench Board\n\n> Agent-native diagnostic workbench for board-level electronics repair,\n> powered by Claude Opus 4.7. **Right-to-repair, built in the open, by the\n> people who actually do the repairs.**\n\n🥈 **2nd place** at Anthropic's *Build with Opus 4.7* hackathon — April 2026.\n\n**📺 Demo video (3 min):** https:\u002F\u002Fyoutu.be\u002FOZ2D_p82z6w\n\n![Wrench Board — boardview + diagnostic agent on an MNT Reform motherboard](docs\u002Fassets\u002Fscreenshot-workbench.png)\n\n## What it is\n\nTens of millions of tonnes of electronics end up as e-waste every year. A\nlarge share of that is recoverable at the board level — a dead capacitor, a\nblown diode, a bad PMIC — but only a microsoldering technician can find and\nfix it. We are the **last mile** of repair before the landfill, and there\nare not many of us.\n\nWrench Board is a senior microsoldering teammate built for that last mile.\nFor the seasoned tech, it's a second pair of eyes that never gets tired.\nFor the apprentice, it's a senior teammate who explains the boot sequence\nthe tenth time, in their language, with their tools, without judgment. It ingests a schematic PDF and a\nboardview, builds a per-device knowledge pack in two minutes, and runs an\nOpus 4.7 diagnostic agent that pilots the board visually — highlights\npins, traces nets, simulates failures — while the technician keeps the\niron in their hand.\n\nThe bet is **precision over magic**. The agent is not allowed to invent a\nreference designator. Every refdes it utters originates from a tool lookup,\nand a server-side sanitizer wraps any token it cannot verify *before* the\ntext reaches the screen. The deterministic engines underneath produce\nverifiable causal chains, not vibes.\n\n## Why it exists\n\nI've been a microsoldering technician for three years. For most of that\ntime, I sent screenshots to Claude one at a time, manually, and pasted the\nanswer into a paper notebook. I built the workbench I needed.\n\n## How it works\n\nFour orthogonal workflows feed a single on-disk corpus per device under\n`memory\u002F{slug}\u002F`:\n\n- **Knowledge Factory** — four Claude personas (Scout, Registry, Writers,\n  Auditor) build a verified repair pack from a device label in ~2 minutes.\n  The three Writers (Cartographe \u002F Clinicien \u002F Lexicographe) run in\n  parallel and share a cache-warmed prefix to amortize the long shared\n  input across writers.\n- **Schematic Ingestion** — Opus 4.7 vision compiles a PDF schematic, page\n  by page, into a queryable `ElectricalGraph`: nets classified, boot\n  sequence inferred, quality report attached.\n- **Diagnostic Agent** — an Anthropic Managed Agent per device, with a\n  four-store layered memory (`global-patterns`, `global-playbooks`,\n  `device-{slug}`, `repair-{repair_id}`), pilots the boardview through 12\n  `bv_*` tools and queries the pack, schematic graph, measurements,\n  validations and technician profile through ~24 more — 36 custom tools\n  declared in `api\u002Fagent\u002Fmanifest.py`. The agent never fabricates a\n  refdes : tool discipline plus a post-hoc sanitizer.\n- **microsolder-evolve** — four overnight search loops, one\n  per surface : the deterministic simulator + hypothesize engines\n  (`sim`), the schematic compiler (`pipeline`), the schematic vision\n  pass (`pipeline-vision`), and the diagnostic agent itself (`agent`).\n  Each loop proposes patches against an oracle benchmark and either\n  keeps them (`evolve:`-prefixed commit) or reverts. The loops have\n  been running and shipping improvements while I work on other things.\n\n![Wrench Board — repair dashboard with knowledge artefacts and diagnostic threads](docs\u002Fassets\u002Fscreenshot-dashboard.png)\n\n### Files + Vision — the agent can ask to see\n\nA microsoldering diagnosis lives or dies on what the probe is touching\n*right now*, and a chat box can't carry that. The technician plugs a USB\nmicroscope or webcam into the workbench and the agent requests a frame on\ndemand through the `cam_capture` tool, reads the image, and feeds it back\ninto its reasoning. The technician can also drop a macro shot or a close-up\nof a suspect chip into the chat at any time. Captures and uploads are\npersisted under the repair so a session can be replayed end-to-end —\nwords, decisions, and the actual photographs the agent looked at.\n\nThis closes the loop the screenshot-pasting workflow never could: the\nagent stops *guessing* what the board looks like and starts *seeing* it,\non the technician's cue, on the technician's optics.\n\n## Under the hood\n\n- **Backend** — Python 3.11+ \u002F FastAPI \u002F native WebSocket \u002F Pydantic v2 \u002F\n  pdfplumber. No build step, no bundler.\n- **Frontend** — vanilla HTML + CSS + JS, OKLCH design tokens, D3 v7 for\n  the boardview and knowledge graph. Inline SVG icons. No framework.\n- **Models** — Claude Opus 4.7 (heavy pipeline writers, schematic vision,\n  `deep` diagnostic tier), Claude Sonnet 4.6 (Scout, Registry, Mapper,\n  Lexicographe, `normal` tier), Claude Haiku 4.5 (intent classifier, phase\n  narrator, coverage gate, `fast` tier).\n- **Memory** — per-device Anthropic Managed Agents memory stores. The\n  agent self-orients across sessions by reading its own scribe notebook\n  (`state.md`, `decisions\u002F`, `measurements\u002F`, `open_questions.md`)\n  instead of relying on an LLM-generated resume.\n- **Boardview** — 13 clean-room parsers in `api\u002Fboard\u002Fparser\u002F`, dispatched\n  by extension: KiCad `.kicad_pcb`, OpenBoardView Test_Link `.brd`,\n  KiCad-boardview BRD2, plus `.asc` `.bdv` `.bv` `.bvr` `.cad` `.cst`\n  `.f2b` `.fz` `.gr` `.pcb` `.tvw`. Adding a format = one new file.\n- **Tests** — 1 589 fast tests (~30 s) plus a `@slow` accuracy-gate suite,\n  including 10 deterministic invariants on the simulator + hypothesize\n  engines and frozen-oracle gates.\n- **Tooling** — `make doctor` runs 8 local health checks (env, packs,\n  parsers, camera) for atelier deployment. `make eval-all` orchestrates\n  the four eval surfaces (simulator, pipeline, vision, agent) with\n  cross-skill regression detection. `make tools-inventory` writes a\n  local agent-manifest index for offline review.\n- **Anti-hallucination** — defense in depth, two layers. (1) Tools return\n  `{found: false, closest_matches: [...]}` for unknown refdes; the system\n  prompt instructs the agent to pick from suggestions or ask the user.\n  (2) `api\u002Fagent\u002Fsanitize.py` scans every outbound text for refdes-shaped\n  tokens (`\\b[A-Z]{1,3}\\d{1,4}\\b`) and wraps any unverified match as\n  `⟨?U999⟩` before it reaches the technician.\n\nTwo pure-sync deterministic engines (`simulator.py`, `hypothesize.py`) sit\nat the core of the diagnostic stack. The simulator advances phase-by-phase\nover a boot sequence and emits a timeline of dead rails, dead components,\nand the cause of blocking per phase. The hypothesizer takes a partial\nobservation and enumerates 1- and 2-fault refdes-kill candidates that\nexplain it, ranked by F1 against the observation. Neither calls an LLM at\nruntime.\n\nThe diagnostic agent has two interchangeable runtimes — **managed** via\nAnthropic Managed Agents, **direct** via the Messages API. Managed is the\ndefault and the production path; direct serves as a fallback when the MA\nbeta is unavailable and as an on-disk inspection harness during\ndevelopment. The WebSocket protocol is identical so the frontend doesn't\nknow which one is running.\n\n## Roadmap — Community Evolution Loop\n\nWrench Board runs locally. Each technician's instance can improve its\ndeterministic simulator against their own field cases. When the evolve\nloop discovers a rule that holds up, it surfaces a candidate pull request\nto the upstream repo. Right-to-repair, built in the open, by the people\nwho actually do the repairs.\n\n## Quickstart\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FJunkz3\u002Fwrench-board\ncd wrench-board\nmake install          # create .venv and install deps (incl. [dev])\ncp .env.example .env  # then fill in ANTHROPIC_API_KEY\nmake run              # uvicorn --reload on http:\u002F\u002Flocalhost:8000\n```\n\nOn the first `make run` in Managed Agents mode (default), the start\nscript prints a one-screen warning describing what it is about to create\non your Anthropic account (1 environment + 4 tier-scoped agents — idle,\nno cost until used) and waits 5 seconds for Ctrl+C before bootstrapping.\nThe IDs land in `managed_ids.json` (gitignored) and subsequent runs go\nstraight to uvicorn.\n\nFallback to direct mode if the Managed Agents beta is unavailable on\nyour account — no bootstrap, plain `messages.create` tool loop :\n\n```bash\nmake demo-fallback\n# or: DIAGNOSTIC_MODE=direct make run\n```\n\n## License & credits\n\nSource-available under a proprietary license — see [`LICENSE`](LICENSE).\nFree for personal evaluation, study, and local use. **Independent\nelectronics repair professionals may also use it as an internal tool\nwhen servicing their own clients** (commercial remuneration OK), with\nno separate licence needed. Redistribution, hosted SaaS deployment,\nsublicensing, and any use for training competing AI \u002F ML models still\nrequire written permission (contact: alexis@repairmind.co.uk).\nDependencies are MIT \u002F Apache 2.0 \u002F BSD only. The MNT Reform motherboard\nused as the canonical test target is CERN-OHL-S-2.0. Built solo at\nRepair Valley, an independent electronics repair workshop.\n\n## Contributing\n\nWrench Board is open to contributors who care about right-to-repair.\nField reports, new boardview parsers, simulator rules — open an issue or\na PR.\n","Wrench Board 是一个专为电路板级电子维修设计的诊断工作台，基于 Claude Opus 4.7 技术。其核心功能包括通过上传原理图PDF和板视图自动生成设备知识包，并利用AI助手进行故障诊断、引脚高亮、网络追踪及故障模拟等，从而辅助微焊技术员高效定位并修复问题。该平台强调精准性而非猜测，确保所有提供的信息都经过验证。适用于电子产品维修店，无论是经验丰富的专业人士还是初学者都能从中受益，提高工作效率与准确性，减少电子垃圾产生。",2,"2026-06-11 02:49:05","CREATED_QUERY"]