Skip to content

fix(workflow): harden thread discovery evidence#151

Merged
eunsoogi merged 6 commits into
mainfrom
codexy/146-thread-tool-discovery
Jun 22, 2026
Merged

fix(workflow): harden thread discovery evidence#151
eunsoogi merged 6 commits into
mainfrom
codexy/146-thread-tool-discovery

Conversation

@eunsoogi

Copy link
Copy Markdown
Owner

Summary

  • Add a repeatable Thread Tool Discovery Procedure to Codexy orchestration and reinforce it in task classification and git workflow guidance.
  • Add validator coverage for false thread-tool blockers, forbidden Codex CLI/app-server fallback claims, and valid negated evidence.
  • Split thread-tool evidence predicates into a focused validator helper to keep touched files within LOC limits.

Rationale

Issue #146 narrowed to discovery/reliability: tool_search misses must not become false blockers when real thread/start and turn/start evidence exists, and subagents or Codex CLI/app-server commands must not be treated as child-owned implementation owners.

Changed Areas

  • plugins/codexy/skills/codex-orchestration/SKILL.md
  • plugins/codexy/skills/git-workflow/SKILL.md
  • plugins/codexy/skills/task-classification/SKILL.md
  • src/validation/child_lane_ownership.rs
  • src/validation/child_lane_thread_tools.rs
  • src/validation/mod.rs
  • tests/validator_child_lane_ownership_owner_decision.rs
  • tests/validator_prompt_metadata.rs

Verification

  • RED: cargo test --test validator_child_lane_ownership_owner_decision failed before production edits with the expected new reject-test failures.
  • RED: cargo test --test validator_child_lane_ownership_owner_decision validator_allows_negated_codex_cli_fallback_evidence failed before negation handling.
  • RED: cargo test --test validator_child_lane_ownership_owner_decision validator_allows_negated_tool_search_blocker_evidence failed before affirmative blocker handling.
  • cargo test --test validator_child_lane_ownership_owner_decision passed 12/12.
  • cargo test --test validator_prompt_metadata passed 10/10.
  • cargo fmt -- --check passed.
  • scripts/validate-plugin-config --check passed.
  • scripts/validate-plugin-config --check-touched-loc --base-ref origin/main passed.
  • git diff --check and git diff --cached --check passed before commit.
  • cargo test passed across the full Rust test suite.

Evidence

  • Codegraph: callable; codegraph_search identified src/validation/child_lane_ownership.rs and tests/validator_child_lane_ownership_owner_decision.rs; codegraph_neighbors mapped the existing ownership validator imports.
  • LSP: callable but Rust server unavailable; lsp_for_path / lsp_document_symbols reported rust-analyzer executable not found on PATH.
  • Packaged sentinel: final codexy-sentinel review reported no blockers for the staged eight-file diff at head 139ac6547cc2b7ead0e700aa938c1b6305273966.

Not Run

None.

Follow-ups

None.

Fixes #146

@eunsoogi

Copy link
Copy Markdown
Owner Author

@codex review

Current head: 139ac65

@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: 139ac6547c

ℹ️ 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".

Comment thread src/validation/child_lane_thread_tools.rs Outdated
@eunsoogi

Copy link
Copy Markdown
Owner Author

@codex review

Fresh current-head review request for aeabab7 after addressing PRRT_kwDOS6i-_86LOwNF. Scope: accept negated "not fallback substitutes" evidence without weakening affirmative Codex CLI/app-server fallback rejection.

@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: aeabab71ac

ℹ️ 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".

Comment thread src/validation/child_lane_thread_tools.rs Outdated
@eunsoogi

Copy link
Copy Markdown
Owner Author

@codex review

Current head: 336f4d6
Scope: review-response for PRRT_kwDOS6i-_86LPAFm; regression keeps affirmative satisfied-by codex exec/app-server claims rejected even when the line also says not a fallback substitute.

@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: 336f4d69dd

ℹ️ 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".

Comment thread src/validation/child_lane_thread_tools.rs Outdated
@eunsoogi

Copy link
Copy Markdown
Owner Author

@codex review

Current head: 8223753
Scope: review-response for PRRT_kwDOS6i-_86LPMr3; regression accepts Thread requirement: satisfied by codex_app thread/start; did not use codex exec fallback. while preserving rejection for satisfied-by codex exec/app-server claims.

@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: 822375337d

ℹ️ 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".

Comment thread src/validation/child_lane_thread_tools.rs Outdated
Comment thread src/validation/child_lane_thread_tools.rs Outdated
@eunsoogi

Copy link
Copy Markdown
Owner Author

@codex review

Current head: 041ab2c
Scope: review-response for PRRT_kwDOS6i-_86LPYa1 and PRRT_kwDOS6i-_86LPYa5; regressions require affirmative non-negated thread/start + turn/start evidence and reject mixed forbidden fallback claims per surface, including same-clause codex exec substitute plus negated codex app-server fallback.

@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: 041ab2c65c

ℹ️ 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".

Comment thread src/validation/child_lane_thread_tools.rs Outdated
Comment thread src/validation/child_lane_thread_tools.rs Outdated
@eunsoogi

Copy link
Copy Markdown
Owner Author

@codex review

Current head: b907540
Scope: review-response for PRRT_kwDOS6i-_86LPyPC and PRRT_kwDOS6i-_86LPyPH; regressions accept split affirmative thread/start + turn/start evidence and negated forbidden satisfied-by claims while preserving rejection for unrelated prefix negation such as not reviewed, satisfied by codex exec.

@eunsoogi
eunsoogi merged commit 322d06b into main Jun 22, 2026
4 checks passed
@eunsoogi
eunsoogi deleted the codexy/146-thread-tool-discovery branch June 22, 2026 12:23

@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: b907540fdc

ℹ️ 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".

Comment on lines +111 to +114
forbidden_surfaces().into_iter().any(|surface| {
surface_claims(line, surface)
.into_iter()
.any(|claim| has_fallback_or_substitution_claim(claim.text) && !claim.is_negated)

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 Inspect the whole clause for fallback claims

When the fallback wording appears before the forbidden surface, such as Thread fallback: codex exec handled the child lane because thread tools were unavailable, this path accepts the evidence because has_fallback_or_substitution_claim is applied only to claim.text, which starts at codex exec and no longer includes the fallback label. That leaves an obvious Codex CLI fallback claim unflagged in child-lane evidence.

Useful? React with 👍 / 👎.

Comment on lines +153 to +161
[
"did not use",
"didn't use",
"do not use",
"not use",
"without using",
]
.into_iter()
.any(|marker| prefix.contains(marker))

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 Preserve negated satisfied-by claims that mention fallback

A negated claim like Thread requirement: not satisfied by codex exec fallback is still rejected here: the special satisfied by check sees the negation, but then the generic surface pass treats the trailing word fallback in claim.text as an affirmative fallback because has_negated_surface_fallback_claim does not recognize not satisfied by in the prefix. This regresses the intended acceptance of negated forbidden satisfied-by evidence when writers include the common fallback noun.

Useful? React with 👍 / 👎.

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.

Make thread tool discovery reliable and ban Codex CLI fallback

1 participant