/** * Realistic-looking PRODUCT.md / DESIGN.md fixtures. * * Long enough to clear the "<200 chars / placeholder" heuristic the loader * uses to decide whether to gate on `init`. Plausible enough that the agent * treats them as real context rather than test scaffolding. */ // This user can supply a complete synthetic case now, not promise future assets. export const CASE_STUDY_ANSWER = 'Build a standalone index.html for the researchers described in PRODUCT.md, preserving DESIGN.md. Use a clearly labeled synthetic case: a doctoral researcher reconstructs why a literature-review conclusion changed by following linked notes and citations. No real customer names, quotes, metrics, or assets are available; author illustrative content and label it, with no invented commercial claims. The reader should understand the preserved reasoning trail and follow an in-page link to the method. For a composition or concept choice, use the first direction you presented. No additional material is coming from me.'; export const PRODUCT_MD_SAMPLE = `# Acme Notes ## Platform web ## Product Purpose Acme Notes is a marketing-driven landing page for a research-grade note-taking tool aimed at independent scientists and graduate students. The site needs to communicate that the product respects the reader's intelligence — no SaaS buzzwords, no metric-theater, no "trusted by leading teams" wallpaper. ## Users Working researchers (PhD students, postdocs, principal investigators) who already maintain disciplined note-taking systems and are choosing between ours and rolling their own in a Zettelkasten plugin. ## Positioning The research notebook that preserves a scientist's chain of thought instead of flattening it into generic documents and folders. ## Audience World Lab notebooks, margin annotations, citation trails, preprint PDFs, index cards, and the quiet ritual of reconstructing why a conclusion was reached months ago. ## Cultural Context Research monographs and working laboratory archives: precise, annotated, accumulative, and visibly handled rather than pristine lifestyle publishing. ## Pinned Direction Type-led and evidence-first. Never lead with product screenshots or generic startup chrome. ## Brand Personality Editorial, considered, technical. The product is for people who quote Knuth. The voice is closer to a long-read magazine than to a startup landing page. ## Anti-references - Notion (too consumer / too rounded) - Obsidian (too community-cottagecore) - Any SaaS landing page with a hero-metric grid ## Design Principles - Type does most of the work. The hero is words, not chrome. - One named accent color, used sparingly. - Never lead with screenshots. Lead with the idea. ## Accessibility & Inclusion WCAG AA, fully keyboard accessible, readable at 200% zoom, and calm under reduced motion. `; /** * Legacy product context with the modern strategic fields but no visual * world. Exercises init completion without a deprecated brand/product field. */ export const PRODUCT_MD_SAMPLE_NO_REGISTER = `# Acme Notes ## Platform web ## Product Purpose Acme Notes is a marketing-driven landing page for a research-grade note-taking tool aimed at independent scientists and graduate students. The site needs to communicate that the product respects the reader's intelligence: no SaaS buzzwords, no metric-theater, no "trusted by leading teams" wallpaper. ## Users Working researchers (PhD students, postdocs, principal investigators) who already maintain disciplined note-taking systems and are choosing between ours and rolling their own in a Zettelkasten plugin. ## Positioning The research notebook that preserves a scientist's chain of thought instead of flattening it into generic documents and folders. ## Audience World Lab notebooks, margin annotations, citation trails, preprint PDFs, index cards, and the ritual of reconstructing a conclusion months later. ## Cultural Context Research monographs and working laboratory archives. ## Pinned Direction Type-led and evidence-first; no startup chrome. ## Brand Personality Editorial, considered, technical. The product is for people who quote Knuth. The voice is closer to a long-read magazine than to a startup landing page. ## Anti-references - Notion (too consumer / too rounded) - Obsidian (too community-cottagecore) - Any SaaS landing page with a hero-metric grid ## Design Principles - Type does most of the work. The hero is words, not chrome. - One named accent color, used sparingly. - Never lead with screenshots. Lead with the idea. ## Accessibility & Inclusion WCAG AA, keyboard access, 200% zoom, and reduced motion support. `; /** * Native iOS app fixture with `## Platform` set to `ios`. Exercises Setup * step 5 — the agent must also load `reference/ios.md` (Apple HIG) on top of * the task-scoped visitor-mode guidance. */ export const PRODUCT_MD_SAMPLE_IOS = `# Tideline ## Platform ios ## Product Purpose Tideline is a native iOS app for coastal anglers: tide tables, solunar windows, and a logbook. It SERVES the task — get in, read the conditions, log a catch — so fluent iPhone users should trust it instantly rather than relearn navigation. Earned familiarity over novelty. ## Users Saltwater anglers checking conditions dockside on an iPhone, often one-handed in bright sun and sometimes offline. They live in Apple Weather, Notes, and Maps and expect the same gestures and controls here. ## Positioning The fastest trustworthy read on whether the next coastal window is worth the trip. ## Audience World Tide tables, chartplotters, dock logs, weather radar, tackle trays, wet gloves, and the repeated glance from water to phone in hard daylight. ## Pinned Direction Native iOS controls and navigation are non-negotiable; the logbook may carry the product's distinctive character. ## Brand Personality Calm, legible, marine. Identity shows through color, type accent, and the logbook's character — never by reinventing the navigation bar or the back gesture. ## Anti-references - Web dashboards ported into a WebView - Custom toggles and bespoke tab bars that fight the platform - Cluttered, metric-theater home screens ## Design Principles - Platform conformance is the structural bar; brand lives in the expressive layer. - Standard navigation, SF Symbols, Dynamic Type, Dark Mode first-class. - One accent tint drives interactive elements. ## Accessibility & Inclusion Dynamic Type, VoiceOver, reduced motion, high contrast in direct sun, and targets usable one-handed with wet hands. `; /** * The native counterpart to MINIMAL_LANDING_HTML, and it exists for the same * reason. A native scenario carrying only PRODUCT.md gives an audit nothing to * audit: the agent goes looking for the app it was told exists, and a routing * assertion ends up measuring how a model copes with an empty workspace * instead. One screen is enough to make the request answerable. */ export const MINIMAL_IOS_SOURCE = `import SwiftUI struct TideDetailView: View { let station: String @State private var showsLog = false var body: some View { NavigationStack { List { Section("Next window") { HStack { Text("High") Spacer() Text("4:12 PM").foregroundStyle(.secondary) } HStack { Text("Low") Spacer() Text("10:38 PM").foregroundStyle(.secondary) } } Section { Button("Log a catch") { showsLog = true } } } .navigationTitle(station) .toolbar { ToolbarItem(placement: .topBarTrailing) { Button("Refresh") { } } } } } } `; /** * Tiny static landing page fixture for scenarios that invoke sub-commands * (polish, audit) without standing up a full framework project. Gives the * agent something concrete to inspect so it doesn't bail with "what * should I work on?" before completing Setup. */ export const MINIMAL_LANDING_HTML = ` Acme Notes

For those who build their own index.

Acme Notes is not a productivity tool. It is an archive, designed for the researcher who treats their notes as an external brain.

Begin Archive `; /** * Minimal SvelteKit project. Exercises Setup step 2 ("familiarize * yourself with any existing design system, conventions, and components"): * the agent should explore at least one of these code files before * producing a polish or craft pass. */ export const SVELTE_PROJECT_FILES = { 'package.json': `${JSON.stringify( { name: 'acme-notes', type: 'module', dependencies: { svelte: '^4.0.0', '@sveltejs/kit': '^2.0.0' }, scripts: { dev: 'vite dev', build: 'vite build' }, }, null, 2, )}\n`, 'svelte.config.js': `import adapter from '@sveltejs/adapter-auto'; export default { kit: { adapter: adapter() }, }; `, 'src/app.css': `:root { --ink: oklch(0.16 0.02 250); --paper: oklch(0.98 0.01 90); --accent: oklch(0.55 0.18 28); --hairline: oklch(0.16 0.02 250 / 0.08); } body { background: var(--paper); color: var(--ink); font-family: 'Inter', sans-serif; line-height: 1.55; } `, 'src/lib/components/Button.svelte': ` `, 'src/lib/components/Card.svelte': `
`, 'src/routes/+page.svelte': ` Acme Notes

For those who build their own index.

Acme Notes is not a productivity tool. It is an archive.

Some featured content.
`, }; export const DESIGN_MD_SAMPLE = `# Acme Notes — Design System ## Colors - \`--ink\`: oklch(0.16 0.02 250) — body copy - \`--paper\`: oklch(0.98 0.01 90) — body background - \`--accent\`: oklch(0.55 0.18 28) — terracotta, used at <8% surface ## Typography - Display: GT Sectra (commercial), 700, tracking -0.02em - Body: Inter, 400, 1.55 line-height, 65ch max - Mono: JetBrains Mono, 400 (rare, only for callouts) ## Spacing Multi-modular scale: 4 / 8 / 12 / 24 / 48 / 96 px. ## Elevation Mostly flat. A single 1px hairline border at oklch(0.16 0.02 250 / 0.08) separates major regions. No drop shadows under 16px blur. ## Components - Buttons: text-only by default; a single solid primary in accent for CTAs. - Cards: avoid; prefer hairlined regions and inline lists. - Forms: floating labels, no border on the input — underline only. `; // A real surface keeps workflow advice and explicit-command precedence tests // answerable without requiring the model to invent a project. export const WORKFLOW_ADVICE_FILES = { 'PRODUCT.md': PRODUCT_MD_SAMPLE, 'DESIGN.md': DESIGN_MD_SAMPLE, 'index.html': MINIMAL_LANDING_HTML, };