Skip to content

fix: close topology review gaps#350

Merged
Stahl-G merged 1 commit into
mainfrom
codex/postmerge-topology-review-fixes
Jul 2, 2026
Merged

fix: close topology review gaps#350
Stahl-G merged 1 commit into
mainfrom
codex/postmerge-topology-review-fixes

Conversation

@Stahl-G

@Stahl-G Stahl-G commented Jul 2, 2026

Copy link
Copy Markdown
Owner

Summary

  • sync the checked-in Hermes skill and delegate-task reference with the default-topology Screener replay ban
  • add a checked-in Hermes skill contract regression so source-clone users do not receive stale guidance
  • reject screened entries missing candidate_id when candidate_claims.json provides a stable candidate universe

Review Notes

Validation

  • python3 -m pytest -q tests/test_runtime_state.py -k "screened_candidates"
  • python3 -m pytest -q tests/test_subagent_first_contract.py tests/test_skill_contracts.py tests/test_hermes_adapter.py -k "Hermes or hermes or topology or scout or skill"
  • python3 scripts/check_skill_contract.py
  • python3 scripts/check_release_consistency.py --no-tag
  • python3 scripts/check_product_baseline.py
  • python3 scripts/check_runtime_asset_parity.py
  • python3 scripts/check_briefloop_skill_freshness.py
  • python3 scripts/check_capabilities.py
  • git diff --check

@Stahl-G Stahl-G marked this pull request as ready for review July 2, 2026 08:09
@Stahl-G Stahl-G merged commit 240a6f9 into main Jul 2, 2026
13 checks passed
@Stahl-G Stahl-G deleted the codex/postmerge-topology-review-fixes branch July 2, 2026 08:09

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

ℹ️ 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 598 to +599
if not _non_empty_string(candidate_id):
missing_screened_id = True
continue
return f"{bucket}[{idx}].candidate_id"

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 Check stable IDs without requiring totals

Because _screened_candidates_candidate_universe_error returns before this loop unless _screened_candidates_total finds a declared total_candidates/count, this new missing-ID rejection never runs for otherwise-valid screened payloads whose screening_policy only contains fields like max_items (a shape the validator accepts elsewhere). In that scenario, even with a valid candidate_claims.json whose candidates all have stable IDs, a selected or discarded item missing candidate_id is still marked valid, leaving downstream Claim Ledger/coverage traceability to statement matching. Base the missing-ID/unknown-ID check on the stable candidate IDs themselves rather than on an optional declared total.

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.

1 participant