Type: info / coordination (refactor — not blocking initial ship)
Goal
After ArmorCopilot ships, all 3+ ArmorIQ harness plugins (armorClaude, armorCodex, armorCopilot-GH) will share ~80% of their code. Extract the shared lib into `@armoriq/plugin-core` so we maintain matching engine / audit WAL / intent SDK client in one place.
Scope (deferred — do NOT block ArmorCopilot ship on this)
Extract into new npm package `@armoriq/plugin-core`:
- `config.mjs`, `common.mjs`, `intent.mjs`, `intent-schema.mjs`
- `policy.mjs`, `crypto-policy.mjs`
- `iap-service.mjs`, `audit-wal.mjs`
- `fs-store.mjs`, `runtime-state.mjs`
Each product keeps only:
- `engine.mjs` (harness-specific hook payload parsing)
- `hook-output.mjs` (harness-specific response shape)
- `policy-mcp.mjs` (if MCP supported on that harness)
- `install_*.sh`
- `hooks.json` (or equivalent)
When to do this
Only AFTER both ArmorCopilot-MS and ArmorCopilot-GH ship + stabilize. Premature extraction risks churn before the harness-specific surfaces are well understood.
Refs
- armoriq/armorCopilot (parent initiative)
Type: info / coordination (refactor — not blocking initial ship)
Goal
After ArmorCopilot ships, all 3+ ArmorIQ harness plugins (armorClaude, armorCodex, armorCopilot-GH) will share ~80% of their code. Extract the shared lib into `@armoriq/plugin-core` so we maintain matching engine / audit WAL / intent SDK client in one place.
Scope (deferred — do NOT block ArmorCopilot ship on this)
Extract into new npm package `@armoriq/plugin-core`:
Each product keeps only:
When to do this
Only AFTER both ArmorCopilot-MS and ArmorCopilot-GH ship + stabilize. Premature extraction risks churn before the harness-specific surfaces are well understood.
Refs