Skip to content

fix(policy): document the executable normalization wrapper - #100

Merged
arjitj2 merged 2 commits into
mainfrom
arjit/issue-99-policy-entrypoint
Sep 29, 2026
Merged

arjitj2 merged 2 commits into
mainfrom
arjit/issue-99-policy-entrypoint

Conversation

@arjitj2

@arjitj2 arjitj2 commented Sep 29, 2026

Copy link
Copy Markdown
Owner

Closes #99

What changed

The documented receipt-normalization command ran an import-only module, exited successfully, and produced no policy event, even for invalid input. Point it at the shipped pstack-model-policy executable. Tests extract that command from the reference and verify its event fields, identity-mismatch rejection, and malformed-input rejection. Package version is 1.10.1.

Verification

  • 744 Bun tests, strict typecheck, static invariants, plugin validation, maintenance tests, documentation checks, and ledger check pass.
  • The exact candidate is installed in both affected parents. All 213 tracked package files match in dedicated Codex and Claude marketplace installations.
  • Fresh Codex and Claude sessions loaded installed pstack:poteto-mode, read its provider-dispatch reference, and executed the documented command.
  • Evidence names the version, candidate, action, and observed result.

Candidate efa07c0beefe37c9f9fd254b704a074ee3d593f7, version 1.10.1. In each parent, a preserved real Claude receipt produced exit 0 and a 970-byte JSON event with the assigned descriptor and complete status. A synthetic copy with a wrong model produced exit 65, empty stdout, and a model identity-mismatch diagnostic. These are receipt replays, not fresh provider executions. Both sessions independently reread and asserted the saved outputs. Personal plugin installations and model sheets were unchanged.

Before the fix, the documented command returned exit 0 with empty stdout and stderr for both receipts. An independent reviewer passed the CLI suite and confirmed that both new tests fail with the old documentation in a disposable copy. No actionable findings. Evidence is retained in the maintainer's open-pstack-issue99-evidence directory, including candidate hashes, parent transcripts, command captures, and independent review.

Documentation impact

Updated the owning provider-dispatch.md invocation and added a reproducible receipt-normalization recipe to .agents/skills/verify-open-pstack/features/routing.md.

@arjitj2

arjitj2 commented Sep 29, 2026

Copy link
Copy Markdown
Owner Author

Independent review: PASS at efa07c0.

A reviewer who did not write the change ran all 44 policy CLI tests. In a disposable copy, restoring the original documented command made both new tests fail. The valid case asserts the normalized event fields; the negative cases assert identity-mismatch and malformed-receipt rejection. No actionable correctness or comment findings.

Both installed-parent sessions also passed on the exact candidate. An independent audit compared all 213 packaged file hashes and reread the saved JSON, diagnostics, and exit codes from both sessions. The preserved real receipt normalized to complete; the altered-model fixture was rejected with exit 65 and empty stdout. These runs test receipt replay, not fresh provider execution.

@arjitj2
arjitj2 requested a balanced review from Copilot September 29, 2026 00:04

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@arjitj2

arjitj2 commented Sep 29, 2026

Copy link
Copy Markdown
Owner Author

Copilot could not review this candidate because the requester has reached its review quota. The submitted review records that limit; there are no inline comments, pending owner replies, or unresolved threads. This is unavailable review coverage, not Copilot approval. Independent review, both installed-parent checks, local checks, and GitHub CI passed at efa07c0.

@arjitj2
arjitj2 merged commit ea09860 into main Sep 29, 2026
1 check 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.

Use the executable policy wrapper in provider-dispatch instructions

2 participants