Transforming Your First Repo Prompt with AI Config Kits A developer at otfdashkit/ui built AI config kits that solve the cold-start problem for coding agents in new repositories. The kits ship CLAUDE.md, .cursorrules, and ai/prompts/ files that provide conventions and priors, transforming the first prompt from 'build me X' to 'extend the kit pattern for X.' This eliminates the agent's need to invent conventions from scratch, preventing costly refactors and ensuring consistency across the project. The first prompt in a brand-new repo is the hardest one you'll ever send a coding agent. Not because the task is complex — usually it's something modest, like "add a settings page" or "wire up Stripe checkout." It's hard because the agent has nothing to anchor on. No conventions. No examples. No answer to the question that quietly determines everything: what does "done" mean here? This is genuinely one of the sharper edges of agentic coding right now, and the engineers shipping real apps know it. The first prompt sets the trajectory for every prompt that follows. Get it wrong and you spend the next month fighting the ghost of a generic scaffold the agent invented on day one. So let's talk about what a kit's AI config actually changes about that first prompt — concretely, with a before/after. Imagine a fresh pnpm init repo. No package.json beyond the default, no src/ , no README . You hand it to an agent and type: "Add a settings page where I can toggle email notifications." Here's what a high-quality agent does in that situation — and here's what makes it quietly expensive: app/settings/page.tsx , or src/pages/Settings.tsx , or pages/settings/index.tsx . Which one? A guess weighted by training data, not by your repo, because your repo has no opinion.Five prompts later you're four thousand lines deep, the agent is confidently extending its own scaffold, and you're trying to refactor out of conventions it invented. The ghost in the machine isn't the agent's intelligence. It's the absence of priors. It's tempting to blame the model. It isn't the model's fault. Mechanistically, an LLM is a next-token predictor over its context window. In an empty repo, that context contains: the prompt, the file tree, the contents of any files you've opened. That is the entire evidence base for "what does done mean here." When the evidence is thin, the model falls back to its training distribution — the median of every well-structured open-source repo it ever saw. That's a reasonable default for a demo. It's a real liability for a project that needs to ship, because your project will diverge from the median within a week, and now the agent is reinforcing patterns you've already abandoned. The first prompt isn't really one prompt. It's the seed for a trajectory. COMPARE: empty repo cold start vs kit repo with AI config A kit ships three things that change the math on that first prompt: CLAUDE.md at the repo root. .cursorrules / AGENTS.md . ai/prompts/ .The first prompt in this repo is no longer "build me X." It's "extend the kit pattern for X." The model has priors. It doesn't have to invent conventions — it has to apply them. Same prompt. Same model. Different repo. Cold-start repo no AI config : src/ app/ settings/ page.tsx // 'use client', full client component settings-form.tsx // ad-hoc form, no schema, no validation app/ api/ settings/ route.ts // POST handler, manual auth check, no schema The form works. The auth check is a session lookup inlined. There's no loading spinner — the button just stays clickable. There's no toast on success. The route handler parses JSON with no schema validation. None of this is wrong on its own. All of it is inconsistent with the patterns the agent will write tomorrow on a different page, which means you're holding the mental model of "the way we do forms" in your head for the rest of the project. Kit repo @otfdashkit/ui, with CLAUDE.md and tested prompts : The agent opens CLAUDE.md , sees "all authenticated pages live in app/ dashboard /