Goal
Roll up the structural lessons from the FastLED LPC845-BRK bring-up incident (FastLED/FastLED#3300 / #3325 / #3339) into a single point of triage for the fbuild side. The Python-side fixes already landed (FastLED#3339, merged). This meta tracks the fbuild-side counterparts identified during a four-axis audit of fbuild's issue tracker — each gap got its own focused issue; this list ties them together so the maintainer has one URL.
How this list was built
Four sub-agents fanned out in parallel against four independent axes of fbuild coverage. Each agent compared lessons from the FastLED incident against fbuild's open + closed issues. Concrete gaps with no existing tracker became individual issues; gaps already covered by an existing tracker were noted and not duplicated.
The four axes:
- Reset + serial wire-protocol — DTR/RTS, reset method dispatch, boot-mode detection.
- Deploy + flash path — pyocd/CMSIS-DAP integration, artifact verification, handoff timing.
- Agent-facing tooling + hook policy — forbidden-tool guards, agent docs parity.
- Bring-up + autoresearch parity — end-to-end orchestrator, schema validation, hardware CI.
Sub-issues
Axis 1 — Reset + serial wire-protocol (4 issues)
Parent: #684 (closed) — hard_reset_blocking DTR=low fix. The structural follow-ups:
Axis 2 — Deploy + flash path (4 issues)
Axis 3 — Agent-facing tooling + hook policy (2 issues)
Axis 4 — Bring-up + autoresearch parity (3 issues)
Dependency hints (for ordering work)
Suggested rough order: #686 → #689 → #695 → #687 → #691 → #694 → rest.
Out of scope (deliberately not filed)
Three candidate gaps surfaced during the audit but were ruled out:
- Application-specific bring-up details — 3-way pass-criteria tuple, per-board echo sentinel value, watchdog feed pattern. These belong on the FastLED side.
- Cross-repo agent rule sync — governance-level meta-question, not actionable as a single fbuild ticket.
- Skill / slash-command registration — Claude Code plugin infrastructure concern, not fbuild's responsibility.
Refs
- FastLED/FastLED#3300 — the LPC845-BRK bring-up "silence" incident (root).
- FastLED/FastLED#3325 — bisection plan (false trail invalidated by #3339).
- FastLED/FastLED#3336 — agent doc/hook rule banning ad-hoc PowerShell SerialPort probes; resolved by FastLED#3339.
- FastLED/FastLED#3339 — the FastLED-side fix that merged (Python DTR/RTS + port detection +
serial_probe.py helper + hook ban).
- FastLED/fbuild#586 — existing LPC845-BRK on-hand burn-down meta. This issue intersects but is broader (covers all board families).
- FastLED/fbuild#684 (closed) — the
hard_reset_blocking DTR=low fix that opened the audit.
Filed during the audit fan-out on FastLED/FastLED#3339.
Goal
Roll up the structural lessons from the FastLED LPC845-BRK bring-up incident (FastLED/FastLED#3300 / #3325 / #3339) into a single point of triage for the fbuild side. The Python-side fixes already landed (FastLED#3339, merged). This meta tracks the fbuild-side counterparts identified during a four-axis audit of fbuild's issue tracker — each gap got its own focused issue; this list ties them together so the maintainer has one URL.
How this list was built
Four sub-agents fanned out in parallel against four independent axes of fbuild coverage. Each agent compared lessons from the FastLED incident against fbuild's open + closed issues. Concrete gaps with no existing tracker became individual issues; gaps already covered by an existing tracker were noted and not duplicated.
The four axes:
Sub-issues
Axis 1 — Reset + serial wire-protocol (4 issues)
Parent: #684 (closed) —
hard_reset_blockingDTR=low fix. The structural follow-ups:fbuild-serial:BoardFamilyenum + polymorphicResetMethoddispatch registry.fbuild-serial::boot_mode: generalize to per-familyBootModeClassifierregistry (ESP-only today).fbuild-serial: vendor aserial-probeCLI + sharedBOARD_FINGERPRINTStable (companion to closed fbuild-serial: hard_reset_blocking leaves DTR=low — fatal for CDC-ACM bridges (LPC11U35, FTDI CDC). Mirror the FastLED #3300/#3339 lessons. #684, parallel to FastLED#3339).Axis 2 — Deploy + flash path (4 issues)
fbuild-deploy: pre-deploy artifact size validation against board flash region.fbuild: standardize flash→monitor handoff timing as per-familyHandoffTimingonBoardFamily.fbuild-deploy: enumerate supported deploy protocols per board; fail fast on unsupported.fbuild-serial: USB-level bootloader re-enumeration detection (complement to fbuild-serial::boot_mode: generalize to per-family BootModeClassifier registry (ESP-only today) #688 serial-line classifier).Axis 3 — Agent-facing tooling + hook policy (2 issues)
ci/hooks: ban directpyocd/esptool/dfu-util/picotoolinvocation (mirror FastLEDcheck_forbidden_commands).agents/docs/: agent-facing documentation directory + top-levelCLAUDE.mdrouting table (mirror FastLED).Axis 4 — Bring-up + autoresearch parity (3 issues)
fbuild-cli: promote bring-up orchestrator to first-classfbuild bringup <board>command.fbuild-rpc-validate: reusable host-side JSON-RPC schema fetch + validate component.Dependency hints (for ordering work)
HandoffTiminglives onBoardFamily) and partially for #693 (TouchBaud1200consumes the bootloader watcher).agents/docs/) blocks nothing technically but accelerates every other issue's review cycle.Suggested rough order: #686 → #689 → #695 → #687 → #691 → #694 → rest.
Out of scope (deliberately not filed)
Three candidate gaps surfaced during the audit but were ruled out:
Refs
serial_probe.pyhelper + hook ban).hard_reset_blockingDTR=low fix that opened the audit.Filed during the audit fan-out on FastLED/FastLED#3339.