fix(workflow): harden thread discovery evidence#151
Conversation
There was a problem hiding this comment.
💡 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".
There was a problem hiding this comment.
💡 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".
There was a problem hiding this comment.
💡 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".
There was a problem hiding this comment.
💡 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".
|
@codex review Current head: 041ab2c |
There was a problem hiding this comment.
💡 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".
|
@codex review Current head: b907540 |
There was a problem hiding this comment.
💡 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".
| forbidden_surfaces().into_iter().any(|surface| { | ||
| surface_claims(line, surface) | ||
| .into_iter() | ||
| .any(|claim| has_fallback_or_substitution_claim(claim.text) && !claim.is_negated) |
There was a problem hiding this comment.
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 👍 / 👎.
| [ | ||
| "did not use", | ||
| "didn't use", | ||
| "do not use", | ||
| "not use", | ||
| "without using", | ||
| ] | ||
| .into_iter() | ||
| .any(|marker| prefix.contains(marker)) |
There was a problem hiding this comment.
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 👍 / 👎.
Summary
Rationale
Issue #146 narrowed to discovery/reliability:
tool_searchmisses must not become false blockers when realthread/startandturn/startevidence 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.mdplugins/codexy/skills/git-workflow/SKILL.mdplugins/codexy/skills/task-classification/SKILL.mdsrc/validation/child_lane_ownership.rssrc/validation/child_lane_thread_tools.rssrc/validation/mod.rstests/validator_child_lane_ownership_owner_decision.rstests/validator_prompt_metadata.rsVerification
cargo test --test validator_child_lane_ownership_owner_decisionfailed before production edits with the expected new reject-test failures.cargo test --test validator_child_lane_ownership_owner_decision validator_allows_negated_codex_cli_fallback_evidencefailed before negation handling.cargo test --test validator_child_lane_ownership_owner_decision validator_allows_negated_tool_search_blocker_evidencefailed before affirmative blocker handling.cargo test --test validator_child_lane_ownership_owner_decisionpassed 12/12.cargo test --test validator_prompt_metadatapassed 10/10.cargo fmt -- --checkpassed.scripts/validate-plugin-config --checkpassed.scripts/validate-plugin-config --check-touched-loc --base-ref origin/mainpassed.git diff --checkandgit diff --cached --checkpassed before commit.cargo testpassed across the full Rust test suite.Evidence
codegraph_searchidentifiedsrc/validation/child_lane_ownership.rsandtests/validator_child_lane_ownership_owner_decision.rs;codegraph_neighborsmapped the existing ownership validator imports.lsp_for_path/lsp_document_symbolsreportedrust-analyzerexecutable not found onPATH.codexy-sentinelreview reported no blockers for the staged eight-file diff at head139ac6547cc2b7ead0e700aa938c1b6305273966.Not Run
None.
Follow-ups
None.
Fixes #146