{
 "schema": 1,
 "updated": "2026-10-16",
 "house": "machinebehavior.io",
 "source": "The public copy of the seats file of the house (seat, title, holder, areas, and bundle), plus the machinery and the gates of each seat, listed by hand until a bundle manifest exists. The local cockpit is planned to read the private file; this page renders the public copy. No private field.",
 "where": {
  "site gate": "runs in the deploy gate of this site on every push to main; a failing check keeps the previous build live",
  "module repository": "runs in the continuous integration of the CTO powersuit repository on every change",
  "pre-push": "runs on the holder's machine before every push, with data that never leaves it",
  "module": "ships with the named module and runs in the deploy gate of a repository that has fitted it; this site's gate does not run it",
  "policy": "a rule the holder follows by hand; its enforcement is an open item where one is named"
 },
 "seats": [
  {
   "seat": "ceo",
   "title": "Chief executive",
   "holder": "Stefan Coetzee",
   "areas": ["direction"],
   "bundle": null,
   "lens": ["Does it move the house toward the stated goal, and what does it displace?", "Which decision does it wait on, and how old is that decision?", "Which area is rising or stuck, and who holds it?"],
   "machinery": [
    {"name": "direction", "what": "A weekly review that reads the tracker across all areas and writes the memo: what moved, what is blocked, the allocation of the week, and the decisions needed. A confirmed decision becomes a tracker item."},
    {"name": "decisions", "what": "Requests for comments, numbered decision records with supersede links, and a review of the decision log."},
    {"name": "cockpit", "what": "The queue of items that wait on the holder, one scorecard per area, and the trend: 14 days on the public cockpit, 12 weeks on the local one."}
   ],
   "gates": [
    {"check": "direction.review-memo", "where": "module", "what": "Every review memo names its date and period, carries the four sections, and gives every decision a status."},
    {"check": "decisions.adr-fields", "where": "module", "what": "Every decision record has a status, an owner, and a date. The decision records of this site live in its docs tree."}
   ]
  },
  {
   "seat": "cto",
   "title": "Chief AI and technology officer",
   "holder": "Stefan Coetzee",
   "areas": ["delivery", "operations", "security", "ai"],
   "bundle": null,
   "lens": ["Does it keep the platform shippable, observable, and safe?", "Which gate catches it, and does the gate have fixtures?", "Who owns it after the hand-over?"],
   "machinery": [
    {"name": "sdlc", "what": "The lifecycle of a change: tickets, a change review on every pull request, a test strategy, and a release with a rollback plan."},
    {"name": "gate", "what": "The deploy gate: rules with pass and fail fixtures, run records, and a deploy job that waits for the gate."},
    {"name": "docs", "what": "Pages with an owner and review dates, runbooks, a sweep for stale pages, and a health page that lists the pages past review."},
    {"name": "observability and reliability", "what": "Dashboards as code, alert routes, availability targets per service, a status page, incidents, and postmortems."},
    {"name": "security and compliance", "what": "Workflow steps pinned to a commit and limited to an owner allowlist, a secrets scan, an access review, threat models, a quarantine for third-party text, a control map by clause number, and the legal baseline of a site."},
    {"name": "ai-ops and red-team", "what": "A shared harness for coding agents with narrow permissions, spend metered per request, a coordinator pattern, and pressure tests with a known right answer."}
   ],
   "gates": [
    {"check": "actions.pinned", "where": "site gate", "what": "Every workflow step from outside the repository is pinned to a full commit."},
    {"check": "actions.owners", "where": "site gate", "what": "Every workflow step comes from an owner on the allowlist."},
    {"check": "deploy.gated", "where": "site gate", "what": "The deploy job waits for the gate; a failing check keeps the previous build live."},
    {"check": "gate checks against fixtures", "where": "module repository", "what": "Every gate check of every module passes its pass fixture and fails its fail fixture."},
    {"check": "release metadata", "where": "module repository", "what": "Every changed module raises its version, and the changelog names the release."},
    {"check": "sdlc.traceability", "where": "module", "what": "Every change names a ticket or a decision. On this site, the pull request title carries the issue or the decision."},
    {"check": "docs review fields", "where": "policy", "what": "Every page of the docs tree carries an owner and review dates; the health page lists the pages past review. A gate check on the fields is an open decision (issue 27)."},
    {"check": "security.secrets", "where": "module", "what": "No secret pattern in a tracked file."},
    {"check": "reliability.service-catalog", "where": "module", "what": "Every service has an owner, an availability target, and a runbook."},
    {"check": "observability.alert-routes", "where": "module", "what": "Every alert rule names a route and a runbook."},
    {"check": "compliance.security-txt", "where": "policy", "what": "The security contact file exists and has not expired. This site has none yet (issue 12)."},
    {"check": "compliance.no-third-party", "where": "policy", "what": "No page loads a file from a third party (decision record ADR-0010 of this site). The module's check is not in this site's gate."},
    {"check": "ai-ops.agent-settings", "where": "module", "what": "The shared agent settings carry no secret and no wildcard permission."},
    {"check": "red-team.run-records", "where": "module", "what": "Every pressure-test run names the expected and the observed decision."}
   ]
  },
  {
   "seat": "cfo",
   "title": "Chief financial officer",
   "holder": "Stefan Coetzee",
   "areas": ["money"],
   "bundle": null,
   "lens": ["What does it cost, and over which period?", "What cash does it need, and when?", "Is every figure dated and sourced?"],
   "machinery": [
    {"name": "finops", "what": "A cost baseline from invoices and billing exports, showback per team or service, unit costs, an audit of the tool stack, and a cost export in one open format."},
    {"name": "FinOps space", "what": "The public cost pages of the platform, each figure with its period and its source."}
   ],
   "gates": [
    {"check": "finops.cost-provenance", "where": "module", "what": "Every cost figure on a page carries a date range and a source. The cost pages of this site follow the rule by hand."}
   ]
  },
  {
   "seat": "chro",
   "title": "Chief human resources officer",
   "holder": "Stefan Coetzee",
   "areas": ["people"],
   "bundle": null,
   "lens": ["Who does it, and who learns it?", "Which signal in the loop shows it, and where is the rubric?", "Who takes it over, and is that in writing?"],
   "machinery": [
    {"name": "hiring", "what": "An interview loop in which each stage collects one signal, rubrics with anchored levels, debriefs with evidence before votes, and the profile of the next platform owner."},
    {"name": "handover", "what": "Training checklists per module, exit criteria, and a test plan that shows the new owner runs the platform from the docs alone."}
   ],
   "gates": [
    {"check": "hiring.rubric-anchors", "where": "module", "what": "Every rubric dimension has anchored levels."},
    {"check": "handover.module-owners", "where": "module", "what": "Every installed module has a named owner."}
   ]
  },
  {
   "seat": "publisher",
   "title": "Publisher",
   "holder": "Stefan Coetzee",
   "areas": ["ai", "knowledge"],
   "bundle": null,
   "lens": ["Does it reach the audience, and through which surface?", "Does it pass the editorial standards and the site gate?", "Which claim on it is unverified, and is that labelled?"],
   "machinery": [
    {"name": "aieo", "what": "A plain index for agents, structured data that matches the visible page, a fixed query set probed against AI search engines, and predictions hashed before a page goes live."},
    {"name": "site gate", "what": "The conformity gate on every page of the house's sites, with its history in the open."},
    {"name": "change review", "what": "An advisory review of every pull request by the coding agent, with the pull request as files, no shell, and no network: in the pipeline once it has its key, from the holder's machine until then."},
    {"name": "editorial standards", "what": "The standards on this page: sources and verification, the gates every piece passes, and how corrections are made."}
   ],
   "gates": [
    {"check": "rules.blocking", "where": "site gate", "what": "No service closer, filler idiom, or stage hook in the copy of any page."},
    {"check": "placeholders", "where": "site gate", "what": "No placeholder text on any page."},
    {"check": "site.consistency", "where": "site gate", "what": "A canonical link on every page, root-absolute links only, and every page in the sitemap."},
    {"check": "predictions.hashes", "where": "site gate", "what": "Every prediction file matches its recorded hash."},
    {"check": "private.terms", "where": "pre-push", "what": "A push that adds a private term stops on the holder's machine; the site gate runs the same check as a dry run only, with the list kept off the repository (issue 63)."},
    {"check": "approval", "where": "policy", "what": "The holder approves every change and merges it, or gives one session the go to merge it; no session merges without that go. Closing the merge path to sessions in the shared settings is an open item (issue 51)."}
   ]
  },
  {
   "seat": "cko",
   "title": "Chief knowledge officer",
   "holder": "Stefan Coetzee",
   "areas": ["knowledge"],
   "bundle": null,
   "lens": ["Does the corpus hold it, and can an agent find it?", "Which atom is stale or missing?", "Did it come from outside, and did it go through the quarantine?"],
   "machinery": [
    {"name": "vault", "what": "A plain-Markdown knowledge base with keyword and semantic search served to the coding agent, seeded from an interview, and fed by a skill that turns documents into linked one-idea notes."},
    {"name": "quarantine", "what": "Third-party text goes into a store outside every indexed folder; a local model with no tools returns a summary and never the raw text."},
    {"name": "library", "what": "The catalog of files and works in the local cockpit, rescanned on demand."},
    {"name": "docs review sweep", "what": "Stale pages found, checked against the system they describe, and dated again only after that check."}
   ],
   "gates": [
    {"check": "vault.private-boundary", "where": "module", "what": "Private folders and notes are never indexed, never returned, and refused on read."},
    {"check": "knowledge.freshness", "where": "site gate", "what": "The pages imported from the knowledge base carry at least one date, and the newest is within 90 days; the gate reports the result and does not block on it."}
   ]
  }
 ]
}
