Skip to content

Block RLCR placeholder summaries#217

Open
zhwentao wants to merge 4 commits into
PolyArch:mainfrom
zhwentao:fix-rlcr-contract-only-stall-guards
Open

Block RLCR placeholder summaries#217
zhwentao wants to merge 4 commits into
PolyArch:mainfrom
zhwentao:fix-rlcr-contract-only-stall-guards

Conversation

@zhwentao

Copy link
Copy Markdown

Summary

  • Block RLCR stop-hook exits when the round summary still contains scaffold placeholders
  • Clarify that round/recovery contracts are re-anchor preconditions, not implementation progress
  • Add a regression test proving placeholder summaries block before Codex runs while concrete summaries still reach review

Validation

  • bash -n hooks/loop-codex-stop-hook.sh
  • bash -n tests/test-summary-placeholder-gate.sh
  • git diff --check
  • tests/test-summary-placeholder-gate.sh
  • tests/test-stop-hook-bg-allow.sh
  • tests/test-template-loader.sh
  • tests/test-todo-checker.sh

🤖 Generated with Claude Code

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9a7f176feb

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread hooks/loop-codex-stop-hook.sh Outdated
@zhwentao zhwentao force-pushed the fix-rlcr-contract-only-stall-guards branch from 9a7f176 to 24117fb Compare June 16, 2026 07:29
@zhwentao

Copy link
Copy Markdown
Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 24117fb285

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread hooks/loop-codex-stop-hook.sh Outdated
# common contract-only failure mode before spending a Codex review when the
# summary still contains template placeholders.
if [[ "$IS_FINALIZE_PHASE" != "true" ]]; then
SUMMARY_PLACEHOLDERS=$(grep -nE '^[[:space:]]*(-[[:space:]]*)?\[(Describe what was (done|implemented in this phase)|List (files created/modified/deleted|created/modified files|tests/commands run and outcomes|any deferred or pending items|unresolved items, if any))\][[:space:]]*$|^[[:space:]]*(-[[:space:]]*)?Action:[[:space:]]*none\|add\|update[[:space:]]*$|^[[:space:]]*(-[[:space:]]*)?Notes:[[:space:]]*\[what changed and why\][[:space:]]*$' "$SUMMARY_FILE" 2>/dev/null || true)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P3 Badge Ignore fenced code in placeholder detection

When a concrete summary quotes an exact scaffold line in a fenced Markdown block, such as documenting a template change with - [List created/modified files], this grep still matches it because it scans the whole file without tracking code fences. That blocks the stop hook before Codex runs even though the live summary has been replaced with concrete content; this also undercuts the new test intent that legitimate scaffold-token mentions in code blocks should be allowed.

Useful? React with 👍 / 👎.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@zhwentao zhwentao force-pushed the fix-rlcr-contract-only-stall-guards branch from 24117fb to 75e2f57 Compare June 16, 2026 09:00
@zhwentao

Copy link
Copy Markdown
Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 75e2f57846

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread hooks/loop-codex-stop-hook.sh
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@zhwentao

Copy link
Copy Markdown
Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3385e30b35

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +870 to +871
/^[[:space:]]*(-[[:space:]]*)?Action:[[:space:]]*none\|add\|update[[:space:]]*$/ { print FNR ":" $0; next }
/^[[:space:]]*(-[[:space:]]*)?Notes:[[:space:]]*\[what changed and why\][[:space:]]*$/ { print FNR ":" $0; next }

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Honor disabled BitLesson checks for review-only summaries

In --skip-impl/review-only loops, setup explicitly writes bitlesson_required: false so BitLesson formatting does not block the review workflow, and the review prompt only adds BitLesson instructions when that flag is true. This unconditional placeholder matcher still rejects the BitLesson scaffold lines, so a user can fill the real summary sections and still be blocked before codex review merely because the disabled BitLesson section contains Action: none|add|update or Notes: [what changed and why]. Guard these matches on BITLESSON_REQUIRED or omit the BitLesson scaffold when enforcement is disabled.

Useful? React with 👍 / 👎.

mtwentao and others added 2 commits June 16, 2026 21:22
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.

2 participants