aidokitwiki

Matrix health

Live status of the {adapter × stack × tier} combinations aidokit supports. The grid below is updated nightly by the Matrix snapshot workflow and committed to health/matrix-status.json in the repo.

Last verified data is in health/matrix-status.json — open it for the timestamp, the commit SHA, and the per-combination outcome.

Why this page exists #

aidokit declares support for three adapters × five stack packs × three tiers. The cartesian product is large; not every combination is meaningful (Codex / Copilot at Strict is BAD_INVOCATION; React requires a Node base). This page tracks the curated supported combinations and surfaces drift as it happens — a regression in one combination is visible the next morning without anyone having to ask.

The data behind this page is regenerated nightly by running aidokit init --dry-run for each combination and recording the outcome.

Supported combinations #

The fourteen combinations the nightly job checks:

Adapter Stack Tier Notes
claude-code node-ts starter canonical 60-second setup
claude-code node-ts standard default for serious teams
claude-code node-ts strict audit-ready, capability declarations on
claude-code node-js standard plain Node JavaScript
claude-code python standard the first non-JS stack
claude-code react,node-ts standard React composed with Node-TS
claude-code go standard Go 1.22+
claude-code python strict Strict-tier python audit packet
claude-code go strict Strict-tier go audit packet
codex node-ts starter Codex adapter at Minimum conformance
codex python starter Codex × Python
copilot node-ts starter Copilot adapter at Minimum conformance
copilot python starter Copilot × Python
claude-code,codex node-ts starter Multi-adapter shared docs / Beads

Smart-skips applied:

Reading the JSON snapshot #

The snapshot file health/matrix-status.json carries:

{
  "schemaVersion": 1,
  "generatedAt": "2026-05-25T06:00:00.000Z",
  "gitSha": "...",
  "summary": { "total": 14, "passed": 14, "failed": 0 },
  "entries": [
    {
      "adapter": "claude-code",
      "stack":   "node-ts",
      "tier":    "starter",
      "label":   "claude-code · node-ts · starter",
      "status":  "pass" | "fail" | "pending",
      "filesPlanned": 87
    }
    // ... 13 more
  ]
}

A "pending" status only appears on the initial seed before the first nightly run completes. After that, every entry is "pass" or "fail".

What "pass" means #

A combination is pass when aidokit init --dry-run for that combination:

  1. Exits with code 0.
  2. Reports at least one planned file.
  3. Did not throw an uncaught error.

pass does not verify that the emitted files are useful — only that the planner ran without crashing. The full test suite under packages/cli/test/ and the per-combination matrix workflow (matrix.yml) cover the deeper assertions.

What to do if a combination goes red #

  1. Open health/matrix-status.json and identify the failing combination.
  2. Reproduce locally:

bash pnpm -r build tmp=$(mktemp -d) && cd "$tmp" && git init node /path/to/aidokit/packages/cli/dist/bin/aidokit.js init \ --adapter <ADAPTER> --stack <STACK> --tier <TIER> \ --no-beads --no-mcp --yes --dry-run --json 3. Diagnose. The most common causes: - Adapter manifest declared conformance is lower than the requested tier. - Stack pack's detect() is throwing for the empty test directory. - File-plan computation collided on two adapters emitting the same path. 4. Open an issue tagged health-regression with the reproducer.

See also #