{
  "checker": {
    "claims": [
      {
        "claim": "Archcore writes plain Markdown documents into .archcore/ and the MCP server returns them",
        "command": "<guest-path> mcp --project <guest-path> tools/call {\"tool\": \"get_document\", \"arguments\": {\"path\": \".archcore/use-redis-token-bucket.adr.md\"}}",
        "evidence": "Use Redis for the token bucket\\\",\\\"status\\\":\\\"draft\\\",\\\"mtime\\\":\\\"2026-10-25T23:05:04.800758815Z\\\",\\\"content\\\":\\\"---\\\\ntitle: \\\\\\\"Use Redis for the token bucket\\\\\\\"\\\\nstatus: draft\\\\n---\\\\n\\\\n## Context\\\\n\\\\nState the trigger in 2 to 4 sentences: the situation now, the constraint or\\\\nmeasurement that turns it into a problem, and what breaks if nothing changes.\\\\nCite the evidence \u2014 @path/to/file, a metric, a commit, an external authority \u2014\\\\nor mark the claim [assumption] when the decision runs ahead of the code.\\\\n\\\\nProse only in this section. A bullet list drops the connective tissue betwe",
        "expected": "document title returned",
        "input": "{\"tool\": \"get_document\", \"arguments\": {\"path\": \".archcore/use-redis-token-bucket.adr.md\"}}",
        "kind": "claim",
        "outcome": "Real input produced the expected result: Use Redis for the token bucket",
        "source": "Each command leaves plain Markdown in `.archcore/`, versioned with the code it describes.",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled or looping main behavior",
        "command": "",
        "evidence": "Entry points inspected: README.md, archcore --help (init, mcp, status, hooks, update, doctor). Archcore is a CLI plus stdio MCP server; it has no built-in cron, scheduler, loop, --once/--now, or webhook trigger. Hooks are agent-driven (Claude Code/Codex/Copilot hook scripts in plugins/archcore/hooks and bin/), fired by the host agent per tool use, not by the product on a schedule. No product cycle to replay.",
        "expected": "identify the product trigger",
        "input": "source inspection",
        "kind": "cycle",
        "outcome": "Entry points inspected: README.md, archcore --help (init, mcp, status, hooks, update, doctor). Archcore is a CLI plus stdio MCP server; it has no built-in cron, scheduler, loop, --once/--now, or webhook trigger. Hooks are agent-driven (Claude Code/Codex/Copilot hook scripts in plugins/archcore/hooks and bin/), fired by the host agent per tool use, not by the product on a schedule. No product cycle to replay.",
        "source": "repository entry points",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "<guest-path>",
        "mcp",
        "--project",
        "<guest-path>"
      ],
      "kind": "mcp",
      "scope": "product operation",
      "serverInfo": {
        "name": "archcore",
        "version": "0.13.1"
      },
      "tool_result": {
        "content": [
          {
            "text": "{\"path\":\".archcore/use-redis-token-bucket.adr.md\",\"category\":\"knowledge\",\"type\":\"adr\",\"title\":\"Use Redis for the token bucket\",\"status\":\"draft\",\"mtime\":\"2026-10-25T23:05:04.800758815Z\",\"content\":\"---\\ntitle: \\\"Use Redis for the token bucket\\\"\\nstatus: draft\\n---\\n\\n## Context\\n\\nState the trigger in 2 to 4 sentences: the situation now, the constraint or\\nmeasurement that turns it into a problem, and what breaks if nothing changes.\\nCite the evidence \u2014 @path/to/file, a metric, a commit, an external authority \u2014\\nor mark the claim [assumption] when the decision runs ahead of the code.\\n\\nProse only in this section. A bullet list drops the connective tissue between\\nthose sentences, and that tissue is what makes the decision follow from them.\\n\\n## Decision\\n\\nState the decision that was made.\\n\\n### Rationale\\n\\nExplain why this decision was chosen over alternatives:\\n\\n- Key factors that influenced the decision\\n- Trade-offs that were considered\\n- Assumptions that were made\\n\\n## Alternatives Considered\\n\\nOne numbered item per alternative, each naming what ruled it out. The reason is\\nthe part a later reader cannot reconstruct, and an alternative recorded without\\none reads as a preference rather than a choice.\\n\\n1. [Alternative] \u2014 rejected because [the measurement or constraint that ruled it out].\\n2. [Alternative] \u2014 rejected because [the measurement or constraint that ruled it out].\\n\\n## Consequences\\n\\n### Positive\\n\\n- Benefit 1: Description\\n- Benefit 2: Description\\n- Benefit 3: Description\\n\\n### Negative\\n\\n- Trade-off 1: Description and mitigation\\n- Trade-off 2: Description and mitigation\\n\\n### Risks\\n\\n- Risk 1: Description and mitigation strategy\\n- Risk 2: Description and mitigation strategy\\n\\n## Implementation Notes\\n\\nKey implementation considerations:\\n\\n- Migration path (if applicable)\\n- Dependencies affected\\n- Timeline considerations\\n\",\"source_id\":\"local\",\"source_kind\":\"local\"}",
            "type": "text"
          }
        ]
      },
      "tool_result_checked": true,
      "tool_schema_bytes": 29556,
      "tools": [
        "add_relation",
        "create_document",
        "get_document",
        "init_project",
        "install_host_config",
        "list_documents",
        "list_relations",
        "remove_document",
        "remove_relation",
        "search_documents",
        "update_document"
      ],
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": "Connect your project with archcore init",
        "command": "<guest-path> init --project <guest-path> --yes",
        "deferred": false,
        "evidence": "\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2557                                                             \n\u2551      \u2551   Archcore v0.13.1 \u2014 Git-native context for AI coding agents\n\u2551  \u2554\u2550\u2550\u2550\u2563   Spec-driven development & context engineering             \n\u2551  \u2551 \u2554\u2550\u2563   https://archcore.ai                                       \n\u255a\u2550\u2550\u2569\u2550\u2569\u2550\u255d                                                             \n\n  \u2713 Created .archcore/ directory\n  \u2713 Existing .archcore/settings.json kept\n  No AI agent selected (non-interactive). Run 'archcore mcp install --agent <id>' later.\n\n  Ready! Run 'archcore status' to verify.",
        "expected": "creates .archcore/ or keeps existing settings",
        "input": "archcore init --project <guest-path> --yes",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md#install (step 2, archcore init)",
        "verdict": "yes"
      }
    ],
    "status": "PASS"
  },
  "deviations": [
    "README installer is curl|sh from archcore.ai; ran it after downloading to <guest-path> and reading it; telemetry disabled via DO_NOT_TRACK=1 and ARCHCORE_TELEMETRY_OPTOUT=1. Installed to <guest-path> (HOME-based default) rather than PATH; the probe uses the absolute path.",
    "Did not run archcore init inside the source workspace; used --project <guest-path> to keep the snapshot unmodified.",
    "The preflight path /inputs/coldpass-preflight.py does not exist; used <guest-path> as the instructions' first command specified.",
    "Probe and claim depend on a document created once during setup (create_document with filename use-redis-token-bucket); a second create returns 'file already exists', so the probe reads the existing document rather than creating it.",
    "",
    "No Node test suite run: plugins/archcore/tests/next-step.test.ts is a plugin hook test that needs a TS runner and is not a documented README command.",
    "No product cycle: archcore has no scheduler/cron/--once; hooks are driven by the host agent."
  ],
  "fault_owner": null,
  "main_blocker": null,
  "operation": "Install the Archcore CLI with the README installer, connect a project with archcore init, and read back a document through the archcore MCP stdio server (get_document).",
  "operation_scope": "Linux amd64 guest, Ubuntu, Python 3.12.3 (checker only). Archcore CLI v0.13.1 from archcore.ai install.sh. Project state lives in <guest-path> (a separate git-initialized dir, not the source snapshot). No AI agent host (Claude Code/Codex/Copilot) was present, so plugin install and agent slash commands were not exercised.",
  "outcome": "working",
  "plain_failure": null,
  "steps": [
    "curl -fsSL https://archcore.ai/install.sh | bash (run as: DO_NOT_TRACK=1 ARCHCORE_TELEMETRY_OPTOUT=1 NODE_USE_ENV_PROXY=1 bash install.sh, telemetry opted out)",
    "archcore init (non-interactive, stdin null, no agent selected)",
    "archcore init --yes (rerun, kept existing settings)",
    "archcore mcp --project <guest-path> (stdio MCP server; create_document adr 'Use Redis for the token bucket' once during setup)",
    "get_document path .archcore/use-redis-token-bucket.adr.md (probe and claim replay)"
  ],
  "stuck_step": null,
  "suggested_fix": null
}
