{
  "_comment": [
    "The seat roster, the alias map, and the retired seats with the reason each was retired.",
    "CLAUDE.md's seat table GOVERNS. This file must agree with it, and tests/test_role_cards.py",
    "fails if the two drift apart. roles/README.md holds a third copy and is not a source for",
    "this file. The claim that its live table listed seven retired seats as live was retracted",
    "in CLAUDE.md on 2026-09-10; that table named one retired seat, in a Replaces clause.",
    "SEVEN seats are live since 2026-09-19, when the Owner added the WATCHDOG seat. It watches",
    "another seat work and files findings; it does not do the work it watches, and it is NOT a",
    "renamed Regulator -- a Regulator attributes ONE red check and exits, while a Watchdog",
    "observes a seat over time and writes about the method rather than the check.",
    "SIX seats are live since 2026-09-16, when the Owner added the SPECIAL seat. It holds work",
    "that falls outside the five standing seats, and it is the only seat that does NOT announce or",
    "declare on arrival: it reads COMMON.md and stands by until the Owner instructs it.",
    "An unmapped label resolves to NOTHING. The hook never guesses."
  ],

  "live": [
    "manager",
    "builder",
    "regulator",
    "steward",
    "lander",
    "special",
    "watchdog"
  ],

  "_aliases_comment": [
    "Observed and near-miss spellings, collapsed onto the canonical seat. A canonical name is",
    "never a key here: it resolves to itself. Numbered spellings exist because several sessions",
    "hold the same seat at once and the number was appended to tell them apart, which turned one",
    "seat into eight labels and made grouping by seat impossible."
  ],
  "aliases": {
    "builder1": "builder",
    "builder2": "builder",
    "builder3": "builder",
    "builder-1": "builder",
    "builder-2": "builder",
    "builder-3": "builder",
    "build": "builder",
    "lander1": "lander",
    "lander-1": "lander",
    "land": "lander",
    "landing": "lander",
    "regulator1": "regulator",
    "regulator-1": "regulator",
    "reg": "regulator",
    "steward1": "steward",
    "steward-1": "steward",
    "stewart": "steward",
    "manager1": "manager",
    "manager-1": "manager",
    "mgr": "manager",
    "owner-manager": "manager",
    "special1": "special",
    "special2": "special",
    "special-1": "special",
    "special-2": "special",
    "specials": "special",
    "adhoc": "special",
    "ad-hoc": "special",
    "watchdog1": "watchdog",
    "watchdog2": "watchdog",
    "watchdog-1": "watchdog",
    "watchdog-2": "watchdog",
    "watch": "watchdog",
    "watcher": "watchdog",
    "wd": "watchdog"
  },

  "_retired_comment": [
    "A retired label resolves to NO CARD, and the hook says it was retired rather than staying",
    "silent. Silence would send the reader looking for a card that was deliberately removed.",
    "Their playbooks stay in roles/retired/ as the record of what each seat did.",
    "Nothing replaced the PM, the Cleaner, the Role manager, the Process improvement seat, the ASVS",
"Tracker or the seat retired on 2026-09-12, which this roster deliberately leaves unnamed. A pull request merges on its two required gates, with no review step",
    "ahead of it.",
"EVERY observed spelling of a retired seat gets its own row, because an alias must land on",
    "a LIVE seat.",
    "A spelling left out resolves to MATCHES NO SEAT, which reads as a typo rather than as a",
    "roster fact, so the reader never learns the seat was retired.",
    "A retirement reason NAMES A DIFFERENCE rather than only the successor. A bare replacement",
    "line leaves substitution as the obvious next move: a Manager read one as rename-the-word and",
    "went looking for a spawn grant its subagents do not need."
  ],
  "retired": {
    "reviewer": "Retired 2026-09-12 by owner decision. Nothing replaced it. The review gate it fed lost its teeth on 2026-09-04, when the owner dropped the reviewed label as a required check, so a pull request now merges on gates (ubuntu-latest) and gates (windows-latest) alone. Do not add a review step back, and do not hold a pull request waiting for one.",
    "reviewer1": "Retired 2026-09-12 by owner decision. A numbered spelling of reviewer. Nothing replaced it. See the reviewer row.",
    "reviewer2": "Retired 2026-09-12 by owner decision. A numbered spelling of reviewer. Nothing replaced it. See the reviewer row.",
    "reviewer-1": "Retired 2026-09-12 by owner decision. A numbered spelling of reviewer. Nothing replaced it. See the reviewer row.",
    "review": "Retired 2026-09-12 by owner decision. A spelling of reviewer. Nothing replaced it. See the reviewer row.",
    "reviewers": "Retired 2026-09-12 by owner decision. A plural spelling of reviewer. Nothing replaced it. See the reviewer row.",
    "console": "Retired 2026-09-10 by owner decision. The MANAGER replaces it, and is NOT a renamed Console: a Manager sits inside ONE account, several run at once, and its workers can be subagents in its own process, for which it needs NO spawn grant. Broad oversight across every account is the part that did not work. Do not substitute the word and carry the old rules over.",
    "console1": "Retired 2026-09-10 by owner decision. A numbered spelling of console. See the console row for what the Manager does differently.",
    "console-1": "Retired 2026-09-10 by owner decision. A numbered spelling of console. See the console row for what the Manager does differently.",
    "consul": "Retired 2026-09-10 by owner decision. A spelling of console. See the console row for what the Manager does differently.",
    "dispatcher": "Retired 2026-09-01. The Console replaced it, and the Console itself retired 2026-09-10. The Manager now reads the record, picks the work and runs a Builder.",
    "liaison": "Retired 2026-09-01. The Console replaced it, and the Console itself retired 2026-09-10. The Manager is the seat the Owner talks to.",
    "pm": "Retired 2026-09-01 by Owner decision. Nothing replaced it.",
    "project-manager": "Retired 2026-09-01 by Owner decision. Nothing replaced it. See roles/retired/PM.md.",
    "cleaner": "Retired 2026-09-01 by Owner decision. Nothing replaced it.",
    "role-manager": "Retired 2026-09-01 by Owner decision. Nothing replaced it.",
    "process-improvement": "Retired 2026-09-01 by Owner decision. Nothing replaced it.",
    "asvs-tracker": "Retired 2026-09-01 by Owner decision. Nothing replaced it. See roles/retired/ASVS-TRACKER.md.",
    "asvs-monitor": "Retired 2026-09-01 by Owner decision. Nothing replaced it. Renamed from ASVS Monitor to ASVS Tracker on 2026-08-13; see the asvs-tracker row and roles/retired/ASVS-TRACKER.md."
  }
}
