# CLAUDE.md — {{PROJECT_NAME}}

> Template generated by `harness` on {{TODAY}}.
> Edit it freely: the skill respects your changes and only adds sections
> that are missing on future runs.

This file is the root instruction source for agents working in this
workspace. If you're working in a subproject that also has its own
`CLAUDE.md`, read this file first and then the subproject's `CLAUDE.md`.

## What this project is

> One or two sentences describing the product and its audience.

## Knowledge map

The living record of this project's conventions lives under `02-DOCS/wiki/` and is maintained by
the stack skills, plus the `harness/` topic maintained by the harness itself (user profile +
decisions log). Each skill links its article here as it is created — read the relevant article
before working in its area (the `harness/user-profile.md` first, to match the user's technical +
accompaniment level), and update it when conventions change.

| Area | Article |
|------|---------|
| User profile (technical + accompaniment level) | `02-DOCS/wiki/harness/user-profile.md` |
| Decisions log (append-only, "siempre 3 opciones") | `02-DOCS/wiki/harness/decisions.md` |
| SDD constitution (project non-negotiables) | `02-DOCS/wiki/sdd/constitution.md` |
| SDD specs (what & why, per feature) | `02-DOCS/wiki/sdd/specs/` |
| SDD plans (technical approach, per feature) | `02-DOCS/wiki/sdd/plans/` |
| SDD decisions (implement-phase log) | `02-DOCS/wiki/sdd/decisions.md` |
| Brand & voice | `02-DOCS/wiki/brand/` |
| Design system | `02-DOCS/wiki/stack/design.md` |
| FastAPI / API | `02-DOCS/wiki/stack/fastapi.md` |
| Next.js app | `02-DOCS/wiki/stack/nextjs.md` |
| Go services | `02-DOCS/wiki/stack/go.md` |
| PostgreSQL | `02-DOCS/wiki/stack/postgresdb.md` |
| Flutter app | `02-DOCS/wiki/stack/flutter.md` |
| Agents | `02-DOCS/wiki/stack/agents.md` |
| Security | `02-DOCS/wiki/stack/security.md` |
| Deployment | `02-DOCS/wiki/stack/deployment.md` |
| Presentations | `02-DOCS/wiki/stack/presentations.md` |
| Course storytelling | `02-DOCS/wiki/stack/course-storytelling.md` |

## Workspace map

| Path | Role |
|------|------|
{{SUBPROJECT_ROWS}}
| `01-TOOLS/` | Operational arsenal: one folder per external provider, with co-located credentials and a working `test_connection`. |
| `02-DOCS/` | LLM wiki: immutable sources in `raw/`, compiled articles in `wiki/`, plus `wiki/index.md` and `wiki/log.md`. |

The root is not a single Git repo; the Git repos live inside the main
subdirectories. Do not assume that `git status` at the root works.

## Working rules

- Before touching a subproject, run `git -C <subproject> status --short`.
  The user may have in-flight changes; don't revert or merge them without
  understanding them.
- Ignore generated outputs unless the user asks for them: `node_modules/`,
  `.next/`, `.venv/`, `.pytest_cache/`, `.ruff_cache/`, `.mypy_cache/`,
  `.dart_tool/`, `build/`, `__pycache__/`.
- Keep subproject boundaries clean. Don't mix dependencies or stacks
  across repos.
- Never publish secrets. `01-TOOLS/**/.env`, `CREDENTIALS.md`, SSH keys,
  service accounts, and tokens are sensitive even though they live in the
  workspace.
- For UI changes, read the canonical design document for the affected
  surface before editing.
- For documentation, update `02-DOCS/` following the embedded wiki
  protocol: new sources go in `raw/<topic>/`, distilled knowledge in
  `wiki/<topic>/`. The skill maintains `wiki/index.md` and `wiki/log.md`.

## Main commands

{{SUBPROJECT_COMMANDS}}

## Operational tooling

Manual operations against external services live in `01-TOOLS/`. Each
folder has `test_connection.{sh,py}` as a smoke-test.

| Tool | What it's for |
|------|---------------|
{{TOOLS_ROWS}}

To add a new tool: `cp -r 01-TOOLS/_TEMPLATE 01-TOOLS/<NAME>` and follow
the README in `01-TOOLS/`.

## Documentation

- `02-DOCS/raw/` — immutable source material (READMEs, ADRs, notes).
- `02-DOCS/wiki/index.md` — index of compiled articles.
- `02-DOCS/wiki/log.md` — append-only ingest/query log.

When you learn something new and reusable, ingest it with
`harness` (the wiki protocol lives embedded in the skill,
no external skill required).
