Skip to content

docs(incorporations): forking plans for 5 audio-MIR discoveries (ASA + Harmonia) - #50

Merged
slittycode merged 2 commits into
mainfrom
claude/create-forking-plans-WyU2J
May 16, 2026
Merged

docs(incorporations): forking plans for 5 audio-MIR discoveries (ASA + Harmonia)#50
slittycode merged 2 commits into
mainfrom
claude/create-forking-plans-WyU2J

Conversation

@slittycode

Copy link
Copy Markdown
Owner

Summary

Adds incorporations/forking-plans-2026-05-14.md — five concrete forking / incorporation plans for upstreams from the 2026-05-13 / 2026-05-14 audio-MIR discovery passes. Three ASA-facing, two Harmonia-facing. Plan-only — no implementation.

Mirrors the seven-part track structure of docs/external-repo-review-2026-05-13.md (Source / What to lift / Why / Approach / Cross-check oracle / Definition of done / Risks), and extends the prior review's Track-1–3 numbering with Plans 4–8.

# Upstream Serves License Recommended approach
4 JuzzyDee/audio-analyzer-rs ASA + Harmonia MIT Cross-check oracle first; fork-to-WASM gated on a real in-browser need
5 jhartquist/resonators ASA Dual MIT / Apache-2.0 Incorporate as a dependency (npm install resonators) — the near-drop-in
6 linuxmatters/jivetalking ASA GPL-3.0-only Clean-room port of the measure-then-derive-parameters pattern into Phase 2; no source-reading
7 ptnghia-j/ChordMiniApp Harmonia MIT Reference-only UX + architecture review; explicit adopt / adapt / reject per surface
8 spyroskantarelis/chordonomicon Harmonia Apache-2.0 scripts + CC-BY-NC-4.0 dataset HF dataset eval harness; NonCommercial license gates product inclusion

Composition & cross-references

  • Plans 4 ↔ 5 — both Rust → WASM stories on paper. Plan 5 is the cheap end state (published WASM dependency, zero toolchain); Plan 4b (fork-to-WASM) is gated on a need that doesn't exist today. Don't pre-fork.
  • Plan 6 ↔ existing review's Track 1 — jivetalking's measurement inputs come from ASA's existing Phase 1 (which the EBU R128 spike confirmed correct on stereo at 44.1 / 48 kHz), not from a new measurement layer. Plan 6 does not duplicate Track 1.
  • Plan 7 ↔ Plan 8 — Plan 7 sets the chord-presentation UX bar; Plan 8 provides labeled ground truth to evaluate against. Compose.

License discipline

All five upstream licenses confirmed against the source. Two carry real risk and make license confirmation item 1 of their DoD:

  • jivetalking (GPL-3.0-only): full LICENSE file read; the plan explicitly forbids reading source for the port and routes everything through the README's prose specification.
  • chordonomicon (HF dataset, CC-BY-NC-4.0): the dataset card itself was auth-gated to direct anonymous fetch; the license is reported via the HF dataset listing and confirming on the card is DoD item 1. The Apache-2.0 scripts repo is separately confirmed.

Environment note

The task brief referenced a separate routine-discoveries repository with discoveries/*.md source-of-truth files and an asa-2026-05-13.md template. Those files are not present in this checkout (which is scoped to ableton-sonic-analyzer). I checked with the user before proceeding; the plan was written using the task description as the spec, direct upstream research for licenses / APIs / schemas, and docs/external-repo-review-2026-05-13.md as house-style reference. See the "Environment note" paragraph in the document header.

Sequencing recommendation

  1. Plan 5 (~1–2d) — lowest friction; new browser-side surface
  2. Plan 4a (~1–2d) — cross-check oracle; serves PURPOSE.md Quality Invariant 1
  3. Plan 6 (~3–4d) — Phase 2 measurement-cited parameter heuristics
  4. Plan 7 (~2d, Harmonia-side) — UX review doc
  5. Plan 8 (~3–4d, Harmonia-side, gated on commercial-posture decision) — eval harness

Test plan

This is a plan-only document — no code, no tests to run. Reviewer checks:

  • Each plan's Source line cites a real upstream URL with confirmed license
  • Each plan's Definition of done is concrete and testable (checkbox list with specific outcomes)
  • The Adopt / Adapt / Reject tables (Plans 4 / 5 / 6 / 7 / 8) have a one-line rationale per row
  • Plans 4 and 5 cross-reference each other on the Rust → WASM question
  • Plan 6 composes with the prior review's Track 1 rather than duplicating measurement
  • License risk is called out in the License Map and reflected as DoD item 1 for jivetalking and chordonomicon
  • Dedup is intact against the three already-covered tracks (openmeters / Partiels / forever-jukebox)

https://claude.ai/code/session_017Pt2pELLM2qNQxoZrWQt4M


Generated by Claude Code

…+ Harmonia)

Five concrete incorporation plans for upstreams surfaced in the
2026-05-13 / 2026-05-14 audio-MIR discovery passes, mirroring the
seven-part track structure of docs/external-repo-review-2026-05-13.md
(Source / What to lift / Why / Approach / Cross-check oracle /
Definition of done / Risks):

- Plan 4 — audio-analyzer-rs (MIT, Rust binary MCP server): cross-check
  oracle first; fork-to-WASM gated on a concrete in-browser need that
  ASA doesn't have today.
- Plan 5 — resonators (dual MIT/Apache-2.0, published npm WASM):
  incorporate as a dependency for a new browser-side spectral preview;
  the near-drop-in.
- Plan 6 — jivetalking (GPL-3.0-only, Go): clean-room port of the
  measure-then-derive-parameters pattern into Phase 2 recommendation
  logic; license blocks any code path.
- Plan 7 — ChordMiniApp (MIT, Next.js + Flask + Firebase):
  reference-only UX + architecture review for Harmonia, with explicit
  adopt / adapt / reject per surface.
- Plan 8 — chordonomicon (Apache-2.0 scripts, CC-BY-NC-4.0 dataset):
  HF dataset eval harness for Harmonia; NonCommercial license gates
  product inclusion.

Plans 4 and 5 cross-reference each other (both Rust → WASM stories on
paper, with different ROI profiles). Plan 6 composes with the prior
review's Track 1 finding (ASA's Essentia loudness is correct on stereo)
by sourcing measurement inputs from existing Phase 1 rather than a new
measurement layer. Plan 7 ↔ Plan 8 compose: 7 sets the chord-presentation
UX bar, 8 provides labeled ground truth.

License discipline: all five licenses confirmed against the upstream
(MIT, dual MIT/Apache, GPL-3.0-only, MIT, Apache-2.0 scripts +
CC-BY-NC-4.0 data). Two plans carry license risk — jivetalking (GPL,
no source-reading for the port) and chordonomicon (NC, no commercial
inclusion); both make license confirmation item 1 of their DoD.

The task brief referenced a separate routine-discoveries repository with
discoveries/*.md source-of-truth files and an asa-2026-05-13.md
template. Those files are not present in this checkout (scoped to
ableton-sonic-analyzer). The plan was written from the task description
+ direct upstream research + the prior external-repo-review for house
style; see the Environment note in the document header.

https://claude.ai/code/session_017Pt2pELLM2qNQxoZrWQt4M

@slittycode slittycode left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: COMMENT

Summary

Docs-only PR — one new file (incorporations/forking-plans-2026-05-14.md, 942 lines). No code, no schema changes, no test impact. The license discipline is careful (GPL-3.0 and CC-BY-NC-4.0 risks are correctly flagged and made DoD item 1), the adopt/adapt/reject tables are well-reasoned, and the sequencing recommendation maps accurately to effort and risk. No phase boundary violations possible in a plan-only doc.

Findings

Should fix

Plan 6 DoD is missing the frontend types contract. The DoD correctly says to update apps/backend/JSON_SCHEMA.md and EXPECTED_TOP_LEVEL_KEYS in test_analyze.py when adding noise-floor estimate and spectral flux to Phase 1. It does not mention updating apps/ui/src/types/measurement.ts. CLAUDE.md tripwire #3 is explicit: renaming or adding a field on only one side of the Python/TS boundary is undetectable by either type system — the field just disappears from the UI. Whoever picks up Plan 6 will hit this if the DoD checklist is followed as written. Add apps/ui/src/types/measurement.ts to that checklist.

Worth considering

Plan 5 DoD doesn't enforce its own stated guardrails. The Approach section says "behind a feature flag" and the Risks section says "The preview is labeled as approximate." Neither appears as a DoD checkbox. Given the risk that users will interpret a resonators-derived browser preview as a Phase 1 measurement (cited in the Risks table, severity: Medium), these two items belong in the DoD as testable conditions, not prose asides.

Plan 5's "after PR #45, Phase 3 already audits heuristic WAV/MIDI" is either wrong or ambiguous. Per BACKLOG.md and CLAUDE.md, patchSmith.ts (Phase 3) is still an open backlog item, not shipped. If PR #45 lands Phase 3, that reference will be fine post-merge; if not, the sentence is describing a future state as a present fact. Either clarify that this is conditional on #45 merging, or remove the parenthetical.

Test results

N/A — plan-only document.

Phase boundary check

Clean. No code. The plans, particularly Plan 5 (browser-side resonators preview vs. server-side Phase 1 measurements), explicitly call out the boundary and the oracle pattern for validating it. The "Phase 1 stays the cited number throughout the UI" principle is correctly restated.


Generated by Claude Code

Three fixes from the review on #50:

- Plan 6 DoD: add apps/ui/src/types/measurement.ts to the field-addition
  checklist alongside JSON_SCHEMA.md and EXPECTED_TOP_LEVEL_KEYS. CLAUDE.md
  tripwire #3 — Python emits camelCase JSON directly, so a Python-side
  addition without the TS counterpart disappears silently from the UI.
- Plan 5 DoD: add a testable item enforcing the "preview is approximate,
  not a Phase 1 measurement" guardrail that previously lived only in the
  Risks prose.
- Plan 5 prose: disambiguate Phase 3 audition (shipped, #45) from Phase 3
  synth-patch generation (open, patchSmith.ts) and fix the broken link
  that pointed at README.md instead of the PR / design doc.

https://claude.ai/code/session_017Pt2pELLM2qNQxoZrWQt4M
@slittycode
slittycode merged commit a1c697b into main May 16, 2026
2 checks passed
@slittycode
slittycode deleted the claude/create-forking-plans-WyU2J branch May 16, 2026 07:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants