V38 Gate 3: PTRR Failsafe Thricified Stack#126
Conversation
Add the package-backed V38PtrrFailsafeThricifiedStack contract and deterministic source-safe artifact binding practical PTRR agents to FailsafeGenerationSequence and ThricifiedGeneration. Wire generator, checker, protocol tests, exports, workflows, roadmap, README, and V38 spec family updates so Gate 3 closes with 69 source predicates and Gate 2's 52/156/468 call-stack count law. Validated with check:v38-gate3, Gate 1/2 checks, artifact checks, V38 spec family/posture/canonical-input checks, strict V38 spec quality, protocol typecheck, full protocol tests, diff hygiene, and changed-file secret scan.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c7957b4a39
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| totalProviderCallCount: gate2Inventory.coverage.totalProviderCallCount, | ||
| expectedProviderCallSlots, | ||
| providerCallSlotsPerPtrrStep: V38_FAILSAFE_STAGE_IDS.length * V38_THRICIFIED_GENERATION_STAGE_IDS.length, | ||
| toolsAreStepOwned: rows.every((item) => String(item.toolBoundary || '').length > 0), |
There was a problem hiding this comment.
Enforce step-owned tool boundaries, not just non-empty labels
toolsAreStepOwned is computed as rows.every((item) => String(item.toolBoundary || '').length > 0), which only verifies that each row has some toolBoundary text. This means the invariant always passes even when boundaries explicitly indicate non-step ownership (for example values like outside-failsafe-sequence or tools-not-owned-here), so Gate 3 can report that tools are step-owned without actually proving it.
Useful? React with 👍 / 👎.
| assertCheck(failures, doc.includes('ThricifiedGeneration'), 'V38 docs must name ThricifiedGeneration.'); | ||
| } | ||
|
|
||
| assertCheck(failures, parity.includes('| PTRR Failsafe and Thricified execution stack | Gate 3 |') && parity.includes('| closed |'), 'V38 parity must close the Gate 3 matrix row.'); |
There was a problem hiding this comment.
Match Gate 3 parity status on the same matrix row
This check combines parity.includes('| PTRR Failsafe and Thricified execution stack | Gate 3 |') with a separate global parity.includes('| closed |'), so it can pass when the Gate 3 row exists but is not closed, as long as any other row in the file is marked closed. That weakens the gate-quality validation and can let an unclosed Gate 3 parity row slip through CI.
Useful? React with 👍 / 👎.
Summary
Validation