Skip to main content

An AI-native dev harness. Solemnly swear you're up to no good.

Project description

marauders-mischief

An AI-native dev harness. Solemnly swear you're up to no good.

A versioned, harness-agnostic development framework for AI-native software engineering. Size-adaptive sessions, multi-agent quality gates, persistent context across sessions.

Built for Claude Code today; designed to support Codex CLI and Cursor in future releases.

Status: Pre-release. v0.11.0 hardens verify-agent. Verify is the pre-PR adherence gate — it confirms the build loop produced what the plan promised. Previously every verify-fail bounced to refine-agent; under v0.10's protected surfaces, some failures (a declared test that was never built, a scope violation, an unchecked manual step) can't actually be fixed by refine. v0.11 has verify classify each failure with a route: refine (missing production code, existing path), replan (scope drift, declared test not built, plan unverifiable — escalate immediately), or user (unresolved [QUESTION] in autonomous mode, unchecked manual step — needs human action). The orchestrator dispatches by route: pure-refine sets bounce to refine as before; any non-refine route fires the new verify-escalation hit safeguard instead of burning a refine cycle. Verify also runs 5 mechanical pre-checks via Bash before any reasoning (diff vs scope, [QUESTION] count, manual-step boxes, deviations triage, plan-quality preconditions) and requires structured-format evidence for every adherence claim — prose-only "looks good" no longer counts. Effort mediumhigh.


Install

pipx install marauders-mischief
# or
uv tool install marauders-mischief

Quickstart

mkdir my-new-project && cd my-new-project
git init
mar init

This scaffolds the harness into your repo:

my-new-project/
├── CLAUDE.md                        Project-level context (you own)
├── .brain/                          Curated, distilled context (you own)
│   ├── CONTEXT.md
│   ├── STATE.md
│   ├── STACK.md
│   ├── DECISIONS.md
│   └── RISKS.md
├── .claude/
│   ├── agents/                      12 subagents (research, plan, execute, ...)
│   ├── commands/mar/                19 slash commands (/mar:*)
│   └── settings.json                Hooks + permissions (mar manages its keys)
├── ops/
│   ├── memory/                      Knowledge capture pipeline (uv-managed)
│   ├── workflow/                    Session/phase/stage spec + scripts
│   └── ideas/                       Idea lifecycle machinery
└── .mm/
    ├── version                      Installed mar version
    └── lockfile.json                SHA256 of every framework file

Then:

cd ops/memory && uv sync   # one-time: set up memory pipeline deps

Fill in .brain/CONTEXT.md and .brain/STATE.md, and you're ready to run /mar:session-start in Claude Code.

Commands

Command Purpose
mar init Scaffold the harness into the current directory
mar update Pull latest framework version and apply updates (v0.2)
mar status Show installed version and local drift (v0.2)
mar doctor Verify install integrity (v0.2)

Flags:

  • --target <adapter> — currently claude (default). codex and cursor adapters land in future releases.
  • --force — overwrite scaffolded files (.brain/*, CLAUDE.md) that already exist.
  • --project-name <name> — substituted into Jinja-rendered templates. Defaults to the current directory name.

How it works

File classes

Every file shipped by mar belongs to one of three classes (see docs/file-classes.md):

Class Behavior
framework Owned by mar. Overwritten on mar update. Conflict-detected if you edit locally.
scaffolded Created once at init. You own thereafter; mar never touches.
merged mar owns specific keys; you own everything else in the same file. Update reconciles only mar's keys.

This split is what lets mar update upgrade the framework without clobbering your project's content.

Adapter layer

The mar core is harness-agnostic in spirit. Each harness (Claude Code, Codex CLI, Cursor) gets a small adapter that:

  • Validates which paths the framework can write to
  • Provides merge strategies for files that mix framework wiring with user config (e.g., .claude/settings.json for Claude Code)

Today only the Claude Code adapter is implemented. Adding a new adapter means subclassing Adapter and MergeStrategy.

The workflow framework

mar's centerpiece is a size-adaptive session loop:

  • XS edits skip the framework entirely
  • S/M sessions collapse to a single phase
  • L/XL sessions get an explicit meta-plan with human approval gates between phases

Each phase runs through stages: research → plan → execute → test → refine → simplify → verify → review + tester → integrate. A PreToolUse scope hook prevents agents from editing outside their declared scope.

Full spec lives in your repo at ops/workflow/README.md after mar init.

Slash commands

After mar init, these are available in Claude Code:

Command What it does
/mar:session-start Start a new session (size/guidance/autonomy picker)
/mar:plan Run research + planning for the current sub-stage
/mar:ship Run execute → test → refine → simplify → verify → review + tester
/mar:integrate Compose commit story, propose .brain/ writebacks
/mar:approve <gate> Pass a gate
/mar:iterate <gate> "<note>" Refine in place with new direction
/mar:replan Discard current plan and re-plan from scratch
/mar:status Current session status
/mar:session-list All active and recently archived sessions
/mar:idea-new Capture an incubating idea

Full reference: see .claude/commands/mar/*.md after install.

Development

Clone and set up:

git clone git@github.com:sindreespeland/marauders-mischief.git
cd marauders-mischief
uv sync --dev

Run tests:

uv run pytest
uv run ruff check src tests

Try mar init against a throwaway directory:

mkdir /tmp/test-install && cd /tmp/test-install
uv run --project ~/repos/marauders-mischief mar init

Roadmap

  • v0.1mar init, Claude Code adapter, the workflow framework (v2)
  • v0.2 — multi-role meta-research (workflow v3): parallel role-agents at Stage 2a with a mid-research briefing gate
  • v0.3 — meta-planning v4: strategist / author / skeptic with named decomposition strategies + 4-option meta-plan gate (approve / iterate / revise / redirect)
  • v0.4 — single-repo gh issue creation: Stage 2b creates real GitHub issues against origin; service-organized layout removed
  • v0.5 — phase research v2: hypothesis-driven, 5-section structured output, optional skeptic for L/XL phases, 4-option phase research gate
  • v0.6 — phase plan v6: author + skeptic at per-phase grain; 10-entry implementation strategy catalogue (incl. 3 AI-native); 3 optional plan sections for AI/agentic phases; 5-option phase plan gate
  • v0.7 — execute step-decomposition: plan declares build steps; fresh-context execute-step-agent per step; bounded context for the doing stage
  • v0.8 — multi-kind testing: test-strategist + per-kind runners (unit / eval / agent-flow / browser / perf) dispatched in parallel; target-aware refine
  • v0.9 — simplify hardened: author+skeptic, dynamic conventions from CLAUDE.md, targeted re-test, revert-on-regression
  • v0.10 — refine hardened: protected surfaces (tests/fixtures/snapshots/evals) + checkpoint-and-revert on regression across all four refine loops
  • v0.11 — verify hardened: route-based failure classification (refine/replan/user), mechanical pre-checks, structured evidence
  • v0.12mar update (with conflict resolution), mar status, mar doctor
  • v0.13 — Codex CLI adapter, Cursor adapter
  • v0.14mar update --auto-check (optional auto-notify on session start)

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

marauders_mischief-0.11.0.tar.gz (221.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

marauders_mischief-0.11.0-py3-none-any.whl (290.1 kB view details)

Uploaded Python 3

File details

Details for the file marauders_mischief-0.11.0.tar.gz.

File metadata

  • Download URL: marauders_mischief-0.11.0.tar.gz
  • Upload date:
  • Size: 221.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for marauders_mischief-0.11.0.tar.gz
Algorithm Hash digest
SHA256 a8d61f11e0be8b15dc7c2ca820c35694f8539548f2d779069a3148c003edf8ac
MD5 3812d61f32b20259f727d4d0e195f48c
BLAKE2b-256 a598ce3474e0f1451580b97f0ad7e7b31fb7facf8d534329b448c997a7a28a6e

See more details on using hashes here.

Provenance

The following attestation bundles were made for marauders_mischief-0.11.0.tar.gz:

Publisher: release.yml on sindreespeland/marauders-mischief

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file marauders_mischief-0.11.0-py3-none-any.whl.

File metadata

File hashes

Hashes for marauders_mischief-0.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 55e78b8e0a4250f8e503f9ea867d9cd91bc3ed8d1a81a7fe4cc6e40027bc2fff
MD5 3a2ead28f4d6e19355229183eb5829ec
BLAKE2b-256 15ee5f9390329b7b20219831b1cbaa703fb1545691e8f89ab99902f6e6147202

See more details on using hashes here.

Provenance

The following attestation bundles were made for marauders_mischief-0.11.0-py3-none-any.whl:

Publisher: release.yml on sindreespeland/marauders-mischief

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page