{
  "version": 1,
  "generatedAt": "2026-08-20T08:04:26.444Z",
  "staleAfterHours": 30,
  "freshnessNote": "These findings describe the roadmap as it was at generatedAt, not as it is now. Compute the age before quoting the counts: anything filed since that run is invisible to it, and a stale ledger reads exactly like a clean one.",
  "source": "run 32346989832",
  "boardReadable": true,
  "counts": {
    "total": 196,
    "high": 138,
    "medium": 58,
    "low": 0,
    "mechanical": 143,
    "agentic": 53,
    "muted": 1
  },
  "rules": [
    {
      "id": "CLOSED-NOT-RELEASED",
      "title": "Closed issue still parked in an active stage",
      "group": "Board integrity",
      "why": "The board Status is what the roadmap page and the `--auto` lane read as the stage of record. A closed issue sitting in Development makes the lane look busier than it is and hides what actually shipped — the exact drift the 2026-07-11 usage audit caught.",
      "fix": "Set the board Status to Released.",
      "fired": 11
    },
    {
      "id": "OPEN-IN-RELEASED",
      "title": "Open issue the board calls Released",
      "group": "Board integrity",
      "why": "Released is a terminal stage, and under @jwildfire's one-requirement-one-release rule (2026-08-15) nothing is ever open in it on purpose. An open issue at Released is one of exactly three defects: finished work nobody closed, live work filed in the wrong lane, or a requirement whose scope spans more than one release. There is deliberately no label, marker or comment that silences this rule — an escape hatch would restore the ambiguity the rule exists to remove.",
      "fix": "Close it if the work is done; move the stage back if the work is live; split it if it carries scope beyond the release it delivered.",
      "fired": 0
    },
    {
      "id": "UNSTAGED-BOARD-ITEM",
      "title": "Board item with no Status",
      "group": "Board integrity",
      "why": "An item with no Status is on the board but outside the lifecycle: it appears in no stage lane, the roadmap page has to call it \"Unstaged\", and the `--auto` selector cannot reason about it.",
      "fix": "Set the Status the evidence supports — Released if it is closed, otherwise the stage its PRs and design artifacts imply.",
      "fired": 48
    },
    {
      "id": "OFF-BOARD-REQUIREMENT",
      "title": "Hub issue missing from the board",
      "group": "Board integrity",
      "why": "The obot Roadmap project is the stage tracker for hub work. An issue that never got added is invisible to the stage lanes, to the roadmap page's stage grouping, and to any review that starts from the board — which is how a burst of promoted ideas can vanish the day after it is filed. The population deliberately does not depend on the `requirement` label: #189–#193 were filed with `infrastructure` and `ai`, sat off the board, and a label-gated rule could not have named them even on a fresh run (#201).",
      "fix": "Add it to the project and give it a Status.",
      "fired": 30
    },
    {
      "id": "BOARD-DUPLICATE",
      "title": "Same issue on the board twice",
      "group": "Board integrity",
      "why": "Duplicate items double-count a requirement in every stage tally and let two copies hold different Statuses, so the board contradicts itself. One appeared during the #53 goal migration and had to be removed by hand.",
      "fix": "Remove the extra items, keeping the one that carries a Status.",
      "fired": 0
    },
    {
      "id": "CLOSED-PARENT-OPEN-SUBS",
      "title": "Closed parent with open sub-issues",
      "group": "Hierarchy",
      "why": "Sub-issues are the canonical task tracker for a requirement, so a closed parent asserts its children are finished. When they are not, the remaining work is orphaned — visible on no requirement, in no stage, and to nobody. (@jwildfire named this one as the founding example of the audit.)",
      "fix": "Close the children that are actually done; move genuine follow-on scope to a follow-up requirement — the #30 → #88 precedent — or reopen the parent.",
      "fired": 0
    },
    {
      "id": "SUBS-DONE-PARENT-OPEN",
      "title": "All sub-issues closed, parent still open",
      "group": "Hierarchy",
      "why": "When every task under a requirement is closed the requirement is done being built; leaving it open in an earlier stage means the board understates progress and the review queue never surfaces it.",
      "fix": "Move it to Review, or close it if it has already sat in Review.",
      "fired": 15
    },
    {
      "id": "GOALLESS-REQUIREMENT",
      "title": "Open requirement under no goal",
      "group": "Hierarchy",
      "why": "Since #53 goals are hub issues and membership is the sub-issue link — nothing else. Membership is inherited, so a requirement nested under another requirement still belongs to that requirement’s goal; only an issue with no goal anywhere up its parent chain belongs to no standing direction, never appears on a goal page, and can never be picked up by an autonomous session selecting by goal.",
      "fix": "Link it under the goal it serves, or state why it is deliberately standalone.",
      "fired": 31
    },
    {
      "id": "UNTRACKED-TASK",
      "title": "Hub issue in no structure at all",
      "group": "Hierarchy",
      "why": "The hub has exactly three ways an issue is visible: the `requirement` label puts it on the roadmap page, a sub-issue link puts it on a goal page, and a board item puts it in a stage lane. An issue with none of the three is filed and then invisible — it will be found again only by accident.",
      "fix": "Link it under the goal or requirement it belongs to, or promote it to a requirement.",
      "fired": 0
    },
    {
      "id": "GOAL-NO-MEMBERS",
      "title": "Goal with no member requirements",
      "group": "Hierarchy",
      "why": "A goal exists to group work and to give an autonomous session something to select from. With no sub-issues it is a statement of intent the machinery cannot act on.",
      "fix": "Link the requirements that serve it, or retire the goal.",
      "fired": 0
    },
    {
      "id": "GOAL-BOARD-INCONSISTENT",
      "title": "Goals inconsistently placed on the board",
      "group": "Hierarchy",
      "why": "Goals are permanent and do not move through the requirement stages, so a goal on the delivery board is an item with no stage it can ever reach. @jwildfire settled the convention on 2026-08-15 (audit decision R3-a): goals are not board items. They are surfaced by the goal pages and the hierarchy view, which are the better surfaces for something that never finishes.",
      "fix": "Take the goal off the board. Nothing is deleted — the goal issue and its sub-issue links are untouched.",
      "fired": 0
    },
    {
      "id": "MERGED-PR-OPEN-TARGET",
      "title": "Merged PR whose closing target is still open",
      "group": "Linkage",
      "why": "GitHub only auto-closes an issue when the PR is in the same repository. Cross-repo `Closes` lines — the norm here, where implementation PRs live in spoke repos and requirements live in the hub — merge silently without closing anything.",
      "fix": "Close the referenced issue.",
      "fired": 0
    },
    {
      "id": "OPEN-PR-CLOSED-TARGET",
      "title": "Open PR against an already-closed issue",
      "group": "Linkage",
      "why": "Either the branch is stale work that should be dropped, or the issue was closed while its implementation was still in review. Both are worth knowing; neither resolves itself.",
      "fix": "Close the PR, or reopen the issue.",
      "fired": 0
    },
    {
      "id": "PR-NO-REQUIREMENT",
      "title": "Open PR with no requirement link",
      "group": "Linkage",
      "why": "The Issue–PR Link Convention exists so a merge closes its requirement and the roadmap page can show which requirement a PR is moving. An unlinked PR is invisible to both.",
      "fix": "Add the closing reference to the requirement or task it implements.",
      "fired": 0
    },
    {
      "id": "REQUIREMENT-LABEL-MISSING",
      "title": "Requirement-titled issue without the `requirement` label",
      "group": "Conventions",
      "why": "Every generator selects requirements by label. An issue titled \"Requirement: …\" without the label is absent from the roadmap page, the stage tallies and the goal pages — present on GitHub, missing from the project.",
      "fix": "Add the `requirement` label.",
      "fired": 0
    },
    {
      "id": "ASSIGNEE-MISSING",
      "title": "Tracked issue with no assignee",
      "group": "Conventions",
      "why": "The Assignee Convention puts @jwildfire on every issue the agent files, so his GitHub views (\"assigned to me\") are the same working set the roadmap shows. Unassigned issues fall out of that view.",
      "fix": "Assign @jwildfire.",
      "fired": 39
    },
    {
      "id": "MILESTONE-MISSING",
      "title": "Open requirement with no milestone",
      "group": "Conventions",
      "why": "Milestones are the delivery slot (`backlog`, `2026q3`, `2026q4`) and drive the release-facing views. A requirement with none is unscheduled by omission rather than by decision.",
      "fix": "Set `backlog` for anything not yet scheduled; pick the quarter for work in flight.",
      "fired": 0
    },
    {
      "id": "DESIGN-MISSING",
      "title": "Requirement past Design with no design",
      "group": "Conventions",
      "why": "The lifecycle puts Design before Development for a reason: sub-issues are supposed to be decomposed from it. A requirement in Development whose Design section is empty or \"TBD\" means the decomposition was improvised, and there is nothing for a reviewer or an autonomous session to work from.",
      "fix": "Populate the Design section, or add a design doc under requirements/design/.",
      "fired": 2
    },
    {
      "id": "APPROVAL-UNRESOLVED",
      "title": "Requirement claims an approval that does not resolve",
      "group": "Conventions",
      "why": "A requirement written by an agent must not be able to authorise what only @jwildfire can authorise (#215). `Approved by` therefore holds a citation that resolves — a decision id whose artifact records his words, or a native review — and never prose. An unresolvable citation is the exact failure this convention exists to stop: something claims his approval and cannot show it, and the next agent to read it will act on it. On 2026-08-16 one did, and prepared to delete files on the strength of a requirement its own supervisor had written.",
      "fix": "Resolve it or remove it: `node scripts/provenance.mjs resolve <citation>` says why it fails. If he has not decided, the honest value is `EMPTY` — nothing is blocked by writing it.",
      "fired": 0
    },
    {
      "id": "PROVENANCE-MISSING",
      "title": "Requirement filed without saying who wrote it or who approved it",
      "group": "Conventions",
      "why": "Every requirement filed since 2026-08-18 carries a provenance block: who authored it, and who approved it or `EMPTY` (#215). The empty value is the point — a missing field reads as an oversight and invites the next reader to assume, and an explicit \"nobody has approved this\" reads as a fact and invites them to check. Requirements filed before that date are out of scope here and counted instead in reports/requirement-provenance/, because rewriting 75 existing bodies to say something different about his own review is not a change an agent makes unattended.",
      "fix": "Add the block at the foot of the body: `node scripts/provenance.mjs stamp <number>` prints it.",
      "fired": 20
    },
    {
      "id": "AUTO-DRAFT-CONFLICT",
      "title": "Issue labelled both `auto` and `draft`",
      "group": "Conventions",
      "why": "The two labels are opposites: `auto` means the #18 implementation-ready criteria are met and an autonomous session may take it; `draft` means it needs @jwildfire's steering first. Carrying both means the `--auto` selector may pick up work that was explicitly gated.",
      "fix": "Keep whichever the issue actually satisfies and drop the other.",
      "fired": 0
    },
    {
      "id": "HARD-WRAPPED-BODY",
      "title": "Issue body hard-wrapped mid-paragraph",
      "group": "Conventions",
      "why": "GitHub renders a single newline as a line break, so a body wrapped at 80 columns arrives as ragged half-lines. @jwildfire's standing instruction is one line per paragraph or bullet in anything posted to GitHub.",
      "fix": "Rewrap the body to one line per paragraph.",
      "fired": 1
    },
    {
      "id": "PROMOTED-IDEA-OPEN",
      "title": "Promoted idea thread still open",
      "group": "Conventions",
      "why": "Triage closes a thread as resolved when it becomes an issue; that closure is what keeps the Ideas board an inbox rather than an archive. A promoted thread left open keeps showing up as un-triaged work.",
      "fix": "Close the discussion as resolved.",
      "fired": 0
    },
    {
      "id": "STALLED-IN-FLIGHT",
      "title": "In-flight requirement that stopped moving",
      "group": "Conventions",
      "why": "Development and Review are lanes for work happening now. A requirement that has not been touched in two weeks, with no open PR behind it, is parked — and while it sits in an active lane it crowds out the real front line on every view of the roadmap.",
      "fix": "Park it back at Backlog. Dragging it forward on the board is how you say it is live again.",
      "fired": 0
    }
  ],
  "findings": [
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 181,
        "title": "Requirement: Navigator phase 2 — working-set verification (split from #157)",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/181"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 181,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#181",
      "fingerprint": "9c75c22cd68d",
      "firstSeen": "2026-08-16",
      "lastSeen": "2026-08-20",
      "runs": 5,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 195,
        "title": "Requirement: the Navigator as operating officer — asks become requirements, and delivery is judged at closeout",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/195"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 195,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#195",
      "fingerprint": "6fd60fa39dfd",
      "firstSeen": "2026-08-16",
      "lastSeen": "2026-08-20",
      "runs": 5,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 200,
        "title": "Requirement: roadmap discipline is measured — the sweep checks all seven repos, and the audit stops reporting stale",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/200"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 200,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#200",
      "fingerprint": "0927e1ca4c4a",
      "firstSeen": "2026-08-16",
      "lastSeen": "2026-08-20",
      "runs": 5,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 205,
        "title": "Requirement: a real \"since you last looked\" — record page views locally, or say plainly that we cannot",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/205"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 205,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#205",
      "fingerprint": "b3000d299fc5",
      "firstSeen": "2026-08-16",
      "lastSeen": "2026-08-20",
      "runs": 5,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 206,
        "title": "Requirement: the priced usage artifact refreshes on a cadence, or every surface says how old it is",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/206"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 206,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#206",
      "fingerprint": "dc3d4c59cbc5",
      "firstSeen": "2026-08-16",
      "lastSeen": "2026-08-20",
      "runs": 5,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 212,
        "title": "Requirement: a worker that stops — finished, stalled or dead — wakes the Navigator",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/212"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 212,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#212",
      "fingerprint": "554b398db15f",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 215,
        "title": "Requirement: a requirement says whose decision it carries — an agent's inference must not read as his approval",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/215"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 215,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#215",
      "fingerprint": "4261cd98200c",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 218,
        "title": "Requirement: the dashboard reads like a news feed, not an audit log — rebuild the sessions and Navigator pages",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/218"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 218,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#218",
      "fingerprint": "63d227611bb1",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 220,
        "title": "Requirement: his queue holds exactly three buckets — RC, decision, config — and the remainder is ours",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/220"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 220,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#220",
      "fingerprint": "536f39ac0077",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 223,
        "title": "Requirement: every surface renders honestly on a machine with no history — before the move, not after",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/223"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 223,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#223",
      "fingerprint": "fe8b24f25f12",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 227,
        "title": "Requirement: the dashboard's two views, literally — a session table with filters, and a filterable metrics dashboard",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/227"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 227,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#227",
      "fingerprint": "b9462f67bf26",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 229,
        "title": "Requirement: adversarial review of safetyCensus() — does it stay or go, before v1.1.0 publishes",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/229"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 229,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#229",
      "fingerprint": "983580c6f06a",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 234,
        "title": "Requirement: one-off tasks — a small fix files against its goal, without a requirement to justify it",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/234"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 234,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#234",
      "fingerprint": "2010a9094885",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 236,
        "title": "Requirement: the admiral — a triggered manager, so finished work stops sitting and nobody has to remember to look",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/236"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 236,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#236",
      "fingerprint": "f06ee1c8ee07",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 238,
        "title": "Requirement: the morning fold, and the briefing it produces",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/238"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 238,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#238",
      "fingerprint": "79452d8b29e6",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 239,
        "title": "Requirement: the weekly briefing — the sink that keeps the daily at nine lines",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/239"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 239,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#239",
      "fingerprint": "bd825ce2bc56",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 240,
        "title": "Requirement: the session skills the fold replaces — one retirement, five re-homings, and the notes that say so",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/240"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 240,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#240",
      "fingerprint": "78a9590a2022",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 241,
        "title": "Requirement: an answer you clicked that nothing applied has to reach someone",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/241"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 241,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#241",
      "fingerprint": "b1b9b78bdb46",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 242,
        "title": "Requirement: does the briefing get read aloud — and at what cost to the words",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/242"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 242,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#242",
      "fingerprint": "b81fcd684107",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 243,
        "title": "Requirement: merging is not deploying — the checkout tracks main, and consumers restart when it moves",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/243"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 243,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#243",
      "fingerprint": "1ab5ad008be2",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 251,
        "title": "Requirement: a kill this house reports is a kill it confirmed — the liveness anchor reports success while the session survives",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/251"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 251,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#251",
      "fingerprint": "6cdad9819490",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 252,
        "title": "Requirement: nobody can write to the board — the App is forbidden and the guard denies the only credential that works",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/252"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 252,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#252",
      "fingerprint": "4bda2fc3d4c4",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 256,
        "title": "Requirement: work that never reached GitHub is invisible to every check we run",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/256"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 256,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#256",
      "fingerprint": "64c5b5fbf482",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 257,
        "title": "Requirement: a thing he asked for has a delivery state, and something notices when it goes quiet",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/257"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 257,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#257",
      "fingerprint": "099b6e6b4e43",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 260,
        "title": "Requirement: git pushes and commits still go out as him — the lane no token fixes",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/260"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 260,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#260",
      "fingerprint": "8efa5ecf198d",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 261,
        "title": "Requirement: the highest-authority file the agents read has no owner, no history and no review path",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/261"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 261,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#261",
      "fingerprint": "2c41bf440b35",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 263,
        "title": "Requirement: config items are short local artifacts he can decide from, not a field form",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/263"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 263,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#263",
      "fingerprint": "329540803f2d",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 264,
        "title": "Requirement: a config item's claim is checked on a cadence, not asserted on the day it was filed",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/264"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 264,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#264",
      "fingerprint": "0b472099abb0",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 265,
        "title": "Requirement: he answers a decision from the car, by voice, without a screen or an issue number",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/265"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 265,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#265",
      "fingerprint": "63322e606dcb",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 266,
        "title": "Requirement: a decision artifact notices when its own premise expires",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/266"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 266,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#266",
      "fingerprint": "cd9a19fcd96f",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 267,
        "title": "Requirement: the judge can see the constraints it is judging against",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/267"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 267,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#267",
      "fingerprint": "4667e135dd1d",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 272,
        "title": "Requirement: branch protections, live before any scheduled session runs",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/272"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 272,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#272",
      "fingerprint": "214ebf5ad2ae",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 274,
        "title": "Requirement: SafetyCensus stays and is rebuilt on metrics and reports — design first",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/274"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 274,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#274",
      "fingerprint": "a0f0bb1d8a47",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 275,
        "title": "Requirement: what the fleet spends is measured before it is spent",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/275"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 275,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#275",
      "fingerprint": "cfa31fdef6d5",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 278,
        "title": "Requirement: what comes next is written down — a ranked head, tiers below, before any clock runs",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/278"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 278,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#278",
      "fingerprint": "10d4e7e9c29a",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 279,
        "title": "Requirement: a step-by-step IQ for the new laptop — the chance to fix rather than replicate",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/279"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 279,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#279",
      "fingerprint": "bf87477eaa5d",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 280,
        "title": "Requirement: an open decision artifact has an episode he can answer from a car",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/280"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 280,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#280",
      "fingerprint": "5a6db13e2e4c",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 281,
        "title": "Requirement: safetyGraphics and safetyCharts back on CRAN — remove the Tendril chart",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/281"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 281,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#281",
      "fingerprint": "834215bae459",
      "firstSeen": "2026-08-20",
      "lastSeen": "2026-08-20",
      "runs": 1,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "ASSIGNEE-MISSING",
      "ruleTitle": "Tracked issue with no assignee",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 282,
        "title": "Requirement: the usage analytics run on a cadence, and the page says when it last did",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/282"
      },
      "evidence": [
        "open requirement",
        "no assignee"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Assign @jwildfire.",
        "ops": [
          {
            "op": "assign",
            "repo": "jwildfire/obot.roadmap",
            "number": 282,
            "login": "jwildfire",
            "label": "assign @jwildfire"
          }
        ]
      },
      "id": "ASSIGNEE-MISSING:jwildfire/obot.roadmap#282",
      "fingerprint": "678c454d7d4e",
      "firstSeen": "2026-08-20",
      "lastSeen": "2026-08-20",
      "runs": 1,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "CLOSED-NOT-RELEASED",
      "ruleTitle": "Closed issue still parked in an active stage",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 70,
        "title": "Mark PRs ready for review and request @jwildfire review when ready",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/70"
      },
      "evidence": [
        "issue is CLOSED",
        "board Status is Backlog"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released (currently Backlog).",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg0B95Y",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "CLOSED-NOT-RELEASED:jwildfire/obot.roadmap#70",
      "fingerprint": "d49832f9a3f5",
      "firstSeen": "2026-08-16",
      "lastSeen": "2026-08-20",
      "runs": 5,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "CLOSED-NOT-RELEASED",
      "ruleTitle": "Closed issue still parked in an active stage",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 201,
        "title": "The nightly audit cannot tell a clean night from an unmeasured one, and its off-board rule only sees labelled requirements",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/201"
      },
      "evidence": [
        "issue is CLOSED",
        "board Status is Backlog"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released (currently Backlog).",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2s-O4",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "CLOSED-NOT-RELEASED:jwildfire/obot.roadmap#201",
      "fingerprint": "99f910cbdc31",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "CLOSED-NOT-RELEASED",
      "ruleTitle": "Closed issue still parked in an active stage",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 203,
        "title": "Requirement: one information architecture, two audiences — symmetry between the private dashboard and the public hub",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/203"
      },
      "evidence": [
        "issue is CLOSED",
        "board Status is Backlog"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released (currently Backlog).",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2tFAk",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "CLOSED-NOT-RELEASED:jwildfire/obot.roadmap#203",
      "fingerprint": "83715fee8997",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "CLOSED-NOT-RELEASED",
      "ruleTitle": "Closed issue still parked in an active stage",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 204,
        "title": "Build the roadmap-page spike: three rendered directions and the decision artifact",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/204"
      },
      "evidence": [
        "issue is CLOSED",
        "board Status is Development"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released (currently Development).",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2tFAY",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "CLOSED-NOT-RELEASED:jwildfire/obot.roadmap#204",
      "fingerprint": "ad90b442d410",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "CLOSED-NOT-RELEASED",
      "ruleTitle": "Closed issue still parked in an active stage",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 209,
        "title": "The roadmap page's draft-release dedupe never matches: \\d lost its backslash in a template literal",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/209"
      },
      "evidence": [
        "issue is CLOSED",
        "board Status is Backlog"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released (currently Backlog).",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2tN68",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "CLOSED-NOT-RELEASED:jwildfire/obot.roadmap#209",
      "fingerprint": "1be3a1626283",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "CLOSED-NOT-RELEASED",
      "ruleTitle": "Closed issue still parked in an active stage",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 210,
        "title": "A decision folded into a successor still counts as awaiting him",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/210"
      },
      "evidence": [
        "issue is CLOSED",
        "board Status is Backlog"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released (currently Backlog).",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2tN9I",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "CLOSED-NOT-RELEASED:jwildfire/obot.roadmap#210",
      "fingerprint": "b07e41afba48",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "CLOSED-NOT-RELEASED",
      "ruleTitle": "Closed issue still parked in an active stage",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 211,
        "title": "Requirement: rebuild the roadmap page on D0018 — the queue in front, the catalog behind",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/211"
      },
      "evidence": [
        "issue is CLOSED",
        "board Status is Development"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released (currently Development).",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2tPXw",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "CLOSED-NOT-RELEASED:jwildfire/obot.roadmap#211",
      "fingerprint": "a1ca056fe57e",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "CLOSED-NOT-RELEASED",
      "ruleTitle": "Closed issue still parked in an active stage",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 219,
        "title": "Build the news-feed sessions and Navigator pages — one implementation, not directions",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/219"
      },
      "evidence": [
        "issue is CLOSED",
        "board Status is Development"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released (currently Development).",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2wEu8",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "CLOSED-NOT-RELEASED:jwildfire/obot.roadmap#219",
      "fingerprint": "22b5cd0694c8",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "CLOSED-NOT-RELEASED",
      "ruleTitle": "Closed issue still parked in an active stage",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 221,
        "title": "Retire D0014, D0015 and D0016 and replace them with one readiness assessment for scheduled sessions",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/221"
      },
      "evidence": [
        "issue is CLOSED",
        "board Status is Development"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released (currently Development).",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2wJkA",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "CLOSED-NOT-RELEASED:jwildfire/obot.roadmap#221",
      "fingerprint": "710de807f9c6",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "CLOSED-NOT-RELEASED",
      "ruleTitle": "Closed issue still parked in an active stage",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 224,
        "title": "Hub header: a version number, and a hover that tells the truth about when the page shipped",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/224"
      },
      "evidence": [
        "issue is CLOSED",
        "board Status is Development"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released (currently Development).",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2x19o",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "CLOSED-NOT-RELEASED:jwildfire/obot.roadmap#224",
      "fingerprint": "38cb42931b41",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "CLOSED-NOT-RELEASED",
      "ruleTitle": "Closed issue still parked in an active stage",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 237,
        "title": "Requirement: the org chart — who does what, what each may never do, and which failure created each role",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/237"
      },
      "evidence": [
        "issue is CLOSED",
        "board Status is Development"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released (currently Development).",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2yhOw",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "CLOSED-NOT-RELEASED:jwildfire/obot.roadmap#237",
      "fingerprint": "a653548c4ce9",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 66,
        "title": "Add next/back navigation between safety.viz example pages",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/66"
      },
      "evidence": [
        "labelled `draft`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Backlog.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 66,
            "value": "Backlog",
            "label": "add to the obot Roadmap project at Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#66",
      "fingerprint": "8ce378385445",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 81,
        "title": "Close out safety-histogram fork and remove from roadmap",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/81"
      },
      "evidence": [
        "no labels",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Backlog.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 81,
            "value": "Backlog",
            "label": "add to the obot Roadmap project at Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#81",
      "fingerprint": "305169de2608",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 180,
        "title": "Requirement: the Operations Dashboard — my todo list, with blockers, where I answer decisions",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/180"
      },
      "evidence": [
        "labelled `requirement`, `infrastructure`, `ai`, `ws-surfaces`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Backlog.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 180,
            "value": "Backlog",
            "label": "add to the obot Roadmap project at Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#180",
      "fingerprint": "cfb4add39dd9",
      "firstSeen": "2026-08-16",
      "lastSeen": "2026-08-20",
      "runs": 5,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 181,
        "title": "Requirement: Navigator phase 2 — working-set verification (split from #157)",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/181"
      },
      "evidence": [
        "labelled `requirement`, `ws-officer`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Backlog.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 181,
            "value": "Backlog",
            "label": "add to the obot Roadmap project at Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#181",
      "fingerprint": "06e41dd70dd5",
      "firstSeen": "2026-08-16",
      "lastSeen": "2026-08-20",
      "runs": 5,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 226,
        "title": "Requirement: goal #73 says what it is now — a current body, five workstreams, and a bounded backlog",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/226"
      },
      "evidence": [
        "labelled `requirement`, `infrastructure`, `ws-plan`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Review.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 226,
            "value": "Review",
            "label": "add to the obot Roadmap project at Review"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#226",
      "fingerprint": "69ba094bd4f5",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 238,
        "title": "Requirement: the morning fold, and the briefing it produces",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/238"
      },
      "evidence": [
        "labelled `requirement`, `infrastructure`, `ws-delivery`, `on-deck`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Backlog.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 238,
            "value": "Backlog",
            "label": "add to the obot Roadmap project at Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#238",
      "fingerprint": "ea9f3e96cc84",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 239,
        "title": "Requirement: the weekly briefing — the sink that keeps the daily at nine lines",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/239"
      },
      "evidence": [
        "labelled `requirement`, `infrastructure`, `ws-delivery`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Backlog.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 239,
            "value": "Backlog",
            "label": "add to the obot Roadmap project at Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#239",
      "fingerprint": "a0f07ef93b40",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 240,
        "title": "Requirement: the session skills the fold replaces — one retirement, five re-homings, and the notes that say so",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/240"
      },
      "evidence": [
        "labelled `requirement`, `infrastructure`, `ws-sessions`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Backlog.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 240,
            "value": "Backlog",
            "label": "add to the obot Roadmap project at Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#240",
      "fingerprint": "f254dca101bf",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 241,
        "title": "Requirement: an answer you clicked that nothing applied has to reach someone",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/241"
      },
      "evidence": [
        "labelled `requirement`, `infrastructure`, `on-deck`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Backlog.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 241,
            "value": "Backlog",
            "label": "add to the obot Roadmap project at Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#241",
      "fingerprint": "1afca320f164",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 242,
        "title": "Requirement: does the briefing get read aloud — and at what cost to the words",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/242"
      },
      "evidence": [
        "labelled `requirement`, `infrastructure`, `ws-delivery`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Backlog.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 242,
            "value": "Backlog",
            "label": "add to the obot Roadmap project at Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#242",
      "fingerprint": "5e31080f8613",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 246,
        "title": "Requirement: what the machine may say about itself in public — session names and draft-release titles",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/246"
      },
      "evidence": [
        "labelled `requirement`, `infrastructure`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Backlog.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 246,
            "value": "Backlog",
            "label": "add to the obot Roadmap project at Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#246",
      "fingerprint": "c4dfc6d63c30",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 251,
        "title": "Requirement: a kill this house reports is a kill it confirmed — the liveness anchor reports success while the session survives",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/251"
      },
      "evidence": [
        "labelled `requirement`, `infrastructure`, `top10`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Review.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 251,
            "value": "Review",
            "label": "add to the obot Roadmap project at Review"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#251",
      "fingerprint": "8f88b3fa3fc4",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 252,
        "title": "Requirement: nobody can write to the board — the App is forbidden and the guard denies the only credential that works",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/252"
      },
      "evidence": [
        "labelled `requirement`, `infrastructure`, `on-deck`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Development.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 252,
            "value": "Development",
            "label": "add to the obot Roadmap project at Development"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#252",
      "fingerprint": "97a90e0de3bc",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 256,
        "title": "Requirement: work that never reached GitHub is invisible to every check we run",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/256"
      },
      "evidence": [
        "labelled `requirement`, `infrastructure`, `top10`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Review.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 256,
            "value": "Review",
            "label": "add to the obot Roadmap project at Review"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#256",
      "fingerprint": "690a6a171218",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 257,
        "title": "Requirement: a thing he asked for has a delivery state, and something notices when it goes quiet",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/257"
      },
      "evidence": [
        "labelled `requirement`, `infrastructure`, `on-deck`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Backlog.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 257,
            "value": "Backlog",
            "label": "add to the obot Roadmap project at Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#257",
      "fingerprint": "f70408480968",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 260,
        "title": "Requirement: git pushes and commits still go out as him — the lane no token fixes",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/260"
      },
      "evidence": [
        "labelled `requirement`, `infrastructure`, `top10`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Review.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 260,
            "value": "Review",
            "label": "add to the obot Roadmap project at Review"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#260",
      "fingerprint": "01b7583e6e7d",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 261,
        "title": "Requirement: the highest-authority file the agents read has no owner, no history and no review path",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/261"
      },
      "evidence": [
        "labelled `requirement`, `infrastructure`, `on-deck`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Backlog.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 261,
            "value": "Backlog",
            "label": "add to the obot Roadmap project at Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#261",
      "fingerprint": "6c0d7194e36a",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 263,
        "title": "Requirement: config items are short local artifacts he can decide from, not a field form",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/263"
      },
      "evidence": [
        "labelled `requirement`, `infrastructure`, `top10`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Review.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 263,
            "value": "Review",
            "label": "add to the obot Roadmap project at Review"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#263",
      "fingerprint": "797363f96ce4",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 264,
        "title": "Requirement: a config item's claim is checked on a cadence, not asserted on the day it was filed",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/264"
      },
      "evidence": [
        "labelled `requirement`, `infrastructure`, `top10`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Review.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 264,
            "value": "Review",
            "label": "add to the obot Roadmap project at Review"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#264",
      "fingerprint": "82f75e89fa23",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 265,
        "title": "Requirement: he answers a decision from the car, by voice, without a screen or an issue number",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/265"
      },
      "evidence": [
        "labelled `requirement`, `infrastructure`, `on-deck`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Backlog.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 265,
            "value": "Backlog",
            "label": "add to the obot Roadmap project at Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#265",
      "fingerprint": "d87e07a8f7cd",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 266,
        "title": "Requirement: a decision artifact notices when its own premise expires",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/266"
      },
      "evidence": [
        "labelled `requirement`, `infrastructure`, `on-deck`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Review.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 266,
            "value": "Review",
            "label": "add to the obot Roadmap project at Review"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#266",
      "fingerprint": "c4c930a973c1",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 267,
        "title": "Requirement: the judge can see the constraints it is judging against",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/267"
      },
      "evidence": [
        "labelled `requirement`, `infrastructure`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Backlog.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 267,
            "value": "Backlog",
            "label": "add to the obot Roadmap project at Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#267",
      "fingerprint": "0f04e8daa5b2",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 272,
        "title": "Requirement: branch protections, live before any scheduled session runs",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/272"
      },
      "evidence": [
        "labelled `requirement`, `infrastructure`, `top10`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Backlog.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 272,
            "value": "Backlog",
            "label": "add to the obot Roadmap project at Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#272",
      "fingerprint": "d78d011af5e5",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 274,
        "title": "Requirement: SafetyCensus stays and is rebuilt on metrics and reports — design first",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/274"
      },
      "evidence": [
        "labelled `requirement`, `top10`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Review.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 274,
            "value": "Review",
            "label": "add to the obot Roadmap project at Review"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#274",
      "fingerprint": "f7b639104ace",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 275,
        "title": "Requirement: what the fleet spends is measured before it is spent",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/275"
      },
      "evidence": [
        "labelled `requirement`, `infrastructure`, `top10`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Backlog.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 275,
            "value": "Backlog",
            "label": "add to the obot Roadmap project at Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#275",
      "fingerprint": "009f253adda2",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 278,
        "title": "Requirement: what comes next is written down — a ranked head, tiers below, before any clock runs",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/278"
      },
      "evidence": [
        "labelled `requirement`, `infrastructure`, `top10`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Backlog.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 278,
            "value": "Backlog",
            "label": "add to the obot Roadmap project at Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#278",
      "fingerprint": "59961c6e681c",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 279,
        "title": "Requirement: a step-by-step IQ for the new laptop — the chance to fix rather than replicate",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/279"
      },
      "evidence": [
        "labelled `requirement`, `infrastructure`, `top10`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Backlog.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 279,
            "value": "Backlog",
            "label": "add to the obot Roadmap project at Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#279",
      "fingerprint": "497d3dfdf7e1",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 280,
        "title": "Requirement: an open decision artifact has an episode he can answer from a car",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/280"
      },
      "evidence": [
        "labelled `requirement`, `infrastructure`, `on-deck`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Backlog.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 280,
            "value": "Backlog",
            "label": "add to the obot Roadmap project at Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#280",
      "fingerprint": "148a9401121f",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 281,
        "title": "Requirement: safetyGraphics and safetyCharts back on CRAN — remove the Tendril chart",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/281"
      },
      "evidence": [
        "labelled `requirement`, `on-deck`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Backlog.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 281,
            "value": "Backlog",
            "label": "add to the obot Roadmap project at Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#281",
      "fingerprint": "1f6d25b8b51b",
      "firstSeen": "2026-08-20",
      "lastSeen": "2026-08-20",
      "runs": 1,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "OFF-BOARD-REQUIREMENT",
      "ruleTitle": "Hub issue missing from the board",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 282,
        "title": "Requirement: the usage analytics run on a cadence, and the page says when it last did",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/282"
      },
      "evidence": [
        "labelled `requirement`, `infrastructure`, `on-deck`",
        "no item on the obot Roadmap project",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Add it to the obot Roadmap project at Backlog.",
        "ops": [
          {
            "op": "add-to-board",
            "repo": "jwildfire/obot.roadmap",
            "number": 282,
            "value": "Backlog",
            "label": "add to the obot Roadmap project at Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "add-to-board"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "OFF-BOARD-REQUIREMENT:jwildfire/obot.roadmap#282",
      "fingerprint": "4cc5c8f5fe42",
      "firstSeen": "2026-08-20",
      "lastSeen": "2026-08-20",
      "runs": 1,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "PROVENANCE-MISSING",
      "ruleTitle": "Requirement filed without saying who wrote it or who approved it",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 246,
        "title": "Requirement: what the machine may say about itself in public — session names and draft-release titles",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/246"
      },
      "evidence": [
        "filed 2026-08-18, after the convention",
        "no `Authored by` / `Approved by` lines in the body"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Add the provenance block naming the author, with EMPTY unless an approval resolves.",
        "prompt": "Add the three-line provenance block at the foot of this requirement (see AGENTS.md, \"Who wrote it, and who approved it\"). `Authored by` is whoever wrote the prose — an agent identity or @jwildfire. `Approved by` is `EMPTY` unless a recorded decision or a native GitHub review covers it, in which case cite it and run `node scripts/provenance.mjs check <number>` to confirm it resolves. Never write `Approved by` from your own reading of a conversation; if the decision is real but unrecorded, the fix is a decision artifact, not a citation."
      },
      "id": "PROVENANCE-MISSING:jwildfire/obot.roadmap#246",
      "fingerprint": "142ac8be713f",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "PROVENANCE-MISSING",
      "ruleTitle": "Requirement filed without saying who wrote it or who approved it",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 251,
        "title": "Requirement: a kill this house reports is a kill it confirmed — the liveness anchor reports success while the session survives",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/251"
      },
      "evidence": [
        "filed 2026-08-18, after the convention",
        "no `Authored by` / `Approved by` lines in the body"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Add the provenance block naming the author, with EMPTY unless an approval resolves.",
        "prompt": "Add the three-line provenance block at the foot of this requirement (see AGENTS.md, \"Who wrote it, and who approved it\"). `Authored by` is whoever wrote the prose — an agent identity or @jwildfire. `Approved by` is `EMPTY` unless a recorded decision or a native GitHub review covers it, in which case cite it and run `node scripts/provenance.mjs check <number>` to confirm it resolves. Never write `Approved by` from your own reading of a conversation; if the decision is real but unrecorded, the fix is a decision artifact, not a citation."
      },
      "id": "PROVENANCE-MISSING:jwildfire/obot.roadmap#251",
      "fingerprint": "4b388c3d6012",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "PROVENANCE-MISSING",
      "ruleTitle": "Requirement filed without saying who wrote it or who approved it",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 252,
        "title": "Requirement: nobody can write to the board — the App is forbidden and the guard denies the only credential that works",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/252"
      },
      "evidence": [
        "filed 2026-08-18, after the convention",
        "no `Authored by` / `Approved by` lines in the body"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Add the provenance block naming the author, with EMPTY unless an approval resolves.",
        "prompt": "Add the three-line provenance block at the foot of this requirement (see AGENTS.md, \"Who wrote it, and who approved it\"). `Authored by` is whoever wrote the prose — an agent identity or @jwildfire. `Approved by` is `EMPTY` unless a recorded decision or a native GitHub review covers it, in which case cite it and run `node scripts/provenance.mjs check <number>` to confirm it resolves. Never write `Approved by` from your own reading of a conversation; if the decision is real but unrecorded, the fix is a decision artifact, not a citation."
      },
      "id": "PROVENANCE-MISSING:jwildfire/obot.roadmap#252",
      "fingerprint": "725878f34dff",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "PROVENANCE-MISSING",
      "ruleTitle": "Requirement filed without saying who wrote it or who approved it",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 256,
        "title": "Requirement: work that never reached GitHub is invisible to every check we run",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/256"
      },
      "evidence": [
        "filed 2026-08-18, after the convention",
        "no `Authored by` / `Approved by` lines in the body"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Add the provenance block naming the author, with EMPTY unless an approval resolves.",
        "prompt": "Add the three-line provenance block at the foot of this requirement (see AGENTS.md, \"Who wrote it, and who approved it\"). `Authored by` is whoever wrote the prose — an agent identity or @jwildfire. `Approved by` is `EMPTY` unless a recorded decision or a native GitHub review covers it, in which case cite it and run `node scripts/provenance.mjs check <number>` to confirm it resolves. Never write `Approved by` from your own reading of a conversation; if the decision is real but unrecorded, the fix is a decision artifact, not a citation."
      },
      "id": "PROVENANCE-MISSING:jwildfire/obot.roadmap#256",
      "fingerprint": "d75a65529d6b",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "PROVENANCE-MISSING",
      "ruleTitle": "Requirement filed without saying who wrote it or who approved it",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 257,
        "title": "Requirement: a thing he asked for has a delivery state, and something notices when it goes quiet",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/257"
      },
      "evidence": [
        "filed 2026-08-18, after the convention",
        "no `Authored by` / `Approved by` lines in the body"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Add the provenance block naming the author, with EMPTY unless an approval resolves.",
        "prompt": "Add the three-line provenance block at the foot of this requirement (see AGENTS.md, \"Who wrote it, and who approved it\"). `Authored by` is whoever wrote the prose — an agent identity or @jwildfire. `Approved by` is `EMPTY` unless a recorded decision or a native GitHub review covers it, in which case cite it and run `node scripts/provenance.mjs check <number>` to confirm it resolves. Never write `Approved by` from your own reading of a conversation; if the decision is real but unrecorded, the fix is a decision artifact, not a citation."
      },
      "id": "PROVENANCE-MISSING:jwildfire/obot.roadmap#257",
      "fingerprint": "5215fee52b0b",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "PROVENANCE-MISSING",
      "ruleTitle": "Requirement filed without saying who wrote it or who approved it",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 260,
        "title": "Requirement: git pushes and commits still go out as him — the lane no token fixes",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/260"
      },
      "evidence": [
        "filed 2026-08-18, after the convention",
        "no `Authored by` / `Approved by` lines in the body"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Add the provenance block naming the author, with EMPTY unless an approval resolves.",
        "prompt": "Add the three-line provenance block at the foot of this requirement (see AGENTS.md, \"Who wrote it, and who approved it\"). `Authored by` is whoever wrote the prose — an agent identity or @jwildfire. `Approved by` is `EMPTY` unless a recorded decision or a native GitHub review covers it, in which case cite it and run `node scripts/provenance.mjs check <number>` to confirm it resolves. Never write `Approved by` from your own reading of a conversation; if the decision is real but unrecorded, the fix is a decision artifact, not a citation."
      },
      "id": "PROVENANCE-MISSING:jwildfire/obot.roadmap#260",
      "fingerprint": "6b19a68c4deb",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "PROVENANCE-MISSING",
      "ruleTitle": "Requirement filed without saying who wrote it or who approved it",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 261,
        "title": "Requirement: the highest-authority file the agents read has no owner, no history and no review path",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/261"
      },
      "evidence": [
        "filed 2026-08-18, after the convention",
        "no `Authored by` / `Approved by` lines in the body"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Add the provenance block naming the author, with EMPTY unless an approval resolves.",
        "prompt": "Add the three-line provenance block at the foot of this requirement (see AGENTS.md, \"Who wrote it, and who approved it\"). `Authored by` is whoever wrote the prose — an agent identity or @jwildfire. `Approved by` is `EMPTY` unless a recorded decision or a native GitHub review covers it, in which case cite it and run `node scripts/provenance.mjs check <number>` to confirm it resolves. Never write `Approved by` from your own reading of a conversation; if the decision is real but unrecorded, the fix is a decision artifact, not a citation."
      },
      "id": "PROVENANCE-MISSING:jwildfire/obot.roadmap#261",
      "fingerprint": "148ee78c05f5",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "PROVENANCE-MISSING",
      "ruleTitle": "Requirement filed without saying who wrote it or who approved it",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 263,
        "title": "Requirement: config items are short local artifacts he can decide from, not a field form",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/263"
      },
      "evidence": [
        "filed 2026-08-18, after the convention",
        "no `Authored by` / `Approved by` lines in the body"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Add the provenance block naming the author, with EMPTY unless an approval resolves.",
        "prompt": "Add the three-line provenance block at the foot of this requirement (see AGENTS.md, \"Who wrote it, and who approved it\"). `Authored by` is whoever wrote the prose — an agent identity or @jwildfire. `Approved by` is `EMPTY` unless a recorded decision or a native GitHub review covers it, in which case cite it and run `node scripts/provenance.mjs check <number>` to confirm it resolves. Never write `Approved by` from your own reading of a conversation; if the decision is real but unrecorded, the fix is a decision artifact, not a citation."
      },
      "id": "PROVENANCE-MISSING:jwildfire/obot.roadmap#263",
      "fingerprint": "83da5f4ccfbd",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "PROVENANCE-MISSING",
      "ruleTitle": "Requirement filed without saying who wrote it or who approved it",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 264,
        "title": "Requirement: a config item's claim is checked on a cadence, not asserted on the day it was filed",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/264"
      },
      "evidence": [
        "filed 2026-08-18, after the convention",
        "no `Authored by` / `Approved by` lines in the body"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Add the provenance block naming the author, with EMPTY unless an approval resolves.",
        "prompt": "Add the three-line provenance block at the foot of this requirement (see AGENTS.md, \"Who wrote it, and who approved it\"). `Authored by` is whoever wrote the prose — an agent identity or @jwildfire. `Approved by` is `EMPTY` unless a recorded decision or a native GitHub review covers it, in which case cite it and run `node scripts/provenance.mjs check <number>` to confirm it resolves. Never write `Approved by` from your own reading of a conversation; if the decision is real but unrecorded, the fix is a decision artifact, not a citation."
      },
      "id": "PROVENANCE-MISSING:jwildfire/obot.roadmap#264",
      "fingerprint": "6368e415d14a",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "PROVENANCE-MISSING",
      "ruleTitle": "Requirement filed without saying who wrote it or who approved it",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 265,
        "title": "Requirement: he answers a decision from the car, by voice, without a screen or an issue number",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/265"
      },
      "evidence": [
        "filed 2026-08-18, after the convention",
        "no `Authored by` / `Approved by` lines in the body"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Add the provenance block naming the author, with EMPTY unless an approval resolves.",
        "prompt": "Add the three-line provenance block at the foot of this requirement (see AGENTS.md, \"Who wrote it, and who approved it\"). `Authored by` is whoever wrote the prose — an agent identity or @jwildfire. `Approved by` is `EMPTY` unless a recorded decision or a native GitHub review covers it, in which case cite it and run `node scripts/provenance.mjs check <number>` to confirm it resolves. Never write `Approved by` from your own reading of a conversation; if the decision is real but unrecorded, the fix is a decision artifact, not a citation."
      },
      "id": "PROVENANCE-MISSING:jwildfire/obot.roadmap#265",
      "fingerprint": "b7ca3c69596e",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "PROVENANCE-MISSING",
      "ruleTitle": "Requirement filed without saying who wrote it or who approved it",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 266,
        "title": "Requirement: a decision artifact notices when its own premise expires",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/266"
      },
      "evidence": [
        "filed 2026-08-18, after the convention",
        "no `Authored by` / `Approved by` lines in the body"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Add the provenance block naming the author, with EMPTY unless an approval resolves.",
        "prompt": "Add the three-line provenance block at the foot of this requirement (see AGENTS.md, \"Who wrote it, and who approved it\"). `Authored by` is whoever wrote the prose — an agent identity or @jwildfire. `Approved by` is `EMPTY` unless a recorded decision or a native GitHub review covers it, in which case cite it and run `node scripts/provenance.mjs check <number>` to confirm it resolves. Never write `Approved by` from your own reading of a conversation; if the decision is real but unrecorded, the fix is a decision artifact, not a citation."
      },
      "id": "PROVENANCE-MISSING:jwildfire/obot.roadmap#266",
      "fingerprint": "427fe11a2ee2",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "PROVENANCE-MISSING",
      "ruleTitle": "Requirement filed without saying who wrote it or who approved it",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 267,
        "title": "Requirement: the judge can see the constraints it is judging against",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/267"
      },
      "evidence": [
        "filed 2026-08-18, after the convention",
        "no `Authored by` / `Approved by` lines in the body"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Add the provenance block naming the author, with EMPTY unless an approval resolves.",
        "prompt": "Add the three-line provenance block at the foot of this requirement (see AGENTS.md, \"Who wrote it, and who approved it\"). `Authored by` is whoever wrote the prose — an agent identity or @jwildfire. `Approved by` is `EMPTY` unless a recorded decision or a native GitHub review covers it, in which case cite it and run `node scripts/provenance.mjs check <number>` to confirm it resolves. Never write `Approved by` from your own reading of a conversation; if the decision is real but unrecorded, the fix is a decision artifact, not a citation."
      },
      "id": "PROVENANCE-MISSING:jwildfire/obot.roadmap#267",
      "fingerprint": "19b9156d9fe9",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "PROVENANCE-MISSING",
      "ruleTitle": "Requirement filed without saying who wrote it or who approved it",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 272,
        "title": "Requirement: branch protections, live before any scheduled session runs",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/272"
      },
      "evidence": [
        "filed 2026-08-18, after the convention",
        "no `Authored by` / `Approved by` lines in the body"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Add the provenance block naming the author, with EMPTY unless an approval resolves.",
        "prompt": "Add the three-line provenance block at the foot of this requirement (see AGENTS.md, \"Who wrote it, and who approved it\"). `Authored by` is whoever wrote the prose — an agent identity or @jwildfire. `Approved by` is `EMPTY` unless a recorded decision or a native GitHub review covers it, in which case cite it and run `node scripts/provenance.mjs check <number>` to confirm it resolves. Never write `Approved by` from your own reading of a conversation; if the decision is real but unrecorded, the fix is a decision artifact, not a citation."
      },
      "id": "PROVENANCE-MISSING:jwildfire/obot.roadmap#272",
      "fingerprint": "8af2823d12a3",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "PROVENANCE-MISSING",
      "ruleTitle": "Requirement filed without saying who wrote it or who approved it",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 274,
        "title": "Requirement: SafetyCensus stays and is rebuilt on metrics and reports — design first",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/274"
      },
      "evidence": [
        "filed 2026-08-18, after the convention",
        "no `Authored by` / `Approved by` lines in the body"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Add the provenance block naming the author, with EMPTY unless an approval resolves.",
        "prompt": "Add the three-line provenance block at the foot of this requirement (see AGENTS.md, \"Who wrote it, and who approved it\"). `Authored by` is whoever wrote the prose — an agent identity or @jwildfire. `Approved by` is `EMPTY` unless a recorded decision or a native GitHub review covers it, in which case cite it and run `node scripts/provenance.mjs check <number>` to confirm it resolves. Never write `Approved by` from your own reading of a conversation; if the decision is real but unrecorded, the fix is a decision artifact, not a citation."
      },
      "id": "PROVENANCE-MISSING:jwildfire/obot.roadmap#274",
      "fingerprint": "841cccdcde89",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "PROVENANCE-MISSING",
      "ruleTitle": "Requirement filed without saying who wrote it or who approved it",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 275,
        "title": "Requirement: what the fleet spends is measured before it is spent",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/275"
      },
      "evidence": [
        "filed 2026-08-18, after the convention",
        "no `Authored by` / `Approved by` lines in the body"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Add the provenance block naming the author, with EMPTY unless an approval resolves.",
        "prompt": "Add the three-line provenance block at the foot of this requirement (see AGENTS.md, \"Who wrote it, and who approved it\"). `Authored by` is whoever wrote the prose — an agent identity or @jwildfire. `Approved by` is `EMPTY` unless a recorded decision or a native GitHub review covers it, in which case cite it and run `node scripts/provenance.mjs check <number>` to confirm it resolves. Never write `Approved by` from your own reading of a conversation; if the decision is real but unrecorded, the fix is a decision artifact, not a citation."
      },
      "id": "PROVENANCE-MISSING:jwildfire/obot.roadmap#275",
      "fingerprint": "cd46de1895fc",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "PROVENANCE-MISSING",
      "ruleTitle": "Requirement filed without saying who wrote it or who approved it",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 278,
        "title": "Requirement: what comes next is written down — a ranked head, tiers below, before any clock runs",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/278"
      },
      "evidence": [
        "filed 2026-08-19, after the convention",
        "no `Authored by` / `Approved by` lines in the body"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Add the provenance block naming the author, with EMPTY unless an approval resolves.",
        "prompt": "Add the three-line provenance block at the foot of this requirement (see AGENTS.md, \"Who wrote it, and who approved it\"). `Authored by` is whoever wrote the prose — an agent identity or @jwildfire. `Approved by` is `EMPTY` unless a recorded decision or a native GitHub review covers it, in which case cite it and run `node scripts/provenance.mjs check <number>` to confirm it resolves. Never write `Approved by` from your own reading of a conversation; if the decision is real but unrecorded, the fix is a decision artifact, not a citation."
      },
      "id": "PROVENANCE-MISSING:jwildfire/obot.roadmap#278",
      "fingerprint": "b9b95cbdaa3d",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "PROVENANCE-MISSING",
      "ruleTitle": "Requirement filed without saying who wrote it or who approved it",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 279,
        "title": "Requirement: a step-by-step IQ for the new laptop — the chance to fix rather than replicate",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/279"
      },
      "evidence": [
        "filed 2026-08-19, after the convention",
        "no `Authored by` / `Approved by` lines in the body"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Add the provenance block naming the author, with EMPTY unless an approval resolves.",
        "prompt": "Add the three-line provenance block at the foot of this requirement (see AGENTS.md, \"Who wrote it, and who approved it\"). `Authored by` is whoever wrote the prose — an agent identity or @jwildfire. `Approved by` is `EMPTY` unless a recorded decision or a native GitHub review covers it, in which case cite it and run `node scripts/provenance.mjs check <number>` to confirm it resolves. Never write `Approved by` from your own reading of a conversation; if the decision is real but unrecorded, the fix is a decision artifact, not a citation."
      },
      "id": "PROVENANCE-MISSING:jwildfire/obot.roadmap#279",
      "fingerprint": "7d348cf80337",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "PROVENANCE-MISSING",
      "ruleTitle": "Requirement filed without saying who wrote it or who approved it",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 280,
        "title": "Requirement: an open decision artifact has an episode he can answer from a car",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/280"
      },
      "evidence": [
        "filed 2026-08-19, after the convention",
        "no `Authored by` / `Approved by` lines in the body"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Add the provenance block naming the author, with EMPTY unless an approval resolves.",
        "prompt": "Add the three-line provenance block at the foot of this requirement (see AGENTS.md, \"Who wrote it, and who approved it\"). `Authored by` is whoever wrote the prose — an agent identity or @jwildfire. `Approved by` is `EMPTY` unless a recorded decision or a native GitHub review covers it, in which case cite it and run `node scripts/provenance.mjs check <number>` to confirm it resolves. Never write `Approved by` from your own reading of a conversation; if the decision is real but unrecorded, the fix is a decision artifact, not a citation."
      },
      "id": "PROVENANCE-MISSING:jwildfire/obot.roadmap#280",
      "fingerprint": "270a098869d3",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "PROVENANCE-MISSING",
      "ruleTitle": "Requirement filed without saying who wrote it or who approved it",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 281,
        "title": "Requirement: safetyGraphics and safetyCharts back on CRAN — remove the Tendril chart",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/281"
      },
      "evidence": [
        "filed 2026-08-19, after the convention",
        "no `Authored by` / `Approved by` lines in the body"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Add the provenance block naming the author, with EMPTY unless an approval resolves.",
        "prompt": "Add the three-line provenance block at the foot of this requirement (see AGENTS.md, \"Who wrote it, and who approved it\"). `Authored by` is whoever wrote the prose — an agent identity or @jwildfire. `Approved by` is `EMPTY` unless a recorded decision or a native GitHub review covers it, in which case cite it and run `node scripts/provenance.mjs check <number>` to confirm it resolves. Never write `Approved by` from your own reading of a conversation; if the decision is real but unrecorded, the fix is a decision artifact, not a citation."
      },
      "id": "PROVENANCE-MISSING:jwildfire/obot.roadmap#281",
      "fingerprint": "be1497da888e",
      "firstSeen": "2026-08-20",
      "lastSeen": "2026-08-20",
      "runs": 1,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "PROVENANCE-MISSING",
      "ruleTitle": "Requirement filed without saying who wrote it or who approved it",
      "group": "Conventions",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 282,
        "title": "Requirement: the usage analytics run on a cadence, and the page says when it last did",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/282"
      },
      "evidence": [
        "filed 2026-08-19, after the convention",
        "no `Authored by` / `Approved by` lines in the body"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Add the provenance block naming the author, with EMPTY unless an approval resolves.",
        "prompt": "Add the three-line provenance block at the foot of this requirement (see AGENTS.md, \"Who wrote it, and who approved it\"). `Authored by` is whoever wrote the prose — an agent identity or @jwildfire. `Approved by` is `EMPTY` unless a recorded decision or a native GitHub review covers it, in which case cite it and run `node scripts/provenance.mjs check <number>` to confirm it resolves. Never write `Approved by` from your own reading of a conversation; if the decision is real but unrecorded, the fix is a decision artifact, not a citation."
      },
      "id": "PROVENANCE-MISSING:jwildfire/obot.roadmap#282",
      "fingerprint": "cf820e369442",
      "firstSeen": "2026-08-20",
      "lastSeen": "2026-08-20",
      "runs": 1,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/gsm.safety",
        "number": 41,
        "title": "Add Widget_AeExplorer htmlwidget consuming the safety.viz bundle",
        "url": "https://github.com/jwildfire/gsm.safety/issues/41"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2yPRk",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/gsm.safety#41",
      "fingerprint": "ed7bfc34a454",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/gsm.safety",
        "number": 42,
        "title": "Add Widget_QtExplorer htmlwidget consuming the safety.viz bundle",
        "url": "https://github.com/jwildfire/gsm.safety/issues/42"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2yPSA",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/gsm.safety#42",
      "fingerprint": "837d7a234cc3",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/gsm.safety",
        "number": 43,
        "title": "Give the example pages site chrome and show the full workflow inline",
        "url": "https://github.com/jwildfire/gsm.safety/issues/43"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2yPSc",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/gsm.safety#43",
      "fingerprint": "b5079a8307b9",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/gsm.safety",
        "number": 45,
        "title": "Add a 2_metrics phase: participant-level Hy's Law, QTcF and AE metrics",
        "url": "https://github.com/jwildfire/gsm.safety/issues/45"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2yPSs",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/gsm.safety#45",
      "fingerprint": "adbc5909ae2c",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 85,
        "title": "Add sandbox/triage-v2-smoke.md pipeline smoke marker",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/85"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2yPSo",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.roadmap#85",
      "fingerprint": "bed6a38b8f1f",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 97,
        "title": "audit: accept 5 findings",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/97"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2yPTA",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.roadmap#97",
      "fingerprint": "8a52f9063993",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 102,
        "title": "audit: accept 28 findings",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/102"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2yPTw",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.roadmap#102",
      "fingerprint": "3ef46f56ab79",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 105,
        "title": "audit: accept 28 findings",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/105"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2yPT4",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.roadmap#105",
      "fingerprint": "a999933ef200",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/safety.viz",
        "number": 120,
        "title": "nep-explorer (Phase 1): KDIGO creatinine scatter + stage summary",
        "url": "https://github.com/jwildfire/safety.viz/issues/120"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2yPQs",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/safety.viz#120",
      "fingerprint": "095bfb441666",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 134,
        "title": "Stand up the 🧭🤖 obot-navigator session — launcher, skill, command, delivery file",
        "url": "https://github.com/jwildfire/obot.agent/issues/134"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2s5ow",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#134",
      "fingerprint": "083d2e3d9d2c",
      "firstSeen": "2026-08-16",
      "lastSeen": "2026-08-20",
      "runs": 5,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 136,
        "title": "The sweep measures roadmap discipline: work that shipped with no requirement above it, across all seven repos",
        "url": "https://github.com/jwildfire/obot.agent/issues/136"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2s9uY",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#136",
      "fingerprint": "e7abee981f6a",
      "firstSeen": "2026-08-16",
      "lastSeen": "2026-08-20",
      "runs": 5,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 138,
        "title": "The sessions tab becomes a roster of agents: id, status, cost and roadmap impact",
        "url": "https://github.com/jwildfire/obot.agent/issues/138"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2tEjU",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#138",
      "fingerprint": "b6997a997835",
      "firstSeen": "2026-08-16",
      "lastSeen": "2026-08-20",
      "runs": 5,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 143,
        "title": "Record when each local surface was last viewed, at the serve seam",
        "url": "https://github.com/jwildfire/obot.agent/issues/143"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2tJ04",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#143",
      "fingerprint": "26a7b8c4c6a1",
      "firstSeen": "2026-08-16",
      "lastSeen": "2026-08-20",
      "runs": 5,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 147,
        "title": "The sessions tab is two dashboards stacked, and the roster is a flat wall of 28 rows",
        "url": "https://github.com/jwildfire/obot.agent/issues/147"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2wCOM",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#147",
      "fingerprint": "399993e7e1e1",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 151,
        "title": "The wake channel: a worker that stops reaches the Navigator",
        "url": "https://github.com/jwildfire/obot.agent/issues/151"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2x9gg",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#151",
      "fingerprint": "cfb3ca4f3240",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 154,
        "title": "Action 1: the Agents tab becomes a table with a filter sidebar, sharing the analytics pricing feed",
        "url": "https://github.com/jwildfire/obot.agent/issues/154"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2yCgE",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#154",
      "fingerprint": "77cef25657f6",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 155,
        "title": "Action 2: the Navigator tab becomes a metrics dashboard with a period selector and repo and goal filters",
        "url": "https://github.com/jwildfire/obot.agent/issues/155"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2yChU",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#155",
      "fingerprint": "911ad94e26a0",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 159,
        "title": "Every dashboard surface renders honestly on a machine with no history",
        "url": "https://github.com/jwildfire/obot.agent/issues/159"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2yJBs",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#159",
      "fingerprint": "9e7c1d10c77c",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 166,
        "title": "The sibling briefing never tells a worker not to call EnterWorktree, and one stalled on it for 13 minutes",
        "url": "https://github.com/jwildfire/obot.agent/issues/166"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2ybpg",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#166",
      "fingerprint": "9b4085fa0ade",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 167,
        "title": "Build fleet: the sweep detects, a short-lived manager acts and exits",
        "url": "https://github.com/jwildfire/obot.agent/issues/167"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2ydlo",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#167",
      "fingerprint": "7065dc2e3674",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 168,
        "title": "Agents tab: a created-date column, sorted newest first",
        "url": "https://github.com/jwildfire/obot.agent/issues/168"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2ymlk",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#168",
      "fingerprint": "3251b1f811ff",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 169,
        "title": "Agents tab: pin agents, with the standing roles pinned by default",
        "url": "https://github.com/jwildfire/obot.agent/issues/169"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2ynGg",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#169",
      "fingerprint": "54682dfb62f0",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 174,
        "title": "Every date on the Agents tab is a UTC day, so overnight work reads as yesterday",
        "url": "https://github.com/jwildfire/obot.agent/issues/174"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2y0SQ",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#174",
      "fingerprint": "6152513963c4",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 176,
        "title": "A working session was reported as waiting on an unresolved prompt, and the admiral closes sessions on that signal",
        "url": "https://github.com/jwildfire/obot.agent/issues/176"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2y9zw",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#176",
      "fingerprint": "3a559640c7cb",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 177,
        "title": "The sibling briefing's opening HTML comment lands in the job status detail, carrying state with it",
        "url": "https://github.com/jwildfire/obot.agent/issues/177"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2y-1M",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#177",
      "fingerprint": "a6b3acc14d86",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 178,
        "title": "Agents tab: times on Created and Last active, in his local zone, and one day boundary",
        "url": "https://github.com/jwildfire/obot.agent/issues/178"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2y_g0",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#178",
      "fingerprint": "f2fd0c6fcc94",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 179,
        "title": "Agents tab: a task tag in the row, a summary on expand, and Roadmap impact demoted out of the table",
        "url": "https://github.com/jwildfire/obot.agent/issues/179"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2zAg8",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#179",
      "fingerprint": "d5a1de603253",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 181,
        "title": "A blocked admiral is invisible: it inherits the standing-session exclusion built for prime and nav",
        "url": "https://github.com/jwildfire/obot.agent/issues/181"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg25vv4",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#181",
      "fingerprint": "f27bbeea63cb",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 182,
        "title": "Rename fleet to admiral — the three standing roles are prime, admiral and nav",
        "url": "https://github.com/jwildfire/obot.agent/issues/182"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg25yMo",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#182",
      "fingerprint": "1a6a4481cce6",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 186,
        "title": "The checkout tracks main and consumers restart when it moves",
        "url": "https://github.com/jwildfire/obot.agent/issues/186"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2549M",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#186",
      "fingerprint": "525ed170e83b",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 206,
        "title": "The dashboard shows him zero of ten config items and calls it an empty list",
        "url": "https://github.com/jwildfire/obot.agent/issues/206"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg27wXc",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#206",
      "fingerprint": "9821ff618d53",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 210,
        "title": "A worker is told a requirement is not an approval, and given the command that says what is",
        "url": "https://github.com/jwildfire/obot.agent/issues/210"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg27Y-A",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#210",
      "fingerprint": "47c8648df96c",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 215,
        "title": "A count stated about a source nobody read, and four more places the same mistake is waiting",
        "url": "https://github.com/jwildfire/obot.agent/issues/215"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg27wcs",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#215",
      "fingerprint": "dc648044a7d2",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 225,
        "title": "A merged pull request counts as covered when it names an issue that is itself parented",
        "url": "https://github.com/jwildfire/obot.agent/issues/225"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg28CFo",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#225",
      "fingerprint": "0a723f1b7166",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 236,
        "title": "AGENTS.md frames merging as approval-first, and policy.json says the opposite",
        "url": "https://github.com/jwildfire/obot.agent/issues/236"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg28b_c",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#236",
      "fingerprint": "ae931b9f24d7",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 255,
        "title": "One authority for whether a decision has been made — and the ten that disagree",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/255"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg27-BI",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.roadmap#255",
      "fingerprint": "207844ada7fb",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 258,
        "title": "Watching the dashboard prevents it restarting, and a restart that cannot bind is reported as a restart",
        "url": "https://github.com/jwildfire/obot.agent/issues/258"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg29_WQ",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#258",
      "fingerprint": "3a119f77b104",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "high",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 264,
        "title": "A carve-out pull request routes itself to the config bucket, and the admiral stops re-escalating it",
        "url": "https://github.com/jwildfire/obot.agent/issues/264"
      },
      "evidence": [
        "no board Status set",
        "issue is CLOSED"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Released — the issue is closed.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2-88k",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#264",
      "fingerprint": "5b0e38c145f3",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "DESIGN-MISSING",
      "ruleTitle": "Requirement past Design with no design",
      "group": "Conventions",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 134,
        "title": "Requirement: demo-301 v0 — forkable demo study running the app (Safety + RBQM domains)",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/134"
      },
      "evidence": [
        "board Status is Development",
        "no requirements/design/ doc",
        "Design section is empty, stub or \"TBD\""
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Write the Design section from the work as it actually stands.",
        "prompt": "Use the requirement-design skill. Read the requirement, its sub-issues and any merged PRs, then populate the Design section in the issue body (or add requirements/design/{number}_design.html for a substantial design) describing the approach that is actually being built — not an aspirational one. Keep it factual and short enough to be read."
      },
      "id": "DESIGN-MISSING:jwildfire/obot.roadmap#134",
      "fingerprint": "b68badde1bbf",
      "firstSeen": "2026-07-29",
      "lastSeen": "2026-08-20",
      "runs": 23,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "DESIGN-MISSING",
      "ruleTitle": "Requirement past Design with no design",
      "group": "Conventions",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 199,
        "title": "Requirement: the agent roster — every agent with its id, status, cost and roadmap impact",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/199"
      },
      "evidence": [
        "board Status is Development",
        "no requirements/design/ doc",
        "Design section is empty, stub or \"TBD\""
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Write the Design section from the work as it actually stands.",
        "prompt": "Use the requirement-design skill. Read the requirement, its sub-issues and any merged PRs, then populate the Design section in the issue body (or add requirements/design/{number}_design.html for a substantial design) describing the approach that is actually being built — not an aspirational one. Keep it factual and short enough to be read."
      },
      "id": "DESIGN-MISSING:jwildfire/obot.roadmap#199",
      "fingerprint": "3713e4f75793",
      "firstSeen": "2026-08-16",
      "lastSeen": "2026-08-20",
      "runs": 5,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 182,
        "title": "Requirement: remove the Experimental marking from the Time-to-Event Explorer after external clinical review",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/182"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#182",
      "fingerprint": "42bb8adbe034",
      "firstSeen": "2026-08-16",
      "lastSeen": "2026-08-20",
      "runs": 5,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 226,
        "title": "Requirement: goal #73 says what it is now — a current body, five workstreams, and a bounded backlog",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/226"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#226",
      "fingerprint": "7d96ef79b710",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 227,
        "title": "Requirement: the dashboard's two views, literally — a session table with filters, and a filterable metrics dashboard",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/227"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#227",
      "fingerprint": "4d3830c631a5",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 229,
        "title": "Requirement: adversarial review of safetyCensus() — does it stay or go, before v1.1.0 publishes",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/229"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#229",
      "fingerprint": "18b3ce6c1096",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 234,
        "title": "Requirement: one-off tasks — a small fix files against its goal, without a requirement to justify it",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/234"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#234",
      "fingerprint": "e8677fdff0f7",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 236,
        "title": "Requirement: the admiral — a triggered manager, so finished work stops sitting and nobody has to remember to look",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/236"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#236",
      "fingerprint": "7b1503fd4c5e",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 238,
        "title": "Requirement: the morning fold, and the briefing it produces",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/238"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#238",
      "fingerprint": "c9f86416c673",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 239,
        "title": "Requirement: the weekly briefing — the sink that keeps the daily at nine lines",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/239"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#239",
      "fingerprint": "fc9a8cbd1532",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 240,
        "title": "Requirement: the session skills the fold replaces — one retirement, five re-homings, and the notes that say so",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/240"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#240",
      "fingerprint": "87a7c5ab8594",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 242,
        "title": "Requirement: does the briefing get read aloud — and at what cost to the words",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/242"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#242",
      "fingerprint": "cc8cea4e3d07",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 243,
        "title": "Requirement: merging is not deploying — the checkout tracks main, and consumers restart when it moves",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/243"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#243",
      "fingerprint": "b78a3a0354c1",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 246,
        "title": "Requirement: what the machine may say about itself in public — session names and draft-release titles",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/246"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#246",
      "fingerprint": "c3d4e36146ce",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 251,
        "title": "Requirement: a kill this house reports is a kill it confirmed — the liveness anchor reports success while the session survives",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/251"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#251",
      "fingerprint": "e5c4e2c96149",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 252,
        "title": "Requirement: nobody can write to the board — the App is forbidden and the guard denies the only credential that works",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/252"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#252",
      "fingerprint": "d20fe6a127c4",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 256,
        "title": "Requirement: work that never reached GitHub is invisible to every check we run",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/256"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#256",
      "fingerprint": "d4061fe4e382",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 257,
        "title": "Requirement: a thing he asked for has a delivery state, and something notices when it goes quiet",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/257"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#257",
      "fingerprint": "e77affc5ba89",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 260,
        "title": "Requirement: git pushes and commits still go out as him — the lane no token fixes",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/260"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#260",
      "fingerprint": "b3296a20f061",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 261,
        "title": "Requirement: the highest-authority file the agents read has no owner, no history and no review path",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/261"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#261",
      "fingerprint": "366577fb056c",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 263,
        "title": "Requirement: config items are short local artifacts he can decide from, not a field form",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/263"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#263",
      "fingerprint": "2cfb447a625a",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 264,
        "title": "Requirement: a config item's claim is checked on a cadence, not asserted on the day it was filed",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/264"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#264",
      "fingerprint": "29618fabd244",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 265,
        "title": "Requirement: he answers a decision from the car, by voice, without a screen or an issue number",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/265"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#265",
      "fingerprint": "4ae30e9dd1e3",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 266,
        "title": "Requirement: a decision artifact notices when its own premise expires",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/266"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#266",
      "fingerprint": "8ade506793e4",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 267,
        "title": "Requirement: the judge can see the constraints it is judging against",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/267"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#267",
      "fingerprint": "eb1d957e08af",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 272,
        "title": "Requirement: branch protections, live before any scheduled session runs",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/272"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#272",
      "fingerprint": "8b2785f360e7",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 274,
        "title": "Requirement: SafetyCensus stays and is rebuilt on metrics and reports — design first",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/274"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#274",
      "fingerprint": "9284608a1604",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 275,
        "title": "Requirement: what the fleet spends is measured before it is spent",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/275"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#275",
      "fingerprint": "5e1b658c6105",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 278,
        "title": "Requirement: what comes next is written down — a ranked head, tiers below, before any clock runs",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/278"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#278",
      "fingerprint": "c7fcedd6519c",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 279,
        "title": "Requirement: a step-by-step IQ for the new laptop — the chance to fix rather than replicate",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/279"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#279",
      "fingerprint": "51378fc34bb8",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 280,
        "title": "Requirement: an open decision artifact has an episode he can answer from a car",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/280"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#280",
      "fingerprint": "1532b8e2292f",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 281,
        "title": "Requirement: safetyGraphics and safetyCharts back on CRAN — remove the Tendril chart",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/281"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#281",
      "fingerprint": "35918c61a80d",
      "firstSeen": "2026-08-20",
      "lastSeen": "2026-08-20",
      "runs": 1,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "GOALLESS-REQUIREMENT",
      "ruleTitle": "Open requirement under no goal",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 282,
        "title": "Requirement: the usage analytics run on a cadence, and the page says when it last did",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/282"
      },
      "evidence": [
        "open requirement",
        "no `goal`-labelled ancestor at any depth"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Link it under the goal it serves.",
        "prompt": "Read the requirement and the open goals (#72 R/Pharma 2026 keynote deck; #73 increased autonomy in obot.agent; #78 Keep adding charts (static + interactive); #79 Build the app (safetyGraphics replacement, open.gismo arc); #112 open.csr — the Clinical Study Report builder (web app)). If it clearly serves one, link it as a sub-issue of that goal (gh api repos/jwildfire/obot.roadmap/issues/{goal}/sub_issues). If it genuinely belongs to none, add one sentence to the issue body explaining why it is standalone, so the audit stops asking. Do not invent a new goal."
      },
      "id": "GOALLESS-REQUIREMENT:jwildfire/obot.roadmap#282",
      "fingerprint": "c984d5ac74a0",
      "firstSeen": "2026-08-20",
      "lastSeen": "2026-08-20",
      "runs": 1,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "SUBS-DONE-PARENT-OPEN",
      "ruleTitle": "All sub-issues closed, parent still open",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 43,
        "title": "Requirement: abnormal-baseline DILI tools — migration Sankey + ALT waterfall (Amirzadegan 2025)",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/43"
      },
      "evidence": [
        "3/3 sub-issues closed",
        "board Status is Review",
        "last touched 3d ago"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Close it as completed and set the board to Released — every task under it is closed and it is already in Review.",
        "ops": [
          {
            "op": "close-issue",
            "repo": "jwildfire/obot.roadmap",
            "number": 43,
            "reason": "completed",
            "label": "close jwildfire/obot.roadmap#43 as completed"
          },
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzgz18LY",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [
            "close jwildfire/obot.roadmap#43 as completed"
          ],
          "partial": true,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "SUBS-DONE-PARENT-OPEN:jwildfire/obot.roadmap#43",
      "fingerprint": "2ef815d1b281",
      "firstSeen": "2026-07-25",
      "lastSeen": "2026-08-20",
      "runs": 43,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "SUBS-DONE-PARENT-OPEN",
      "ruleTitle": "All sub-issues closed, parent still open",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 58,
        "title": "Requirement: ideas-triage v2 — stronger model, richer context, bias-to-promote",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/58"
      },
      "evidence": [
        "1/1 sub-issues closed",
        "board Status is Backlog",
        "last touched 2d ago"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Move it to Review — all its tasks are closed but the board still says Backlog.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzgz9xFQ",
            "value": "Review",
            "label": "board Status → Review"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "SUBS-DONE-PARENT-OPEN:jwildfire/obot.roadmap#58",
      "fingerprint": "b2d3fc516f36",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "SUBS-DONE-PARENT-OPEN",
      "ruleTitle": "All sub-issues closed, parent still open",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 122,
        "title": "Requirement: scheduled autonomous sessions — the A2 promotion (recurring goal-work loop)",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/122"
      },
      "evidence": [
        "1/1 sub-issues closed",
        "board Status is Requirement Gathering",
        "last touched 2d ago"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Move it to Review — all its tasks are closed but the board still says Requirement Gathering.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg0ICVg",
            "value": "Review",
            "label": "board Status → Review"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "SUBS-DONE-PARENT-OPEN:jwildfire/obot.roadmap#122",
      "fingerprint": "852fd39b1ff2",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "SUBS-DONE-PARENT-OPEN",
      "ruleTitle": "All sub-issues closed, parent still open",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 123,
        "title": "Requirement: release scaffolding — news record, draft notes, semver milestones, RC PR framework, and the merge gate",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/123"
      },
      "evidence": [
        "1/1 sub-issues closed",
        "board Status is Backlog",
        "last touched 2d ago"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Move it to Review — all its tasks are closed but the board still says Backlog.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg0Tjz4",
            "value": "Review",
            "label": "board Status → Review"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "SUBS-DONE-PARENT-OPEN:jwildfire/obot.roadmap#123",
      "fingerprint": "ad211d25a8ee",
      "firstSeen": "2026-08-16",
      "lastSeen": "2026-08-20",
      "runs": 5,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "SUBS-DONE-PARENT-OPEN",
      "ruleTitle": "All sub-issues closed, parent still open",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 129,
        "title": "Requirement: open.csr submission outputs — RTF tables/listings, a values store, and seamless Reader editing",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/129"
      },
      "evidence": [
        "1/1 sub-issues closed",
        "board Status is Review",
        "last touched 5d ago"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Close it as completed and set the board to Released — every task under it is closed and it is already in Review.",
        "ops": [
          {
            "op": "close-issue",
            "repo": "jwildfire/obot.roadmap",
            "number": 129,
            "reason": "completed",
            "label": "close jwildfire/obot.roadmap#129 as completed"
          },
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg0K2dc",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [
            "close jwildfire/obot.roadmap#129 as completed"
          ],
          "partial": true,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "SUBS-DONE-PARENT-OPEN:jwildfire/obot.roadmap#129",
      "fingerprint": "b5f6f7cfd37c",
      "firstSeen": "2026-08-15",
      "lastSeen": "2026-08-20",
      "runs": 6,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "SUBS-DONE-PARENT-OPEN",
      "ruleTitle": "All sub-issues closed, parent still open",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 161,
        "title": "Requirement: Kaplan–Meier time-to-event chart family — interactive renderer for safety.viz",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/161"
      },
      "evidence": [
        "1/1 sub-issues closed",
        "board Status is Review",
        "last touched 5d ago"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Close it as completed and set the board to Released — every task under it is closed and it is already in Review.",
        "ops": [
          {
            "op": "close-issue",
            "repo": "jwildfire/obot.roadmap",
            "number": 161,
            "reason": "completed",
            "label": "close jwildfire/obot.roadmap#161 as completed"
          },
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2ojqU",
            "value": "Released",
            "label": "board Status → Released"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [
            "close jwildfire/obot.roadmap#161 as completed"
          ],
          "partial": true,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "SUBS-DONE-PARENT-OPEN:jwildfire/obot.roadmap#161",
      "fingerprint": "f64da735db5f",
      "firstSeen": "2026-08-15",
      "lastSeen": "2026-08-20",
      "runs": 6,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "SUBS-DONE-PARENT-OPEN",
      "ruleTitle": "All sub-issues closed, parent still open",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 199,
        "title": "Requirement: the agent roster — every agent with its id, status, cost and roadmap impact",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/199"
      },
      "evidence": [
        "2/2 sub-issues closed",
        "board Status is Development",
        "last touched 2d ago"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Move it to Review — all its tasks are closed but the board still says Development.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2s78g",
            "value": "Review",
            "label": "board Status → Review"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "SUBS-DONE-PARENT-OPEN:jwildfire/obot.roadmap#199",
      "fingerprint": "4d30f9e80316",
      "firstSeen": "2026-08-16",
      "lastSeen": "2026-08-20",
      "runs": 5,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "SUBS-DONE-PARENT-OPEN",
      "ruleTitle": "All sub-issues closed, parent still open",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 205,
        "title": "Requirement: a real \"since you last looked\" — record page views locally, or say plainly that we cannot",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/205"
      },
      "evidence": [
        "1/1 sub-issues closed",
        "board Status is Development",
        "last touched 2d ago"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Move it to Review — all its tasks are closed but the board still says Development.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2tFeA",
            "value": "Review",
            "label": "board Status → Review"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "SUBS-DONE-PARENT-OPEN:jwildfire/obot.roadmap#205",
      "fingerprint": "b188bf9ba58b",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "SUBS-DONE-PARENT-OPEN",
      "ruleTitle": "All sub-issues closed, parent still open",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 206,
        "title": "Requirement: the priced usage artifact refreshes on a cadence, or every surface says how old it is",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/206"
      },
      "evidence": [
        "1/1 sub-issues closed",
        "board Status is Development",
        "last touched 2d ago"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Move it to Review — all its tasks are closed but the board still says Development.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2tJqY",
            "value": "Review",
            "label": "board Status → Review"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "SUBS-DONE-PARENT-OPEN:jwildfire/obot.roadmap#206",
      "fingerprint": "3578c785a13c",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "SUBS-DONE-PARENT-OPEN",
      "ruleTitle": "All sub-issues closed, parent still open",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 218,
        "title": "Requirement: the dashboard reads like a news feed, not an audit log — rebuild the sessions and Navigator pages",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/218"
      },
      "evidence": [
        "1/1 sub-issues closed",
        "board Status is Development",
        "last touched 2d ago"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Move it to Review — all its tasks are closed but the board still says Development.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2wEug",
            "value": "Review",
            "label": "board Status → Review"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "SUBS-DONE-PARENT-OPEN:jwildfire/obot.roadmap#218",
      "fingerprint": "e3d8b0c9ecb9",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "SUBS-DONE-PARENT-OPEN",
      "ruleTitle": "All sub-issues closed, parent still open",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 220,
        "title": "Requirement: his queue holds exactly three buckets — RC, decision, config — and the remainder is ours",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/220"
      },
      "evidence": [
        "1/1 sub-issues closed",
        "board Status is Requirement Gathering",
        "last touched 2d ago"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Move it to Review — all its tasks are closed but the board still says Requirement Gathering.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2wFDU",
            "value": "Review",
            "label": "board Status → Review"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "SUBS-DONE-PARENT-OPEN:jwildfire/obot.roadmap#220",
      "fingerprint": "3f32a86fb054",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "SUBS-DONE-PARENT-OPEN",
      "ruleTitle": "All sub-issues closed, parent still open",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 223,
        "title": "Requirement: every surface renders honestly on a machine with no history — before the move, not after",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/223"
      },
      "evidence": [
        "3/3 sub-issues closed",
        "board Status is Backlog",
        "last touched 2d ago"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Move it to Review — all its tasks are closed but the board still says Backlog.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2wQZw",
            "value": "Review",
            "label": "board Status → Review"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "SUBS-DONE-PARENT-OPEN:jwildfire/obot.roadmap#223",
      "fingerprint": "33fc7312827b",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "SUBS-DONE-PARENT-OPEN",
      "ruleTitle": "All sub-issues closed, parent still open",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 227,
        "title": "Requirement: the dashboard's two views, literally — a session table with filters, and a filterable metrics dashboard",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/227"
      },
      "evidence": [
        "7/7 sub-issues closed",
        "board Status is Development",
        "last touched 2d ago"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Move it to Review — all its tasks are closed but the board still says Development.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2yCNY",
            "value": "Review",
            "label": "board Status → Review"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "SUBS-DONE-PARENT-OPEN:jwildfire/obot.roadmap#227",
      "fingerprint": "480420b5d0fa",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "SUBS-DONE-PARENT-OPEN",
      "ruleTitle": "All sub-issues closed, parent still open",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 236,
        "title": "Requirement: the admiral — a triggered manager, so finished work stops sitting and nobody has to remember to look",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/236"
      },
      "evidence": [
        "4/4 sub-issues closed",
        "board Status is Development",
        "last touched 2d ago"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Move it to Review — all its tasks are closed but the board still says Development.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2yc44",
            "value": "Review",
            "label": "board Status → Review"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "SUBS-DONE-PARENT-OPEN:jwildfire/obot.roadmap#236",
      "fingerprint": "9e54fd451feb",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "SUBS-DONE-PARENT-OPEN",
      "ruleTitle": "All sub-issues closed, parent still open",
      "group": "Hierarchy",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 243,
        "title": "Requirement: merging is not deploying — the checkout tracks main, and consumers restart when it moves",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/243"
      },
      "evidence": [
        "2/2 sub-issues closed",
        "board Status is Backlog",
        "last touched 2d ago"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Move it to Review — all its tasks are closed but the board still says Backlog.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2ykBc",
            "value": "Review",
            "label": "board Status → Review"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "SUBS-DONE-PARENT-OPEN:jwildfire/obot.roadmap#243",
      "fingerprint": "b27ae0862b7b",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 139,
        "title": "Worker ids never reach the worker: OBOT_WORKER_ID is invisible to tool shells, and the briefing placeholders arrive unfilled",
        "url": "https://github.com/jwildfire/obot.agent/issues/139"
      },
      "evidence": [
        "no board Status set",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Backlog, inferred from the absence of any in-flight signal.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2tIYE",
            "value": "Backlog",
            "label": "board Status → Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#139",
      "fingerprint": "5363e2bc2096",
      "firstSeen": "2026-08-16",
      "lastSeen": "2026-08-20",
      "runs": 5,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 141,
        "title": "The discipline number reports history as though it were drift: split compliance-since-the-rule from the historical stock",
        "url": "https://github.com/jwildfire/obot.agent/issues/141"
      },
      "evidence": [
        "no board Status set",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Backlog, inferred from the absence of any in-flight signal.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2tIyI",
            "value": "Backlog",
            "label": "board Status → Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#141",
      "fingerprint": "01f7d3a1fe01",
      "firstSeen": "2026-08-16",
      "lastSeen": "2026-08-20",
      "runs": 5,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 157,
        "title": "The wake list can only grow: dead and permanently-stuck workers never resolve",
        "url": "https://github.com/jwildfire/obot.agent/issues/157"
      },
      "evidence": [
        "no board Status set",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Backlog, inferred from the absence of any in-flight signal.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2yGKA",
            "value": "Backlog",
            "label": "board Status → Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#157",
      "fingerprint": "91ba17afa122",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 197,
        "title": "Every structural roadmap edit is attributed to @jwildfire — he made none of them",
        "url": "https://github.com/jwildfire/obot.agent/issues/197"
      },
      "evidence": [
        "no board Status set",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Backlog, inferred from the absence of any in-flight signal.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg26uY4",
            "value": "Backlog",
            "label": "board Status → Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#197",
      "fingerprint": "1bbaabf0f58c",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 207,
        "title": "The attribution guard trusts GH_TOKEN=$(...) and a failed mint writes as him anyway",
        "url": "https://github.com/jwildfire/obot.agent/issues/207"
      },
      "evidence": [
        "no board Status set",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Backlog, inferred from the absence of any in-flight signal.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg270YI",
            "value": "Backlog",
            "label": "board Status → Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#207",
      "fingerprint": "495d32299380",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 209,
        "title": "A merge that cites a decision does not check that the decision exists",
        "url": "https://github.com/jwildfire/obot.agent/issues/209"
      },
      "evidence": [
        "no board Status set",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Backlog, inferred from the absence of any in-flight signal.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg27Y8k",
            "value": "Backlog",
            "label": "board Status → Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#209",
      "fingerprint": "5615124b17f6",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 228,
        "title": "The milestone gate reads a worked example as a closing declaration and refuses the merge",
        "url": "https://github.com/jwildfire/obot.agent/issues/228"
      },
      "evidence": [
        "no board Status set",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Backlog, inferred from the absence of any in-flight signal.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg28ISI",
            "value": "Backlog",
            "label": "board Status → Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#228",
      "fingerprint": "8fcfa1af98cb",
      "firstSeen": "2026-08-18",
      "lastSeen": "2026-08-20",
      "runs": 3,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 230,
        "title": "Run the adversarial review of safetyCensus() and publish the decision artifact",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/230"
      },
      "evidence": [
        "no board Status set",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Backlog, inferred from the absence of any in-flight signal.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2yHP8",
            "value": "Backlog",
            "label": "board Status → Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.roadmap#230",
      "fingerprint": "cd3bab01fb6f",
      "firstSeen": "2026-08-17",
      "lastSeen": "2026-08-20",
      "runs": 4,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 238,
        "title": "The briefing has no route for a non-fast-forward push, and leads with the spelling that fails inside a repo",
        "url": "https://github.com/jwildfire/obot.agent/issues/238"
      },
      "evidence": [
        "no board Status set",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Backlog, inferred from the absence of any in-flight signal.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg281vY",
            "value": "Backlog",
            "label": "board Status → Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#238",
      "fingerprint": "317164fa973d",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "UNSTAGED-BOARD-ITEM",
      "ruleTitle": "Board item with no Status",
      "group": "Board integrity",
      "confidence": "medium",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.agent",
        "number": 261,
        "title": "The Navigator measures process state badly, and published three wrong claims in one night",
        "url": "https://github.com/jwildfire/obot.agent/issues/261"
      },
      "evidence": [
        "no board Status set",
        "issue is OPEN"
      ],
      "proposal": {
        "kind": "mechanical",
        "summary": "Set board Status to Backlog, inferred from the absence of any in-flight signal.",
        "ops": [
          {
            "op": "set-board-status",
            "itemId": "PVTI_lAHOADgnX84BcTPzzg2-Q_w",
            "value": "Backlog",
            "label": "board Status → Backlog"
          }
        ],
        "unavailable": {
          "ops": [
            "set-board-status"
          ],
          "performable": [],
          "partial": false,
          "reason": "no credential can write to the obot Roadmap board — the obotclaw App is FORBIDDEN on a user-owned project, and the attribution guard denies @jwildfire's own token",
          "issue": 252,
          "url": "https://github.com/jwildfire/obot.roadmap/issues/252",
          "since": "2026-08-18"
        }
      },
      "id": "UNSTAGED-BOARD-ITEM:jwildfire/obot.agent#261",
      "fingerprint": "d464f65a1693",
      "firstSeen": "2026-08-19",
      "lastSeen": "2026-08-20",
      "runs": 2,
      "reappeared": false,
      "decisions": [],
      "muted": false,
      "mutedUntil": null
    },
    {
      "rule": "HARD-WRAPPED-BODY",
      "ruleTitle": "Issue body hard-wrapped mid-paragraph",
      "group": "Conventions",
      "confidence": "low",
      "subject": {
        "kind": "issue",
        "repo": "jwildfire/obot.roadmap",
        "number": 22,
        "title": "Requirement: R/Pharma 2026 developer-diary blog series",
        "url": "https://github.com/jwildfire/obot.roadmap/issues/22"
      },
      "evidence": [
        "three or more consecutive wrapped lines outside a list, table or code fence"
      ],
      "proposal": {
        "kind": "agentic",
        "summary": "Rewrap the body to one line per paragraph, changing no wording.",
        "ops": [],
        "prompt": "Read the issue body. Join hard-wrapped paragraph lines into one line each, leaving lists, tables, code fences and HTML comments untouched. Change no wording, no headings and no content — this is whitespace only. Update the body via the REST API. If the body turns out not to be hard-wrapped (the detection is heuristic), do nothing and say so."
      },
      "id": "HARD-WRAPPED-BODY:jwildfire/obot.roadmap#22",
      "fingerprint": "af851fb3cc24",
      "firstSeen": "2026-07-25",
      "lastSeen": "2026-08-20",
      "runs": 43,
      "reappeared": false,
      "decisions": [
        {
          "decision": "reject",
          "at": "2026-07-25T02:51:36.461Z",
          "outcome": "rejected"
        }
      ],
      "muted": true,
      "mutedUntil": "2026-09-23"
    }
  ]
}
