---
path: /studio/isis/music-generation
surface: studio
domain: isis
auth:
  signed-in + studio entitlement (AAA-gated — `music-generation` is in
  `AAA_ONLY_STUDIO_ROUTES`)
source: apps/oshun/web/src/app/studio/isis/music-generation/page.tsx
status: walked
last_walked:
  '2026-05-29 automated runtime walk (Playwright headless) — render, /v1 data
  (2xx), console/page-errors, expected content, screenshot verified; live
  screen-reader, touch, offline, and telemetry-delivery checks pending a manual
  AT pass. Evidence: WALKTHROUGH/results/runtime-sweep-2026-05-29.md; body
  re-derived 2026-06-03 from current source (lane-console architecture)'
---

# Isis Music Generation

## Purpose

Admin lane console for §24.8 contemplative-tone music guardrails. It lists the
per-workflow-class limits on duration, tempo, intensity, and crescendo (plus
disallowed-content screening for copyright/melody/voice), then pre-flights a
candidate request against those guardrails and returns an admitted/blocked
verdict with per-field issues.

## Entry points

- Sibling quick-action card from `/studio/isis/text-to-audio`
- Studio index (`/studio`)
- Direct URL / bookmark

## Layout regions

`page.tsx` mounts `ShellLayout active="studio"` and three panels (no breadcrumb
panel).

- **Workspace panel** (`data-isis-music-generation-workspace`):
  - `<h1>` "Isis Music Generation Workspace" (`WorkspaceHeading`)
  - Summary paragraph (`data-isis-music-generation-summary`)
  - Per-class guardrails table (`<h2>`) with providers
    (`data-music-providers`) and `data-music-guardrail={class}` rows
    (`data-music-guardrail-max-intensity`)
  - The "Pre-flight a request" form (`data-music-validate-form`)
  - Verdict block (`data-music-verdict`) with `data-music-issue={field}` items,
    or `data-music-validate-error`
- **Route map panel** (`data-isis-music-generation-route-map`): `<h2>` "Route
  Map" enumerating `STUDIO_ISIS_MUSIC_GENERATION_ROUTE_MAP`
- **Quick-actions panel**: `quickAction` links to `/studio/isis/text-to-audio`
  and "Back to Studio workspace index" → `/studio`

## States

- [ ] **Loading** — `data-music-loading` "Loading music guardrails…"
- [ ] **Unauthorized** — `data-music-unauthorized` (admin-scope fail-closed on
      401/403)
- [ ] **Error** — `data-music-error` on non-OK / malformed response
- [ ] **Ready (form)** — guardrail table + pre-flight form render
- [ ] **Result** — `data-music-verdict` (`admitted` / `blocked`) or
      `data-music-validate-error`

## Interactions

### Pre-flight a request (`data-music-validate-form`)

- [ ] **Workflow class** — `data-music-field-class` select (options from
      `workflowClasses`)
- [ ] **Duration (s)** — `data-music-field-duration` number input
- [ ] **Tempo (BPM)** — `data-music-field-tempo` number input
- [ ] **Mime type** — `data-music-field-mime` text input
- [ ] **Intensity curve (comma-separated)** — `data-music-field-intensity` text
      input
- [ ] **Prompt** — `data-music-field-prompt` text input
- [ ] **Validate request** — `data-music-validate-submit` submit; POSTs to
      `/v1/admin/isis/music-generation/validate`

### Route map

- [ ] **Route-map articles** — non-interactive path + purpose entries

### Quick-actions

- [ ] **Open Isis Text to Audio workspace** → `/studio/isis/text-to-audio`
- [ ] **Back to Studio workspace index** → `/studio`

## Data & contracts

- **Reads**: `GET /v1/admin/isis/music-generation` (`MUSIC_ENDPOINT`) on mount —
  guardrails + workflowClasses + providers
- **Writes**: `POST /v1/admin/isis/music-generation/validate`
  (`VALIDATE_ENDPOINT`) — pre-flight a request
- **Realtime**: None
- **Caching**: client `fetch` on mount, `cache: 'no-store'`,
  `buildBffAuthHeaders()`
- **Auth**: admin-scoped fail-closed (401/403 → unauthorized state); AAA-gated
  studio route behind the signed-in + studio proxy gate
- **Component sources**:
  - `apps/oshun/web/src/components/studio/StudioIsisMusicGenerationWorkspace.tsx`
  - `apps/oshun/web/src/components/studio/StudioIsisMusicGenerationRouteMap.ts`

## Cross-references

- Studio overview: [`../../studio-overview.md`](../../studio-overview.md)
- Sibling routes:
  - [`studio-isis-text-to-audio.md`](./studio-isis-text-to-audio.md)
  - [`studio-isis-audio-generation.md`](./studio-isis-audio-generation.md)

## Open questions / known gaps

- [ ] This is a pre-flight validator only — it does not enqueue a generation
      job; confirm the downstream Suno/admit path
- [ ] Disallowed-content screening (copyright/melody/voice) is server-side; the
      view surfaces blocked verdicts but not the full disallowed-content
      ruleset
