Notaire

Act V · Apply it

AI Factory · Framework

One policy, one profile, one kit

The process that builds Notaire, with Notaire taken out. A stack-agnostic AI SDLC framework: a policy document that names no tool, a TOML profile that holds every project-specific command, and a zero-dependency kit (aisdlc) that runs gates by exit code, enforces ratchets and keeps the evidence.
  1. G0Intakeissue + requirement
  2. G1Planchange record, real issue
  3. G2Rednew tests fail
  4. G3Verifysuite · lint · ratchets
  5. G3Pre-PRpipeline · docs
  6. G4Mergeheavy CI · review
  7. G5Releasedeploy · smoke
Machines check machines: a gate opens only on the expected exit code. Motion is off when your system asks for reduced motion.

Ten principles, each earned by an incident

  1. Policy first

    One document prevails over every agent file, rule and prompt — and names no tool.

  2. Spec before code, red before green

    No code without a change record; no implementation before a failing test.

  3. Mechanical over aspirational

    A rule that can be a command is a gate. Prose is for what cannot be checked.

  4. Machines check machines, humans check meaning

    Agents' claims are never evidence; reviewers check what gates cannot.

  5. Gate integrity

    Final commit, full suite, live references. Light green is not green.

  6. Ratchet, do not big-bang

    Debt shrinks monotonically; quality floors only rise.

  7. Serialize scarce, publish in-flight

    Heavy CI, shared files and merges go one at a time; work lives on the remote.

  8. Least context, least privilege

    A small always-loaded card; rules and skills on demand; narrow tokens.

  9. Traceable end to end

    Issue → change record → tests → commits → PR → release evidence.

  10. Size the process, measure its tax

    Pick an adoption level; track the share of work spent on the process itself.

Components

Agents are interchangeable and read the policy; they run the stages through the kit; the kit calls your existing tools and writes the evidence. Only the profile knows the project.

Purple: governance. Green: the kit. Your toolchain stays as it is; the ledger feeds the learning loop.Swipe sideways to see the whole diagram.

Stages and hard gates

StageGateDone whenIn Notaire
intakeG0 readyIssue exists, states the problem, links its requirementIssue template + Use Case
planG1 specifiedChange record complete; the issue resolves livevalidate-sdlc-plan.sh
redG2 tests fail firstNew tests exist and fail (expect = "fail")mvn / vitest single test, path-scoped
pre-pushG3 verifiedSuite, lint, ratchets, process checkspreflight.sh (+ ratchet, skills lint)
pre-prG3 verifiedFull local pipeline, docs updatedrun_pipeline.sh
mergeG4 reviewedFull CI on the final commit, review resolvedcheck-heavy-ci.sh, archive hygiene
releaseG5 shippedDeployed, smoke-tested, issue closedversion coherence, health smoke

A gate is name · stage · run · expect · required · timeout · paths. expect = "fail" makes the red step of TDD mechanical; paths skips slow gates when nothing they cover changed.

Notaire's profile, the first adopter

.aisdlc/aisdlc.toml (excerpt)
[project]
name = "notaire"
policy = "CONSTITUTION.md"
level = 3                     # fleet: Owner + Foreman + Workers

[[gates]]
name = "OpenSpec plans conform (live issue check)"
stage = "plan"
run = "bash workspace/sdlc/validate-sdlc-plan.sh"

[[gates]]
name = "backend test fails"
stage = "red"
run = "mvn -q -B test -pl backend-api -Dtest={test}"
expect = "fail"
paths = ["backend-api/src/test/**"]

[[gates]]
name = "heavy CI green on the PR head"
stage = "merge"
run = "bash workspace/sdlc/check-heavy-ci.sh {pr}"

[[ratchets]]
name = "ArchUnit hexagon baseline (R1–R6)"
kind = "baseline"
file = "backend-api/src/test/resources/architecture/hexagon-baseline.txt"
Getting started in any repository
$ cp -R framework/ai-sdlc your-repo/tools/ai-sdlc$ python3 tools/ai-sdlc/bin/aisdlc init --name shop --level 2  created  .aisdlc/agents/foreman.md  …  created  aisdlc.toml$ python3 tools/ai-sdlc/bin/aisdlc doctor  WARN   gate red/new test fails is a placeholder  WARN   gate pre-push/test suite is a placeholderdoctor: shop · level 2 · 7 gates in 3 stages · 0 ratchets · 4 roles — OK (0 errors, 4 warnings)$ python3 tools/ai-sdlc/bin/aisdlc gate pre-push --base HEAD~1  PASS  commit subjects (exit 0, 0.1s)  TODO  test suite — placeholder; configure its command in the profilestage pre-push: PASSED
Real output, abridged. Python 3.11+ and git are the only requirements; placeholders show as TODO, never as a pass.

The kit

CommandDoes
aisdlc init --name N --level LScaffold policy, agent card, AGENTS.md, profile, role agents
aisdlc doctorValidate the profile; warn on placeholders and what the level lacks
aisdlc gate <stage>Run the stage's gates by exit code; path-scoped; one ledger record
aisdlc ratchetBaselines may not grow against the base; floors must hold
aisdlc change new | checkBuilt-in change records with a live issue check
aisdlc skills · budget · commits · tddCatalog lint, context budget, commit subjects, tests with code
aisdlc report · costGate pass rates and durations; token cost per model and agent

Exit 0 passed, 1 a gate or check failed, 2 usage or configuration error. Nothing an agent says counts.

Adoption levels

Pick the level from how many agents work at once and how much runs without a human.Swipe sideways to see the whole diagram.
L1

Guided · One developer with an assistant

Policy, card, profile, change records, plan and pre-push gates

L2

Gated · Small team; agents write most code

Red gates, ratchets, CI mirror, evidence report

L3

Fleet · Parallel agents, one human Owner

Roles with a merge rule, merge gate, serialization, claims, continuous publication

L4

Autonomous · Bounded autonomous runs

Release gate, cost prices, harness-owned ledgers, measured autonomy

The learning loop

Every incident is asked one question: can a command detect it? If yes, it becomes a gate.Swipe sideways to see the whole diagram.

What is not proven yet

  • Adoption by a second real project and team (the kit is validated on Notaire, a fresh repository and four example stacks).
  • Whether near-zero human review time is safe for high-risk changes; the merge rule may need a risk threshold.
  • Real cost per merged change: aisdlc cost exists, but no harness records tokens yet.