You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
APM currently mixes target routing, schema normalization, default injection, and loss inside individual integrators. Some paths use one vendor's shape as the pivot for another vendor. This can make APM a permanent inter-vendor translation layer, hide semantic loss from operators, increase maintenance cost, and encourage vendor-specific schemas to become de facto standards.
Describe the solution you'd like
Adopt the approved standards-first architecture in docs/superpowers/specs/2026-07-10-openapm-standards-first-translation-design.md (design commit 12a384227).
APM will keep vendor-native import compatibility but normalize imports into small, immutable, versioned semantic models owned by OpenAPM. Each target renderer will consume only the primitive model, validate target capabilities, preserve the existing deny-wins executable trust gate, and return machine-readable transformation accounting. Unsupported required semantics fail clearly; vendor-only behavior remains available through explicit target-native declarations and is never cross-translated.
flowchart LR
OA[OpenAPM declaration] --> IR[Per-primitive semantic model]
VI[Vendor-native import] --> IA[Named import adapter]
IA --> IR
IR --> CV[Capability validation]
CV --> TG[Executable trust gate]
TG --> TR[Independent target renderer]
TR --> VF[Canonical vendor file]
TR --> RR[RenderResult]
RR --> DC[DiagnosticCollector and CommandLogger]
Loading
There are deliberately no vendor-to-vendor edges:
flowchart TD
F[Shared transformation and loss-report foundation] --> H[Hooks proving slice]
F --> C[Commands]
F --> M[MCP and environment semantics]
F --> I[Instructions and rules]
F --> A[Agents]
F --> P[Plugin import and export]
H --> P2097[Rework PR 2097]
H --> P2095[Rework PR 2095]
PR #2097 and PR #2095 independently render from HookIR
Stabilization
Week 4
Migration command, conformance, E2E, mutation-break, final panel and CI gates
If the foundation slips past the release-cycle boundary, PR #2097 and PR #2095 may land only as minimal, named compatibility bridges. Their migration to HookIR is then mandatory in the following minor release.
PR fix(hooks): normalize flat entries for Claude #2097: rebase after the foundation; normalize flat legacy input into HookIR; render Claude nesting only in the Claude renderer; report matcher: "*" as an explicit semantics-preserving transformation; retain hermetic E2E and mutation-break proof; finish with visible ship_now and exact-final-SHA green CI.
PR fix(hooks): emit Kiro v1 hook documents #2095: rebase after the foundation; render Kiro v1 directly from HookIR; remove the Claude-shaped pivot and _kiro_* side channels; move Kiro-native import to a separate follow-up; retain hermetic E2E and mutation-break proof; finish with visible ship_now and exact-final-SHA green CI.
Describe alternatives you've considered
Make Claude the canonical internal schema: rejected because it violates neutrality and inherits one vendor's defaults.
Support only native distribution: rejected because imports and bounded portability remain valuable.
Continue pairwise best-effort conversion: rejected because maintenance and silent loss grow approximately with the number of source/target pairs.
Create one universal mega-IR: rejected because primitives have different semantics and maturity.
Additional context
The hooks slice is the proving surface. Commands, MCP, instructions/rules, agents, and plugin import/export each require their own design review before implementation. Existing OpenAPM requirements manifests and tests/spec_conformance remain the conformance authority. Lossless rendering remains quiet by default; transformation details appear under verbose or JSON output. Diagnostics report field paths, never secret values.
Is your feature request related to a problem? Please describe.
APM currently mixes target routing, schema normalization, default injection, and loss inside individual integrators. Some paths use one vendor's shape as the pivot for another vendor. This can make APM a permanent inter-vendor translation layer, hide semantic loss from operators, increase maintenance cost, and encourage vendor-specific schemas to become de facto standards.
Describe the solution you'd like
Adopt the approved standards-first architecture in
docs/superpowers/specs/2026-07-10-openapm-standards-first-translation-design.md(design commit12a384227).APM will keep vendor-native import compatibility but normalize imports into small, immutable, versioned semantic models owned by OpenAPM. Each target renderer will consume only the primitive model, validate target capabilities, preserve the existing deny-wins executable trust gate, and return machine-readable transformation accounting. Unsupported required semantics fail clearly; vendor-only behavior remains available through explicit target-native declarations and is never cross-translated.
flowchart LR OA[OpenAPM declaration] --> IR[Per-primitive semantic model] VI[Vendor-native import] --> IA[Named import adapter] IA --> IR IR --> CV[Capability validation] CV --> TG[Executable trust gate] TG --> TR[Independent target renderer] TR --> VF[Canonical vendor file] TR --> RR[RenderResult] RR --> DC[DiagnosticCollector and CommandLogger]There are deliberately no vendor-to-vendor edges:
flowchart TD F[Shared transformation and loss-report foundation] --> H[Hooks proving slice] F --> C[Commands] F --> M[MCP and environment semantics] F --> I[Instructions and rules] F --> A[Agents] F --> P[Plugin import and export] H --> P2097[Rework PR 2097] H --> P2095[Rework PR 2095]One-release-cycle timeline
RenderResult, capability registry, diagnostics, characterization fixturesIf the foundation slips past the release-cycle boundary, PR #2097 and PR #2095 may land only as minimal, named compatibility bridges. Their migration to HookIR is then mandatory in the following minor release.
Work items
Live PR dispositions
matcher: "*"as an explicit semantics-preserving transformation; retain hermetic E2E and mutation-break proof; finish with visibleship_nowand exact-final-SHA green CI._kiro_*side channels; move Kiro-native import to a separate follow-up; retain hermetic E2E and mutation-break proof; finish with visibleship_nowand exact-final-SHA green CI.Describe alternatives you've considered
Additional context
The hooks slice is the proving surface. Commands, MCP, instructions/rules, agents, and plugin import/export each require their own design review before implementation. Existing OpenAPM requirements manifests and
tests/spec_conformanceremain the conformance authority. Lossless rendering remains quiet by default; transformation details appear under verbose or JSON output. Diagnostics report field paths, never secret values.