praxis-stack

megapraxis + metamegapraxis — a self-auditing session-bootstrap system, materialized · install · Grok short-circuit · onboard cert

What this is

Claude Code sessions start cold: hundreds of installed skills, agents, and MCP servers; memory spanning every project on a machine; no deterministic opening move. The praxis stack is a pair of skills that fixes this — and then audits itself.

megapraxis — the session bootstrap

megapraxis runs at session start. It detects one of seven modes from the working directory's shape and history, inventories skills/agents/MCP servers, flags silently-broken ("dark") plugins, reads project memory and git state, and emits a 15-second dashboard briefing. Its contract: every line corresponds to a truth on disk — unverified claims are dropped, never emitted; counts that weren't computed render as count-skipped, never as guesses.

ModeFires when
hook-autoSessionStart hook; 3-line kernel briefing, no questions
active-projectcwd is a real project (git repo / manifest / memory)
containercwd holds multiple project subdirs
picker2+ sub-projects recently active — asks which one
machine-dashboard"show all projects" — machine-wide scan
coldno prior context; minimal catalog
resume"pick up where we left off" — replays the last unresolved thread

metamegapraxis — the meta-auditor

Where megapraxis briefs the session, metamegapraxis briefs megapraxis. It rolls through 23 documented operational traps (each with a disk-verifiable probe), checks the bridge manifest's referential integrity, computes coverage deltas, and — when single-lens auditing isn't enough — dispatches a four-agent audit swarm whose verdicts persist to a knowledge graph. Six modes: audit, trap N, bridges, propose, swarm, diff.

The 23 operational traps

Silent-failure classes learned in production. Each has a signal (the disk signature that identifies it) and a fix. The live roll-call is on the State tab.

#TrapOne-line signal
1plugin-manifest-misplacedmanifest at plugin root instead of .claude-plugin/ — plugin silently absent while settings say ON
2session-vs-app-restartnew session ≠ new process; plugin configs load only at app launch
3user-belief-vs-harness"it should be registered now" is a hypothesis until the harness confirms it
4stdio-works-cc-never-launchedserver responds when run manually, but the host never spawned it
5http-up-not-stdio-upHTTP health check green while the stdio MCP sibling is down — separate processes
6windows-python-store-stubbare python resolves to a Store alias that prints an install nag and exits 1
7stale-pyc-shadowingbytecode mtime ties can shadow a fresh source edit
8fabricated-counta number derived from a truncated listing instead of a real count
9heuristic-classificationclient-side guesswork silently replacing an auditable server-side contract
10fix-violates-feedbacka proposed action contradicting a saved user correction
11ghost-warm-slugdirectory looks recently active because a memory file was touched, not a session
12stale-graph-cachegraph snapshot lagging fresh disk state
13new-agent-needs-restartagent files written mid-session are invisible until app relaunch
14marketplace-root-claude-plugina marketplace manifest dir misread as a stray plugin — deleting it darkens everything it publishes
15mcp-disconnect-mid-sessiontool roster shrinks mid-session while the HTTP backend stays up
16tmp-on-windows/tmp/ writes that the next shell can't read back
17shell-escape-json-winpathbackslash paths mangled across shell/curl escape layers
18claude-md-aspirational-routedocs describe an endpoint the code never shipped — the handler is the truth
19bulk-finalize-no-contribution-checkblanket-failing pending work destroys provenance of runs that succeeded
20userpromptsubmit-empty-payloadsaudit rows persisted before their fields were populated leak forever-pending
21settings-dark-harness-resolvessettings say a plugin is off; the runtime dispatches it anyway — the harness wins
22malformed-settings-jsonone trailing comma silently disables every plugin and hook
23while-read-subshell-hangper-iteration subshells on MSYS stretch a 300ms scan to minutes

Verdicts and Tarski honesty

Audit cycles terminate with an explicit verdict — converged, converged-modulo-restart, extend, extend-stable, degrade, cycle-complete-extend-deferred, or INCOMPLETE (with reason). What can't be decided is named, never absorbed: five canonical undecidables (unknown-unknowns, true-lens-independence, fixed-point-vs-plateau, state-validity-horizon, converged-vs-correct) plus four observation-class buckets (values-question, oracle-required, telemetry-required, intent-vs-drift) appear in every audit rather than being quietly folded into "all done".

Swarms and the bridge flywheel

When one lens isn't enough — self-audit above all, since the audit target is the auditor — the stack composes an agent swarm: four reviewers with different toolsets in a pipeline, a coordinator synthesizing a verdict, every contribution persisted to a graph. Recurring reasoning gets compiled into bridges: memoized transfer rules (short-circuits, pre-populated templates, delta-scopes) consulted before any new work. A byte-identical re-audit short-circuits to its prior verdict for ~20 tokens instead of a ~150K-token cycle — marginal cost per invocation trends toward zero, bounded below only by the genuinely novel, which always pays full price. That residual is load-bearing, not a failure.

Grok Build — onboarding short-circuit

Future Grok Build projects should not rediscover the stack from a cold start. A MetaMethodology onboarding short-circuit (same dialect as ASEC SwarmInvocation:: rows) is published here:

Verdict: converged-modulo-harness. No pharosiraptor MCP required for a valid briefing (Tier 0). Traps #4/#5 are N/A on pure Grok orientation. Full self-audit swarm stays behind an explicit user dispatch — novel audits still pay full price (Tarski residual named, not absorbed).

One real cycle, end to end — with receipts

This is not a mock-up. On 2026-07-17 the stack ran its full loop against itself — /megapraxis boot → /metamegapraxis audit → four-agent self-audit swarm → coordinator verdict → fixes applied → this site republished — and every stage left records. This tab replays that cycle from those records, and labels each claim by how far you can verify it from here:

The punchline is the loop eating its own cooking: the swarm's CRITICAL finding this cycle was that a fix recorded as "done, pending restart" by the previous cycle had landed in dead code — found because the dispatch tooling failed live during this very cycle's dispatch. The audit trail below includes the machinery's own failure, because that is what an honest audit trail looks like.

loading cycle data…

Operational state

loading snapshot…