type: goal

text: Add WRAPPER-CONTRACT grok.sh + adapter + presets/grok.json so harness can seat Grok


type: methodology

text: Contract-level TDD; model after ca.sh/codex.sh; no orchestrator changes; fail-closed


type: intent

text: Make Grok a first-class harness engine without touching seat resolution core


type: direction

verbatim: Wrapper + preset. Script name wrappers/grok.sh. Coder all tiers grok-composer-2.5-fast; reviewer/fixer grok-4.5. Probe then fail-closed auth; optional GROK.env only if present.


type: deferred

text: Wire grok into anthropic-less ladder; ACP stdio; real token metering

reason: User scoped wrapper+preset only; stream has no tokens today


type: task

seat: coder

tier: medium

desc: Read docs/plans/2026-07-10-grok-wrapper.md Task 1 (Dialect + normalize) for the full contract. Add grok dialect enum + normalizeGrok + fixture/tests. Acceptance: node --test lib/test/normalize-events.test.js. Commit only: spec/events.schema.json lib/normalize-events.js lib/test/fixtures/grok.jsonl lib/test/normalize-events.test.js.


desc: Read docs/plans/2026-07-10-grok-wrapper.md Task 2 (wrappers/grok.sh) for the full contract. Implement grok.sh + mock session tests. Acceptance: bash wrappers/test/grok-session.sh. Commit only: wrappers/grok.sh wrappers/test/grok-session.sh.


tier: low

desc: Read docs/plans/2026-07-10-grok-wrapper.md Task 3 (Adapter + preset) for the full contract. Register grok in adapters.json + create presets/grok.json. Acceptance: node presets/_validate.mjs. Commit only: presets/adapters.json presets/grok.json.