Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 22 additions & 22 deletions GOAL.md
Original file line number Diff line number Diff line change
Expand Up @@ -214,25 +214,25 @@ the team trusts to tell better recommendations from worse ones without anyone re

---

## Implementation status (as of 2026-05-27)

This file is the north-star *spec*. A first cut of the supporting implementation — fixture schema,
five catalog-valid spec fixtures, the scorer (`recommendation_evaluation.py` + the CLI runner), the
Node deterministic-source bridge, the UI verification badge wired into `AnalysisResults.tsx`, and
the `RECOMMENDATION_VERDICT.md` write-up — was built on the local branch `worktree-goal-doc` (worktree
at `.claude/worktrees/goal-doc/`) under an explicit "continue without input" directive. It is **not**
on `main`. Landing that work is a separate, deliberate decision; in particular:

1. Sub-goal 1's renders are owner-gated — the five specs need to be dialed in Live 12 and rendered to
48 kHz / 24-bit FLAC before the corpus is authoritative (see the worktree's
`apps/backend/NEEDS.md` for the build-and-render checklist).
2. The Gemini-vs-deterministic verdict in the worktree was scored against numpy-proxy renders, not
Ableton renders, so its known-settings axes (role recall, value accuracy) are provisional until
the real renders exist.
3. Before any further sub-goal 3 prompt iteration, the worktree branch needs to be rebased on top of
the Tier-1/2 phase2 prompt fixes that already landed on `main` (commits around `5610ca56` /
`ade2ae5a`).

When you're ready to bring the implementation across, start from the worktree's `NEEDS.md` — it is
the living status doc for the campaign and tells you what's built, what's render-gated, and what's
next.
## Implementation status (as of 2026-05-28)

This file is the north-star *spec*. The supporting implementation — fixture schema, five
catalog-valid spec fixtures, the scorer (`apps/backend/recommendation_evaluation.py` + the CLI
runner `apps/backend/scripts/evaluate_recommendations.py`), the Node deterministic-source bridge
(`apps/backend/scripts/emit_deterministic_recs.ts`), the UI verification badge wired into
`apps/ui/src/components/AnalysisResults.tsx`, and the `apps/backend/RECOMMENDATION_VERDICT.md`
write-up — **landed on `main` in PR #114 (commit `348498d`)** and sits on top of the Tier-1/2
phase2 prompt fixes (`5610ca5` / `ade2ae5`). The mechanical four-sub-goal scaffolding is in place;
the campaign's open work is now the owner-gated parts called out in `apps/backend/NEEDS.md`:

1. **Sub-goal 1's renders are still owner-gated** — the five specs need to be dialed in Live 12
and rendered to 48 kHz / 24-bit FLAC before the corpus is authoritative (see
`apps/backend/tests/fixtures/recommendation_tracks/README.md` for the build-and-render checklist).
2. **The Gemini-vs-deterministic verdict** in `RECOMMENDATION_VERDICT.md` was scored against
numpy-proxy renders, not Ableton renders, so its known-settings axes (role recall, value
accuracy) are provisional until the real renders exist.
3. **The UI verification badge degrades to nothing pre-render** — confidence bands are all `NONE`
until a real corpus regenerates `apps/ui/src/data/recommendationVerification.ts`.

`apps/backend/NEEDS.md` is the living status doc for the campaign and tells you what's built,
what's render-gated, and what's next.
17 changes: 7 additions & 10 deletions apps/backend/NEEDS.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,6 @@ not Ableton renders), so their *data* is provisional pending real renders.
melodic_techno key mis-detected AND Gemini returned 0 structured cards there.
4. **Genre confirmation** — house/techno/melodic-techno/dnb/acid were chosen as
owner-plausible; confirm or swap.
5. **Branch convergence** — rebase `chore/phase2-surface-audit-and-claude-md`
(audit + Tier-1/2 prompt fixes) under this branch before further sub-goal-3
prompt iteration.

---

Expand Down Expand Up @@ -84,7 +81,8 @@ citations**, so the chain-of-custody penalty drives its adjusted aggregate to
#2). The rules **are** feature-triggered, so attaching the triggering measurement
as a citation is a concrete, harness-rewarded improvement — a candidate
sub-goal-3 "score-driven change" (frontend edit to `abletonDevices.ts` →
`npm run verify`; coordinate with the branch convergence below).
`npm run verify`). But see the dead-code finding under NEEDS-WIRING before
investing in this path.

This is the first real signal toward the Gemini verdict — likely Gemini earns its
place on citation + full-surface coverage. Confirm on real renders; the synthetic
Expand Down Expand Up @@ -206,14 +204,13 @@ corpus. To deliver the **full** verdict:
*does Gemini raise the score, on which domains, by how much?* Feed a surprising
answer back into `PURPOSE.md` / the `asa-next-work-priorities` memory.

**Branch convergence needed for 3.2:** GOAL.md references
**Phase 2 audit context for 3.2:** GOAL.md references
`audits/phase2-recommendation-surface-2026-05-24.md` for the Tier-2/3 backlog. That
audit — **and the Tier-1/2 phase2 prompt/catalog fixes it drove** (commits
`bd975ab0`, `dc8daa02`) — live on branch `chore/phase2-surface-audit-and-claude-md`,
which is **not** an ancestor of this campaign branch (`worktree-goal-doc`) and not
yet on `main`. Before working sub-goal 3, rebase/merge so the campaign sits on top
of that phase2 work (otherwise you'd iterate against a stale prompt and miss the
audit's backlog). Confirm with `git log --oneline | grep -E 'bd975ab0|dc8daa02'`.
`bd975ab0`, `dc8daa02`, `5610ca5`, `ade2ae5`) — is on `main` and the campaign sits
on top of it (PR #114 / commit `348498d` merged after). Iterate against the
current prompt; the audit backlog is the source for next-round score-driven
changes. Confirm with `git log --oneline | grep -E 'bd975ab|dc8daa0|5610ca5|ade2ae5'`.

---

Expand Down