{"_id":"@alphazede/bearing","_rev":"8-14c90aab45b153196c9660d13fd430f0","name":"@alphazede/bearing","dist-tags":{"latest":"0.1.7"},"versions":{"0.1.0":{"name":"@alphazede/bearing","version":"0.1.0","author":{"name":"William Rumph / AlphaZede"},"license":"MIT OR Apache-2.0","_id":"@alphazede/bearing@0.1.0","maintainers":[{"name":"alphadezedesports","email":"1wgrumph@gmail.com"}],"homepage":"https://github.com/alphazede/bearing#readme","bugs":{"url":"https://github.com/alphazede/bearing/issues"},"bin":{"bearing":"dist/cli.js"},"dist":{"shasum":"2a14fbdcee4d62207e4c7848b4005ebf16001d7f","tarball":"https://registry.npmjs.org/@alphazede/bearing/-/bearing-0.1.0.tgz","fileCount":63,"integrity":"sha512-D1UjTK0EJIXcF+n4muBjJX5hUJMYuYzK41DhCLW+99rJ4oVXAyBLlaBrybVVG9tYc1khkeFHhUTecMQLRU2XJQ==","signatures":[{"sig":"MEUCIQC0w+Pu6sqh5pZqefEGQK0ERzoST6ezR0IanUhmfyu5pwIgLx7+9ztupenL6WjEcVr06KtuKRpMQVrl1oItNLKSYU0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alphazede%2fbearing@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12159444},"type":"module","engines":{"node":">=22"},"gitHead":"1aa7701a7347d909c1792a24e65be6fded8bec38","scripts":{"test":"vitest run","build":"tsc","prepack":"pnpm build","typecheck":"tsc --noEmit","eval:native":"tsc && node dist/evaluation/cli.js native","eval:skillsbench":"tsc && node dist/evaluation/cli.js skillsbench","test:integration":"vitest run test/local-session.test.ts test/repository-bootstrap.test.ts test/repository-choice.test.ts test/onboarding-http.test.ts test/showcase-http.test.ts"},"_npmUser":{"name":"alphadezedesports","email":"1wgrumph@gmail.com"},"repository":{"url":"git+https://github.com/alphazede/bearing.git","type":"git"},"_npmVersion":"11.5.1","description":"Local browser control room for evidence-backed agent workflows.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"vitest":"4.1.5","typescript":"5.9.3","@types/node":"22.19.17"},"_npmOperationalInternal":{"tmp":"tmp/bearing_0.1.0_1784778438050_0.03944219977281893","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package has moved to @alphazede/bearing-lite. Please migrate to @alphazede/bearing-lite."},"0.1.1":{"name":"@alphazede/bearing","version":"0.1.1","author":{"name":"William Rumph / AlphaZede"},"license":"MIT OR Apache-2.0","_id":"@alphazede/bearing@0.1.1","maintainers":[{"name":"alphadezedesports","email":"1wgrumph@gmail.com"}],"homepage":"https://github.com/alphazede/bearing#readme","bugs":{"url":"https://github.com/alphazede/bearing/issues"},"bin":{"bearing":"dist/cli.js"},"dist":{"shasum":"754fde951e50640df55f1386aca74136364a63f0","tarball":"https://registry.npmjs.org/@alphazede/bearing/-/bearing-0.1.1.tgz","fileCount":70,"integrity":"sha512-GnJNTd1sbZzpUKmHAWZCFEYrWp7++gnck7lzYrBkWFYu0A/lAt52D9ri4yGkmrqQHVjYq2aT6Jyql+gHS8Zybg==","signatures":[{"sig":"MEQCICNTSk/oc4+fTxsu7ne58/YxRbS0d/s+7Hpcpur3rQE5AiAddRi4SCcEYJeeqdho66uYFcOn88smxMHh4nUGF2nOlg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alphazede%2fbearing@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12171450},"type":"module","engines":{"node":">=22"},"gitHead":"b416ffd2a1f4ee6beac53fc9800760fce2fbf958","scripts":{"test":"vitest run","build":"tsc","prepack":"pnpm build","typecheck":"tsc --noEmit","eval:native":"tsc && node dist/evaluation/cli.js native","eval:skillsbench":"tsc && node dist/evaluation/cli.js skillsbench","test:integration":"vitest run test/local-session.test.ts test/repository-bootstrap.test.ts test/repository-choice.test.ts test/onboarding-http.test.ts test/showcase-http.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2849c799-9095-44c9-aa5a-2779b70ef508"}},"repository":{"url":"git+https://github.com/alphazede/bearing.git","type":"git"},"_npmVersion":"11.5.1","description":"Local browser control room for evidence-backed agent workflows.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"vitest":"4.1.5","typescript":"5.9.3","@types/node":"22.19.17"},"_npmOperationalInternal":{"tmp":"tmp/bearing_0.1.1_1784783475590_0.8771738891570737","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package has moved to @alphazede/bearing-lite. Please migrate to @alphazede/bearing-lite."},"0.1.2":{"name":"@alphazede/bearing","version":"0.1.2","author":{"name":"William Rumph / AlphaZede"},"license":"MIT OR Apache-2.0","_id":"@alphazede/bearing@0.1.2","maintainers":[{"name":"alphadezedesports","email":"1wgrumph@gmail.com"}],"homepage":"https://github.com/alphazede/bearing#readme","bugs":{"url":"https://github.com/alphazede/bearing/issues"},"bin":{"bearing":"dist/cli.js"},"dist":{"shasum":"bbfc9820297d9bfc177d51f5f16dabd54f2986cd","tarball":"https://registry.npmjs.org/@alphazede/bearing/-/bearing-0.1.2.tgz","fileCount":77,"integrity":"sha512-mkm0tBFszyxKvIsXs3FBiYw2I13XnxBx+oOiJ3ckwaJBYflPy+ipxP0yqgOs/FuutYMZSatYl6E2nWYEfvQD/w==","signatures":[{"sig":"MEQCIEwJgk9u0nQE+FfH0yOgmIDR160ibM+StoZSQfzBYRjVAiAzV31Ppq70bBgfqEIrYhRP84VmaTQs63Ma8DWKSLbf1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alphazede%2fbearing@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12208618},"type":"module","engines":{"node":">=22"},"gitHead":"6ae4b7117aae0438d1cb79b980840e395fa0f5d9","scripts":{"test":"vitest run","build":"tsc","prepack":"pnpm build","typecheck":"tsc --noEmit","eval:native":"tsc && node dist/evaluation/cli.js native","eval:skillsbench":"tsc && node dist/evaluation/cli.js skillsbench","test:integration":"vitest run test/local-session.test.ts test/repository-bootstrap.test.ts test/repository-choice.test.ts test/onboarding-http.test.ts test/showcase-http.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2849c799-9095-44c9-aa5a-2779b70ef508"}},"repository":{"url":"git+https://github.com/alphazede/bearing.git","type":"git"},"_npmVersion":"11.5.1","description":"Local browser control room for evidence-backed agent workflows.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"vitest":"4.1.5","typescript":"5.9.3","@types/node":"22.19.17"},"_npmOperationalInternal":{"tmp":"tmp/bearing_0.1.2_1784789542965_0.6355891463707279","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package has moved to @alphazede/bearing-lite. Please migrate to @alphazede/bearing-lite."},"0.1.3":{"name":"@alphazede/bearing","version":"0.1.3","author":{"name":"William Rumph / AlphaZede"},"license":"MIT OR Apache-2.0","_id":"@alphazede/bearing@0.1.3","maintainers":[{"name":"alphadezedesports","email":"1wgrumph@gmail.com"}],"homepage":"https://github.com/alphazede/bearing#readme","bugs":{"url":"https://github.com/alphazede/bearing/issues"},"bin":{"bearing":"dist/cli.js"},"dist":{"shasum":"58e2e81fae8757cbe2696c11d6260e19ead49391","tarball":"https://registry.npmjs.org/@alphazede/bearing/-/bearing-0.1.3.tgz","fileCount":77,"integrity":"sha512-iLXejXUCrrr6xPyFtdcTA7VnjV5VilfohMcDDL6RgaGWEPG5/Y4h8XsVoTPKN/l3Fftpx7Mt598iWOjjSMyJMg==","signatures":[{"sig":"MEUCIHnPDTkmp2neI2/KFGvArTB3BDEuJxgzSQgw29UabW1rAiEA6up7sZpkQNab/YJ4ZSvLUA8XUBjMYR9/xgp3Jk8Jaq4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alphazede%2fbearing@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12209106},"type":"module","engines":{"node":">=22"},"gitHead":"3e908b7a033ae4d769c88f4070190a20c1344d01","scripts":{"test":"vitest run","build":"tsc","prepack":"pnpm build","typecheck":"tsc --noEmit","eval:native":"tsc && node dist/evaluation/cli.js native","eval:skillsbench":"tsc && node dist/evaluation/cli.js skillsbench","test:integration":"vitest run test/local-session.test.ts test/repository-bootstrap.test.ts test/repository-choice.test.ts test/onboarding-http.test.ts test/showcase-http.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2849c799-9095-44c9-aa5a-2779b70ef508"}},"repository":{"url":"git+https://github.com/alphazede/bearing.git","type":"git"},"_npmVersion":"11.5.1","description":"Local browser control room for evidence-backed agent workflows.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"vitest":"4.1.5","typescript":"5.9.3","@types/node":"22.19.17"},"_npmOperationalInternal":{"tmp":"tmp/bearing_0.1.3_1784790144893_0.5401912031048914","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package has moved to @alphazede/bearing-lite. Please migrate to @alphazede/bearing-lite."},"0.1.5":{"name":"@alphazede/bearing","version":"0.1.5","author":{"name":"William Rumph / AlphaZede"},"license":"MIT OR Apache-2.0","_id":"@alphazede/bearing@0.1.5","maintainers":[{"name":"alphadezedesports","email":"1wgrumph@gmail.com"}],"homepage":"https://github.com/alphazede/bearing#readme","bugs":{"url":"https://github.com/alphazede/bearing/issues"},"bin":{"bearing":"dist/cli.js"},"dist":{"shasum":"a67fffe94ad17868dc8b8b25ff92168b677c77a8","tarball":"https://registry.npmjs.org/@alphazede/bearing/-/bearing-0.1.5.tgz","fileCount":111,"integrity":"sha512-XjB22fVTU5F0w3Y1/Ajim0WaEP1S5SyjCvijEH3HgG1F1oa2AkZkREXfjDmsRxogcLvJXw8d31wc2vHYE+3Gpw==","signatures":[{"sig":"MEYCIQDXYYtSu4rY0HuWLzaeVRJ4EtqMqFHWlwfUsFTqPh3OxQIhAMbMp9TzLOdomq+V4+9FHQKeyaUDRQaT3qGnviKhaMia","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alphazede%2fbearing@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12775341},"type":"module","engines":{"node":">=22"},"gitHead":"9cd37135c6a26061cb9b3f51a2e3b3ff6064aaa7","scripts":{"test":"vitest run","build":"tsc","prepack":"pnpm build","typecheck":"tsc --noEmit","dist-guard":"pnpm build && node scripts/check-dist-freshness.mjs","eval:native":"tsc && node dist/evaluation/cli.js native","typecheck:test":"tsc -p tsconfig.test.json --noEmit","eval:skillsbench":"tsc && node dist/evaluation/cli.js skillsbench","test:integration":"vitest run test/local-session.test.ts test/repository-bootstrap.test.ts test/repository-choice.test.ts test/onboarding-http.test.ts test/showcase-http.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2849c799-9095-44c9-aa5a-2779b70ef508"}},"repository":{"url":"git+https://github.com/alphazede/bearing.git","type":"git"},"_npmVersion":"11.5.1","description":"Local browser control room for evidence-backed agent workflows.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"vitest":"4.1.5","typescript":"5.9.3","@types/node":"22.19.17"},"_npmOperationalInternal":{"tmp":"tmp/bearing_0.1.5_1785435488186_0.37207317240389726","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package has moved to @alphazede/bearing-lite. Please migrate to @alphazede/bearing-lite."},"0.1.6":{"name":"@alphazede/bearing","version":"0.1.6","keywords":["ai-agents","coding-agent","agent-orchestration","claude-code","codex","developer-tools","local-first","workflow-automation","dag","evidence","code-review","cli"],"author":{"name":"William Rumph / AlphaZede"},"license":"Apache-2.0","_id":"@alphazede/bearing@0.1.6","maintainers":[{"name":"alphadezedesports","email":"1wgrumph@gmail.com"}],"homepage":"https://github.com/alphazede/bearing#readme","bugs":{"url":"https://github.com/alphazede/bearing/issues"},"bin":{"bearing":"dist/cli.js"},"dist":{"shasum":"cf2270a135c36c2ab9fa55c268c8ea5c2c726268","tarball":"https://registry.npmjs.org/@alphazede/bearing/-/bearing-0.1.6.tgz","fileCount":116,"integrity":"sha512-KWFfMrOr5vvm+Tgm/9X90+4f5qrb6qdEmDS8RmLWYiyNr8bof15RYLh9I/GVze2Buez0YMgnAbUrxnXDEF/QjQ==","signatures":[{"sig":"MEYCIQClC97R24C7/uZG6RuGMeCfjLJbGDgj68aoEc3wwMro/AIhANs/7wwhkJ3ukMuuIISZK7oqZVwYnc6YTHbj/8GRcVy6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alphazede%2fbearing@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13202952},"pnpm":{"overrides":{"postcss":">=8.5.23"}},"type":"module","engines":{"node":">=22"},"gitHead":"d190343bc3fa63a5ead1acecb8a6fa012a20961f","scripts":{"test":"vitest run","build":"tsc","prepack":"pnpm build","typecheck":"tsc --noEmit","dist-guard":"pnpm build && node scripts/check-dist-freshness.mjs","eval:native":"tsc && node dist/evaluation/cli.js native","typecheck:test":"tsc -p tsconfig.test.json --noEmit","eval:skillsbench":"tsc && node dist/evaluation/cli.js skillsbench","test:integration":"vitest run test/local-session.test.ts test/repository-bootstrap.test.ts test/repository-choice.test.ts test/onboarding-http.test.ts test/showcase-http.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2849c799-9095-44c9-aa5a-2779b70ef508"}},"repository":{"url":"git+https://github.com/alphazede/bearing.git","type":"git"},"_npmVersion":"11.5.1","description":"Harness-agnostic orchestration for AI coding agents: approved plans, DAG-scheduled routes, bounded execution, and reviewable evidence.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"vitest":"4.1.5","typescript":"5.9.3","@types/node":"22.19.17"},"_npmOperationalInternal":{"tmp":"tmp/bearing_0.1.6_1786116534691_0.7404895963292171","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package has moved to @alphazede/bearing-lite. Please migrate to @alphazede/bearing-lite."},"0.1.7":{"name":"@alphazede/bearing","version":"0.1.7","keywords":["ai-agents","coding-agent","agent-orchestration","claude-code","codex","developer-tools","local-first","workflow-automation","dag","evidence","code-review","cli"],"author":{"name":"William Rumph / AlphaZede"},"license":"Apache-2.0","_id":"@alphazede/bearing@0.1.7","maintainers":[{"name":"alphadezedesports","email":"1wgrumph@gmail.com"}],"homepage":"https://github.com/alphazede/bearing#readme","bugs":{"url":"https://github.com/alphazede/bearing/issues"},"bin":{"bearing":"dist/cli.js"},"dist":{"shasum":"8accc5b5bd28de652abb67826eaea06d8c6cc19a","tarball":"https://registry.npmjs.org/@alphazede/bearing/-/bearing-0.1.7.tgz","fileCount":127,"integrity":"sha512-KOGnnurlnsKrBG0ljDo/oz6NHCzKXcagCPDBq4gXOzHFHm7GSnMnoOVI3jmNg5lX6/VS3JquEnuY6Gbvp6aUug==","signatures":[{"sig":"MEUCIQCgwykavsRbjrcGGhRDt+4fU4ZAi2YA1X0ZROCEpV5s1AIgJm6IBEkl9cyq15HDVyxIRTS3Krh9C9HMPStj5HgvzKA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alphazede%2fbearing@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13400062},"pnpm":{"overrides":{"nanoid":"^3.3.18","postcss":">=8.5.23"}},"type":"module","engines":{"node":">=22"},"gitHead":"64a99ee8136b577fa9cc29b2e01f2a5c693e64ce","scripts":{"test":"vitest run","build":"tsc","prepack":"pnpm build","typecheck":"tsc --noEmit","dist-guard":"pnpm build && node scripts/check-dist-freshness.mjs","eval:native":"tsc && node dist/evaluation/cli.js native","typecheck:test":"tsc -p tsconfig.test.json --noEmit","eval:skillsbench":"tsc && node dist/evaluation/cli.js skillsbench","test:integration":"vitest run test/local-session.test.ts test/repository-bootstrap.test.ts test/repository-choice.test.ts test/onboarding-http.test.ts test/showcase-http.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2849c799-9095-44c9-aa5a-2779b70ef508"}},"repository":{"url":"git+https://github.com/alphazede/bearing.git","type":"git"},"_npmVersion":"11.5.1","description":"Harness-agnostic orchestration for AI coding agents: approved plans, DAG-scheduled routes, bounded execution, and reviewable evidence.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"vitest":"4.1.5","typescript":"5.9.3","@types/node":"22.19.17"},"_npmOperationalInternal":{"tmp":"tmp/bearing_0.1.7_1786146798621_0.9958676645982827","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package has moved to @alphazede/bearing-lite. Please migrate to @alphazede/bearing-lite."}},"time":{"created":"2026-07-23T03:47:17.838Z","modified":"2026-08-16T03:41:32.028Z","0.1.0":"2026-07-23T03:47:18.393Z","0.1.1":"2026-07-23T05:11:15.881Z","0.1.2":"2026-07-23T06:52:23.282Z","0.1.3":"2026-07-23T07:02:25.256Z","0.1.5":"2026-07-30T18:18:08.526Z","0.1.6":"2026-08-07T15:28:55.099Z","0.1.7":"2026-08-07T23:53:19.056Z"},"bugs":{"url":"https://github.com/alphazede/bearing/issues"},"author":{"name":"William Rumph / AlphaZede"},"license":"Apache-2.0","homepage":"https://github.com/alphazede/bearing#readme","keywords":["ai-agents","coding-agent","agent-orchestration","claude-code","codex","developer-tools","local-first","workflow-automation","dag","evidence","code-review","cli"],"repository":{"url":"git+https://github.com/alphazede/bearing.git","type":"git"},"description":"Harness-agnostic orchestration for AI coding agents: approved plans, DAG-scheduled routes, bounded execution, and reviewable evidence.","maintainers":[{"name":"alphadezedesports","email":"1wgrumph@gmail.com"}],"readme":"# Bearing\n\n[![npm](https://img.shields.io/npm/v/@alphazede/bearing)](https://www.npmjs.com/package/@alphazede/bearing)\n[![quality](https://github.com/alphazede/bearing/actions/workflows/bearing-quality.yml/badge.svg)](https://github.com/alphazede/bearing/actions/workflows/bearing-quality.yml)\n[![license](https://img.shields.io/badge/license-Apache--2.0-blue)](LICENSE-APACHE)\n\n![Bearing working in its local planning office](assets/bearing-office.png)\n\nBearing is a local browser control room for evidence-backed agent work. It moves\na complex repository request through approved planning, bounded execution, owner\ndecisions, and reviewable evidence, and you keep approval and review authority\nthroughout.\n\n**An agent cannot certify its own work.** Every change runs inside a declared\nwrite set, produces a receipt bound to the runtime that validated it, and is\nreviewed by a role that structurally cannot execute.\n\nBearing is packaged for Codex and Claude Code and was created by William Rumph\nat AlphaZede. The public npm package is `@alphazede/bearing`.\n\n## The two journeys\n\nBearing plans first and executes second. Once a plan is approved you choose the\nshape of the run, and that choice is yours rather than the product's.\n\n**Explorer** puts one lane controller over a set of bounded Crewmates. It is the\nsmaller shape, using fewer agents and fewer tokens, and it suits work that is\ncompact or mostly sequential. The cost is that one controller carries the whole\ncoordination load, so there is little parallelism to gain.\n\n**Expedition** adds a Navigator above a Trail Boss and runs several lanes at\nonce. It fits multi-phase work whose lanes are genuinely independent. The cost\nis real, since more controllers means more coordination and more tokens.\n\nThe deeper reason to reach for Expedition is context. Every agent degrades as its\ncontext window fills, so splitting work across more controllers keeps each one\nsmall and sharp on the piece it owns. You are buying focus with coordination.\n\n<table>\n<tr>\n<td width=\"50%\"><img src=\"assets/bearing-explorer-card.png\" alt=\"Explorer, one lane controller over a small bounded group\"></td>\n<td width=\"50%\"><img src=\"assets/bearing-expedition-card.png\" alt=\"Expedition, a Navigator and Trail Boss over several parallel lanes\"></td>\n</tr>\n<tr>\n<td><b>Explorer: focused route, fewer sessions.</b> Best for compact or mostly sequential plans. Tradeoff: less parallelism.</td>\n<td><b>Expedition: parallel ascent, more sessions.</b> Best for independent lanes or multiple phases. Tradeoff: higher token and coordination cost.</td>\n</tr>\n</table>\n\nEither shape can use substantial tokens. Bearing shows a persistent warning\nrather than imposing a default ceiling, and `--budget` sets a per-call\nacceptance ceiling. See [execution modes](guide/execution-modes.md) for the\nscoring contract behind the choice.\n\n## Roles and authority\n\nBearing names its roles after an expedition, so the second column says what each\none actually is.\n\n| Role | What it is | Executes | Default tier | Constraint |\n|---|---|---|---|---|\n| **Navigator** | Orchestrator. Owns the planning plane and coordinates the Expedition | yes | `high` | No network, no external action, context off |\n| **Trail Boss** | Expedition controller. Runs the wave graph across lanes | yes | `medium` | Expedition only, never paired with Explorer mode |\n| **Explorer** | Lane controller. Runs one lane and dispatches its implementers | yes | `medium` | Read-only authority, no write tools |\n| **Sub-explorer** | Nested lane controller. Opened when one lane needs to split again | yes | `medium` | Complex work only, inherits the Explorer boundary |\n| **Crewmate** | Implementer. Writes the code for one bounded slice | yes | `medium` | Writes only inside the Focus envelope |\n| **Validator** | Evidence validator. Checks the contract was actually proven | yes | `high` | Verdict is `PASS`, `NEEDS_MORE_EVIDENCE`, or `FAIL` |\n| **Park Ranger** | Code reviewer. Hunts defects introduced by the diff | yes | `high` | Findings ranked `P0` through `P3` |\n| **Grader** | Quality scorer. Rates the finished result against a rubric | yes | `high` | Frozen rubric v1, each dimension 0 through 4 |\n| **Surveyor** | Acceptance reviewer. Judges whether it works for the user | no | `medium` | Read-only, no network, no search, context off |\n\nTrail Boss, Explorer, and Sub-explorer are a swarm. Splitting work across more\ncontrollers keeps each agent's context window small, so every agent stays\nfunctional on the part it owns instead of degrading as one long context fills up.\n\nSeven of these ship as packaged skills in `skills/`. Trail Boss and Sub-explorer\nare roles in the execution graph instead, and that graph is implemented and\ntested but is not yet what the browser journey schedules.\n\nA failure escalates to the nearest role whose scope can actually see it:\n\n| Failure scope | Escalates to | Meaning |\n|---|---|---|\n| `within-slice` | Explorer | The lane controller can resolve it |\n| `cross-slice` | Trail Boss | Needs the wave graph, above any one lane |\n| `cross-phase` | Navigator | Needs the whole Expedition |\n| `contract-change` | Owner | No agent may change the approved contract |\n\n### The loop that runs per slice\n\nRoles only, no failure states. The controller slot depends on mode, since Trail\nBoss runs an Expedition and Explorer runs the simpler shape.\n\n![Per-slice execution loop: Navigator to Trail Boss or Explorer, then Crewmate to Validator to Park Ranger once per slice, then Grader at the end of a phase and Surveyor at completion](assets/bearing-execution-loop.png)\n\n<details>\n<summary>Diagram source</summary>\n\n```mermaid\nflowchart LR\n    N[\"Navigator\"] --> M{\"mode\"}\n    M -->|expedition| T[\"Trail Boss\"]\n    M -->|explorer| E[\"Explorer\"]\n    T --> E\n    E --> C\n    subgraph slice [\"runs once per slice\"]\n      direction LR\n      C[\"Crewmate\"] --> V[\"Validator\"]\n      V --> P[\"Park Ranger\"]\n    end\n    P --> D{\"more work?\"}\n    D -->|next slice| C\n    D -->|phase done| G[\"Grader\"]\n    G -->|next phase| E\n    D -->|all phases done| S[\"Surveyor\"]\n    S --> F([\"Evidence complete\"])\n```\n\n</details>\n\nThe local Node server owns everything that matters, not the browser: durable\nworkflow state, command validation, approval checks, adapter invocation, and\nevidence projection. The browser never receives provider credentials, and a\nrecommendation never authorizes execution.\n\n## Install and start\n\nBearing requires Node.js 22 or newer. To run from a source checkout:\n\n```sh\ncorepack enable\npnpm install --frozen-lockfile\npnpm build\nnode dist/cli.js start\n```\n\nInstall the published package globally:\n\n```sh\nnpm install --global @alphazede/bearing\nbearing start\n```\n\nOr run it without installing:\n\n```sh\nnpx --yes @alphazede/bearing start\n```\n\n`start` binds an ephemeral port on `127.0.0.1`, prints the local URL, and opens\nthe default browser. Use `--no-open` to print the URL without opening one, and\n`--detach` to keep an agent-launched session alive after the launching turn\nends. Otherwise keep the terminal open while `start` runs.\n\nThe URL contains a one-time capability in its fragment; do not share it.\n\n## Codex plugin\n\nAdd the Bearing marketplace and install its plugin:\n\n```sh\ncodex plugin marketplace add alphazede/bearing\ncodex plugin add bearing@bearing\n```\n\nStart a new Codex session, then invoke `$bearing` or ask Codex to use the\nBearing skill. When the request does not name a mode, Codex asks whether to run\nthe guided workflow in the current conversation, open the browser UI, or use\nthe headless CLI. An explicit browser request starts the installed Bearing CLI\nin persistent mode, reports its loopback URL, and best-effort opens the browser\nautomatically. Guided and headless modes follow the receipt-driven journey in\nthe [headless CLI guide](guide/cli.md). Bearing does not launch on SessionStart,\ninstall software, or change Codex native collaboration behavior.\n\nIf the active Codex sandbox blocks the loopback listener, Codex asks for owner\napproval to rerun only the Bearing CLI launch with host escalation. That launch\nexception does not weaken the sandbox, tools, authority, or isolation of agents\nBearing starts for repository work.\n\n## Claude Code plugin\n\nIn Claude Code, add this repository as a marketplace and install Bearing:\n\n```text\n/plugin marketplace add alphazede/bearing\n/plugin install bearing@bearing\n```\n\nInvoke `/bearing` or ask Claude to use Bearing. The shared skill offers the same\nguided, browser, and headless choices described above.\n\n## What a run looks like\n\nPoint Bearing at one writable local directory, choose a provider route, pass the\nreadiness check, and enter your work request. It then works through repository\nfit, Set Bearings, Gather Supplies, Map the Route, an optional Recon, and a\nroute review you approve before anything is implemented. Only then do you pick\nExplorer or Expedition.\n\nNothing is written before you confirm it, planning approval is recorded as\ndurable owner evidence, and a run that stops reports what stopped, why, and the\ndecision it needs. The full stage-by-stage account is in\n[the browser journey](guide/browser-journey.md).\n\n## Documentation\n\n| Guide | What it covers |\n|---|---|\n| [The browser journey](guide/browser-journey.md) | First launch, the seven stages, plan validation, and the planning state machine |\n| [Focus mode and workflow skills](guide/focus-mode.md) | Containment, receipts, runtime identity, and the packaged skills |\n| [Verification layers](guide/verification.md) | Validator, Grader, Park Ranger, Surveyor, cadence, and gate sets |\n| [Execution modes and reasoning](guide/execution-modes.md) | The mode-recommendation contract and the reasoning tier ladder |\n| [Headless CLI](guide/cli.md) | The browser-free journey, receipt grammar, and every start flag |\n| [State, recovery, export, deletion](guide/state-and-recovery.md) | Where durable state lives, how a journey resumes, backup and retirement |\n| [Improvement loop](guide/improvement-loop.md) | What Bearing notices about its own runs, and why it never acts on it |\n| [Examples and fixtures](guide/examples.md) | Deterministic, provider-disabled demonstrations |\n| [Repository layout and platform](guide/repository-layout.md) | Source tree, host requirements, and stated limitations |\n\n## Requirements and boundaries\n\nNode.js 22 or newer and a writable local filesystem. The server is single-user\nand loopback-only. Bearing sends no telemetry and provides no hosted account,\nremote service, production deployment, or multi-user authorization boundary. The\nagent CLI and provider account you point it at remain yours to supply. Full\ndetail, including the native platform testing still outstanding, is in\n[repository layout and platform](guide/repository-layout.md).\n\n## Contributing\n\nIssues are the most useful contribution right now. [CONTRIBUTING.md](CONTRIBUTING.md)\nexplains how this repository relates to the one Bearing is developed in, and why\nthat changes what happens to a pull request. Everyone taking part is covered by\nthe [Code of Conduct](CODE_OF_CONDUCT.md).\n\n## Security\n\nBearing fail-closed revalidates workspace root path identity and containment\naround filesystem operations to detect symlink swaps, while documenting the\nresidual TOCTOU race unavoidable without native directory-fd path syscalls in\nNode.js.\n\nReport suspected vulnerabilities through GitHub's [private vulnerability\nreporting form](https://github.com/alphazede/bearing/security/advisories/new),\nnot a public issue. See [SECURITY.md](SECURITY.md) for supported versions,\nreport contents, response targets, disclosure, and safe-harbor terms. Use\n[public issues](https://github.com/alphazede/bearing/issues) for ordinary bugs.\n\n## License\n\nLicensed under the [Apache License 2.0](LICENSE-APACHE).\n","readmeFilename":"README.md"}