wzender's picture
Prompter: a dim libretto view and La bohème in Italian and English (#9)
2659672 unverified
|
Raw History Blame Contribute Delete
1.67 kB

Tasks

1. Data

  • 1.1 Add the migration 20261119090000_m2_prompter.sql: m2_prompter_texts with server-only grants, and widen the AI usage kinds to prompter and worksheet. Verify with the migration tests on a local PostgreSQL.
  • 1.2 Add the prompter store methods to InMemoryStore and SupabaseStore, and refuse an unknown AI usage kind. Verify with the API tests.

2. Server

  • 2.1 Add ai.outline (ported from mathly1) to the Anthropic, missing and fake clients. Verify with the fake client in the API tests.
  • 2.2 Add the /api/prompter routes for developers: list, create, change, delete and outline, with the limits and Hebrew failures. Verify with test_prompter_api.py and the permission matrix.

3. Screen

  • 3.1 Port static/prompter.js from mathly1 and add the developer screen's card (static/prompter_card.js). Verify with test_prompter_browser.py on a phone and a desktop: save, the draft kept across a reload, the AI outline, the full-screen view, delete, and a failed outline.
  • 3.2 Update PRD DEV-2 and move the prompter out of add-developer-tools. Verify that openspec validate add-prompter --strict and openspec validate add-developer-tools --strict pass.
  • 3.3 Add the libretto view (static/libretto.js): one cue at a time, Italian above English, dim on black, the place kept. Verify with a browser test.
  • 3.4 Add La bohème as a ready-made libretto (static/libretti/la-boheme.txt) with a button on the card. Verify with a browser test and a file check.

Workflow follow-up

  • Apply 20261119090000_m2_prompter.sql in Supabase before deploying.
  • Archive the change after review.