Skip to content

Agents: pin and verify shared workflow drift - #4749

Merged
justin808 merged 7 commits into
mainfrom
codex/23-wire-pinned-drift-check
Jul 23, 2026
Merged

Agents: pin and verify shared workflow drift#4749
justin808 merged 7 commits into
mainfrom
codex/23-wire-pinned-drift-check

Conversation

@justin808

@justin808 justin808 commented Jul 18, 2026

Copy link
Copy Markdown
Member

Why

React on Rails needs a reproducible, fail-closed boundary between its reviewed consumer overlays and the shared shakacode/agent-workflows pack. This completes the consumer implementation for shakacode/agent-workflows#23 after the shared reconciliation in #182 merged.

What changed

  • Pin the shared pack and required CI to immutable merged Change hide! to the implementation to support rails 3.2 #182 commit 1958648b70a450aa67c15b833428485d17021045.
  • Govern exactly 42 mapped files with 4 reviewed source-only exclusions and zero unexpected files. The exact result is 26 byte-identical files and 16 documented overlays.
  • Keep the Instructions of upgrading v2 #198 pr-ci-readiness script and test, byte-exact to merged commit 8f6ab757486b8d579ff13ece32144da0f6f6d0f6, as two explicit behavior-correct overlays. The Change hide! to the implementation to support rails 3.2 #182 versions incorrectly report READY when a distinct required context is cancelled; the overlays preserve fail-closed NOT_READY behavior.
  • Enforce manifest completeness, source/consumer hashes, bytes, and executable modes. README-only source changes are not mapped.
  • Sanitize every completeness diagnostic before rendering: invalid or undefined bytes are replaced, and Unicode Cc/Cf/Zl/Zp characters are escaped, including bidi controls and line/paragraph separators. Regressions prove fake diagnostic-line injection cannot succeed.
  • Run consumer completeness before the immutable source pack's drift checker in ci-required.

The requested 28-identical/14-overlay snapshot is not behavior-correct at the #182 pin: keeping those counts would restore the verified required-cancellation false-READY regression. The reviewed result is therefore 26 identical / 16 overlays while preserving the requested 42 mapped / 4 exclusions / 0 unexpected files.

Trust boundary

A PR-owned pull_request checker is not self-verifying. Protected review/rules plus independent replay against the immutable source pin are the trust boundary. pull_request_target would worsen the model if privileged context executed checked-out PR code, so it is not introduced absent explicit repository policy.

Exact-head verification

Candidate head: 04c1b8149e4bf6f7ccb8edd41f8e478d78bdfcc6
Candidate merge base: 613c6c2a251a782328b26d68e7f23daa9b677497
Live main assessed at merge readiness: 11dae9895b27640065f0de52ca566c08e104430f

  • .agents/bin/validate --changed --fast — pass; 3,429 gem examples, 0 failures, 5 expected pending; OSS/Pro lint, builds, RBS, and TypeScript checks green.
  • Hostile manifest diagnostics — 11 runs / 56 assertions.
  • Completeness/drift/mode proof — 42 mapped, 4 excluded, 26 identical, 16 overlays, 0 unexpected.
  • Pinned pack drift checker — 73 runs / 1,161 assertions.
  • Consumer readiness overlay — 66 runs / 234 assertions; direct distinct-required-cancel smoke returned NOT_READY with pending security.
  • Seam doctor — 260 runs / 2,258 assertions plus live seam pass.
  • Security preflight — 102 runs / 847 assertions; exact PR preflight also returned SECURITY_PREFLIGHT_OK with no untrusted/hidden participants or suspicious text.
  • Closeout replay — 43 runs / 188 assertions.
  • actionlint, YAML safe-load, hosted-CI safety, full Prettier, and git diff --check — pass. yamllint was unavailable locally and is not claimed green.
  • Fresh independent adversarial QA and structured autoreview — gpt-5.6-sol/xhigh, distinct exact-bound instances, zero P0/P1/P2/Must-Fix or unknown consequential findings.
  • closeout-evidence-replay --expected-head-sha 04c1b8149e4bf6f7ccb8edd41f8e478d78bdfcc6 — QA SATISFIED; priority findings NOT_APPLICABLE.
  • Current-head GitHub checks — 47 terminal: 45 passing, 0 failing, 0 pending, and 2 selector-explained skips. The only failed job was an unchanged external archive URL returning HTTP 503; bounded recovery later returned HTTP 200 and the exact failed-job rerun passed: https://github.com/shakacode/react_on_rails/actions/runs/29676748436/job/89125641804.
  • Live-base audit — the nine-commit main advance is independent-behind-base: 0 shared changed paths, a clean synthetic merge tree (d2c4cf5bbb1381f358db895f93d67f11c5e3a4f0), exact side-delta pathsets, and no cross-surface references or new governed source-pack paths. No branch refresh is required.

Review and follow-up dispositions

  • Changelog classification: not_user_visible.
  • Labels: ready-for-hosted-ci after the exact final push; optimized hosted selection is appropriate. Force-full is not requested without explicit maintainer intent.
  • Benchmarks: not applicable; workflow/tooling-only change.
  • Coordinated full-history review closeout: 18/18 threads resolved at this exact head. Five confirmed pack-identical findings (3 P1, 2 P2) are accepted deferrals to the single bundled shakacode/agent-workflows#202; no divergent consumer overlays were added.
  • Required GitHub Actions post-merge exercise: shakacode/react_on_rails#4750.

GitHub Actions semantic-change audit

  • Secret references: none before or after.
  • permissions:: unchanged (actions, checks, contents, and issues remain read-only).
  • on: triggers: unchanged (pull_request, merge_group, workflow_dispatch); no pull_request_target.
  • Third-party actions: one additional actions/checkout use, pinned to immutable action SHA 34e114876b0b11c390a56381ad16ebd13914f8d5, with persist-credentials: false, to fetch the immutable pack commit.
  • New gate: consumer completeness followed by source-pack drift checking. Stale-base control is checklist+replay: the branch was rebased onto current origin/main, shared-path/merge-tree checks were refreshed before push, and final validation/QA were rerun at the rebased exact head.
  • Post-merge exercise is tracked in Follow-up: Exercise GitHub Actions changes from PR #4749 #4750 with expected evidence and cleanup instructions.

Codex Decision Log

Merge confidence

  • Release mode / phase: development / beta for target branch main. The recently closed 17.0.0 release tracker records Released and explicitly returns the repository to development mode: Release gate: react_on_rails 17.0.0 #3823 (comment).
  • Review coverage at the exact head: Claude review completed successfully and CodeRabbit produced a current-head approval. Greptile is configured but has only a stale pre-head artifact, so it is recorded as not working for this round; the required two-working-system floor is satisfied. Cursor Bugbot and Codex review are not configured current-head gates for this PR.
  • Review inventory: 18/18 threads resolved, zero unresolved threads, zero current-viewer pending review drafts, and no current-head blocker remains.
  • Merge authority: auto_merge_when_gates_pass.
  • Validated: full changed-fast and focused local suites listed above; exact-head QA replay; strict security preflight; stage-dependency replay; live-base synthetic merge audit; all current-head GitHub checks terminal with the two skips explained by selectors.
  • Evidence: current-head check run links above; QA and priority markers below; workflow audit and coordinated review dispositions linked from the PR timeline.
  • UNKNOWN: none affecting merge safety.
  • Residual risk: five pack-identical process findings remain accepted deferrals in shakacode/agent-workflows#202; Greptile coverage is degraded for this round, with Claude and CodeRabbit providing the required live coverage.

@coderabbitai

coderabbitai Bot commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

The PR adds pinned workflow drift manifests and CI checks, refactors seam initialization and validation, introduces dispatch/replay and readiness gates, adds audit utilities, and updates agent workflow contracts, documentation, and tests.

Changes

Agent workflow governance

Layer / File(s) Summary
Pinned drift validation
.agents/agent-workflow-drift.yml, .agents/bin/agent-workflow-drift-manifest-test.rb, .github/workflows/*
Adds source-revision mappings, inventory validation, sanitized diagnostics, and CI execution of manifest and drift checks.
Seam initialization
.agents/bin/agent-workflow-seam-doctor*, .agents/docs/seam-design.md, .agents/docs/adoption.md
Adds --init, generated wrappers, policy/trust configuration, pointer validation, placeholder scanning, and expanded CLI tests.
Dispatch and replay gates
.agents/skills/pr-batch/bin/dispatcher-capability-preflight*
Adds candidate authorization, deterministic assignments, persisted decision history, replay, replacement fencing, and structured invalid-input handling.
Readiness and security gates
.agents/skills/pr-batch/bin/pr-ci-readiness*, .agents/skills/pr-batch/bin/pr-security-preflight*, .agents/skills/pr-batch/lib/git_probe_env.rb
Adds required-check reconciliation, hosted-run and review-draft gating, stricter repository verification, packaged metadata-bot handling, and bounded Git probing.
Audit tooling
.agents/skills/post-merge-audit/bin/*
Adds QA/priority evidence replay and selected-check completion timing analysis with tests.
Prompt and workflow contracts
.agents/skills/plan-pr-batch/*, .agents/workflows/*, .agents/docs/*
Expands prompt budgets, evidence requirements, coordination rules, installation guidance, review carryover, and post-merge audit procedures.

Estimated code review effort: 5 (Critical) | ~120 minutes

Possibly related issues

Possibly related PRs

Suggested labels: ready-for-hosted-ci, force-full-hosted-ci

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 1.72% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: pinning the shared workflow pack and verifying drift.
✨ 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/23-wire-pinned-drift-check

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@justin808

Copy link
Copy Markdown
Member Author

+ci-status

@github-actions

Copy link
Copy Markdown
Contributor

CI Status

Head SHA: 85d543959695
Changed files: 42
Docs-only heuristic (matches ci-changes-detector metadata paths): no
ready-for-hosted-ci label: absent
force-full-hosted-ci label: absent
Current hosted-CI waiver: not present for this SHA
Automatic release-target hosted mode: inactive
Observed exact-head coverage: modes[missing=9]; successful=0, pending=0, failed=0, missing=9

Only the required gate is active unless hosted CI is requested.

@justin808

Copy link
Copy Markdown
Member Author

GitHub Actions semantic-change audit for final head 85d5439596957f5f00fb0e070422fcae50dae86f:

  • Changed workflow: .github/workflows/ci-required.yml.
  • Event remains pull_request/merge_group/manual dispatch; pull_request_target is absent.
  • The PR-owned checker is not considered self-verifying. Repository review rules and branch protection remain the trust boundary.
  • Local evidence passed: actionlint, YAML safe-load, hosted-CI safety tests, 49/49 CI command tests, 7/7 hosted gate tests, stage-dependency-gate 44 tests/1,392 assertions, and malformed/missing/unreadable trusted-plan negative smokes.
  • Required post-merge exercise and cleanup are tracked in Follow-up: Exercise GitHub Actions changes from PR #4749 #4750: Follow-up: Exercise GitHub Actions changes from PR #4749 #4750
  • Changelog classification: not_user_visible.

@justin808

Copy link
Copy Markdown
Member Author

+ci-run-hosted

@github-actions

github-actions Bot commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Hosted CI Requested

Triggered 9 workflow(s) for 85d543959695.
Skipped 0 workflow(s) with equivalent exact-head coverage.
Mode: optimized hosted CI (path-selected by script/ci-changes-detector).
Added ready-for-hosted-ci, so future commits will keep running optimized hosted CI until +ci-stop-hosted is used.

View progress in the Actions tab.

@github-actions github-actions Bot added the ready-for-hosted-ci Run optimized hosted GitHub CI for this PR label Jul 18, 2026
@greptile-apps

greptile-apps Bot commented Jul 18, 2026

Copy link
Copy Markdown

Greptile Summary

This PR pins and verifies the shared agent-workflows pack. The main changes are:

  • Adds an immutable shared-pack revision and a complete drift manifest.
  • Adds required-CI checks for inventory, bytes, hashes, and file modes.
  • Refreshes vendored workflow helpers and their tests.
  • Adds stage-dependency, CI-readiness, and diagnostic-sanitization checks.

Confidence Score: 5/5

This looks safe to merge.

  • No blocking issues found in the changed code.
  • Invalid, missing, stale, and uncertain evidence follows conservative failure paths.
  • The manifest revision and required workflow checkout use the same immutable commit.

Important Files Changed

Filename Overview
.github/workflows/ci-required.yml Adds the pinned shared-pack checkout and required drift validation commands.
.agents/agent-workflow-drift.yml Defines the immutable source revision and reviewed identical, overlay, and exclusion mappings.
.agents/bin/agent-workflow-drift-manifest-test.rb Adds fail-closed manifest completeness, revision, inventory, and diagnostic-sanitization checks.
.agents/skills/pr-batch/bin/stage-dependency-gate Adds trusted-plan validation and capability gating for dependent workflow lanes.
.agents/skills/pr-batch/bin/pr-ci-readiness Adds required-check cancellation reconciliation, requested-run validation, and review-draft checks.
.agents/bin/agent-workflow-seam-doctor Expands seam initialization, command forwarding validation, and policy checks.

Reviews (1): Last reviewed commit: "Refresh the pinned workflow pack after r..." | Re-trigger Greptile

Comment thread .agents/bin/agent-workflow-drift-manifest-test.rb
@claude

claude Bot commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Review Summary

Reviewed the diff (42 files, ~18k/-1.8k lines, all internal .agents/** tooling, CI config, and docs — no product/gem/npm-package code touched).

What it does: Pins the vendored copies of shared shakacode/agent-workflows tooling to an immutable upstream commit SHA and wires a two-layer required-CI gate: (1) a manifest-completeness checker verifying every upstream-governed file is either mapped or explicitly excluded with a reviewed reason, and (2) byte/hash/mode drift comparison against the pinned commit. Also hardens git_probe_env.rb's subprocess handling (real process-group kill/wait instead of Timeout.timeout), extends pr-security-preflight's trust model for metadata-only bot comments, and rewrites agent-workflow-seam-doctor and the CI-readiness/stage-dependency-gate scripts.

Assessment:

  • ci-required.yml wiring is sound — drift-check failures propagate via bash's default -e, no continue-on-error or skip path found, and this is pinned down by new assertions in hosted-ci-safety.test.cjs.
  • The diagnostic sanitizer (\p{Cc}\p{Cf}\p{Zl}\p{Zp} escaping, invalid-byte replacement) matches its stated scope and has dedicated regression tests for control bytes, bidi overrides, line/paragraph separators, and malformed UTF-8.
  • The github-actions trusted-metadata-bot addition is scoped correctly — metadata-only comments are still scanned for suspicious content as warnings, not silently escalated to full trust.
  • pr-ci-readiness/stage-dependency-gate fail-closed patterns hold up; the one known gap (unknown check buckets treated as ready) is already disclosed in the PR description and tracked upstream (Follow-up: Fail closed on six reconciled workflow-pack contracts agent-workflows#202), so not re-flagged here.
  • Test coverage is unusually thorough (hundreds of test methods across the touched scripts).

One finding posted inline: .agents/bin/agent-workflow-drift-manifest-test.rb (git_capture, ~line 174) calls Open3.capture3 directly instead of routing through the new PrBatchGitProbeEnv.capture3 timeout-hardened wrapper this same PR introduces elsewhere — so a hung git subprocess here wouldn't be caught by the new process-group-kill logic. Low severity/non-blocking (pinned/shallow checkout limits exposure), but worth a one-line fix for consistency.

No P0/P1 issues found.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 12

🧹 Nitpick comments (1)
.agents/docs/installation-and-upgrades.md (1)

185-185: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Consider using a hyphen for the compound adjective.

Grammatically, "Full-Stack" serves as a compound adjective modifying the subsequent noun. Consider adding a hyphen for correctness.

📝 Proposed fixes

For line 185:

-## Full Stack Contributor Setup
+## Full-Stack Contributor Setup

For line 259:

-### Full Stack Doctor
+### Full-Stack Doctor

Also applies to: 259-259

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.agents/docs/installation-and-upgrades.md at line 185, Update the section
headings “Full Stack Contributor Setup” at both occurrences to use the
hyphenated compound adjective “Full-Stack Contributor Setup.”

Source: Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.agents/bin/agent-workflow-seam-doctor:
- Around line 292-300: Update validate_trust_mapping! to validate trusted_bots
and trusted_metadata_bots values before calling normalized_trust_bot_login:
accept either a legacy string login or an array containing only nonempty
strings, and reject hashes, numbers, mixed arrays, and empty entries. Preserve
the existing normalization and overlap detection for valid inputs.
- Around line 1617-1619: Update the wrapper validation checks around the script
invariant logic and script_cd_to_root? so they inspect uncommented executable
lines rather than raw content. Ensure commented occurrences of set -euo
pipefail, repository-root resolution, or cd commands cannot satisfy the checks,
while preserving validation of the actual executable wrapper behavior.
- Around line 1043-1049: Update init_npm_command_info so executable paths whose
basename is npm, such as /usr/bin/npm, are accepted alongside the literal npm
command. Apply this check to the shifted command token while preserving
rejection of other executables and the existing argument parsing behavior.
- Around line 379-385: Strengthen env_split_string_operand_boundary handling in
complete_argument_forwarding_after? so nested shell -c payloads reserve a safe
$0 placeholder in addition to requiring outer "$@" forwarding; reject or parse
commands that do not satisfy both conditions. Update .agents/docs/adoption.md
lines 58-65 and .agents/docs/seam-design.md lines 147-153 to document both
required protections, while the executable change belongs in
.agents/bin/agent-workflow-seam-doctor lines 379-385.

In @.agents/docs/pr-batch-skills.md:
- Around line 209-211: Update the readiness invocation guidance in the PR batch
workflow to use the previously resolved PR_BATCH_SKILL_DIR when locating
pr-ci-readiness, rather than the hard-coded skills/pr-batch path. Preserve the
--requested-hosted-run argument and ensure the pinned/shared helper selected by
the resolution chain is the one invoked.

In @.agents/docs/seam-design.md:
- Around line 198-208: The Validation section must include the second pinned
drift check alongside agent-workflow-drift-manifest-test.rb. Add the actual
<pinned-source>/bin/check-agent-workflow-drift command, using the existing
pinned checkout reference, while preserving the current completeness test and
other validation steps.

In @.agents/skills/plan-pr-batch/scripts/check_goal_prompt_size.rb:
- Around line 854-865: Update the substitution checks in the mixed fallback flow
around mixed_route_fallback to compare each result with its immediate
pre-substitution value: retain the value returned by with_items before applying
WORKER_MODEL_EFFORT_ROUTES_PROMPT_LINE, then compare the route substitution
result against it; likewise compare the dispatch-policy substitution result
against the route-substituted value. Do not compare either result with the
one-item fallback_prompt.

In @.agents/skills/post-merge-audit/bin/closeout-evidence-replay:
- Around line 186-205: Update the not_applicable handling in the replay logic so
status: not_applicable remains a NOT_APPLICABLE disposition even when findings
are present, preventing valid findings from satisfying
--require-priority-dispositions. Add a required-mode regression test covering
not_applicable with a valid finding and verify it cannot produce SATISFIED.

In @.agents/skills/pr-batch/bin/dispatcher-capability-preflight:
- Around line 564-573: Update the selected_choice handling and corresponding
branches around persisted_decision_history and resolved_operator_decision so a
new dispatch-decision supersedes any prior refresh resolution. Ensure
history_resolution emits action dispatch-decision with the new approval and does
not classify the assignment as top-level fallback. Add coverage for
refresh-then-dispatch replay without operator_decision, including the related
branches near the other referenced locations.

In @.agents/skills/pr-batch/bin/pr-ci-readiness:
- Around line 295-335: Update assess to capture the PR head SHA before fetching
checks, pass and reuse that SHA for apply_requested_hosted_runs and
apply_viewer_review_inventory filtering, then re-read the head after all
evidence collection. If the head changed, set the verdict to UNKNOWN; always
include the observed head OID in the result so downstream merge logic binds
readiness to one stable head.

In @.agents/skills/pr-batch/bin/pr-security-preflight:
- Around line 163-174: Update repo_option_info to parse the gh repo view payload
with repo_info_from_payload before returning from the explicit GH_HOST path.
Require both the resolved nameWithOwner and canonical parsed host to match repo
and expected_github_host, aborting on either mismatch; add coverage for a
same-slug response from a different host.

In @.agents/skills/pr-batch/lib/git_probe_env.rb:
- Around line 66-77: Update timeout cleanup in the process-wait flow around
wait_for_process and terminate_process_group so reaping the child never blocks
past timeout_seconds. Use non-blocking waitpid behavior or a bounded reap loop,
including the ensure cleanup path, while preserving termination of the process
group.

---

Nitpick comments:
In @.agents/docs/installation-and-upgrades.md:
- Line 185: Update the section headings “Full Stack Contributor Setup” at both
occurrences to use the hyphenated compound adjective “Full-Stack Contributor
Setup.”
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 01c59553-0cde-4585-8887-e89a9541f210

📥 Commits

Reviewing files that changed from the base of the PR and between cdadfae and 85d5439.

📒 Files selected for processing (42)
  • .agents/.rubocop.yml
  • .agents/agent-workflow-drift.yml
  • .agents/bin/README.md
  • .agents/bin/agent-workflow-drift-manifest-test.rb
  • .agents/bin/agent-workflow-seam-doctor
  • .agents/bin/agent-workflow-seam-doctor-test.rb
  • .agents/bin/agent_workflow_drift_manifest_test_test.rb
  • .agents/docs/adoption.md
  • .agents/docs/coordination-backend.md
  • .agents/docs/installation-and-upgrades.md
  • .agents/docs/pr-batch-skills.md
  • .agents/docs/seam-design.md
  • .agents/docs/security-posture.md
  • .agents/skills/address-review/bin/fetch-pr-review-data-test.rb
  • .agents/skills/plan-pr-batch/scripts/check_goal_prompt_size.rb
  • .agents/skills/post-merge-audit/bin/closeout-evidence-replay
  • .agents/skills/post-merge-audit/bin/closeout-evidence-replay-test.rb
  • .agents/skills/post-merge-audit/bin/pr-check-completion-timing
  • .agents/skills/post-merge-audit/bin/pr-check-completion-timing-test.rb
  • .agents/skills/pr-batch/bin/dispatcher-capability-preflight
  • .agents/skills/pr-batch/bin/dispatcher-capability-preflight-test.rb
  • .agents/skills/pr-batch/bin/pr-ci-readiness
  • .agents/skills/pr-batch/bin/pr-ci-readiness-test.rb
  • .agents/skills/pr-batch/bin/pr-security-preflight
  • .agents/skills/pr-batch/bin/pr-security-preflight-test.rb
  • .agents/skills/pr-batch/bin/stage-dependency-gate
  • .agents/skills/pr-batch/bin/stage-dependency-gate-test.rb
  • .agents/skills/pr-batch/lib/git_probe_env.rb
  • .agents/skills/pr-batch/trusted-github-actors.yml
  • .agents/skills/update-changelog/bin/changelog-merged-prs
  • .agents/skills/update-changelog/bin/changelog-merged-prs-test.rb
  • .agents/workflows/address-review.md
  • .agents/workflows/adversarial-pr-review.md
  • .agents/workflows/continuous-evaluation-loop.md
  • .agents/workflows/post-merge-audit.md
  • .agents/workflows/pr-processing.md
  • .agents/workflows/tdd.md
  • .github/workflows/ci-required.yml
  • .github/workflows/hosted-ci-safety.test.cjs
  • .prettierignore
  • AGENTS.md
  • internal/contributor-info/agent-workflow-adoption.md

Comment thread .agents/bin/agent-workflow-seam-doctor
Comment thread .agents/bin/agent-workflow-seam-doctor
Comment thread .agents/bin/agent-workflow-seam-doctor
Comment thread .agents/bin/agent-workflow-seam-doctor
Comment thread .agents/docs/pr-batch-skills.md
Comment thread .agents/skills/post-merge-audit/bin/closeout-evidence-replay
Comment thread .agents/skills/pr-batch/bin/dispatcher-capability-preflight
Comment thread .agents/skills/pr-batch/bin/pr-ci-readiness
Comment thread .agents/skills/pr-batch/bin/pr-security-preflight
Comment thread .agents/skills/pr-batch/lib/git_probe_env.rb
@justin808
justin808 force-pushed the codex/23-wire-pinned-drift-check branch from 85d5439 to ccc90ee Compare July 18, 2026 22:12

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.agents/docs/installation-and-upgrades.md:
- Around line 516-519: Clarify the installation behavior in the skill Markdown
section: plugin-companion mode must not install the target’s skills directory,
because native plugins already provide skills and the installer adds only
companion assets. Align this statement with the plugin installation descriptions
in the earlier documented sections and preserve the host-neutral layout guidance
for modes that do install skills.

In @.agents/skills/pr-batch/bin/dispatcher-capability-preflight-test.rb:
- Around line 715-741: Update
test_replay_ignores_candidate_index_but_rebuilds_it_from_current_discovery_order
to assert that the replayed dispatch rebuilds stable-instance’s candidate index
to 1 after the new candidate is inserted, rather than comparing the entire
dispatch object to the first result. Keep the existing assertions for
launch-pending status and active assignments.

In @.agents/workflows/post-merge-audit.md:
- Around line 70-71: Resolve the comma parsing ambiguity across the marker
grammar, replay helper, mirrored skill, and regression fixtures. Prefer
reserving commas by rejecting them in record refs, then ensure OUTSTANDING
findings parsing and blocker identity/deduplication follow that rule
consistently; update the affected validation and fixture expectations without
changing unrelated ref normalization behavior.

In @.agents/workflows/tdd.md:
- Around line 12-14: Update the testing guidance in .agents/workflows/tdd.md so
narrow RED loops begin with the targeted commands defined in AGENTS.md: the
owning bundle for RSpec and pnpm for JavaScript tests. Revise the guidance
around the broad test command and the instruction at line 29 to reserve
.agents/bin/test for broader validation, unless it explicitly supports a
narrowing selector.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 8629d0eb-6b40-4e66-99d4-a265d1b75f56

📥 Commits

Reviewing files that changed from the base of the PR and between 85d5439 and ccc90ee.

📒 Files selected for processing (42)
  • .agents/.rubocop.yml
  • .agents/agent-workflow-drift.yml
  • .agents/bin/README.md
  • .agents/bin/agent-workflow-drift-manifest-test.rb
  • .agents/bin/agent-workflow-seam-doctor
  • .agents/bin/agent-workflow-seam-doctor-test.rb
  • .agents/bin/agent_workflow_drift_manifest_test_test.rb
  • .agents/docs/adoption.md
  • .agents/docs/coordination-backend.md
  • .agents/docs/installation-and-upgrades.md
  • .agents/docs/pr-batch-skills.md
  • .agents/docs/seam-design.md
  • .agents/docs/security-posture.md
  • .agents/skills/address-review/bin/fetch-pr-review-data-test.rb
  • .agents/skills/plan-pr-batch/scripts/check_goal_prompt_size.rb
  • .agents/skills/post-merge-audit/bin/closeout-evidence-replay
  • .agents/skills/post-merge-audit/bin/closeout-evidence-replay-test.rb
  • .agents/skills/post-merge-audit/bin/pr-check-completion-timing
  • .agents/skills/post-merge-audit/bin/pr-check-completion-timing-test.rb
  • .agents/skills/pr-batch/bin/dispatcher-capability-preflight
  • .agents/skills/pr-batch/bin/dispatcher-capability-preflight-test.rb
  • .agents/skills/pr-batch/bin/pr-ci-readiness
  • .agents/skills/pr-batch/bin/pr-ci-readiness-test.rb
  • .agents/skills/pr-batch/bin/pr-security-preflight
  • .agents/skills/pr-batch/bin/pr-security-preflight-test.rb
  • .agents/skills/pr-batch/bin/stage-dependency-gate
  • .agents/skills/pr-batch/bin/stage-dependency-gate-test.rb
  • .agents/skills/pr-batch/lib/git_probe_env.rb
  • .agents/skills/pr-batch/trusted-github-actors.yml
  • .agents/skills/update-changelog/bin/changelog-merged-prs
  • .agents/skills/update-changelog/bin/changelog-merged-prs-test.rb
  • .agents/workflows/address-review.md
  • .agents/workflows/adversarial-pr-review.md
  • .agents/workflows/continuous-evaluation-loop.md
  • .agents/workflows/post-merge-audit.md
  • .agents/workflows/pr-processing.md
  • .agents/workflows/tdd.md
  • .github/workflows/ci-required.yml
  • .github/workflows/hosted-ci-safety.test.cjs
  • .prettierignore
  • AGENTS.md
  • internal/contributor-info/agent-workflow-adoption.md
🚧 Files skipped from review as they are similar to previous changes (33)
  • .prettierignore
  • .agents/agent-workflow-drift.yml
  • .github/workflows/hosted-ci-safety.test.cjs
  • .agents/.rubocop.yml
  • .agents/skills/pr-batch/trusted-github-actors.yml
  • internal/contributor-info/agent-workflow-adoption.md
  • .agents/bin/README.md
  • .github/workflows/ci-required.yml
  • AGENTS.md
  • .agents/workflows/adversarial-pr-review.md
  • .agents/skills/address-review/bin/fetch-pr-review-data-test.rb
  • .agents/skills/post-merge-audit/bin/pr-check-completion-timing-test.rb
  • .agents/workflows/continuous-evaluation-loop.md
  • .agents/docs/coordination-backend.md
  • .agents/skills/pr-batch/lib/git_probe_env.rb
  • .agents/docs/security-posture.md
  • .agents/skills/pr-batch/bin/stage-dependency-gate
  • .agents/skills/post-merge-audit/bin/closeout-evidence-replay-test.rb
  • .agents/bin/agent-workflow-drift-manifest-test.rb
  • .agents/workflows/address-review.md
  • .agents/docs/pr-batch-skills.md
  • .agents/skills/post-merge-audit/bin/pr-check-completion-timing
  • .agents/skills/update-changelog/bin/changelog-merged-prs
  • .agents/skills/pr-batch/bin/pr-security-preflight
  • .agents/docs/adoption.md
  • .agents/skills/post-merge-audit/bin/closeout-evidence-replay
  • .agents/skills/plan-pr-batch/scripts/check_goal_prompt_size.rb
  • .agents/docs/seam-design.md
  • .agents/skills/pr-batch/bin/pr-security-preflight-test.rb
  • .agents/skills/pr-batch/bin/pr-ci-readiness-test.rb
  • .agents/bin/agent-workflow-seam-doctor
  • .agents/skills/pr-batch/bin/dispatcher-capability-preflight
  • .agents/skills/pr-batch/bin/pr-ci-readiness

Comment thread .agents/docs/installation-and-upgrades.md
Comment thread .agents/skills/pr-batch/bin/dispatcher-capability-preflight-test.rb
Comment thread .agents/workflows/post-merge-audit.md
Comment thread .agents/workflows/tdd.md
@justin808
justin808 force-pushed the codex/23-wire-pinned-drift-check branch from ccc90ee to 04c1b81 Compare July 19, 2026 06:37
@justin808

Copy link
Copy Markdown
Member Author

Workflow Change Audit:

  • Current head: 04c1b8149e4bf6f7ccb8edd41f8e478d78bdfcc6
  • Secret references: none before or after.
  • permissions:: unchanged; actions: read, checks: read, contents: read, and issues: read.
  • on: triggers: unchanged; pull_request, merge_group, and workflow_dispatch. No pull_request_target.
  • Third-party actions: adds one immutable actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 invocation for shakacode/agent-workflows at merged commit 1958648b70a450aa67c15b833428485d17021045; credentials are not persisted.
  • New gate behavior: run consumer-owned manifest completeness before the immutable source pack's byte/hash/mode drift checker.
  • Stale-base race control: checklist+replay. The branch was rebased onto current origin/main 613c6c2a251a782328b26d68e7f23daa9b677497; the final shared-path/merge-tree fence was clean; focused and full validation plus fresh independent QA were replayed at the exact rebased head.
  • Local safety evidence: actionlint pass, YAML safe-load pass, hosted-CI safety pass, exact-pin completeness/drift pass. yamllint was unavailable and is not claimed green.
  • Required post-merge exercise: Follow-up: Exercise GitHub Actions changes from PR #4749 #4750.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.agents/docs/pr-batch-skills.md:
- Around line 13-14: Update the restart guidance in the referenced batch-skills
documentation to avoid the mutable blob/main link: use the available vendored
relative agent-runner-restarts.md document, or pin the external URL to commit
8f6ab757486b8d579ff13ece32144da0f6f6d0f6. Keep the existing $pause guidance and
surrounding canonical batch instructions unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d42ae178-aaf4-4210-9117-5b4b63f27a6c

📥 Commits

Reviewing files that changed from the base of the PR and between ccc90ee and 04c1b81.

📒 Files selected for processing (38)
  • .agents/.rubocop.yml
  • .agents/agent-workflow-drift.yml
  • .agents/bin/README.md
  • .agents/bin/agent-workflow-drift-manifest-test.rb
  • .agents/bin/agent-workflow-seam-doctor
  • .agents/bin/agent-workflow-seam-doctor-test.rb
  • .agents/bin/agent_workflow_drift_manifest_test_test.rb
  • .agents/docs/adoption.md
  • .agents/docs/coordination-backend.md
  • .agents/docs/installation-and-upgrades.md
  • .agents/docs/pr-batch-skills.md
  • .agents/docs/seam-design.md
  • .agents/docs/security-posture.md
  • .agents/skills/address-review/bin/fetch-pr-review-data-test.rb
  • .agents/skills/plan-pr-batch/scripts/check_goal_prompt_size.rb
  • .agents/skills/post-merge-audit/bin/closeout-evidence-replay
  • .agents/skills/post-merge-audit/bin/closeout-evidence-replay-test.rb
  • .agents/skills/post-merge-audit/bin/pr-check-completion-timing
  • .agents/skills/post-merge-audit/bin/pr-check-completion-timing-test.rb
  • .agents/skills/pr-batch/bin/dispatcher-capability-preflight
  • .agents/skills/pr-batch/bin/dispatcher-capability-preflight-test.rb
  • .agents/skills/pr-batch/bin/pr-ci-readiness
  • .agents/skills/pr-batch/bin/pr-ci-readiness-test.rb
  • .agents/skills/pr-batch/bin/pr-security-preflight
  • .agents/skills/pr-batch/bin/pr-security-preflight-test.rb
  • .agents/skills/pr-batch/lib/git_probe_env.rb
  • .agents/skills/pr-batch/trusted-github-actors.yml
  • .agents/workflows/address-review.md
  • .agents/workflows/adversarial-pr-review.md
  • .agents/workflows/continuous-evaluation-loop.md
  • .agents/workflows/post-merge-audit.md
  • .agents/workflows/pr-processing.md
  • .agents/workflows/tdd.md
  • .github/workflows/ci-required.yml
  • .github/workflows/hosted-ci-safety.test.cjs
  • .prettierignore
  • AGENTS.md
  • internal/contributor-info/agent-workflow-adoption.md
🚧 Files skipped from review as they are similar to previous changes (29)
  • .agents/.rubocop.yml
  • .agents/bin/README.md
  • internal/contributor-info/agent-workflow-adoption.md
  • .agents/agent-workflow-drift.yml
  • .agents/skills/pr-batch/trusted-github-actors.yml
  • .agents/skills/address-review/bin/fetch-pr-review-data-test.rb
  • .github/workflows/ci-required.yml
  • .github/workflows/hosted-ci-safety.test.cjs
  • AGENTS.md
  • .agents/docs/security-posture.md
  • .agents/workflows/adversarial-pr-review.md
  • .agents/skills/pr-batch/bin/pr-security-preflight
  • .agents/docs/seam-design.md
  • .agents/skills/post-merge-audit/bin/pr-check-completion-timing
  • .agents/skills/post-merge-audit/bin/pr-check-completion-timing-test.rb
  • .agents/workflows/continuous-evaluation-loop.md
  • .agents/skills/pr-batch/lib/git_probe_env.rb
  • .agents/skills/plan-pr-batch/scripts/check_goal_prompt_size.rb
  • .agents/skills/post-merge-audit/bin/closeout-evidence-replay
  • .agents/bin/agent-workflow-drift-manifest-test.rb
  • .agents/docs/adoption.md
  • .agents/skills/pr-batch/bin/pr-ci-readiness
  • .agents/skills/post-merge-audit/bin/closeout-evidence-replay-test.rb
  • .agents/skills/pr-batch/bin/dispatcher-capability-preflight
  • .agents/workflows/address-review.md
  • .agents/skills/pr-batch/bin/pr-security-preflight-test.rb
  • .agents/skills/pr-batch/bin/pr-ci-readiness-test.rb
  • .agents/bin/agent-workflow-seam-doctor
  • .agents/workflows/pr-processing.md

Comment thread .agents/docs/pr-batch-skills.md
@justin808

Copy link
Copy Markdown
Member Author

Coordinated address-review decision record

Scan scope: full history via check all reviews at exact head 04c1b8149e4bf6f7ccb8edd41f8e478d78bdfcc6.

This is the durable non-cutoff record for the defer decisions posted in the original review threads before resolution:

The consumer keeps the immutable pack-aligned files intact; no consumer-only overlay was added. The absolute-path npm, post-SIGKILL reap, and mutable documentation-link suggestions were declined under the final-candidate attention contract, and the direct-Open3 comment was declined as stale at the current head.

Non-cutoff status only. The next review pass must use check all reviews until the thread resolutions and final cutoff-safe summary are recorded.

@justin808

Copy link
Copy Markdown
Member Author

Address-review summary

Scan scope: full history via check all reviews at exact head 04c1b8149e4bf6f7ccb8edd41f8e478d78bdfcc6.

Mattered

Each defer was recorded in its original thread and in the durable decision record before resolution. No consumer-only overlay was added.

Optional

  • Declined at the final-candidate debounce point: absolute-path npm recognition is an unused portability extension, not a reconciliation regression (thread).
  • Declined at the final-candidate debounce point: bounded post-SIGKILL reaping is theoretical hardening with no reproduced current overrun and does not justify a consumer overlay (thread).
  • Declined at the final-candidate debounce point: the mutable restart-doc link is a non-behavioral documentation nit and no vendored target exists in this consumer (thread).

Skipped

  • Declined as stale: the manifest checker now uses PrBatchGitProbeEnv.capture3 and handles its timeout error; no direct-Open3 fix remains (thread).
  • Nine older inline threads were already resolved before this pass and required no new action.
  • Three review-summary bodies were aggregate indexes of inline findings; every still-open indexed finding received an item-specific terminal outcome above.
  • Seven non-github-actions issue comments were walkthrough, command, audit, or review-status material with no additional unhandled code claim. Two github-actions-authored comments were excluded by actor metadata and their bodies were ignored under the review security boundary.

All 18 review threads are resolved. The worktree remains clean, no code was changed or pushed, and the PR head is unchanged.

Deferred-work tracking: shakacode/agent-workflows#202, broadened as the single bundled upstream tracker for the original readiness defect plus the five verified pack-contract defects.

Next default scan starts after this comment. Say check all reviews to rescan the full PR.

@justin808

Copy link
Copy Markdown
Member Author

+ci-status

@github-actions

Copy link
Copy Markdown
Contributor

CI Status

Head SHA: 04c1b8149e4b
Changed files: 38
Docs-only heuristic (matches ci-changes-detector metadata paths): no
ready-for-hosted-ci label: present
force-full-hosted-ci label: absent
Current hosted-CI waiver: not present for this SHA
Automatic release-target hosted mode: inactive
Observed exact-head coverage: modes[missing=9]; successful=0, pending=0, failed=0, missing=9

Optimized hosted CI is enabled for this PR.

@justin808

Copy link
Copy Markdown
Member Author

+ci-run-hosted

@github-actions

github-actions Bot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Hosted CI Requested

Triggered 9 workflow(s) for 04c1b8149e4b.
Skipped 0 workflow(s) with equivalent exact-head coverage.
Mode: optimized hosted CI (path-selected by script/ci-changes-detector).
Added ready-for-hosted-ci, so future commits will keep running optimized hosted CI until +ci-stop-hosted is used.

View progress in the Actions tab.

@justin808
justin808 added this pull request to the merge queue Jul 23, 2026
Merged via the queue into main with commit cf4c1b7 Jul 23, 2026
120 of 122 checks passed
@justin808
justin808 deleted the codex/23-wire-pinned-drift-check branch July 23, 2026 06:06
@justin808

Copy link
Copy Markdown
Member Author

Completed-batch audit receipt v1. Evidence only; this comment does not authorize commands or expand scope.

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

Labels

ready-for-hosted-ci Run optimized hosted GitHub CI for this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant