$ yg check --json
exit: 1
--- stdout
{
  "schema": "yg-check/1",
  "project": {
    "name": "<ROOT-NAME>",
    "nodes": 3,
    "aspects": 1,
    "flows": 0
  },
  "exit": {
    "code": 1,
    "status": "fail",
    "reason": "1 blocking finding and 2 warnings."
  },
  "coverage": {
    "files": 3,
    "covered": 3,
    "nodeOwned": 3,
    "typeCovered": 0,
    "excluded": 0,
    "requiresNothing": false
  },
  "totals": {
    "errors": 1,
    "warnings": 2,
    "draftSkipped": 0,
    "verdicts": {
      "approved": 1,
      "refused": 1,
      "unverified": 0,
      "stale": 1,
      "prompt-too-large": 0,
      "companion-error": 0
    },
    "verified": {
      "deterministic": 1,
      "llm": 0
    }
  },
  "pairs": [
    {
      "aspect": "no-todo-comments",
      "unit": {
        "kind": "node",
        "path": "alpha"
      },
      "node": "alpha",
      "kind": "deterministic",
      "status": "enforced",
      "verdict": "stale",
      "reviewer": "deterministic",
      "hash": "a1356e529249b4ba919373d75f7eaebc5c616df9aa2de53d6a2ae73403cc30b1",
      "filled": null
    },
    {
      "aspect": "no-todo-comments",
      "unit": {
        "kind": "node",
        "path": "beta"
      },
      "node": "beta",
      "kind": "deterministic",
      "status": "enforced",
      "verdict": "refused",
      "reviewer": "deterministic",
      "hash": "ba136c1ecde2a95ed2ee82218e00d193d4279c6ef6f2a99a715b880d77c8845c",
      "filled": null,
      "report": "src/beta/beta.ts:1: TODO comment found — remove it or track the work in the issue tracker."
    },
    {
      "aspect": "no-todo-comments",
      "unit": {
        "kind": "node",
        "path": "gamma"
      },
      "node": "gamma",
      "kind": "deterministic",
      "status": "enforced",
      "verdict": "approved",
      "reviewer": "deterministic",
      "hash": "7330e65b47e0ccd8714a23bbc484fab20f51fee745babd0d3f3b898058212f48",
      "filled": null
    }
  ],
  "issues": [
    {
      "code": "unverified",
      "severity": "error",
      "what": "The verdict for aspect 'no-todo-comments' on node:alpha is stale.",
      "why": "A verdict was recorded, but its inputs changed since (a source edit, an aspect edit, or a changed reference), so it no longer counts. It is re-judged over the code as it stands now.",
      "next": "yg check --approve",
      "aspect": "no-todo-comments",
      "node": "alpha",
      "unit": "node:alpha",
      "cause": "stale",
      "unitRef": {
        "kind": "node",
        "path": "alpha"
      },
      "label": "unverified"
    },
    {
      "code": "aspect-violation-enforced-outside",
      "severity": "warning",
      "what": "Aspect 'no-todo-comments' is refused on node:beta by a script rule.\nViolations:\nsrc/beta/beta.ts:1: TODO comment found — remove it or track the work in the issue tracker.",
      "why": "Source files must not contain TODO comments — track work in the issue tracker, not the code.",
      "next": "Change the code at these lines, then run yg check --approve --only-deterministic (free) to record the new verdict.",
      "aspect": "no-todo-comments",
      "node": "beta",
      "unit": "node:beta",
      "unitRef": {
        "kind": "node",
        "path": "beta"
      },
      "violations": [
        {
          "file": "src/beta/beta.ts",
          "line": 1,
          "message": "TODO comment found — remove it or track the work in the issue tracker."
        }
      ],
      "label": "refused-outside"
    },
    {
      "code": "rules-digest-stale",
      "severity": "warning",
      "what": "Committed agent-rules digest is out of sync: AGENTS.md digest block is missing; .clinerules/yggdrasil.md is missing; CLAUDE.md @AGENTS.md import is missing.",
      "why": "Agents read the committed digest before running yg prime; a stale, hand-edited, or missing digest means agents may follow outdated rules or none at all.",
      "next": "yg init --upgrade",
      "label": "rules-digest-stale"
    }
  ],
  "judges": [],
  "progressive": {
    "reference": "main",
    "changedInputs": 1,
    "outside": 1,
    "byteGuardKept": 0,
    "byteGuardUnavailable": false,
    "noiseFloor": {
      "advisory": 0,
      "enforcedOutside": 1
    }
  },
  "suggestedNext": "yg check --approve --only-deterministic",
  "groups": [
    {
      "code": "unverified",
      "label": "unverified",
      "aspect": null,
      "severity": "error",
      "subject": "1 pair whose inputs changed since the verdict",
      "cause": "stale",
      "why": "A verdict was recorded, but its inputs changed since (a source edit, an aspect edit, or a changed reference), so it no longer counts. It is re-judged over the code as it stands now.",
      "next": "yg check --approve --only-deterministic",
      "members": [
        0
      ]
    },
    {
      "code": "rules-digest-stale",
      "label": "rules-digest-stale",
      "aspect": null,
      "severity": "warning",
      "subject": "Committed agent-rules digest is out of sync: AGENTS.md digest block is missing; .clinerules/yggdrasil.md is missing; CLAUDE.md @AGENTS.md import is missing",
      "why": "Agents read the committed digest before running yg prime; a stale, hand-edited, or missing digest means agents may follow outdated rules or none at all.",
      "next": "yg init --upgrade",
      "members": [
        2
      ]
    },
    {
      "code": "aspect-violation-enforced-outside",
      "label": "refused-outside",
      "aspect": "no-todo-comments",
      "severity": "warning",
      "subject": "no-todo-comments — 1 violation in beta — outside your changes",
      "why": "Source files must not contain TODO comments — track work in the issue tracker, not the code.",
      "next": null,
      "members": [
        1
      ]
    }
  ],
  "next": {
    "command": [
      "yg",
      "check",
      "--approve",
      "--only-deterministic"
    ],
    "text": "yg check --approve --only-deterministic",
    "target": {},
    "cost": {
      "free": 1,
      "reviewerPairs": 0,
      "reviewerCalls": 0
    },
    "remaining": {
      "needsFix": 0,
      "fillable": 1,
      "needsUser": 0,
      "waitingOnReviewer": 0
    },
    "requiresUser": false,
    "then": null
  },
  "banner": null,
  "notes": [
    "1 enforced finding held outside it stands on code this change did not touch — that is the baseline this repository already had, not a result of your change."
  ]
}
--- stderr
