Skip to content

feat(ci): support explicit platform evidence scope - #345

Merged
gmemmy merged 1 commit into
mainfrom
feat/ci-evidence-platform-scope
Sep 8, 2026
Merged

gmemmy merged 1 commit into
mainfrom
feat/ci-evidence-platform-scope

Conversation

@gmemmy

@gmemmy gmemmy commented Sep 7, 2026 •

Copy link
Copy Markdown
Owner

Problem

CI evidence packs previously required both Android and iOS even when a scenario intentionally selected one platform. That forced honest iOS-only or Android-only evidence into an unsupported shape, while weakening the distinction between missing required proof and a platform that was never in scope.

This PR adds an explicit platform scope without allowing single-platform evidence to imply mobile or cross-platform completeness.

What changed

  • Adds single-platform and cross-platform scope to current CI evidence packs.
  • Requires exactly one declared platform for single-platform packs and exactly Android plus iOS for cross-platform packs.
  • Carries scope through assembly, receipts, summaries, GitHub reviewer reports, schemas, exports, CLI output, and packed-consumer coverage.
  • Keeps legacy 1.0.0 two-platform packs readable without rewriting their bytes.
  • Treats undeclared platforms as out of scope and missing declared platforms as failures.

Why this approach

Platform scope belongs to the evidence claim, not the runner or product scenario. Live-proof-set remains a platform inventory; the CI pack declares what coverage it claims. This preserves exact legacy behavior while making current single-platform claims explicit and fail closed.

Proof

Controller checks:

  • pnpm typecheck - passed.
  • pnpm exec tsc -p tsconfig.json - passed.
  • Focused CI evidence suite - 249 tests passed.
  • pnpm package:smoke - passed, including installed-package CLI, receipt, summary, GitHub report, and legacy-reader rehearsal.
  • pnpm release:check - passed at exact reviewed SHA 951579a318853c23f6474329acc82b8fc9ef004a; 1,871 tests passed, release readiness passed, package smoke passed, and installed-consumer rehearsal passed.
  • git diff --check - passed.

Independent review:

  • Initial remediation review found one test-isolation issue.
  • The test was corrected to add one explicit out-of-scope Android publication claim to valid iOS-only facts and assert the exact rejection reason.
  • Final independent re-review of 951579a318853c23f6474329acc82b8fc9ef004a was CLEAN with no P0-P3 findings.

Runtime proof: Not run. This PR proves package and fixture behavior, not device execution or product acceptance.

Release proof: Not performed. A green release harness is not npm publication, a tag, or a GitHub Release.

Risks and limits

  • Single-platform evidence proves only the declared platform.
  • Product verdict, runtime acceptance, comparison, release, deployment, and merge acceptance remain separate.
  • Android-only packed rehearsal is deferred; the shared contract and assembler have focused Android-only coverage.
  • This PR does not change live-proof-set schema version or remove the deprecated legacy derivation export.

Stack/review order

  1. #342 - portable promoted evidence packages.
  2. #343 - idempotent profile-session stop.
  3. This PR - explicit CI evidence platform scope.

Review and merge bottom-up. This PR is based on #343.

Follow-ups

  • Complete generated scaffold helper coverage.
  • Harden crash-safe evidence publication and duplicate semantic pointer verification.
  • Cut and validate a new immutable package candidate only after the full release-correction train is green.

@gmemmy
gmemmy force-pushed the feat/ci-evidence-platform-scope branch from 951579a to f37ff38 Compare September 8, 2026 06:44
@gmemmy
gmemmy changed the base branch from codex/fix-profile-stop-idempotency to main September 8, 2026 06:44
@gmemmy
gmemmy marked this pull request as ready for review September 8, 2026 06:45
@gmemmy
gmemmy merged commit 3cf19ac into main Sep 8, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant