{"_id":"@balexda/march","_rev":"3-ebbca798ea0a37f79417647e8081b57e","name":"@balexda/march","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@balexda/march","version":"0.1.0","license":"MIT","_id":"@balexda/march@0.1.0","maintainers":[{"name":"jmbattista","email":"jmbattista@gmail.com"}],"homepage":"https://github.com/Balexda/March#readme","bugs":{"url":"https://github.com/Balexda/March/issues"},"bin":{"march":"dist/cli.js"},"dist":{"shasum":"2d09a2f39fc16d2fc2baacafb6388211c9eb87f8","tarball":"https://registry.npmjs.org/@balexda/march/-/march-0.1.0.tgz","fileCount":6,"integrity":"sha512-HpXeqTn5GFREpGeGX2VWBZIEWgWwLU7Ff+9JUbTnK6LiY5BmAdKJqM03S476RnIvR9b8r4bq0DpAo1ENn7aOEQ==","signatures":[{"sig":"MEUCIFr+UHtn+T2WMvqW8PAxoN01IKgLXj9hnkomhSGQ+RzWAiEAgTFAkAcjHgPjL+LrbUJANiKPj/I9+Pm+GbmF/pNCLS4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94247},"type":"module","gitHead":"4acc55bbca2145d605e25129d3278c2119d4834e","scripts":{"test":"vitest run","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","pretest":"tsup src/cli.ts --format esm --clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"jmbattista","email":"jmbattista@gmail.com"},"repository":{"url":"git+https://github.com/Balexda/March.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI for the March agentic-development workflow: snapshot a worktree, dispatch a sandboxed spawn, and deploy the March skills for Claude Code.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"commander":"^14.0.3","picocolors":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^6.0.3","@types/node":"^25.6.0"},"_npmOperationalInternal":{"tmp":"tmp/march_0.1.0_1778038282026_0.17781966425185924","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@balexda/march","version":"0.1.1","license":"MIT","_id":"@balexda/march@0.1.1","maintainers":[{"name":"jmbattista","email":"jmbattista@gmail.com"}],"homepage":"https://github.com/Balexda/March#readme","bugs":{"url":"https://github.com/Balexda/March/issues"},"bin":{"march":"dist/cli.js"},"dist":{"shasum":"58dfea4d64c839aa4f4d19acad78a14092f9e480","tarball":"https://registry.npmjs.org/@balexda/march/-/march-0.1.1.tgz","fileCount":6,"integrity":"sha512-LtT2sDDVGt/0weIrmmDFeg99r4VSuFWTnlp/N6g7hzQLhMPszffYKbTVdwLKQUJ05MSdXSbrwGHSumstPqldOw==","signatures":[{"sig":"MEYCIQC3X6dIrK6Lt6VM+NdzvSuT9QC0jPauY03LvuTVVP4UuwIhAKZsXzAIzsGu/XFCcK1itZ2zBJ01ICbFKeSqonjBOtZ3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@balexda%2fmarch@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":94247},"type":"module","gitHead":"c6d44c2e4ea26c12f52b5e26c11345919ad68f5d","scripts":{"test":"vitest run","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","pretest":"tsup src/cli.ts --format esm --clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd06686b-1ed1-4f76-9479-94245d9e8270"}},"repository":{"url":"git+https://github.com/Balexda/March.git","type":"git"},"_npmVersion":"11.11.0","description":"CLI for the March agentic-development workflow: snapshot a worktree, dispatch a sandboxed spawn, and deploy the March skills for Claude Code.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"commander":"^14.0.3","picocolors":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^6.0.3","@types/node":"^25.6.0"},"_npmOperationalInternal":{"tmp":"tmp/march_0.1.1_1778039491601_0.36266203801728625","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@balexda/march","version":"0.1.2","description":"CLI for the March agentic-development workflow: snapshot a worktree, dispatch a sandboxed spawn, and deploy the March skills for Claude Code.","type":"module","bin":{"march":"dist/cli.js"},"scripts":{"docs:contracts:check":"node scripts/docs-contracts/check.mjs","pretest":"tsup src/cli.ts --format esm --clean","test":"npm run test:l0 && npm run test:l1 && npm run test:l2-cassette && npm run test:l3-cassette","test:vitest":"vitest run","test:l0":"node scripts/run-layered-tests.mjs l0","test:l1":"node scripts/run-layered-tests.mjs l1","test:l2-cassette":"node scripts/run-layered-tests.mjs l2-cassette","test:l3-cassette":"node scripts/run-layered-tests.mjs l3-cassette","test:taxonomy":"node scripts/test-taxonomy.mjs","build":"tsup src/cli.ts --format esm --clean","build:spawn-claude-image":"docker build -t march-spawn-claude:latest -f docker/spawn-claude.Dockerfile docker","build:spawn-codex-image":"docker build -t march-spawn-codex:latest -f docker/spawn-codex.Dockerfile docker","build:spawn-claude-jvm-image":"docker build -t march-spawn-claude-jvm:latest -f docker/spawn-claude-jvm.Dockerfile docker","build:spawn-codex-jvm-image":"docker build -t march-spawn-codex-jvm:latest -f docker/spawn-codex-jvm.Dockerfile docker","build:hatchery-image":"docker build -t march-hatchery:latest -f docker/hatchery.Dockerfile .","build:castra-image":"docker build -t march-castra:latest -f docker/castra.Dockerfile .","build:brood-image":"docker build -t march-brood:latest -f docker/brood.Dockerfile .","build:herald-image":"docker build -t march-herald:latest -f docker/herald.Dockerfile .","build:legate-image":"docker build -t march-legate:latest -f docker/legate.Dockerfile .","start":"node dist/cli.js","typecheck":"tsc --noEmit"},"repository":{"type":"git","url":"git+https://github.com/Balexda/March.git"},"homepage":"https://github.com/Balexda/March#readme","bugs":{"url":"https://github.com/Balexda/March/issues"},"license":"MIT","publishConfig":{"access":"public"},"dependencies":{"@opentelemetry/api":"^1.9.1","@opentelemetry/api-logs":"^0.218.0","@opentelemetry/exporter-logs-otlp-http":"^0.219.0","@opentelemetry/exporter-metrics-otlp-http":"^0.219.0","@opentelemetry/exporter-trace-otlp-http":"^0.219.0","@opentelemetry/resources":"^2.7.1","@opentelemetry/sdk-logs":"^0.219.0","@opentelemetry/sdk-metrics":"^2.7.1","@opentelemetry/sdk-trace-base":"^2.7.1","@opentelemetry/semantic-conventions":"^1.41.1","commander":"^15.0.0","dotprompt":"^1.1.2","fastify":"^5.8.5","picocolors":"^1.1.1","pino":"^10.3.1"},"devDependencies":{"@types/node":"^25.6.0","tsup":"^8.4.0","typescript":"^6.0.3","vitest":"^3.1.1"},"gitHead":"05262bfec139488e8a31f471ac56d429d01efe1a","_id":"@balexda/march@0.1.2","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-4NGxwgxUZBhzicOGqNRcqWlfbvQa1zFJ+4cvRbOq77LvjBc6s7mPPQRc6IP2i1CpLQZmObZxCw97Z+dWBDya8Q==","shasum":"e54dd39bef2ff59f57a4d70d78485e662afb32d0","tarball":"https://registry.npmjs.org/@balexda/march/-/march-0.1.2.tgz","fileCount":111,"unpackedSize":1257883,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@balexda%2fmarch@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDzDYyahUwlyZZYztZ+sq8951XsvqDUO764m8QbkfzqpwIgRZepexn1WdyNfSg+OfXxDVq13YqbEs3SRLIDWIt2EyU="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd06686b-1ed1-4f76-9479-94245d9e8270"}},"directories":{},"maintainers":[{"name":"jmbattista","email":"jmbattista@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/march_0.1.2_1782081763712_0.6346758229944534"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-06T03:31:21.937Z","modified":"2026-06-21T22:42:44.143Z","0.1.0":"2026-05-06T03:31:22.234Z","0.1.1":"2026-05-06T03:51:31.760Z","0.1.2":"2026-06-21T22:42:43.868Z"},"bugs":{"url":"https://github.com/Balexda/March/issues"},"license":"MIT","homepage":"https://github.com/Balexda/March#readme","repository":{"type":"git","url":"git+https://github.com/Balexda/March.git"},"description":"CLI for the March agentic-development workflow: snapshot a worktree, dispatch a sandboxed spawn, and deploy the March skills for Claude Code.","maintainers":[{"name":"jmbattista","email":"jmbattista@gmail.com"}],"readme":"# March CLI\n\nCLI for the **March** agentic-development workflow. March deploys a small set of Claude Code skills, then takes a worktree of your repo, snapshots it into a Docker image, and dispatches a sandboxed *spawn* for an agent to work inside.\n\n## Vision\n\n**Smithy makes the ideas high-quality. March makes the execution low-touch.** Together they let a solo operator ship serious work without becoming the bottleneck — you bring the ideas and the judgment, March takes care of the chaos in between. Spawns run individual steps without babysitting; the Hatchery sets up containers without hand-tuning; Brood handles cleanup; Herald watches for state changes so you don't have to refresh `gh pr view`; Legate orchestrates multiple parallel work items; Stewards assemble each spawn's output into a reviewable PR. You walk away, and come back to either a green PR ready to merge or a clear diagnostic — never a hung session waiting for input it cannot receive.\n\nFull statement: [`docs/vision.md`](docs/vision.md). Implementation-level guidance for contributors: [`docs/operating-philosophy.md`](docs/operating-philosophy.md).\n\n## Installation\n\nYou can run March directly via `npx` (recommended):\n\n```bash\nnpx @balexda/march init\n```\n\nOr install it globally:\n\n```bash\nnpm install -g @balexda/march\nmarch init\n```\n\nRequires Node 20 or 22. `march spawn dispatch` additionally requires `git` and `docker` on `PATH`. `march legate init` requires `git`, [`agent-deck`](https://github.com/asheshgoplani/agent-deck), and Python 3.9+ for agent-deck's conductor bridge, plus Docker — it runs the deterministic Legate loop as a service inside the Hatchery-managed container (the only loop runtime). Pass `--no-loop` or `--no-setup` to skip the container.\n\n## Supported AI Assistants\n\n- **Claude:** `march init` deploys placeholder skill files into `~/.claude/commands/` and `~/.claude/prompts/` for use within your Claude Code workflows.\n\n## Commands\n\n| Command | Purpose |\n| :--- | :--- |\n| `march init` | Initialize the March environment (manifest at `~/.march/march-manifest.json` + Claude skills under `~/.claude/`). |\n| `march update` | Update an existing March installation; prompts on downgrade unless `--yes`. |\n| `march spawn dispatch` | Create a worktree, snapshot it as a Docker build context, build `march-spawn-<id>`, launch the container with hardened security configuration, and transition the SpawnRecord to `\"running\"`. |\n| `march hatchery serve` | Run the Hatchery service (Fastify HTTP API) — the single long-running container that performs spawns. The container entrypoint. |\n| `march hatchery spawn` | Run a one-shot spawn and hand its patch to an agent-deck manager. A thin client that posts to the Hatchery service (`MARCH_HATCHERY_URL`, default `http://localhost:8080`). |\n| `march legate init` | Set up a per-repo Legate agent plus paired deterministic loop for the Smithy plan→PR→fix workflow on top of [agent-deck](https://github.com/asheshgoplani/agent-deck). The loop runs as a service inside the Hatchery-managed Legate container (the only loop runtime); use `--no-loop` or `--no-setup` to skip it. |\n| `march version` | Print the installed CLI version. |\n| `march help [command]` | Show help for a command. |\n\n## Observability\n\nMarch emits OpenTelemetry traces, metrics, and logs — spawn success rate, spawn\nruntime, a trace per dispatched unit of work, and Hatchery service health — to a\nlocal, all-in-one Grafana stack. Telemetry is opt-in (`MARCH_OTEL=1`) and a\ncomplete no-op when off; a missing collector never affects a command.\n\n```bash\ndocker compose -f docker/otel-lgtm.docker-compose.yml up -d\nopen http://localhost:3000      # Grafana (admin/admin) → \"March — Spawn observability\" / \"March — Hatchery service\"\n```\n\nThen run March with `MARCH_OTEL=1` set. Full details — enabling it per Legate\ndeployment, the trace/span/metric/log model, the Hatchery service, the\nprovisioned dashboards, and how to validate the stack — are in\n**[docs/Observability.md](docs/Observability.md)**.\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, testing strategy, and pre-release checklist.\n","readmeFilename":"README.md"}