# SteerSpec core rule set — for agents

The human page at /spec/ renders client-side. Read the data directly:

1. Fetch `https://steerspec.dev/rules/latest/index.json`. Keys: `version` (realm version), `generated_at`, `schemas` (schema URLs), `rules[]` (`file`, `entity_id`, `hash` as `blake3:...`), `realm` (`id`, `title`, `version`).
2. For each `rules[]` entry fetch the `file` (relative to the manifest's directory). Each entity file has `entity {id, title, description}`, `rule_set {version, timestamp, hash}` and `rules[]`.
3. Each rule: `id`, `revision`, `state`, `body`, `added_by`, `added_at`, `supersedes`.

Notes:
- `rule_set.version` is per entity and independent of the realm version.
- Pin to `https://steerspec.dev/rules/v<version>/index.json` for reproducibility; `latest` moves.
- Verify files against the manifest `hash` values.
- Lifecycle states: D (draft), P, I, R, T, A. Keywords follow RFC 2119, extended with HAS, IS and DEFINE.
- Schemas: `https://steerspec.dev/schemas/entity/v1.json`, `https://steerspec.dev/schemas/config/v1.json`, `https://steerspec.dev/schemas/realm/v1.json`.
