{"_id":"@casualjim/pi-mimir","_rev":"3-64e0e8e3acf4de6d1d8767e988b97507","name":"@casualjim/pi-mimir","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@casualjim/pi-mimir","version":"0.1.0","keywords":["pi-package"],"license":"MIT","_id":"@casualjim/pi-mimir@0.1.0","maintainers":[{"name":"casualjim","email":"ivan@flanders.co.nz"}],"pi":{"skills":["./skillseeds"],"extensions":["extensions/openspec"]},"dist":{"shasum":"975bee74339db1460029c85cd53040cfc7e6d7d2","tarball":"https://registry.npmjs.org/@casualjim/pi-mimir/-/pi-mimir-0.1.0.tgz","fileCount":33,"integrity":"sha512-VEnPKOBCxcbkugx8Tz3itnNPqtj2OpOz9e8Leo5HPULlT8IXCn9vmDc2a1/XNvLa74/SoP7hxbZFHSXfrs7bYQ==","signatures":[{"sig":"MEQCIAezFW7b3J137rGqBWr6PURTk+/Dx2cScAhIVHykNHYHAiApZ3sIi7Adib6RjN6hcKYIP/Blvz8yAdmzi+fxoULvww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194288},"main":"index.js","type":"module","gitHead":"6218ad6c6716a8c0201adb6a64fb882710b5f590","scripts":{"test":"vitest run","test:e2e":"node --experimental-strip-types tests/integration/run-e2e.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"casualjim","email":"ivan@flanders.co.nz"},"_npmVersion":"11.13.0","description":"OpenSpec-driven development workflow for Pi Agent","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@earendil-works/pi-tui":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.0","typescript":"^5.4.0","@types/node":"^22.0.0","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-mimir_0.1.0_1780322970805_0.23601758363630743","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@casualjim/pi-mimir","version":"0.1.1","keywords":["pi-package"],"license":"MIT","_id":"@casualjim/pi-mimir@0.1.1","maintainers":[{"name":"casualjim","email":"ivan@flanders.co.nz"}],"homepage":"https://github.com/casualjim/pi-mimir#readme","bugs":{"url":"https://github.com/casualjim/pi-mimir/issues"},"pi":{"skills":["./skillseeds"],"extensions":["extensions/openspec"]},"dist":{"shasum":"dccea173048fa3db66c91521f4cad19951a9865c","tarball":"https://registry.npmjs.org/@casualjim/pi-mimir/-/pi-mimir-0.1.1.tgz","fileCount":33,"integrity":"sha512-dB/TgYheb+M7R9/Jn28CGh2rLQq/Txv60tdwhOm0TdjIWHmMDarYepXekhqbOdadGW2dXRBX0h0eAbAicaLf9Q==","signatures":[{"sig":"MEUCIGRca++ewQ2VeporBNgZ46Ol5bP5T1/l99f9utOwvKmsAiEAuVVV2ssIcBx1Duxwm5cr30SYbnYVZXIjK1h86U8PeX8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@casualjim%2fpi-mimir@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":194421},"main":"index.js","type":"module","gitHead":"07bcf027a2aea7f24374ade447b60347c9e026f1","scripts":{"test":"vitest run","test:e2e":"node --experimental-strip-types tests/integration/run-e2e.ts","typecheck":"tsc --noEmit","check:pack":"npm pack --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b00282fb-55c6-414e-a72a-cf7e43b5d173"}},"repository":{"url":"git+https://github.com/casualjim/pi-mimir.git","type":"git"},"_npmVersion":"11.13.0","description":"OpenSpec-driven development workflow for Pi Agent","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@earendil-works/pi-tui":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.0","typescript":"^5.4.0","@types/node":"^22.0.0","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-mimir_0.1.1_1780335655682_0.3625600611134894","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@casualjim/pi-mimir","version":"0.1.2","license":"MIT","description":"OpenSpec-driven development workflow for Pi Agent","keywords":["pi-package"],"type":"module","main":"index.js","pi":{"extensions":["extensions/openspec"],"skills":["./skillseeds"]},"dependencies":{"@earendil-works/pi-tui":"*"},"scripts":{"test":"vitest run","test:e2e":"node --experimental-strip-types tests/integration/run-e2e.ts","typecheck":"tsc --noEmit","check:pack":"npm pack --dry-run"},"devDependencies":{"@earendil-works/pi-coding-agent":"*","@types/node":"^22.0.0","typescript":"^5.4.0","vitest":"^3.1.0"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/casualjim/pi-mimir.git"},"gitHead":"b131cf393f90ec6afbcf9840a4ffe1062c1312c7","_id":"@casualjim/pi-mimir@0.1.2","bugs":{"url":"https://github.com/casualjim/pi-mimir/issues"},"homepage":"https://github.com/casualjim/pi-mimir#readme","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-eSYmhGN2MBPQn9xJV0vtUfGMwJY4NRB2jk0Fk6CjPWDeyNDpC6k3PKpkBplHRV04Cxw6E/hgABmBnEdzf/6h0g==","shasum":"8f88b8b749cc5f7050ee14dad589cee31d17873c","tarball":"https://registry.npmjs.org/@casualjim/pi-mimir/-/pi-mimir-0.1.2.tgz","fileCount":33,"unpackedSize":194425,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@casualjim%2fpi-mimir@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIQCFT4MeoYHw4UdijVRc7QW3epnlO6CeFLg2OstKYXfSSgIfJk8RnFJHAg8tgHOSqR4KpjKk/Htw5tS8io9l4w9OGA=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b00282fb-55c6-414e-a72a-cf7e43b5d173"}},"directories":{},"maintainers":[{"name":"casualjim","email":"ivan@flanders.co.nz"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-mimir_0.1.2_1780338181335_0.6516274170196439"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-01T14:09:30.365Z","modified":"2026-06-01T18:23:01.749Z","0.1.0":"2026-06-01T14:09:30.972Z","0.1.1":"2026-06-01T17:40:55.835Z","0.1.2":"2026-06-01T18:23:01.487Z"},"bugs":{"url":"https://github.com/casualjim/pi-mimir/issues"},"license":"MIT","homepage":"https://github.com/casualjim/pi-mimir#readme","keywords":["pi-package"],"repository":{"type":"git","url":"git+https://github.com/casualjim/pi-mimir.git"},"description":"OpenSpec-driven development workflow for Pi Agent","maintainers":[{"name":"casualjim","email":"ivan@flanders.co.nz"}],"readme":"# pi-mimir\n\nOpenSpec workflow package for Pi. `@casualjim/pi-mimir` adds a review-gated OpenSpec workflow with focused planning, implementation, and review entrypoints.\n\n## What it provides\n\n- `plan` — run the full OpenSpec planning workflow, composing generated proposal/spec/design/task behavior with one holistic planning review.\n- `implement` — run generated OpenSpec apply behavior, verify it, and stop before archive; implementation review remains a separate explicit action.\n- `review-plan` — run a standalone planning review over existing planning artifacts.\n- `review-implementation` — run a standalone implementation review over existing implementation evidence.\n- A `review-gated` OpenSpec schema and supporting templates.\n- Session guidance for codebase-memory-first discovery.\n- Explicit incomplete-setup reporting when the separate `pi-codebase-memory` plugin is not active.\n- Compatibility with the sibling `@casualjim/pi-advisor` package for forked child advisor consultations.\n\n`@casualjim/pi-mimir` does not commit, push, create pull requests, archive changes, or run branch-finishing workflows. Generated OpenSpec skills are allowed to coexist and may be called by the full workflow where appropriate.\n\n## Install\n\nInstall the package in Pi, then initialize it in the target repository:\n\n```text\n/openspec:init\n```\n\nThe init command:\n\n1. runs `openspec init --tools pi`,\n2. configures `openspec/config.yaml` to use the `review-gated` schema,\n3. syncs bundled OpenSpec schemas/project-state assets,\n4. keeps bundled skills package-provided and syncs OpenSpec agents into `~/.pi/agent/agents`,\n5. checks whether the required `codebase_memory_*` tools are active, and\n6. reports setup as incomplete with an install command when `pi-codebase-memory` is not yet active.\n\nTo refresh OpenSpec Pi tooling later, run:\n\n```text\n/openspec:update\n```\n\nThe update command runs `openspec update`, keeps `openspec/config.yaml` on the `review-gated` schema, syncs bundled schemas/project-state assets, prunes legacy copied skills/agents when safe, writes OpenSpec agent ownership to `~/.pi/agent/mimir-managed.json`, and refreshes `.pi/mimir-managed.json` for project OpenSpec assets only.\n\n## Requirements\n\n- Pi with package support.\n- OpenSpec CLI available as `openspec`.\n- [`@casualjim/pi-codebase-memory`](../pi-codebase-memory/README.md) installed in Pi for full architecture-aware discovery.\n\nInstall codebase-memory support with:\n\n```text\npi install npm:@casualjim/pi-codebase-memory\n```\n\nWithout that plugin active, workflows can still use exact file reads and shell inspection, but should report discovery as degraded and avoid claiming architecture-aware analysis.\n\n## Usage\n\n### Plan a change\n\n```text\n/skill:plan <change-name>\n```\n\nUse this for the composed planning workflow: propose planning artifacts, run one holistic planning review, and iterate with targeted artifact fixes until blockers and concerns are resolved.\n\n### Implement a change\n\n```text\n/skill:implement <change-name>\n```\n\nUse this only after the change is apply-ready. The workflow applies implementation work, verifies it against planning artifacts, and stops before archive. Run `review-implementation` only when you explicitly want separate review findings.\n\n### Run reviews directly\n\n```text\n/skill:review-plan <change-name>\n/skill:review-implementation [review-scope]\n```\n\nUse these when planning or implementation already exists and you want a separate review pass. `review-plan` expects OpenSpec planning artifacts. `review-implementation` can review an OpenSpec change when supplied, or a non-OpenSpec scope/diff/evidence when no change exists. Findings are returned inline by default as structured reports with a summary, issues grouped by priority, and a final assessment; the review is intended to be single-shot, so after reported findings are addressed a follow-up review over unchanged material should ideally report only net new issues introduced by the changes or made newly reviewable by newly supplied evidence. Only persist findings when you explicitly ask.\n\n## Discovery behavior\n\nFor code discovery, `@casualjim/pi-mimir` guides agents toward this ladder:\n\n1. `codebase_memory_get_architecture`\n2. `codebase_memory_search_graph` or `codebase_memory_search_code`\n3. `codebase_memory_trace_path`\n4. `codebase_memory_get_code_snippet`\n5. exact file reads or shell inspection when appropriate\n6. synthesis\n\nThe runtime sends a non-blocking one-shot reminder on broad raw discovery tools such as `grep`, `find`, or `ls`. It does not block those calls and does not gate `read`; agents should always read files before editing them.\n\n## Review skills\n\n`review-plan` and `review-implementation` are the default standalone review entrypoints. `review-implementation` uses OpenSpec proposal/spec/design/task artifacts when present, but does not require an OpenSpec change. They return the whole actionable issue list inline by default and are intended to be single-shot rather than staged across repeated rounds; for `review-plan`, wording-only or editorial comments with no meaningful outcome change are suppressed. Persist findings only when explicitly asked.\n\n`plan` uses a single consolidated planning reviewer. It does not fan out into artifact-specific planning review skills during the default workflow.\n\nManual implementation deep dives:\n\n- `review-architecture`\n- `review-tests`\n- `review-data-flow`\n- `review-security`\n\nThe narrower `review-*` skills are opt-in deep dives, not automatic workflow steps.\n\nPlanning review findings identify the target artifact, any upstream artifact that must be fixed first, and whether a user decision is required instead of guessing. They are intended to focus on substantive implementation readiness rather than minute wording polish.\n\nReview findings use these severities:\n\n- `blocker` — must be fixed before proceeding.\n- `concern` — fix or ask the user to explicitly accept.\n- `suggestion` — optional improvement.\n\n## Development\n\nRun tests from `packages/pi-mimir`:\n\n```bash\nnpm test\nnpm run typecheck\n```\n\nRun the integration workflow test with:\n\n```bash\nnpm run test:e2e\n```\n\nSet `E2E_MODEL` to choose the model used by the non-interactive Pi sessions.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}