[
  {
    "name": "python3",
    "status": "ok",
    "detail": "3.14.2",
    "hint": ""
  },
  {
    "name": "git",
    "status": "ok",
    "detail": "git version 2.50.1 (Apple Git-155)",
    "hint": ""
  },
  {
    "name": "git identity",
    "status": "ok",
    "detail": "Aaron Yordanyan <aaron.yor@gmail.com>",
    "hint": ""
  },
  {
    "name": "gh",
    "status": "ok",
    "detail": "gh version 2.83.2 (2025-12-10)",
    "hint": ""
  },
  {
    "name": "gh auth",
    "status": "ok",
    "detail": "\u2713 Logged in to github.com account diazoxide (keyring)",
    "hint": ""
  },
  {
    "name": "git auth",
    "status": "ok",
    "detail": "token-only across 14 repo(s) (each forge's own HTTPS token; no SSH/signing)",
    "hint": ""
  },
  {
    "name": "charter.toml",
    "status": "ok",
    "detail": "parsed cleanly (/Users/aharon/IdeaProjects/charter)",
    "hint": ""
  },
  {
    "name": "schema",
    "status": "warn",
    "detail": "1 issue(s): missing directory: inventory/",
    "hint": "Run: charter reinit  (creates what's missing; never touches existing content)."
  },
  {
    "name": "plane root",
    "status": "warn",
    "detail": "4 uncommitted file(s)",
    "hint": "Commit control-plane content with `charter save`. Anything that is not control plane belongs in a workspace clone \u2014 charter workspace create <task>, then charter clone <repo>; the plane root is one working tree every session shares."
  },
  {
    "name": "session root",
    "status": "ok",
    "detail": "/Users/aharon/IdeaProjects/charter/docs/prototypes/ui-seam/fixtures \u2014 not the plane (/Users/aharon/IdeaProjects/charter)\n        \u21b3 the host reads settings from the session's own directory and does not walk up, so the plane's .claude/ is not in force for them \u2014 the rows below read /Users/aharon/IdeaProjects/charter/docs/prototypes/ui-seam/fixtures/.claude/ and ~/.claude/\n        \u21b3 skills+agents DO walk up, as far as the git root \u2014 which of them reach here is the `session layer` row below, not this one\n        \u21b3 the plane is still this session's identity: personas, the vault, memory and workspaces resolve to /Users/aharon/IdeaProjects/charter from anywhere inside it",
    "hint": ""
  },
  {
    "name": "session layer",
    "status": "ok",
    "detail": "/Users/aharon/IdeaProjects/charter/docs/prototypes/ui-seam/fixtures \u2014 what a session started here would find in the repo\n        \u21b3 claude-code: settings \u2717 \u2014 project settings are read from the session's OWN directory and the host does not walk up, so nothing above it is in force; skills+agents \u2713",
    "hint": ""
  },
  {
    "name": "harness",
    "status": "ok",
    "detail": "claude-code",
    "hint": ""
  },
  {
    "name": "frame",
    "status": "ok",
    "detail": "tmux 3.7",
    "hint": ""
  },
  {
    "name": "plane-root guard",
    "status": "warn",
    "detail": "pretooluse is not wired \u2014 branch moves in the plane root are NOT refused, and nothing declares it in /Users/aharon/IdeaProjects/charter/docs/prototypes/ui-seam/fixtures",
    "hint": "This session is rooted at /Users/aharon/IdeaProjects/charter/docs/prototypes/ui-seam/fixtures, not the plane (/Users/aharon/IdeaProjects/charter), and the host does not walk up \u2014 so the plane's .claude/settings.json never reaches here, wired or not. `charter reinit` writes THAT file, so it would not change this session. Declare `charter hook pretooluse` under hooks.PreToolUse in /Users/aharon/IdeaProjects/charter/docs/prototypes/ui-seam/fixtures/.claude/settings.json, or in ~/.claude/settings.json which every session reads \u2014 or install the Claude Code plugin."
  },
  {
    "name": "guard seen",
    "status": "ok",
    "detail": "last ran 0m ago under claude-code",
    "hint": ""
  },
  {
    "name": "nested plane",
    "status": "ok",
    "detail": "not nested",
    "hint": ""
  },
  {
    "name": "workspace clones",
    "status": "warn",
    "detail": "harness-wrapper/charter (255 behind)",
    "hint": "\u2192 charter sync --all  (plain `sync` only touches the ACTIVE workspace, which is how this stays hidden)  Counted from what the last fetch recorded, so it can under-report \u2014 never a live query, this runs at SessionStart."
  },
  {
    "name": "workspace layer",
    "status": "warn",
    "detail": "authority-audit/.claude/settings.json (stale), authority-audit/charter/.claude/agents/reddit.md (foreign), authority-audit/charter/.claude/agents/release.md (foreign), authority-audit/charter/.claude/agents/steward.md (foreign), \u2026",
    "hint": "charter workspace reinit --all  (opencode, codex: a workspace directory is not a config scope for them, so it cannot diverge \u2014 charter harness list)   A 'foreign' file is one charter did not write: it is left completely untouched and never repaired. Remove it to have charter generate its own again."
  },
  {
    "name": "changes",
    "status": "ok",
    "detail": "none",
    "hint": ""
  },
  {
    "name": "inventory",
    "status": "ok",
    "detail": "not built \u2014 this plane's own repo is clonable without it",
    "hint": ""
  },
  {
    "name": "vaults",
    "status": "ok",
    "detail": "4 reachable (references not resolved); listed by other accounts: .charter/vaults 755, .charter 755, / 755 (want 700 \u2014 chmod 700)",
    "hint": "Resolve them for real: charter vault verify"
  },
  {
    "name": "vault registry",
    "status": "ok",
    "detail": "shared and local halves agree (4 vaults)",
    "hint": ""
  },
  {
    "name": "version lock",
    "status": "ok",
    "detail": "not pinned",
    "hint": ""
  },
  {
    "name": "memory indexes",
    "status": "warn",
    "detail": "1 dangling, 0 unindexed",
    "hint": "ws:fix-843-tmux-poll (1 dangling, 0 unindexed)  \u2192 a dangling link is proposal-only: prune it, or write the memory it names"
  },
  {
    "name": "personas",
    "status": "ok",
    "detail": "5 persona(s), all clean",
    "hint": ""
  },
  {
    "name": "persona grant",
    "status": "ok",
    "detail": "'steward' is well-formed",
    "hint": ""
  },
  {
    "name": "front door",
    "status": "ok",
    "detail": "'steward' via charter.toml [persona] default",
    "hint": ""
  },
  {
    "name": "news",
    "status": "ok",
    "detail": "nothing to adopt",
    "hint": ""
  },
  {
    "name": "ask rules",
    "status": "ok",
    "detail": "none",
    "hint": ""
  },
  {
    "name": "shadowed docs",
    "status": "ok",
    "detail": "none \u2014 charter's own knowledge is not duplicated here",
    "hint": ""
  },
  {
    "name": "credential paths",
    "status": "ok",
    "detail": "none present",
    "hint": ""
  },
  {
    "name": "mcp",
    "status": "ok",
    "detail": "1 server(s), none on an absolute path",
    "hint": ""
  },
  {
    "name": "plugin install",
    "status": "warn",
    "detail": "charter@charter is installed (project scope) and DISABLED \u2014 an installed plugin loads nothing until it is enabled, so charter's hooks do not run here",
    "hint": "Run: claude plugin enable charter@charter --scope project  (charter does not enable it for you: if you turned it off on purpose, this row is only telling you what that costs). The plugin loads at the NEXT session."
  },
  {
    "name": "plugin",
    "status": "ok",
    "detail": "not running under the Claude Code plugin",
    "hint": ""
  },
  {
    "name": "plugin files",
    "status": "ok",
    "detail": "matches the marketplace clone (24e05f8)",
    "hint": ""
  }
]
