Skip to content

[META] FastLED #3339 LPC bring-up lessons — fbuild structural follow-up across 4 axes #699

Closed

Description

@zackees

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:

  1. Reset + serial wire-protocol — DTR/RTS, reset method dispatch, boot-mode detection.
  2. Deploy + flash path — pyocd/CMSIS-DAP integration, artifact verification, handoff timing.
  3. Agent-facing tooling + hook policy — forbidden-tool guards, agent docs parity.
  4. 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)

  • #694 — ci/hooks: ban direct pyocd/esptool/dfu-util/picotool invocation (mirror FastLED check_forbidden_commands).
  • #695 — agents/docs/: agent-facing documentation directory + top-level CLAUDE.md routing table (mirror FastLED).

Axis 4 — Bring-up + autoresearch parity (3 issues)

  • #696 — ci: nightly hardware-attached bring-up CI runner (multi-family).
  • #697 — fbuild-cli: promote bring-up orchestrator to first-class fbuild bringup <board> command.
  • #698 — fbuild-rpc-validate: reusable host-side JSON-RPC schema fetch + validate component.

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.

Activity

  1. zackees commented on Jun 20, 2026

    @zackees
    MemberAuthor

    All 13 listed sub-issues are now merged and closed:

    Axis Issue PR
    1. Reset + serial #684 (closed pre-meta) #685
    1. Reset + serial #686 — board fingerprints + serial probe CLI #700
    1. Reset + serial #687 — ResetMethod + dispatch_reset + manager wiring #703
    1. Reset + serial #688 — BootModeClassifier + ArmHardFault matcher #706
    1. Reset + serial #689 — usb-cdc-control-line-matrix.md #701
    2. Deploy + flash #690 — pre-deploy artifact size validation #707
    2. Deploy + flash #691 — HandoffTiming per-family #704
    2. Deploy + flash #692 — deploy method validation + fail-fast #708
    2. Deploy + flash #693 — USB bootloader re-enumeration watcher #709
    3. Agent tooling #694 — forbidden_commands.py hook #705
    3. Agent tooling #695 — agents/docs/ + CLAUDE.md routing #702
    4. Bring-up + autoresearch #696 — nightly hardware-CI scaffold #710
    4. Bring-up + autoresearch #697 — fbuild bringup orchestrator scaffold #711
    4. Bring-up + autoresearch #698 — rpc_validate JSON-RPC schema validator #714

    Net structural delta on the fbuild side, mirroring the FastLED-side FastLED/FastLED#3339:

    No additional issues surfaced during the audit beyond the 13 originally fanned out. Each follow-up not landed in this round is named in its parent issue's "Out of scope" section.

    Closing the meta.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions