Skip to content

Specs

Specs live in the project wiki, not in this repository.

A spec is a point-in-time decision record — written once, true of a moment, read later for its conclusions. Keeping them here buried the living documentation they sat beside, so they moved. Contributor guides, engineering standards and testing conventions stay in docs/, because those change with the code.

Spec Title Status
0001 keryx — design spec DRAFT
0002 keryx — interface contracts (CLI, web UI, MCP) DRAFT
0003 keryx — video panels (deferred feature spec) APPROVED · blocked
0004 keryx — long-form video & in-browser capture (future directions) DRAFT
0005 keryx — reel theme comparison (feature spec) DRAFT
0006 keryx — avatars (the author as an actor in the reel) IMPLEMENTED
0007 YouTube (Shorts) publisher + auth IMPLEMENTED
0008 TikTok publisher + auth IMPLEMENTED
0009 LinkedIn publisher + auth IN PROGRESS · blocked
0010 auth refresh (token rotation, expiry alerting) IN PROGRESS · blocked
0011 studio (local web UI) IN PROGRESS
0012 studio remote-git projects (R-GIT-⅖) IMPLEMENTED
0013 studio generation: per-card media + cover + portrait (R-UI-29/3) IMPLEMENTED
0014 studio per-project config & themes (R-CFG-1, project layer) IMPLEMENTED
0015 studio Phase 2: preview & produce + publish (scope & plan) APPROVED
0016 studio audio takes: VO + music audition & select (R-UI-9) IMPLEMENTED
0017 studio render & preview: silent draft + full reel (R-UI-8/11) IMPLEMENTED
0018 studio networked-exposure auth: the server gate (R-API-3) IMPLEMENTED
0019 studio publish cockpit: compose · approve · post (R-UI-19/25/27/12) IMPLEMENTED
0020 keryx reel make: one-command reel orchestration IMPLEMENTED
0021 In-memory render: lift the render local-only gate IMPLEMENTED
0022 Voice configurability: model, pronunciation dictionary, per-line pronunciation IMPLEMENTED
0023 Voice take workflow: subset re-roll + take screening IMPLEMENTED
0024 reel plan: VO-driven timing + pre-build sanity IMPLEMENTED
0025 Locked/reviewed assets: approved, reproducible reels IMPLEMENTED
0026 Render progress: true percentage streaming IMPLEMENTED
0027 Studio HTTPS + the Secure gate (trusted-TLS consumption) IMPLEMENTED
0028 Studio Svelte decomposition (componentisation + state extraction) IMPLEMENTED
0029 Studio UI restyle (cleaner, more modern) IMPLEMENTED
0030 Studio live VO recording (manual take, from the script) DRAFT
0031 Studio spend ledger, Spend & quota panel, and spend guard IMPLEMENTED
0032 Studio AI assistant (conversational, context-aware, action-taking) DRAFT
0033 Studio post-first reels (content-driven reel management) IMPLEMENTED
0034 Studio project settings (themes · avatars) + the Reel tab IMPLEMENTED
0035 Adopt go/config for .keryx.yaml (structure-preserving writes) IMPLEMENTED
0036 Studio theme editor (rgba palette + full type-scoped theme controls) IMPLEMENTED
0037 Studio settings IA (typed panels + YAML advanced view) IMPLEMENTED
0038 Reel text layout (positioning + multiple text blocks per scene) IN PROGRESS
0039 Media object store (S3-backed workspace media, git-tracked authored state) IMPLEMENTED
0040 Pluggable object stores (GCS, Azure, and the versioning question) IMPLEMENTED
0041 Discard a bad generation (studio), with an undo window IMPLEMENTED
0042 Where platform secrets live (user scope, and the project-store blind spot) IMPLEMENTED
0043 A keychain backend for phpboyscout/go/config APPROVED · blocked
0044 Card mode resolution (why illustrations never render) IMPLEMENTED
0045 Anchored sequence generation (visual continuity across panels) IMPLEMENTED
0046 Theme scopes: get themes out of the seed IMPLEMENTED
0047 One theme list: aesthetic in config, format from the target IMPLEMENTED
0048 One resolver: stop assembling the layer stack per call site IMPLEMENTED
0049 Render history: keep renders, and choose which one ships DRAFT
0050 Scene composition: cover as illustration, silent scenes, manual timing, scrim control APPROVED
0051 Run the studio on the toolkit: controls, transport, localca APPROVED

Referring to a spec

By number and name — "0020, the explainable-cull spec" — never by date. The number is a stable handle; a date is not something anyone remembers.

Writing a new one

Claim the next number first, then draft against the canonical shape. See the spec-driven-development skill in the phpboyscout marketplace.