decisions

Architecture Decisions

Index of all Architecture Decision Records (ADRs) for next-ai-ready.

This page indexes all Architecture Decision Records. Each ADR is dated and immutable once accepted — supersede via a new ADR.

Index

#TitleStatusDate
ADR-001Toolchain: pnpm + turbo + tsup + vitest + changesetsAccepted2026-05-28
ADR-002Scope name @next-ai-ready/* + meta packageAccepted2026-05-28
ADR-003Content layer: MDX/MD only in MVPAccepted2026-05-28
ADR-004Semantic extraction: deterministic onlyAccepted2026-05-28
ADR-005Action discovery: explicit manifestAccepted2026-05-28
ADR-006No bundler plugin; build CLI emits JSONAccepted2026-05-28
ADR-007Route handlers are user-owned filesAccepted2026-05-28
ADR-008MCP via vercel/mcp-handlerAccepted2026-05-28
ADR-009Default endpoint /api/mcpAccepted2026-05-28
ADR-010Default deny for action exposureAccepted2026-05-28
ADR-011Static-first, handler-fallback servingAccepted2026-05-28
ADR-012Node runtime by defaultAccepted2026-05-28
ADR-013Zod peer dependency: `^3.23 \\^4`Accepted2026-05-28
ADR-014Next ≥ 14.2, App Router onlyAccepted2026-05-28
ADR-015Reproducible JSON artifactsAccepted2026-05-28

Key decisions explained

No bundler plugin (ADR-006)

The build CLI runs outside the bundler. This means next-ai-ready build && next build — one extra line in your build script. The benefit: identical behavior under Webpack and Turbopack, and the pipeline can run in CI before next build.

Default deny (ADR-010)

Actions are private by default. You must set public: true to expose an action via HTTP or MCP. This prevents accidental exposure of internal logic to AI agents.

Static-first serving (ADR-011)

Artifacts that don't depend on request state (llms.txt, openapi.json, tools.json) are written to public/ at build time. Runtime handlers exist as fallback. Per-route artifacts (*.md, *.ai.json) are served by handlers reading the cached graph.

Deterministic extraction (ADR-004)

All semantic extraction is heuristic-based. No LLM calls. Same input + same config = byte-identical output. This enables git diff review, CI caching, and reproducible builds.

Explicit action manifest (ADR-005)

Users author actions/index.ts that exports an array. No file-system scanning. This avoids "use server" collisions, is tree-shaking friendly, and gives users a union type of all actions.