{
  "version": 1,
  "generated_at": "2026-05-08T17:08:01.169Z",
  "project_root": "/Users/paulirving/projects/bigbrain",
  "rule_set": "/Users/paulirving/projects/bigbrain/scripts/doc-keeper/rules.json",
  "summary": {
    "aligned": 19,
    "needs_update": 6,
    "archive": 0,
    "high_severity": 0
  },
  "files": [
    {
      "path": "CLAUDE.md",
      "verdict": "needs-update",
      "findings": [
        {
          "rule_id": "component-count-skills",
          "severity": "medium",
          "category": "component-count",
          "message": "skills/ count drift: prose says 13, live count is 16",
          "expected": 16,
          "found": 13,
          "fix_kind": "mechanical",
          "location": {
            "line": 14
          }
        },
        {
          "rule_id": "component-count-agents",
          "severity": "medium",
          "category": "component-count",
          "message": "agents/ count drift: prose says 4, live count is 5",
          "expected": 5,
          "found": 4,
          "fix_kind": "mechanical",
          "location": {
            "line": 16
          }
        },
        {
          "rule_id": "component-count-hooks",
          "severity": "medium",
          "category": "component-count",
          "message": "hooks/ count drift: prose says 26, live count is 27",
          "expected": 27,
          "found": 26,
          "fix_kind": "mechanical",
          "location": {
            "line": 18
          }
        }
      ]
    },
    {
      "path": "README.md",
      "verdict": "aligned",
      "findings": []
    },
    {
      "path": "docs/NATURAL-LANGUAGE-GUIDE.md",
      "verdict": "aligned",
      "findings": []
    },
    {
      "path": "docs/PM-CHEATSHEET.md",
      "verdict": "aligned",
      "findings": []
    },
    {
      "path": "docs/PM-WORKFLOWS.md",
      "verdict": "aligned",
      "findings": []
    },
    {
      "path": "docs/PROJECT-MANAGEMENT-REFERENCE.md",
      "verdict": "needs-update",
      "findings": [
        {
          "rule_id": "component-count-hooks",
          "severity": "medium",
          "category": "component-count",
          "message": "hooks/ count drift: prose says 14, live count is 27",
          "expected": 27,
          "found": 14,
          "fix_kind": "mechanical",
          "location": {
            "line": 10
          }
        },
        {
          "rule_id": "command-removed-auto-loop",
          "severity": "medium",
          "category": "command-name",
          "message": "/auto-loop is deprecated in favor of /warp-drive. Flag references for review. (matched: \"/auto-loop\")",
          "found": "/auto-loop",
          "fix_kind": "judgment",
          "location": {
            "line": 9
          }
        }
      ]
    },
    {
      "path": "docs/PROJECT-ORCHESTRATION-HANDBOOK.md",
      "verdict": "needs-update",
      "findings": [
        {
          "rule_id": "component-count-skills",
          "severity": "medium",
          "category": "component-count",
          "message": "skills/ count drift: prose says 1, live count is 16",
          "expected": 16,
          "found": 1,
          "fix_kind": "mechanical",
          "location": {
            "line": 675
          }
        },
        {
          "rule_id": "component-count-agents",
          "severity": "medium",
          "category": "component-count",
          "message": "agents/ count drift: prose says 1, live count is 5",
          "expected": 5,
          "found": 1,
          "fix_kind": "mechanical",
          "location": {
            "line": 745
          }
        },
        {
          "rule_id": "component-count-hooks",
          "severity": "medium",
          "category": "component-count",
          "message": "hooks/ count drift: prose says 1, live count is 27",
          "expected": 27,
          "found": 1,
          "fix_kind": "mechanical",
          "location": {
            "line": 963
          }
        },
        {
          "rule_id": "registry-count-skills",
          "severity": "medium",
          "category": "registry-count",
          "message": "registry/skills/ count drift: prose says 2, live count is 31",
          "expected": 31,
          "found": 2,
          "fix_kind": "mechanical",
          "location": {
            "line": 696
          }
        },
        {
          "rule_id": "registry-count-agents",
          "severity": "medium",
          "category": "registry-count",
          "message": "registry/agents/ count drift: prose says 2, live count is 17",
          "expected": 17,
          "found": 2,
          "fix_kind": "mechanical",
          "location": {
            "line": 754
          }
        },
        {
          "rule_id": "ambiguous-cdr",
          "severity": "medium",
          "category": "ambiguous-term",
          "message": "`cdr` is ambiguous — both 'claude disaster recovery' (current) and a legacy 'sync requirements index' alias. Surface every usage so a human can clarify. (matched: \"cdr\")",
          "found": "cdr",
          "fix_kind": "judgment",
          "location": {
            "line": 162
          }
        }
      ]
    },
    {
      "path": "docs/automation-behavior.md",
      "verdict": "aligned",
      "findings": []
    },
    {
      "path": "docs/automation-workflow.txt",
      "verdict": "aligned",
      "findings": []
    },
    {
      "path": "docs/backup-recovery.md",
      "verdict": "needs-update",
      "findings": [
        {
          "rule_id": "ambiguous-cdr",
          "severity": "medium",
          "category": "ambiguous-term",
          "message": "`cdr` is ambiguous — both 'claude disaster recovery' (current) and a legacy 'sync requirements index' alias. Surface every usage so a human can clarify. (matched: \"cdr\")",
          "found": "cdr",
          "fix_kind": "judgment",
          "location": {
            "line": 58
          }
        },
        {
          "rule_id": "ambiguous-cdr",
          "severity": "medium",
          "category": "ambiguous-term",
          "message": "`cdr` is ambiguous — both 'claude disaster recovery' (current) and a legacy 'sync requirements index' alias. Surface every usage so a human can clarify. (matched: \"cdr\")",
          "found": "cdr",
          "fix_kind": "judgment",
          "location": {
            "line": 69
          }
        },
        {
          "rule_id": "ambiguous-cdr",
          "severity": "medium",
          "category": "ambiguous-term",
          "message": "`cdr` is ambiguous — both 'claude disaster recovery' (current) and a legacy 'sync requirements index' alias. Surface every usage so a human can clarify. (matched: \"cdr\")",
          "found": "cdr",
          "fix_kind": "judgment",
          "location": {
            "line": 69
          }
        },
        {
          "rule_id": "ambiguous-cdr",
          "severity": "medium",
          "category": "ambiguous-term",
          "message": "`cdr` is ambiguous — both 'claude disaster recovery' (current) and a legacy 'sync requirements index' alias. Surface every usage so a human can clarify. (matched: \"cdr\")",
          "found": "cdr",
          "fix_kind": "judgment",
          "location": {
            "line": 103
          }
        }
      ]
    },
    {
      "path": "docs/branch-config.md",
      "verdict": "aligned",
      "findings": []
    },
    {
      "path": "docs/cdfork-guide.md",
      "verdict": "aligned",
      "findings": []
    },
    {
      "path": "docs/deploy-skill-prompt.md",
      "verdict": "aligned",
      "findings": []
    },
    {
      "path": "docs/dev-lifecycle.md",
      "verdict": "aligned",
      "findings": []
    },
    {
      "path": "docs/how-to-auto-loop.md",
      "verdict": "aligned",
      "findings": []
    },
    {
      "path": "docs/new-machine-setup.md",
      "verdict": "needs-update",
      "findings": [
        {
          "rule_id": "ambiguous-cdr",
          "severity": "medium",
          "category": "ambiguous-term",
          "message": "`cdr` is ambiguous — both 'claude disaster recovery' (current) and a legacy 'sync requirements index' alias. Surface every usage so a human can clarify. (matched: \"cdr\")",
          "found": "cdr",
          "fix_kind": "judgment",
          "location": {
            "line": 59
          }
        }
      ]
    },
    {
      "path": "docs/orchestrator-guide.md",
      "verdict": "aligned",
      "findings": []
    },
    {
      "path": "docs/pm-conventions.md",
      "verdict": "aligned",
      "findings": []
    },
    {
      "path": "docs/prime-directive.md",
      "verdict": "aligned",
      "findings": []
    },
    {
      "path": "docs/project-setup-guide.md",
      "verdict": "aligned",
      "findings": []
    },
    {
      "path": "docs/research/parallel-agent-orchestration.md",
      "verdict": "aligned",
      "findings": []
    },
    {
      "path": "docs/token-monitoring.md",
      "verdict": "aligned",
      "findings": []
    },
    {
      "path": "docs/verification-system.md",
      "verdict": "aligned",
      "findings": []
    },
    {
      "path": "docs/vision.md",
      "verdict": "aligned",
      "findings": []
    },
    {
      "path": "docs/warp-drive-guide.md",
      "verdict": "needs-update",
      "findings": [
        {
          "rule_id": "component-count-hooks",
          "severity": "medium",
          "category": "component-count",
          "message": "hooks/ count drift: prose says 5, live count is 27",
          "expected": 27,
          "found": 5,
          "fix_kind": "mechanical",
          "location": {
            "line": 105
          }
        }
      ]
    }
  ],
  "cross_cutting": []
}