Skip to content

fix(sync): make sync rationale checks self-validating - #3203

Merged
stranske merged 10 commits into
mainfrom
codex/issue-3183-sync-rationale-self-checking
Aug 23, 2026
Merged

fix(sync): make sync rationale checks self-validating#3203
stranske merged 10 commits into
mainfrom
codex/issue-3183-sync-rationale-self-checking

Conversation

@stranske

@stranske stranske commented Aug 23, 2026

Copy link
Copy Markdown
Owner

Closes #3183

Summary

  • Replaced stale sync-manifest issue citations with current policy or explicit resolved markers, and added a live issue-reference check.
  • Made WORKFLOWS_ONLY self-validating, removed stale exclusions, and routed LangSmith/label fleet consumers through Maint 68’s single registry.
  • Split drift metadata into divergence, divergence_reviewed, and fingerprint_refreshed, including concrete rationales for the former placeholders.

Validation

  • pytest focused gates: 4 passed.
  • python scripts/validate_template_completeness.py --strict: passed.
  • python scripts/check_template_drift.py: 3 in sync, 16 allowlisted, 0 unallowlisted.
  • Ruff and git diff --check: passed.

Deliberate-break evidence

  • Gate 1: adding a closed #2158 citation produced AssertionError: manifest references closed issue #2158; restoration passed.
  • Gate 2: re-adding maint-post-ci.yml produced Extra items in the right set: maint-post-ci.yml; restoration passed.
  • Gate 3: truncating CONSUMER_REPOS produced Left contains one more item: stranske/Orchestrator; restoration passed.
  • Gate 4: restoring the placeholder produced Existing reviewed baseline drift in the assertion failure; restoration passed.

Summary by CodeRabbit

  • Documentation

    • Clarified manifest issue statuses, workflow ownership, and runtime-delivery notes.
    • Expanded template-drift guidance with divergence, review, and fingerprint-refresh metadata.
    • Updated workflow completeness documentation and retired-workflow references.
  • Improvements

    • Consumer repository lists are now derived from maintenance workflow configuration, reducing duplication and drift.
    • Improved compatibility with legacy template-drift entries.
  • Tests

    • Added validation for manifest issue statuses, repository-list consistency, drift metadata, and workflow completeness.
    • Added automated coverage to the pull request quality checks.

@stranske stranske added agent:codex Agent-created issues from Codex agents:keepalive Use to initiate keepalive functionality with agents autofix Opt-in automated formatting & lint remediation agent:retry Add to trigger agent retry after rate limit or pause labels Aug 23, 2026
@coderabbitai

coderabbitai Bot commented Aug 23, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 7dcb0d76-7bde-4cfe-9f29-04e274d22383

📥 Commits

Reviewing files that changed from the base of the PR and between a84f2f1 and 7bd4072.

📒 Files selected for processing (7)
  • .github/sync-manifest.yml
  • .github/workflows/pr-00-gate.yml
  • config/template-drift-allowlist.txt
  • scripts/check_template_drift.py
  • tests/scripts/test_fleet_list_single_source.py
  • tests/scripts/test_sync_manifest_docs.py
  • tests/scripts/test_template_drift_allowlist.py

Included review availability: 0 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 1 review per hour.


📝 Walkthrough

Walkthrough

The change updates sync manifest state, separates template-drift metadata, derives consumer repositories from the workflow manifest, removes stale workflow exclusions, and adds self-checks for these conditions.

Changes

Sync surface validation

Layer / File(s) Summary
Manifest issue and deployment state
.github/sync-manifest.yml, tests/scripts/test_sync_manifest_docs.py, .github/workflows/pr-00-gate.yml
Manifest descriptions identify resolved issues and document the Gate workflow's create-only state. Tests require explicit issue status and validate open citations through gh when credentials are available. The Gate runs these tests when the test file exists.
Drift rationale fields
config/template-drift-allowlist.txt, scripts/check_template_drift.py, tests/scripts/test_template_drift_allowlist.py
The allowlist separates divergence, review, and fingerprint-refresh metadata. Parsing supports the new field and legacy reason values. Tests require complete, non-placeholder metadata.
Single consumer repository registry
scripts/cleanup_labels.py, scripts/langsmith_fleet.py, tests/scripts/test_fleet_list_single_source.py
Both repository registries now read from the consumer-repository workflow. The test checks equality with the shared repository reader.
Live workflow exclusions
scripts/validate_template_completeness.py, tests/scripts/test_validate_template_completeness.py
Stale workflow exclusions are removed and the orchestrator comment is updated. The test verifies that excluded workflows exist only in the root workflow directory.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: 🟡 Moderate · up to 7bd40

The PR adds self-checks for manifest citations and fleet registry sourcing, but current validation can still allow malformed or mixed issue references and does not prove consumers cannot retain duplicated hard-coded lists. This leaves a bounded risk that stale references or fleet drift could pass CI, so merge should wait for those checks to be tightened or explicitly accepted by the owner.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The changes address the linked issues by validating manifest citations, workflow consistency, consumer-repository sourcing, and drift metadata.
Out of Scope Changes check ✅ Passed The changes are limited to the linked objectives, related validation tests, and required Gate integration.
Docstring Coverage ✅ Passed Docstring check was indeterminate for this PR — some files could not be analyzed in time. Not blocking.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely summarizes the PR's main change: making sync rationale checks self-validating.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/issue-3183-sync-rationale-self-checking

Comment @coderabbitai help to get the list of available commands.

@agents-workflows-bot

Copy link
Copy Markdown
Contributor

🤖 Keepalive Loop Status

PR #3203 | Agent: Codex | Iteration 1 of 12

🔄 Agent Running

Codex is actively working on this PR (view logs)

Status Value
Agent Codex
Iteration 1 of 12
Task progress 0/7 (0%)
Started 2026-08-23 14:12:07 UTC

This comment will be updated when the agent completes.

@stranske-keepalive

stranske-keepalive Bot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

🤖 Keepalive Loop Status

PR #3203 | Agent: Codex | Iteration 8/12

Current State

Metric Value
Iteration progress [#######---] 8/12
Action run (agent-run-skipped)
Gate success
Tasks 0/7 complete
Timeout 45 min (default)
Timeout usage 0m elapsed (2%, 45m remaining)
Keepalive ✅ enabled
Autofix ❌ disabled

Last Codex Run

Result Value
Status ⏭️ Skipped
Reason agent-run-skipped

To retry:

  • Add the agent:retry label, OR
  • Wait for conditions to resolve (e.g., Gate success, labels present)

🔍 Failure Classification

| Error type | infrastructure |
| Error category | transient |
| Suggested recovery | Capture logs and context; retry once and escalate if the issue persists. |

@stranske-keepalive stranske-keepalive Bot removed the agent:retry Add to trigger agent retry after rate limit or pause label Aug 23, 2026
@stranske-keepalive

stranske-keepalive Bot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor
Keepalive Work Log (click to expand)
# Time (UTC) Agent Action Result Files Tasks Progress Commit Gate
1 2026-08-23 14:14:11 Codex run (force-retry-gate) retry success 32 file(s) 0 0/7
2 2026-08-23 14:17:05 Codex run (bypass-rate-limit-gate) success 32 file(s) 0 0/7 cancelled
2 2026-08-23 14:20:04 Codex conflict (merge-conflict-github-api) success 42 file(s) 0 0/7 99295e8 failure
3 2026-08-23 14:26:42 Codex fix (fix-test) success 32 file(s) 0 0/7 failure
4 2026-08-23 14:33:12 Codex fix (fix-test) success 32 file(s) 0 0/7 failure
5 2026-08-23 14:53:50 Codex run (bypass-fix-lint) success 32 file(s) 0 0/7 failure
6 2026-08-23 14:59:01 Codex fix (fix-unknown) success 32 file(s) 0 0/7 failure
7 2026-08-23 15:17:52 Codex fix (fix-unknown) success 32 file(s) 0 0/7 failure
7 2026-08-23 16:13:15 Codex review (progress-review-8) skipped 0 0/7 success
7 2026-08-23 17:32:25 Codex wait (gate-not-success) skipped 0 0/7 action_required
8 2026-08-23 18:19:12 Codex run (force-retry-gate) retry success 32 file(s) 0 0/7 action_required
8 2026-08-23 18:19:56 Codex run (agent-run-skipped) retry skipped 0 0/7 action_required
8 2026-08-23 18:36:19 Codex wait (gate-not-success) skipped 0 0/7 action_required
8 2026-08-23 18:55:20 Codex run (agent-run-skipped) skipped 0 0/7 success
8 2026-08-23 19:23:18 Codex wait (gate-pending-transient) skipped 0 0/7
8 2026-08-23 19:27:39 Codex stop (zero-activity-infrastructure) skipped 0 0/7 success
8 2026-08-23 19:28:24 Codex run (agent-run-skipped) retry skipped 0 0/7 success

@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: 07b1fbc205

ℹ️ 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 scripts/langsmith_fleet.py Outdated
from typing import Any

from jsonschema import Draft202012Validator
from scripts.list_registered_consumer_repos import extract_repos

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Keep the LangSmith script executable by file path

When the checked Maint 80 and Maint 85 workflows invoke python scripts/langsmith_fleet.py, Python places the scripts/ directory—not the repository root—at the front of sys.path, so this package-qualified sibling import raises ModuleNotFoundError: No module named 'scripts'. Both scheduled workflows therefore stop before producing or validating their fleet reports once jsonschema is installed; use an import strategy compatible with the existing direct entry point or change every caller to module execution.

Useful? React with 👍 / 👎.

Comment thread scripts/cleanup_labels.py Outdated
from pathlib import Path
from typing import NamedTuple

from scripts.list_registered_consumer_repos import extract_repos

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 direct execution of the label cleanup utility

The documented commands run this file directly (python scripts/cleanup_labels.py, or from scripts/ as python cleanup_labels.py), and in either case this package-qualified import cannot resolve because the repository root is absent from the script's import path. The utility now exits with ModuleNotFoundError before argument parsing or its optional PyGithub dependency handling, so all audit and cleanup modes are unusable through their documented entry point.

Useful? React with 👍 / 👎.

Comment thread tests/scripts/test_sync_manifest_docs.py
@stranske

stranske commented Aug 23, 2026

Copy link
Copy Markdown
Owner Author

Runner dispatch state for autofix on PR #3203. Do not edit.

@stranske

Copy link
Copy Markdown
Owner Author

Resolved the integration corruption on exact head b27a4af: removed committed conflict markers from config/template-drift-allowlist.txt, retained the current-main checksums and documented intentional divergence, and updated the stale create-only manifest assertion to the current policy.

Validated locally: python scripts/check_template_drift.py --allowlist config/template-drift-allowlist.txt (3 in sync / 16 allowlisted / 0 unallowlisted) and focused pytest (35 passed, 1 credential-dependent skip).

@stranske

Copy link
Copy Markdown
Owner Author

Closer recovery — test-quality + direct script entry points (head 3e2b87c6)

Gate failure addressed: test-quality rejected three new tests for missing literal expected assertions.

Fixes on exact head 3e2b87c6:

  1. test-quality: added literal Gate assertions (MANIFEST.name == …, len(registered) >= 10, offenders == [], etc.) in test_fleet_list_single_source.py, test_sync_manifest_docs.py, and test_template_drift_allowlist.py.
  2. P1/P2 direct execution: bootstrapped repo root onto sys.path before from scripts… in scripts/langsmith_fleet.py and scripts/cleanup_labels.py (same pattern as langsmith_fleet_conformance.py). Verified locally: python scripts/langsmith_fleet.py --help and python scripts/cleanup_labels.py --help succeed.
  3. P2 manifest guard in CI: split manifest coverage into a static resolved: marker enforcement test that runs in Gate without GITHUB_TOKEN, plus the existing live open-issue check when a token is present.

Local validation:

  • python scripts/check_gate_diff_quality.py --base origin/main --head HEAD → passed
  • focused pytest on the three script tests → 3 passed, 1 skipped (live manifest check skips without token)
  • template drift checker unchanged from prior round: 3 in sync / 16 allowlisted / 0 unallowlisted

Review threads: P1/P2 claims are addressed on this head; awaiting bot thread resolution per fleet policy (no self-resolution). Fresh Gate CI is required before merge; seven-minute post-push window applies.

@stranske
stranske force-pushed the codex/issue-3183-sync-rationale-self-checking branch from 3e2b87c to 181e8c7 Compare August 23, 2026 14:46
@stranske

Copy link
Copy Markdown
Owner Author

Closer rebase onto main (head 181e8c7b)

Rebased onto 861847aa after the branch went CONFLICTING/DIRTY. Resolved config/template-drift-allowlist.txt by keeping the PR's divergence/divergence_reviewed/fingerprint_refreshed metadata while taking main's refreshed fingerprints for pairs 5/11/16.

Post-rebase validation: drift checker 3 in sync / 16 allowlisted / 0 unallowlisted; check_gate_diff_quality.py passed; focused script tests 3 passed, 1 skipped.

Fresh Gate CI required; seven-minute post-push window applies before merge.

@github-actions

github-actions Bot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Runner dispatch state for codex on PR #3203. Do not edit.

@github-actions

Copy link
Copy Markdown
Contributor

Autofix updated these files:

  • tests/scripts/test_sync_manifest_docs.py

@stranske
stranske force-pushed the codex/issue-3183-sync-rationale-self-checking branch from a84f2f1 to a70c22a Compare August 23, 2026 16:28
@stranske

Copy link
Copy Markdown
Owner Author

Closer pushed exact head a70c22a41a3db008462c8ba1ff577c748b3b89fc after rebasing onto merged #3194.

Review disposition and validation:

  • per-citation open: / resolved: parsing now rejects unpaired references and sends only explicitly open pairs to the live check;
  • the GitHub CLI lookup has a 15-second timeout with line-specific failure evidence;
  • Gate test-quality runs the live manifest issue-state test with GH_TOKEN: github.token;
  • direct tests prove divergence overrides legacy reason while preserving legacy-only parsing, and AST checks prove both fleet collections derive from extract_repos;
  • the live check caught stale closed Gate at main HEAD has expanded detect-job outputs that fail on fresh consumer repos #2158, and the manifest now records its documented resolved workaround accurately;
  • validation: 35 passed, 1 expected no-token skip; token-backed manifest suite 3 passed; drift 5 in sync / 20 allowlisted / 0 unallowlisted; strict completeness and Gate diff quality pass; Ruff and git diff --check pass.

A new seven-minute post-push review window began on this exact head. Do not merge until that window completes, required checks are green, and active non-outdated review threads are zero.

@stranske

Copy link
Copy Markdown
Owner Author

Closer CI continuation pushed exact head 5a2aff7.\n\nSelftest CI identified the remaining deterministic blocker: Black would reformat tests/scripts/test_sync_manifest_docs.py and tests/scripts/test_template_drift_allowlist.py. Both files are now formatted with the repository's line length.\n\nValidation:\n- Black check over the full repository: 590 files unchanged.\n- Focused tests: 4 passed, 1 expected no-token skip.\n- Ruff, Gate diff-quality, and git diff whitespace checks: passed.\n\nA new seven-minute post-push review window begins on this exact head. Do not merge until the head remains unchanged, required checks pass, and active non-outdated review threads are zero.

@stranske

Copy link
Copy Markdown
Owner Author

Exact-head evidence: manifest issue check runs in Gate with token

Re: active thread on whether the manifest issue guard skips in normal Gate CI.

Static enforcement (no token): test_manifest_issue_citations_are_explicitly_stateful fails on any manifest line with an unpaired #N citation (must be open: #N or resolved: issue #N). This runs in the shared Python CI path.

Live open-issue enforcement (token required): pr-00-gate.yml step Verify open sync-manifest issue citations (test-quality job) runs:

env:
  GH_TOKEN: ${{ github.token }}
run: python -m pytest tests/scripts/test_sync_manifest_docs.py -q

This is separate from the reusable Python CI job that only receives markers/coverage/PYTHONPATH.

Exact head 5a2aff71 Gate run 32652209151: enforce SUCCESS; focused manifest suite is 2 passed, 1 skipped locally without token (live test skips) and would execute the open: citations against GitHub when GH_TOKEN is present in that dedicated step.

The reviewer concern about the generic Python CI path is accurate for that path alone; the PR's CI-enforced alternative is the dedicated Gate step above plus the static stateful-citation guard.

codex-automation and others added 2 commits August 23, 2026 11:53
Wire both GH_TOKEN and GITHUB_TOKEN in the dedicated Gate step so the
manifest open-issue pytest cannot skip when only GITHUB_TOKEN is consulted.

Co-authored-by: Cursor <cursoragent@cursor.com>
…EN export

The GITHUB_TOKEN export on the live sync-manifest pytest guard changed the
normalized main workflow hash; refresh pair.19 so Health 74 Template Drift
passes without widening consumer divergence.

Co-authored-by: Cursor <cursoragent@cursor.com>
@stranske
stranske enabled auto-merge (squash) August 23, 2026 17:26
@stranske stranske added the agent:retry Add to trigger agent retry after rate limit or pause label Aug 23, 2026
@stranske-keepalive stranske-keepalive Bot removed the agent:retry Add to trigger agent retry after rate limit or pause label Aug 23, 2026
@stranske

Copy link
Copy Markdown
Owner Author

Approval decision brief

  1. Requested action: approve the agent-high-privilege environment for Gate run 32657501095 on this exact PR head.
  2. Observed trigger: Gate had been disabled; it is now restored to the Actions catalog, but this pull-request run ended action_required at zero seconds before any job could publish the required summary check.
  3. Affected surface: .github/workflows/pr-00-gate.yml plus sync-manifest, drift-validation, and test files. The Gate workflow can mint an app token and its summary job has contents, pull-requests, and statuses write permissions; it can therefore affect PR state and downstream workflow behavior, but it does not deploy an application.
  4. Automation checked: current head, all active non-outdated review threads (zero), check rollup, branch rules, workflow registration, and current changed paths. No bounded source, label, retry, or rebase action can execute a job behind this environment gate.
  5. Trade-off: approving permits the reviewed workflow change to run under its declared write-capable Gate surface and can unblock merge; deferring preserves the security boundary but keeps this PR and its required summary status blocked.
  6. Next automatic action: after approval, automation will re-read the unchanged head, required summary/checks, and review threads; it will merge only after the seven-minute window and all gates pass. On defer, it leaves the PR safely blocked and continues other fleet work.

@stranske
stranske deployed to agent-high-privilege August 23, 2026 18:50 — with GitHub Actions Active
@stranske
stranske merged commit 08b1c35 into main Aug 23, 2026
90 checks passed
@stranske
stranske deleted the codex/issue-3183-sync-rationale-self-checking branch August 23, 2026 18:54
@stranske stranske added the verify:compare Compare multiple LLM evaluations label Aug 23, 2026
@stranske
stranske deployed to agent-high-privilege August 23, 2026 19:22 — with GitHub Actions Active
@github-actions

Copy link
Copy Markdown
Contributor

Provider Comparison Report

Provider Summary

Provider Model Verdict Confidence Summary
openai gpt-5.6-terra PASS 88% The changes address the stale sync-surface assertions comprehensively: obsolete manifest issue guidance is replaced, WORKFLOWS_ONLY exclusions are corrected and covered by a consistency test, LangS...
anthropic claude-sonnet-5 PASS 68% The PR's file-level changes align well with the four tasks from issue #3183: sync-manifest.yml was edited to remove stale issue citations, validate_template_completeness.py was trimmed to remove de...
📋 Full Provider Details (click to expand)

openai

  • Model: gpt-5.6-terra
  • Verdict: PASS
  • Confidence: 88%
  • Scores:
    • Correctness: 9.0/10
    • Completeness: 9.0/10
    • Quality: 9.0/10
    • Testing: 9.0/10
    • Risks: 9.0/10
  • Summary: The changes address the stale sync-surface assertions comprehensively: obsolete manifest issue guidance is replaced, WORKFLOWS_ONLY exclusions are corrected and covered by a consistency test, LangSmith and label cleanup now consume the shared registered-repository reader, and drift allowlist metadata is split into distinct divergence/review/fingerprint fields. New focused tests cover live manifest issue references, workflow-list consistency, single-source fleet registration, and required divergence explanations. The drift checker is updated for the metadata schema without changing the fingerprint comparison role. The diff does not introduce an approval, review, label-handoff, or queue mechanism. Overall the implementation is focused, maintainable, and satisfies the functional acceptance criteria.

anthropic

  • Model: claude-sonnet-5
  • Verdict: PASS
  • Confidence: 68%
  • Scores:
    • Correctness: 8.0/10
    • Completeness: 8.0/10
    • Quality: 8.0/10
    • Testing: 7.0/10
    • Risks: 8.0/10
  • Summary: The PR's file-level changes align well with the four tasks from issue fix(sync): make the sync surface's stale rationales and hand-maintained name lists self-checking #3183: sync-manifest.yml was edited to remove stale issue citations, validate_template_completeness.py was trimmed to remove dead/contradictory WORKFLOWS_ONLY entries, langsmith_fleet.py and cleanup_labels.py were refactored to consume the shared registry via extract_repos, and template-drift-allowlist.txt plus check_template_drift.py were updated to split rationale metadata into three fields. Four new/extended test files were added covering the acceptance-criteria test node-ids (test_sync_manifest_docs.py, test_fleet_list_single_source.py, test_template_drift_allowlist.py, and an addition to test_validate_template_completeness.py). All three post-merge CI workflows (pr-00-gate, pr-11-ci-smoke, selftest-ci) report success, which is consistent with the pytest, ruff, and drift-check acceptance gates passing. The main residual concern is that the PR body's task/acceptance checklists remain unchecked, a cosmetic/process issue rather than a functional one given passing CI and matching diff scope. Overall the implementation appears correct and complete based on available evidence.
  • Concerns:
    • PR body checklist items remain unchecked ([ ]) despite the PR being merged and CI passing — this is a documentation/process gap that leaves ambiguity about whether every acceptance criterion was formally confirmed by the author, though the file diff (sync-manifest.yml, validate_template_completeness.py, langsmith_fleet.py, cleanup_labels.py, template-drift-allowlist.txt, check_template_drift.py) matches the scope of all four listed tasks.
    • Without the full diff content (only summary provided), exact correctness of the stale Gate at main HEAD has expanded detect-job outputs that fail on fresh consumer repos #2158 reference replacement, the divergence/divergence_reviewed/fingerprint_refreshed field split, and the WORKFLOWS_ONLY cleanup can't be independently verified beyond file-level change size, though the size and location of changes are consistent with the described work.
    • New test files (test_fleet_list_single_source.py, test_sync_manifest_docs.py, test_template_drift_allowlist.py) were added and CI (pytest suites in pr-00-gate.yml and selftest-ci.yml) reports success, which supports that the four required test node-ids pass, but the PR description's required 'quoted deliberate break and revert' pytest output for each test could not be confirmed from the diff summary alone.

Agreement

  • Verdict: PASS (all providers)
  • Correctness: scores within 1 point (avg 8.5/10, range 8.0-9.0)
  • Completeness: scores within 1 point (avg 8.5/10, range 8.0-9.0)
  • Quality: scores within 1 point (avg 8.5/10, range 8.0-9.0)
  • Risks: scores within 1 point (avg 8.5/10, range 8.0-9.0)

Disagreement

Dimension openai anthropic
Testing 9.0/10 7.0/10

Unique Insights

  • openai: The changes address the stale sync-surface assertions comprehensively: obsolete manifest issue guidance is replaced, WORKFLOWS_ONLY exclusions are corrected and covered by a consistency test, LangSmith and label cleanup now consume the shared registered-repository reader, and drift allowlist meta...
  • anthropic: PR body checklist items remain unchecked ([ ]) despite the PR being merged and CI passing — this is a documentation/process gap that leaves ambiguity about whether every acceptance criterion was formally confirmed by the author, though the file diff (sync-manifest.yml, validate_template_completeness.py, langsmith_fleet.py, cleanup_labels.py, template-drift-allowlist.txt, check_template_drift.py) matches the scope of all four listed tasks.; Without the full diff content (only summary provided), exact correctness of the stale Gate at main HEAD has expanded detect-job outputs that fail on fresh consumer repos #2158 reference replacement, the divergence/divergence_reviewed/fingerprint_refreshed field split, and the WORKFLOWS_ONLY cleanup can't be independently verified beyond file-level change size, though the size and location of changes are consistent with the described work.; New test files (test_fleet_list_single_source.py, test_sync_manifest_docs.py, test_template_drift_allowlist.py) were added and CI (pytest suites in pr-00-gate.yml and selftest-ci.yml) reports success, which supports that the four required test node-ids pass, but the PR description's required 'quoted deliberate break and revert' pytest output for each test could not be confirmed from the diff summary alone.

🔍 LangSmith Traces

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent:codex Agent-created issues from Codex agents:keepalive Use to initiate keepalive functionality with agents autofix:patch autofix Opt-in automated formatting & lint remediation verify:compare Compare multiple LLM evaluations

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(sync): make the sync surface's stale rationales and hand-maintained name lists self-checking

2 participants