Context. surface studio · domain isis · route /studio/isis/music-generation · 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
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)
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) anddata-music-guardrail={class}rows (data-music-guardrail-max-intensity) - The "Pre-flight a request" form (
data-music-validate-form) - Verdict block (
data-music-verdict) withdata-music-issue={field}items, ordata-music-validate-error
- Route map panel (
data-isis-music-generation-route-map):<h2>"Route Map" enumeratingSTUDIO_ISIS_MUSIC_GENERATION_ROUTE_MAP - Quick-actions panel:
quickActionlinks to/studio/isis/text-to-audioand "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-erroron non-OK / malformed response - Ready (form) — guardrail table + pre-flight form render
- Result —
data-music-verdict(admitted/blocked) ordata-music-validate-error
Interactions#
Pre-flight a request (data-music-validate-form)#
- Workflow class —
data-music-field-classselect (options fromworkflowClasses) - Duration (s) —
data-music-field-durationnumber input - Tempo (BPM) —
data-music-field-temponumber input - Mime type —
data-music-field-mimetext input - Intensity curve (comma-separated) —
data-music-field-intensitytext input - Prompt —
data-music-field-prompttext input - Validate request —
data-music-validate-submitsubmit; 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
fetchon 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.tsxapps/oshun/web/src/components/studio/StudioIsisMusicGenerationRouteMap.ts
Cross-references#
- Studio overview:
../../studio-overview.md - Sibling routes:
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