A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live
ci
CI planned from one model, the site deployed from its verified run
What it is
- URI
majordomus://feature/ci- Kind
feature- Identity
ci- Path
.ai/repo/features/ci.md- Provenance
- declared
- Media type
text/markdown- As a capability
- feature.ci
Front matter
{
"schema": "feature/v1",
"id": "ci",
"kind": "feature",
"title": "CI planned from one model, the site deployed from its verified run",
"short_title": "CI",
"headline": "A change runs the gates its paths can affect, every gate is the same script a person runs, and the public site is published only from a commit whose derived data proved current.",
"summary": "The gate model names every validation gate and which classes of paths select it; the workflow is a thin adapter over that plan; the publication path proves the committed derived data current by its input hash and renders it; and the tool supervises its own repository with its own hooks.",
"status": "stable",
"weight": 190,
"domain": "completion",
"featured": false,
"areas": [
"verification"
],
"commands": [
"doctor",
"watch"
],
"kinds": [
"derive-offload"
],
"rules": [
"project.blocking-checks-cheap",
"project.tests-run-in-disposable-repos",
"project.rust-cli-evidence",
"project.rust-command-tested-in-file"
],
"docs": [
"docs/CI.md",
"docs/GITHUB_PAGES_PERFORMANCE.md"
],
"adrs": [
"adr-0006"
],
"claims": [
"ci-planned-gates",
"ci-verdict",
"suite-parallel",
"site-deploys-from-verified-run",
"site-deploy-one-path",
"rust-evidence-gates"
],
"use_cases": [
"gate-ci-on-the-tool-itself"
],
"related": [
"doctrine",
"benchmarks"
],
"tags": [
"ci",
"deployment"
]
}Content
---
schema: feature/v1
id: ci
kind: feature
title: CI planned from one model, the site deployed from its verified run
short_title: CI
headline: A change runs the gates its paths can affect, every gate is the same script a person runs, and the public site is published only from a commit whose derived data proved current.
summary: The gate model names every validation gate and which classes of paths select it; the workflow is a thin adapter over that plan; the publication path proves the committed derived data current by its input hash and renders it; and the tool supervises its own repository with its own hooks.
status: stable
weight: 190
domain: completion
featured: false
areas: [verification]
commands: [doctor, watch]
kinds: [derive-offload]
rules: [project.blocking-checks-cheap, project.tests-run-in-disposable-repos, project.rust-cli-evidence, project.rust-command-tested-in-file]
docs: [docs/CI.md, docs/GITHUB_PAGES_PERFORMANCE.md]
adrs: [adr-0006]
claims: [ci-planned-gates, ci-verdict, suite-parallel, site-deploys-from-verified-run, site-deploy-one-path, rust-evidence-gates]
use_cases: [gate-ci-on-the-tool-itself]
related: [doctrine, benchmarks]
tags: [ci, deployment]
---
## What it does
`scripts/ci-plan` reads the gate model and nothing else to decide what a change must run; a
changed path no class matches escalates the whole plan and names the path. The pre-commit
hook runs `doctor`, the worktree guard and the derived-data fingerprint gate, so a stale
generated file is refused before the commit exists rather than after the merge.
## What it does not do
Publication carries only what can make the published bytes wrong; merging is decided
elsewhere. Nothing here trusts a green run it did not observe.