CLAUDE.md · git:20260331.771b71c · 2026-03-31 · sha256 9456a43bedc70ab6

CLAUDE.md git:20260331.771b71cA

Immutable. This exact content is served forever at /api/v1/blob/9456a43bedc70ab6.

# Claude Project Instructions

Use the same rule semantics as Cursor, but follow Claude's file conventions.

## Source of Truth

- Spec routing and enforcement: `spec/README.md`
- Architecture constraints: `spec/architecture-boundaries.md`
- Security constraints: `spec/security-nonnegotiables.md`
- Testing policy: `spec/testing-policy.md`
- Docs sync policy: `spec/docs-sync.md`
- Task workflow: `tasks/README.md`
- Task board: `tasks/board.md`

Do not duplicate rule content in this file. Follow the referenced files directly.

## Contribution Modes

- External/community contribution (lightweight):
  - `Task ID: N/A` is acceptable for small fixes/docs/issues.
  - Creating `tasks/TASK-.../` is optional.
  - Validation evidence and regression notes are still required in PR.
- Core/maintainer contribution (strict):
  - Use full `tasks/TASK-.../` lifecycle for non-trivial work.

## Required Workflow

1. Determine task type and inject specs using `spec/README.md`.
2. For non-trivial work, create/reuse a task folder in `tasks/TASK-.../`.
3. Keep task artifacts updated:
   - `TASK.md`
   - `STATUS.md`
   - `REVIEW.md`
4. Keep `tasks/board.md` in sync with real status.
5. For any code change, enforce `spec/testing-policy.md`.
6. For behavior/command/env/doc/release changes, enforce `spec/docs-sync.md`.

## Task Creation

Prefer the standard task bootstrap script:

```bash
bash scripts/new_task.sh "<slug>" "<Title>" [P0|P1|P2] [owner]
```

## Completion Gate

Before marking work complete:

- injected specs are listed and followed,
- validation evidence exists,
- regression scope is reviewed,
- task artifacts are updated,
- `tasks/board.md` status is updated.