# KICKOFF — my-cooud-app
> Generated by the Cooud Stack Builder. This file is the **single source of truth** for the project's stack, conventions, and mission. Read it fully before writing any code.
## Mission
Build **my-cooud-app** on the stack below. Keep choices consistent with this stack — do not introduce frameworks, databases, or tools not listed here without explicit approval.
## Stack (resolved — the truth)
| Layer | Choice |
| --- | --- |
| Web | Next.js |
| Runtime | Bun |
| DB Setup | Basic |
| UI | Cooud UI |
| Package Manager | bun |
## Conventions & standards
Project standards — apply them everywhere, from the first commit, so the codebase stays consistent no matter who writes the next file.
- **Naming:** kebab-case for file and folder names (`user-profile.tsx`); keep React components PascalCase in code.
- **Structure:** all application code lives under `src/`; keep config at the root.
- **Imports:** use the `@/…` path alias for absolute imports; avoid deep relative paths (`../../../`).
- **Commits:** Conventional Commits — `type(scope): subject` (`feat`, `fix`, `chore`, …).
- **TypeScript:** strict mode — no implicit `any`, no `!` non-null assertions to silence the compiler.
## Repo map
```
my-cooud-app/
package.json # scripts and selected dependencies
src/app/ # Next.js App Router starter
cooud-ui.json # Cooud UI registry paths and pinned registry URL
KICKOFF.md # this briefing
stack.json # machine-readable stack snapshot
```
## Commands
```bash
bun install
bun dev
bun typecheck
bun build
```
## AI capabilities selected
- **Assistants:** Claude Code
- **MCP servers:** none
- **Skills:** none
- Generated files cover the supported assistants/templates; any unsupported MCP server or skill pack remains manual follow-up.
## Cooud UI contract
This project uses **Cooud UI**. Treat these as hard rules:
- Use **only** components from `@cooud-ui/ui` — never hand-roll a primitive that already exists.
- Use **only** semantic design-system tokens (e.g. `bg-surface-raised`, `text-fg`, `border-border`). Never hardcode hex/rgb colors or raw Tailwind palette classes.
- Compose class names with `cn` from `@cooud-ui/ui`.
- Add `"use client"` to any component that holds state or effects.
- Every interactive element must have a visible `focus-visible` ring and pass the axe a11y gate.
- Tag composite elements with `data-slot` for styling hooks.
## Guardrails
- Stay on the stack above; ask before adding new top-level dependencies.
- No secrets in the repo — use `.env` and document required vars in `.env.example`.
- Keep changes typed; do not introduce `any` or suppress type errors to ship.
## Definition of Done
- [ ] Type checks pass (no errors, no new `any`).
- [ ] Tests pass (and new behavior is covered).
- [ ] UI uses only `@cooud-ui/ui` + semantic tokens; axe a11y gate is green.
- [ ] App runs locally end-to-end against the configured stack.