# HARNESS.md — executing the praxis skills outside Claude Code

The skill files in this package are written in Claude Code's skill dialect, but they are
**procedures, not plugins**: any agentic code builder that can read files and run shell
commands can execute them. This document maps every Claude-Code-specific primitive the
skill bodies mention to its generic equivalent.

## The guarantee

The skills' **filesystem-fallback path uses only two capabilities: shell execution and file
reads** — capabilities every code-builder agent has. Everything beyond that (graph backend,
MCP tools, typed subagents) is an optional enrichment with an explicit in-skill fallback.
When in doubt, take the fallback branch; the skills treat it as a designed mode, never an error.

## Primitive map

| Claude Code primitive in the skill text | Your equivalent |
|---|---|
| Skill invocation (`/megapraxis`, `Skill` tool) | read `skills/megapraxis/SKILL.md` and execute it top-to-bottom |
| in-context skill listing ("harness truth") | your own tool/instruction inventory; if you can't enumerate one, verify by file presence on disk |
| `ToolSearch select:mcp__…` (MCP tool probe) | check whether your harness has that tool registered; if you have no MCP support, the probe "fails" — take the documented filesystem-fallback |
| `AskUserQuestion` (structured options) | ask the user in chat with the same options |
| `Agent(subagent_type=…)` dispatch | your subtask / parallel-agent mechanism; if you have none, execute the member's instructions inline, sequentially |
| `TodoWrite` / task tracking | your todo mechanism, or a plain checklist in your reply |
| SessionStart hook auto-fire | run megapraxis when a session begins or when the user asks to be oriented |
| `~/.claude/skills/`, `enabledPlugins`, plugin registries | Claude-Code-specific inventory surfaces; when the skill audits them and they don't exist on your machine, report them absent — do not fabricate |
| MCP graph backend (`megapraxis_boot`, node CRUD) | optional — see BACKEND.md; without it, both skills run in filesystem mode |
| OpenAI Codex plugin / `~/.codex/skills` | prefer the native marketplace in `ONBOARD-CODEX.md`; direct fallback is `install.py --harness codex`; invoke `$praxis:megapraxis` as a plugin or `$megapraxis` as a direct skill |
| Grok Build session / `~/.grok/skills` | install with `install.py --target ~/.grok/skills`; follow https://praxis-stack.pages.dev/onboard-grok.md short-circuit (no MCP required); adapter `adapters/GROK.md` |

## OpenAI Codex short-circuit

Install the native Praxis plugin once, verify it in a new Codex task, then reuse it from every
future project. On orientation-only requests, run Megapraxis and stop; do not pay the full
Metamegapraxis swarm cost unless the user asks for an audit or a blocking trap is detected.

1. Follow `ONBOARD-CODEX.md` or https://praxis-stack.pages.dev/onboard-codex.md.
2. Prefer the served Codex marketplace; use `install.py --harness codex` only as a direct-skill fallback.
3. Map `ToolSearch` to Codex's current tool registry and `Agent(subagent_type=...)` to Codex's
   multi-agent mechanism. Exact tool prefixes are harness-owned; discover them rather than
   copying Claude's `mcp__plugin_*` spelling.
4. Treat absent graph tools as optional during orientation. Preserve traps #4/#5 only when the
   user requested graph-backed features or a declared server should be live.

This is bridge-class `onboarding-short-circuit`: it removes repeated setup, not future audits.
Novel work and explicit Metamegapraxis swarm requests still pay full cost.

## Grok Build short-circuit

New Grok projects should **not** pay full MetaMethodology swarm cost to onboard. Sequence:

1. Read `onboard-grok.md` / `demo/grok-onboard.json` (live on praxis-stack.pages.dev).
2. Install skills once into `~/.grok/skills` (and/or `~/.claude/skills` if shared).
3. Run megapraxis **filesystem-fallback** only; skip swarm until explicit user `dispatch`.
4. Treat traps #4/#5 (MCP launch) as **N/A** on pure Grok orientation unless graph features are in scope.

That is an **onboarding** short-circuit (bridge-class `onboarding-short-circuit`), not a claim that self-audit is free forever. Novel audits still pay full price.

## What to expect per skill

- **megapraxis** — emits a session-start briefing. Outside Claude Code, mode detection and the
  disk-verified inventory work as written (they are shell + file reads); the plugin/MCP audit
  sections will mostly report "not applicable on this harness," which is the truthful output.
- **metamegapraxis** — audits megapraxis. The trap roll-call's disk probes work anywhere;
  graph-backed probes degrade to `—` with a reason, exactly as the skill specifies.

## Honesty rule (applies on every harness)

The skills' core contract is harness-independent: **every emitted claim corresponds to a truth
on disk; counts are computed or rendered `count-skipped`; what can't be decided is named, never
absorbed.** If your harness can't verify something, say so in the output — that is compliant
behavior, not failure.
