Skip to content

chore: sync 2 org-standard workflow stub(s) from petry-projects/.github - #499

Closed
don-petry wants to merge 7 commits into
mainfrom
standards-sync/workflows-20260914
Closed

don-petry wants to merge 7 commits into
mainfrom
standards-sync/workflows-20260914

Conversation

@don-petry

@don-petry don-petry commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

User description

Syncs the following org-standard workflow stub(s) from petry-projects/.github (standards/workflows/), deployed verbatim:

  • add-to-project.yml
  • initiative-driver.yml

Opened by scripts/deploy-standard-workflows.sh. Stubs are thin callers; all behaviour lives in the reusables. See standards/ci-standards.md. Labeled standards-sync and left for the normal review/auto-merge pipeline — the deploy script never merges directly.

Summary by CodeRabbit

  • Chores
    • Updated automated project workflow references to use the v1-ring1 channel.
    • Added an agent rate-limit check before initiative-driver dispatches.
    • Dispatches are deferred when the rate limit is exceeded.
    • If the rate-limit check or its tooling cannot run, dispatch proceeds to preserve workflow continuity.
    • Updated workflow guidance for the preferred authentication secret, while retaining support for the legacy secret.

CodeAnt-AI Description

Add rate-limit protection to initiative dispatches and move project automation to the ring1 channel

What Changed

  • Project automation now uses the v1-ring1 workflow channel.
  • Initiative dispatches pause cleanly when concurrency, cooldown, daily-budget, or repeated-failure limits are reached.
  • Rate-limit checks and tooling failures do not fail the workflow; dispatch continues when no explicit defer decision is available.
  • The preferred GH_PAT_DON_PETRY secret is used when available, with GH_PAT_WORKFLOWS retained as a fallback.

Impact

✅ Fewer overlapping initiative dispatches
✅ No failed jobs when dispatches are deferred
✅ Initiative automation continues during rate-limit tool outages

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.

@don-petry don-petry added the standards-sync Org-standard workflow stub synced from petry-projects/.github label Sep 14, 2026
@don-petry
don-petry requested a review from a team as a code owner September 14, 2026 15:01
@chatgpt-codex-connector

This comment has been minimized.

@qodo-code-review

This comment has been minimized.

@codeant-ai

This comment has been minimized.

@gemini-code-assist

This comment has been minimized.

@codeant-ai

This comment has been minimized.

@coderabbitai

This comment has been minimized.

@codeant-ai codeant-ai Bot added the size:M This PR changes 30-99 lines, ignoring generated files label Sep 14, 2026
Comment on lines +105 to +110
repository: petry-projects/.github
ref: v1
path: .arl-gate-tooling
fetch-depth: 1
persist-credentials: false
token: ${{ secrets.GH_PAT_DON_PETRY || secrets.GH_PAT_WORKFLOWS }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggestion: The workflow executes shell code from mutable ref v1 with a PAT, so a retagged or compromised source can run arbitrary commands with dispatch credentials. [security]

Assessment: 🔴 Critical · 🔁 Occurrence: Rarely

Use CodeAnt Skill Fix in Cursor Fix in VSCode Claude

Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** .github/workflows/initiative-driver.yml
**Line:** 105:110
**Comment:**
	*Security: The workflow executes shell code from mutable ref `v1` with a PAT, so a retagged or compromised source can run arbitrary commands with dispatch credentials.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
👍 | 👎

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Skipping this one in this PR — routing it to the source of truth instead.

Validation: the finding is technically right that ref: v1 is a moving tag, but this file is a verbatim synced caller stub (SOURCE OF TRUTH: petry-projects/.github/standards/workflows/initiative-driver.yml; header: "Copy this file verbatim" / "never by editing callers"). The v1 tag on petry-projects/.github is the org's intentional release channel for the agent-rate-limit gate tooling — the same first-party mutable-ref trust model the org deliberately accepts for every reusable-workflow channel ref in this repo (e.g. add-to-project-reusable.yml@add-to-project/v1-ring1, agent-shield-reusable.yml@agent-shield/v2-ring1, all annotated first-party channel ref). Pinning it to a commit SHA here would (a) freeze the tooling and defeat the central rollout/rollback mechanism, and (b) diverge this stub from source of truth so the next sync reverts it.

Existing mitigations on this step are deliberate: persist-credentials: false, read-only fetch-depth: 1 checkout, and continue-on-error: true (fail-open). If the org decides first-party checkout refs must be SHA-pinned, that policy has to land in petry-projects/.github/standards/workflows/initiative-driver.yml so all enrolled repos change together — not as a one-off edit to this caller. Not stamping an addressed-marker since no code change was made here.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ Customized review instruction saved!

Instruction:

Do not flag the intentional mutable first-party channel ref in this verbatim synced caller stub; security policy changes must be made in the declared source-of-truth workflow instead.

Applied to:

  • .github/workflows/initiative-driver.yml

💡 To manage or update this instruction, visit: CodeAnt AI Settings

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Skipping — concur with the maintainer note above; no code change.

ref: v1 on petry-projects/.github is a first-party mutable channel ref (the org's intentional release channel for the agent-rate-limit gate tooling), and this file is a verbatim synced caller stub whose behavior is owned by the declared source of truth. SHA-pinning it here is explicitly disallowed per AGENTS.md "Release channel tags & the mutable-ref exception" — it would freeze the tooling, defeat central rollout/rollback, and diverge this stub from source of truth (reverted on next sync). Deliberate mitigations already on the step: persist-credentials: false, read-only fetch-depth: 1, and fail-open continue-on-error: true. Any policy to SHA-pin first-party checkout refs must land in petry-projects/.github's source-of-truth workflow so all enrolled repos change together. No addressed-marker (no code change).

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ Customized review instruction saved!

Instruction:

Do not flag the mutable v1 release-channel ref for SHA pinning in this synced caller stub; pinning must be managed in the source-of-truth workflow.

Applied to:

  • .github/workflows/initiative-driver.yml

💡 To manage or update this instruction, visit: CodeAnt AI Settings

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ Customized review instruction saved!

Instruction:

Do not flag the intentional use of the mutable v1 release-channel ref in this synced workflow stub; SHA-pin changes must be made in the source-of-truth workflow instead.

Applied to:

  • .github/workflows/initiative-driver.yml

💡 To manage or update this instruction, visit: CodeAnt AI Settings

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Skipping — no code change (this pass concurs with the existing disposition on this thread). Per the dev-lead guardrail, ref: v1 on petry-projects/.github in the Checkout agent-rate-limit gate tooling step is a first-party mutable channel ref (the org's intentional release channel for the agent-rate-limit gate tooling) and must never be SHA-pinned — first-party channel tag, intentional mutable ref per AGENTS.md. This file is also a verbatim synced caller stub whose behavior is owned by the declared source of truth (petry-projects/.github/standards/workflows/initiative-driver.yml), so a one-off SHA-pin here would diverge from source-of-truth and be reverted on next sync. Deliberate mitigations remain on the step: persist-credentials: false, read-only fetch-depth: 1, and fail-open continue-on-error: true. Any policy to SHA-pin first-party checkout refs must land in the source-of-truth workflow so all enrolled repos change together. No addressed-marker (no code change).

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ Customized review instruction saved!

Instruction:

Do not flag the intentional mutable v1 ref for the first-party petry-projects/.github agent-rate-limit gate tooling checkout; this workflow is a synced caller stub and must follow the source-of-truth release channel.

Applied to:

  • .github/workflows/initiative-driver.yml

💡 To manage or update this instruction, visit: CodeAnt AI Settings

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Skipping — no code change. ref: v1 on petry-projects/.github (initiative-driver.yml line 106) is a first-party mutable channel ref — the org's intentional release/rollback channel for the agent-rate-limit gate tooling. Per the dev-lead guardrail and AGENTS.md "Release channel tags & the mutable-ref exception", first-party channel tags must not be SHA-pinned: pinning here would freeze the tooling, defeat central rollout/rollback, and diverge this verbatim synced caller stub from its source of truth (reverted on next sync). Deliberate mitigations already on the step remain: persist-credentials: false, read-only fetch-depth: 1, and fail-open continue-on-error: true. Any policy to SHA-pin first-party checkout refs must land in petry-projects/.github's source-of-truth workflow so all enrolled repos change together. No addressed-marker (no code change).

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ Customized review instruction saved!

Instruction:

Do not flag mutable first-party release or rollback channel refs for SHA pinning in this workflow; these refs are intentionally used for centralized rollout and rollback.

Applied to:

  • .github/workflows/initiative-driver.yml

💡 To manage or update this instruction, visit: CodeAnt AI Settings

Comment on lines +118 to +123
continue-on-error: true
id: arl_gate
env:
GH_TOKEN: ${{ secrets.GH_PAT_DON_PETRY || secrets.GH_PAT_WORKFLOWS }}
ARL_ACTOR: ${{ github.actor }}
ARL_TRACKING_REPO: ${{ github.repository }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggestion: The admission gate runs inside the cancel-in-progress group, so a newer event can cancel it during evaluation and allow bursts to bypass serialized rate-limit decisions. [race condition]

Assessment: 🟠 Major · 🔁 Occurrence: Sometimes

Use CodeAnt Skill Fix in Cursor Fix in VSCode Claude

Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** .github/workflows/initiative-driver.yml
**Line:** 118:123
**Comment:**
	*Race Condition: The admission gate runs inside the cancel-in-progress group, so a newer event can cancel it during evaluation and allow bursts to bypass serialized rate-limit decisions.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
👍 | 👎

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Skipping — on validation the flagged race does not exist by design.

The admission gate does not rely on the cancel-in-progress concurrency group for serialization. As documented in the header (#443/#402): the gate "serializes a close-event + schedule burst AHEAD of the cancel-in-progress concurrency group" by deriving its concurrency / cooldown / daily-budget / consecutive-failure counters from this stub's own run history (no state backend). The concurrency group is only there so a close-burst + schedule don't fan out duplicate dispatches.

Walking the scenario the comment describes: events A then B arrive; A's job starts and begins gate evaluation; B arrives and cancels A (cancel-in-progress); B's job runs the gate against the true run history and decides allow/defer. A was cancelled before its dispatch step, so it never dispatched. That means a cancellation produces fewer dispatches, not more — the conservative direction for a rate limiter. A cancel is a clean no-op (never a dispatch, never a job failure, per #640 AC #1/#2); a defer likewise only skips the dispatch step. There is no path where cancelling mid-evaluation lets a burst bypass a limit and dispatch extra work.

No code change: the current concurrency + history-based gate is the intended design, and this is a verbatim synced stub whose behavior is owned by the source of truth. Not stamping an addressed-marker.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Skipping — concur with the maintainer note above; no code change.

On validation the flagged race does not exist by design. The admission gate does not serialize via the cancel-in-progress concurrency group; per the header (lines 30–38, #443/#402) it derives its concurrency/cooldown/daily-budget/consecutive-failure counters from this stub's own run history (no state backend). Walking the scenario: if event B cancels A mid-evaluation, A is cancelled BEFORE its dispatch step, so it never dispatches — a cancellation yields FEWER dispatches, not more, which is the conservative direction for a rate limiter. A cancel is a clean no-op (never a dispatch, never a job failure, #640 AC #1/#2); a defer likewise only skips the dispatch step. There is no path where cancelling mid-evaluation lets a burst bypass a limit. This is also a verbatim synced stub whose behavior is owned by the source of truth. No addressed-marker (no code change).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Skipping — no code change. Concur with the maintainer note above; on validation the flagged race does not exist by design.

The admission gate (lines 112-137) does NOT serialize via the cancel-in-progress concurrency group. Per the header (lines 30-38, #443/#402) it derives its concurrency/cooldown/daily-budget/consecutive-failure counters from this stub's own run history (no state backend); the concurrency group only prevents a close-burst + schedule from fanning out duplicate dispatches. Walking the flagged scenario: if event B cancels A mid-evaluation, A is cancelled BEFORE its dispatch step (line 139), so it never dispatches — a cancellation yields FEWER dispatches, not more, the conservative direction for a rate limiter. A cancel is a clean no-op (never a dispatch, never a job failure, #640 AC #1/#2); a defer likewise only skips the dispatch step (line 144). There is no path where cancelling mid-evaluation lets a burst bypass a limit. This is also a verbatim synced stub whose behavior is owned by the source of truth. No addressed-marker (no code change).

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ Customized review instruction saved!

Instruction:

Do not flag cancellation during admission-gate evaluation as a rate-limit bypass in this workflow; cancellation occurs before dispatch and can only reduce dispatches.

Applied to:

  • .github/workflows/initiative-driver.yml

💡 To manage or update this instruction, visit: CodeAnt AI Settings

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Skipping — no code change. Concur with the maintainer notes above; on validation the flagged race does not exist by design.

The admission gate (.github/workflows/initiative-driver.yml lines 112-137) does NOT serialize via the cancel-in-progress concurrency group. Per the header (lines 30-38, #443/#402) it derives its concurrency/cooldown/daily-budget/consecutive-failure counters from this stub's own run history (no state backend); the concurrency group only prevents a close-burst + schedule from fanning out duplicate dispatches. Walking the flagged scenario: if event B cancels A mid-evaluation, A is cancelled BEFORE its dispatch step (line 139), so it never dispatches — a cancellation yields FEWER dispatches, not more, the conservative direction for a rate limiter. A cancel is a clean no-op (never a dispatch, never a job failure, #640 AC #1/#2); a defer likewise only skips the dispatch step (line 144). There is no path where cancelling mid-evaluation lets a burst bypass a limit. This is also a verbatim synced stub whose behavior is owned by the source of truth. No addressed-marker (no code change).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Skipping — no code change. Independently validated against the file and concur with the maintainer notes above: the flagged race does not exist by design.

The admission gate does not serialize via the cancel-in-progress concurrency group. Per the header (lines 30-38, #443/#402) it derives its concurrency/cooldown/daily-budget/consecutive-failure counters from this stub's own run history (no state backend); the concurrency group (lines 65-70) only prevents a close-burst + schedule from fanning out duplicate dispatches. Walking the flagged scenario: if event B cancels A mid-evaluation, A is cancelled before its dispatch step (line 139), so it never dispatches — a cancellation yields fewer dispatches, not more, the conservative direction for a rate limiter. A cancel is a clean no-op (never a dispatch, never a job failure, #640 AC #1/#2); a defer likewise only skips the dispatch step via the if: guard (line 144). There is no path where cancelling mid-evaluation lets a burst bypass a limit. This is also a verbatim synced stub whose behavior is owned by the source of truth. No addressed-marker (no code change).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Skipping — no code change (this pass concurs with the existing disposition on this thread). On validation the flagged race does not exist by design: the admission gate does not serialize via the cancel-in-progress concurrency group — per the header (lines 30-38, #443/#402) it derives its concurrency/cooldown/daily-budget/consecutive-failure counters from this stub's own run history (no state backend); the concurrency group only prevents a close-burst + schedule from fanning out duplicate dispatches. Walking the scenario: if event B cancels A mid-evaluation, A is cancelled BEFORE its dispatch step (line 139), so it never dispatches — a cancellation yields FEWER dispatches, not more, the conservative direction for a rate limiter. A cancel is a clean no-op (never a dispatch, never a job failure, #640 AC #1/#2); a defer likewise only skips the dispatch step (line 144). There is no path where cancelling mid-evaluation lets a burst bypass a limit. This is also a verbatim synced stub owned by the source of truth. No addressed-marker (no code change).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Skipping — no code change; the flagged race does not exist by design. The admission gate (initiative-driver.yml lines 112–137) does not serialize via the cancel-in-progress concurrency group. Per the header (lines 30–38, #443/#402) it derives its concurrency/cooldown/daily-budget/consecutive-failure counters from this stub's own run history (no state backend); the concurrency group only prevents a close-burst + schedule from fanning out duplicate dispatches. Walking the flagged scenario: if event B cancels A mid-evaluation, A is cancelled before its dispatch step (line 139), so it never dispatches — a cancellation yields fewer dispatches, not more, the conservative direction for a rate limiter. A cancel is a clean no-op (never a dispatch, never a job failure, #640 AC #1/#2); a defer likewise only skips the dispatch step (line 144). There is no path where cancelling mid-evaluation lets a burst bypass a limit. This is also a verbatim synced stub whose behavior is owned by the source of truth. No addressed-marker (no code change).

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ Customized review instruction saved!

Instruction:

Do not flag cancellation during admission-gate evaluation as a rate-limit bypass in this workflow; a cancelled run never reaches dispatch, so cancellation can only reduce dispatches.

Applied to:

  • .github/workflows/initiative-driver.yml

💡 To manage or update this instruction, visit: CodeAnt AI Settings

@donpetry-bot

Copy link
Copy Markdown
Contributor

Automated review paused — review engines are unavailable.

Every configured review engine (Claude → Copilot → Gemini) reported a usage/rate limit or was otherwise unavailable, so no review could be generated for this run. This is a single, deduplicated notice: the agent will re-review automatically on its next scheduled run once capacity recovers, and will not post repeat notices in the meantime.

@don-petry

Copy link
Copy Markdown
Contributor Author

Note

@don-petry I received your request but all AI engines are currently rate-limited. I'll retry automatically once the rate limit clears.
Rate limit resets at: unknown

@don-petry
don-petry enabled auto-merge (squash) September 14, 2026 15:10
@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry
don-petry disabled auto-merge September 14, 2026 19:24
@don-petry
don-petry enabled auto-merge (squash) September 14, 2026 19:32
@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry
don-petry disabled auto-merge September 14, 2026 23:11
@don-petry
don-petry enabled auto-merge (squash) September 14, 2026 23:19
@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry
don-petry disabled auto-merge September 15, 2026 04:57
@don-petry
don-petry enabled auto-merge (squash) September 15, 2026 05:05
@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry
don-petry disabled auto-merge September 15, 2026 11:46
@don-petry
don-petry enabled auto-merge (squash) September 15, 2026 11:54
@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry
don-petry disabled auto-merge September 15, 2026 17:02
@don-petry

Copy link
Copy Markdown
Contributor Author

Re-ran the failing Secret scan (gitleaks) check — the failure was a transient infra flake, not a secret detection.

The Secret scan (gitleaks) check verifies the diff introduces no committed secrets. It failed before scanning any content: the gitleaks/gitleaks-action binary download hit repeated curl: (22) The requested URL returned error: 504 (gateway timeout), then sha256sum: 'standard input': no properly formatted checksum lines found → exit code 1. That is a download/CDN 504, unrelated to this PR's content (which only touches .github/workflows/*.yml and adds secrets.* references, never secret values).

So the invariant the check protects — no secrets in the diff — is already true; the red was purely an infrastructure timeout, and the fix is a re-run, not a code change (there is nothing in the diff to change to make a 504 succeed). I've re-triggered the failed job via gh run rerun --failed.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

No description provided.

@don-petry

Copy link
Copy Markdown
Contributor Author

Closing: this fan-out PR deploys the Phase 4 rate-limit gate steps in initiative-driver.yml, but scripts/agent-rate-limit-gate.sh does not exist at petry-projects/.github@v1 (v1 is 359 commits behind main). The gate would be inert, and the steps are fail-open (continue-on-error plus || true), which pr-review treats as a CI-weakening hard-stop that blocks automated approval. The org PAT would also be passed to a script fetched from a moving tag. Tracked upstream in combsmith/.github#1232. Regenerate from the fixed standard once that lands. Note the standards-sync job may re-open an equivalent PR before then.

@don-petry

Copy link
Copy Markdown
Contributor Author

Auto-rebase failed — merge conflict — this branch has conflicts with main that must be resolved.

dev-lead will attempt to resolve this automatically. If it cannot, a follow-up comment will explain what needs manual attention.

To resolve manually instead:

git fetch origin
git merge origin/main
# resolve conflicts, then:
git add .
git commit
git push

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

Labels

size:M This PR changes 30-99 lines, ignoring generated files standards-sync Org-standard workflow stub synced from petry-projects/.github

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants