# Fleet build directives

The public copy of the Fleet's client policy for the Oracis site page `fleet.oracis.ai/build-directives/`. Every file here is generated from one source, `src/policy/client-policy.ts`, by `scripts/policy/public-directives.ts`, which `npx tsx scripts/policy/generate.ts` runs in the same pass as every other copy; `test/client-policy.test.ts` fails when a file here drifts from that source.

Copying this file grants no permission over the Fleet and enrolls nothing. These are the instructions a client session is given, not a licence, a contract or an adoption; the policy becomes a requirement in a repository only by its owner's own act, below.

## What is here

- `CLAUDE.md`: the managed block for a repository's `CLAUDE.md`, plus, as a second section, the hosted variant of the same policy.
- `AGENTS.md`: the same managed block in the `AGENTS.md` form (the text is identical; only the file that carries it differs).
- `manifest.json`: the machine-readable copy: the policy version, the sha256 of the source and of every file here, the tool classification of each environment, and the two modes below.

## Install

Paste the block: copy the lines of `CLAUDE.md` (or `AGENTS.md`) from the begin marker `<!-- fleet-policy ... begin ... -->` through the end marker `<!-- fleet-policy end -->`, markers included, into your repository's `CLAUDE.md` (or `AGENTS.md`) at its top level, and commit it.

Or run the installer, in a repository already enrolled `fleet-first`: `npx tsx scripts/policy/install-block.ts --repo <path> --apply` (add `--file AGENTS.md` for that form). Without `--apply` it prints the diff and writes nothing.

## Update

When the policy version changes, take the new block at the new version: paste it again over the old one, or run the installer with `--apply` again, and commit. The begin marker carries the version and the sha256 of the block's body, and the installer reports the block `stale` until it is replaced.

## Remove

Delete everything from the begin marker through the end marker, markers included, and commit. Removing the enrollment is a separate, equally deliberate act: delete `.fleet/adoption.json` too if the repository is enrolled.

## The two modes

- **recommended**: advice; nothing enforced. The policy is what a session working with the Fleet is told; nothing checks or blocks, and adopting it is free.
- **enrolled**: .fleet/adoption.json makes the policy a requirement. A repository whose owner commits `.fleet/adoption.json` holding `{"version": 1, "mode": "fleet-first"}` and installs the managed block makes the policy a requirement there.

<!-- footer: policy v9; source src/policy/client-policy.ts sha256 ebaa34334fc124d2725db923e73e1883758d1d15cbf72fb32556dd1f4d72fa78; copying this file grants no permission and enrolls nothing -->
