# culturefoundry — agents.md

Project constitution. Inherits from `/srv/CLAUDE.md` (server-scope) and
`/srv/apps/CLAUDE.md` (tenant-scope, interim). Only rules meeting the
admission rubric (failure-backed, tool-enforceable, decision-encoding, or
triggerable) belong here — no generic advice a model already applies.

Model-independence: this file is the source of truth. `CLAUDE.md` is a
symlink to it so Claude Code loads the same content.

## Read first (in order)
1. **`brief.md`** — what this project is; stack decision (none yet — no
   instance exists).
2. **`.logs/handoff.md`** — newest-first; latest session state.

## Project-specific rules
_None yet. Add one only when a real incident earns it — the admission rubric
above is the gate._

## Operational — this is a workspace, not a deployed project
There is **no `srv-gw` project, no container, no domain, no group** here.
This directory was created directly (not via `srv-gw create-project`)
because v8 (§3.2) allows a project to exist with zero instances — "a lead
you're drafting a proposal for" is the plan's own example. It lives under
`/srv/apps/` (group-writable by `rian`) with no dedicated `culturefoundry-dev`
Unix group, since there's nothing yet that needs isolating.

**When this project gets its first real deliverable** (a site, an app —
anything that needs a container/domain), that's the `add-instance` step v8
describes, but the gateway hasn't been retooled for the workspace/instance
split yet (T3.1, not started). Until it lands, the equivalent action is:
```bash
srv-gw create-project --name culturefoundry --type custom --domain <domain>
```
This will create `docker-compose.yml`, `.env`, `.project.json`, `public/`,
etc. at this same path, and a `culturefoundry-dev` group — check whether it
merges cleanly with the existing workspace files or needs reconciling by hand
first (this hasn't been exercised on a pre-existing directory before).

## Layout (v8 workspace shape — no instance yet)
```
/srv/apps/culturefoundry/
├── brief.md            # project genesis (fill me in)
├── agents.md            # this file — project constitution
├── CLAUDE.md            # symlink → agents.md (Claude Code discovery)
├── .logs/
│   ├── planning/        # plans live here (type: plan frontmatter)
│   ├── handoff.md       # append-only, newest-first
│   └── diary.md         # session summaries (interim: manual)
├── .memory/             # project memory (append-only)
├── .archive/            # preserved indefinitely; never auto-purged
└── notes/               # human reference material (contracts, screenshots, …)
                         # NOT loaded by agents unless referenced from brief.md
```

## Standing tasks (delete when done)
- Fill in `brief.md` — what is Culture Foundry, who's it for, why does it need
  a project here.
- Decide if/when it needs a real instance (site/app); run `srv-gw
  create-project` at that point.
- First real change → first `handoff.md` entry.
