Fold gap planning into plan workflow#123
Conversation
…rs still present; resolved in next commit)
…d link, truthful proof claims
docs(m0a): front door — honest README, zero jargon
refactor(m0b): decouple gates, delete ceremony modules, surface next --json blockers
- health/scenarios/phase: init-built fixture paths .planning -> .work (T6 rule) - next.test: legacy fixtures gain .planning/config.json (real pre-pivot repos always have it; resolver reads config marker) - phase.test: workspace-root error regex, .work/bin freshness paths - guards: global-install boundary regex follows README .work wording Known reds carried (pre-existing): invariants plan.md 640-cap; 4 README framing guards red since merge-base (masked by && test chain). Claude-Session: https://claude.ai/code/session_01VXkmXuUHiyagQbcAJJGnGA
feat(m0c): one state folder — .work canonical, .planning dual-read
feat(m0d): boxed next card, CI smoke gate, D-47 init exit, honest test runner
Align Workspine CLI/help/docs wording with the current state-folder contract, keep retired helper commands out of public help, and add the permanent public surface language gate. Verified with the local test suite and PR checks.
|
Warning Gemini encountered an error creating the review. You can try again by commenting |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 11a4ddd802
ℹ️ 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".
| const blockedOn = [ | ||
| ...(prerequisiteBlockers.length > 0 ? ['prerequisites'] : []), | ||
| ...(artifactStatus.satisfied ? [] : ['artifacts']), | ||
| ...(uiProofGate.blocks_verification ? ['ui_proof'] : []), | ||
| ]; | ||
| const closureVerified = legacyVerified && prerequisiteBlockers.length === 0 && artifactStatus.satisfied && uiProofSatisfied; | ||
| const closureVerified = legacyVerified && prerequisiteBlockers.length === 0 && artifactStatus.satisfied; |
There was a problem hiding this comment.
Restore UI-proof gating for phase verification
When a phase PLAN frontmatter declares ui_proof_slots (or an empty slot list without no_ui_proof_rationale), this new closureVerified calculation can still return verified: true and exit 0 as soon as PLAN/SUMMARY/artifact checks pass, because the UI-proof comparison result is no longer part of blocked_on or the final gate. The generated verify workflow still requires direct gsdd verify <phase> to fail closed for those UI-proof contracts, so UI-sensitive phases can be marked done without the planned/observed UI proof or rationale.
Useful? React with 👍 / 👎.
Summary
Verification