Skip to content

Consolidate the Install identity schema across lifecycle adapters #106

Description

@BrettKinny

This was generated by AI during triage.

Type: HITL

What to build

Choose and implement one authoritative schema contract for the Install identity so Bash install/uninstall and PowerShell install/uninstall cannot drift independently. Preserve the current format-1 compatibility and the rule that state is parsed strictly as data, never sourced or evaluated.

This is deliberately deferred until after v1.1 qualification because changing the cross-language generation/validation seam late in the release would create more migration risk than the regression-locked duplication it replaces.

Acceptance criteria

  • Record the chosen schema ownership/generation strategy in an ADR, including why it works in bootstrap environments before optional tooling exists.
  • One authoritative field/constraint definition drives or mechanically verifies all four adapter-native readers and writers.
  • Format 1 remains readable without executing state content; unknown, missing, duplicate, malformed, unsafe-path, semantic, and case-identity violations still fail closed.
  • Bash and PowerShell emit byte-compatible field names and equivalent constraints for stable, prerelease, legacy, edge, adopted-home, and rootless Podman identities.
  • Generated artifacts are reproducible from the authoritative schema and CI fails on an ungenerated or hand-diverged adapter.
  • Cross-language fixtures cover valid and adversarial state, including CRLF, non-ASCII paths, path case rules, and future-format rejection.
  • Migration/versioning rules are documented before adding any format-2 field.

Blocked by

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestready-for-humanRequires human implementation or judgment

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions