For those who build their own index.
Acme Notes is not a productivity tool. It is an archive.
/** * 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. */ export const PRODUCT_MD_SAMPLE = `# Acme Notes ## Register brand ## 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. ## Brand 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 ## Strategic 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. `; /** * Same project shape as PRODUCT_MD_SAMPLE but with no `## Register` field. * Exercises the cascade fallback (task cue then surface in focus) in * scenarios where context.mjs cannot detect the register and the agent * must follow the SKILL.md priority list to pick brand.md. */ export const PRODUCT_MD_SAMPLE_NO_REGISTER = `# Acme Notes ## 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. ## Brand 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 ## Strategic 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. `; /** * Native iOS app fixture: product register, `## Platform` set to `ios`. * Exercises Setup step 5 — when context.mjs reports the platform is native, * the agent must also load `reference/ios.md` (Apple HIG) on top of the * register reference. Product register because this is app UI, not marketing. */ export const PRODUCT_MD_SAMPLE_IOS = `# Tideline ## Register product ## 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. ## Brand 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 ## Strategic 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. `; /** * 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 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': `Acme Notes is not a productivity tool. It is an archive.