Briefs
A `/briefs` section on the design site, off the main menu, with one page per brief handed to a collaborator outside the org
Why
Sarah Parson will illustrate Qpoint blog articles. She is not in the Qpoint org, so GitHub and the Bad Ideas studio repo are not places she can read a brief. She does have Access to design.internal.qpoint.io. A brief page per article on the design site gives her one address to return to for direction, references, the asset spec, and where the work stands, and it gives the archive a natural neighbour: the brief is the before, the archive entry is the after.
Objective
/briefs lists every brief by status with its phase and next action; /briefs/<slug> shows a phase stepper, the brief's header facts (article, author, deadline, deliverables, links) and the markdown body. Not linked from AppNav. A template brief shows the shape. Done = the first real illustration brief is written to content/briefs/<slug>.md, deployed, and Sarah reads it there.
Scope
content.config.ts—briefscollection (type: 'page',briefs/**/*.md).content/briefs/template.md— the template, written to Sarah.server/api/briefs/index.get.ts,[slug].get.ts— list and detail, same shape asserver/api/archive/.app/pages/briefs/index.vue,[slug].vue— index grouped by status; detail with stepper and body.app/data/brief-phases.ts— the six illustration phases, shared by both pages.server/data/archive-meta.ts— Sarah added to designers so archive entries can credit her.- Out:
AppNav(deliberately untouched), home-page card, any write-back from the studio repo's skill into this repo.
Key Changes
kick-off (2026-10-13): files above written. Brief front matter carries kind, status, phase, article, author, designer, targetDate, updated, deliverables, driveFolder, imagesFolder, liveUrl, nextAction, owner. Verbatim Logseq capture stays in the studio repo (bad-ideas/foundation/illustrations/<slug>/log.md), never on the page: the page is addressed to Sarah, the log is Mark's shorthand.
article status + first three briefs (2026-10-13): articleStatus added to the schema and template, shown as a pill on /briefs and /briefs/<slug> with a one-line note that the text is still moving. First three real briefs written: your-agents-need-a-dynamic-sandbox, the-hidden-agent-surface, treat-your-agents-like-insiders, from the drafts under Marketing/Blog in Drive. All phase: 0-intake, articleStatus: draft, no byline or date yet.
ELI5 + jargon (2026-10-13): template and the three briefs gain "Explain it like I'm five" and a "Jargon" table (term · meaning here · if you had to draw it) after the three lines. Content only; no page change.
creative brief shape (2026-10-13): Mark trimmed the brief to a creative brief: In plain words (the renamed ELI5, now first) → three lines → Jargon → Direction (References, Constraints only) → Final → Publish → Record (Shipped). Ideation, Review, Decisions and the learned / next-time lines are gone from the page; the studio repo's per-article log holds them. Template and the three briefs rebuilt. Page code unchanged.
trimmed to four sections (2026-10-13): Direction, Final and Publish removed as well. A brief is now In plain words → The article in three lines → Jargon → Record. Template preamble says the spec and publish steps live with the process.
fourth brief (2026-10-13): from-watching-the-network-to-watching-the-agent added (author tyler-flint, from the doc's signature).
deployed (2026-10-13): committed as 388a49ec9 (only c115 paths; other sessions' c100/c105 work left in the tree) and shipped with npm run deploy → deploy branch 3afa87fbd, _deploy.json confirms the SHA, /briefs/ and the four brief pages verified on design-f39.pages.dev. main is not pushed. Two prerender errors in the build log are the cycles-by-week crawler hitting a 1999 week, pre-existing and unrelated.
queued status (2026-10-13): status: queued added (schema comment, template, index group "Up next" between In progress and Shipped). Sandbox brief active at 1-direction, owner Both; the other three queued.
dark-mode brief (2026-10-13): first non-illustration brief, content/briefs/dark-mode.md (kind: dark-mode, so no phase stepper). Written from the existing stubs: the layer's semantic.mjs dark column, c52's theme editor and dark-subtle-baseline, c46's brochure dark-mode brief, c76's unstarted prompt, the pixel-art dark values. Sections: in plain words, the job, what exists, the tool (editor walkthrough; Save/Load don't work on the static deploy, Copy semantic.mjs is the hand-off), the seventeen roles with today's values, where to judge, principles and minimums, deliverables, jargon. Screenshot at public/briefs/theme-editor.jpg (editor open on /pages/sticky-band in dark, 1280 wide).
dark-mode brief deployed (2026-10-13): cb2484e61 → deploy bf9bfea09; /briefs/dark-mode/ and the screenshot verified live.
hidden surface at Publish (2026-10-21): brief matched to the final article (7d2d6b647): 5-publish, articleStatus: approved, three lines and pull line from the final text, jargon rows for runtime / lineage / model requests / detection rule / plugin. Hero and listing arrived 2026-10-20 in the folder's AI images subfolder, outside Direction → Review. Post not live yet.
Outcomes (2026-10-21): closed briefs now archive with what they produced. outcome front matter (summary, postUrl, published, hero, listing, screenshot, screenshotFull, sketches, sketchesNote) in the schema; /briefs renames the done group Outcomes and shows the listing image on the card; /briefs/<slug> renders an Outcome section above the stepper (hero + listing, article screenshot opening to the full page, sketch grid, one UxLightbox across all of them). First archived: your-agents-need-a-dynamic-sandbox (live 2026-10-15), with the three sketch sheets from the Design drive, the live hero/listing, and scripts/capture.mts shots of the post in public/briefs/your-agents-need-a-dynamic-sandbox/. Playwright's browser wasn't installed; PW_CHROMIUM_PATH pointed at Chrome.