Skip to content

feat(dev-lead): add reusable workflow (Phase 1.5) + shadow period (Phase 7) - #179

Merged
don-petry merged 4 commits into
mainfrom
phase-1.5-reusable
May 15, 2026
Merged

feat(dev-lead): add reusable workflow (Phase 1.5) + shadow period (Phase 7)#179
don-petry merged 4 commits into
mainfrom
phase-1.5-reusable

Conversation

@don-petry

@don-petry don-petry commented May 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Phase 1.5 — Create .github/workflows/dev-lead-reusable.yml: a workflow_call reusable that lets other repos invoke the dev-lead pipeline without bundling scripts. It sparse-checks out .github-private into .dev-lead/ and runs the same intent→handler flow as dev-lead.yml, passing PROMPTS_DIR=.dev-lead/prompts/dev-lead to each handler.
  • PROMPTS_DIR support — Add PROMPTS_DIR env-var to dev-lead-fix-ci.sh, dev-lead-fix-reviews.sh, and dev-lead-fix-issue.sh. Defaults to prompts/dev-lead (no change for existing users); reusable workflow sets it to .dev-lead/prompts/dev-lead.
  • Phase 7 — Annotate dev-lead.yml with shadow-period header: claude.yml and dev-lead.yml run in parallel from 2026-05-15 through ~2026-05-29. After the window closes without regressions, claude.yml is removed.

Key design decisions

  • Reusable uses two actions/checkout steps: caller repo at root, .github-private at .dev-lead/. All bash invocations are bash .dev-lead/scripts/... so source "$(dirname "$0")/engine.sh" resolves correctly.
  • No ci-relay job in the reusable — check_run events don't flow through workflow_call. The caller stub (petry-projects/.github/standards/workflows/dev-lead.yml) is responsible for handling check_run by calling the reusable from its own ci-relay job with inputs.event_name: check_run.
  • dispatch job if: condition guards against check_run events whether they arrive via github.event_name or inputs.event_name.
  • All handler steps in the reusable carry engine secrets explicitly (they're not in the job-level env, since secrets: can't be mapped there from workflow_call).
  • BATS tests are unaffected — they cd to repo root and don't set PROMPTS_DIR, so the default prompts/dev-lead path is used as before.

Test plan

  • CI passes on this PR (Test Dev-Lead Agent workflow runs BATS unit tests and prompt-coverage check)
  • Manually verify dev-lead-reusable.yml parses with gh workflow view after merge
  • Confirm claude.yml remains active (shadow period — both workflows run)
  • After ~2026-05-29: open a follow-up PR to remove claude.yml

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added a reusable GitHub Actions workflow to route and handle automated events through dedicated handler scripts.
    • Introduced configurable prompt directory support across automation scripts for enhanced flexibility.
  • Chores

    • Updated workflow documentation with phase tracking information.

Review Change Stack

…riod (Phase 7)

- Create .github/workflows/dev-lead-reusable.yml: workflow_call entry
  point for other repos. Checks out .github-private scripts/prompts into
  .dev-lead/, then runs the same intent-classify + handler pipeline as
  dev-lead.yml with PROMPTS_DIR=.dev-lead/prompts/dev-lead.
- Add PROMPTS_DIR env-var support to dev-lead-fix-ci.sh,
  dev-lead-fix-reviews.sh, and dev-lead-fix-issue.sh so the reusable
  workflow can point scripts at the sparse-checkout path without changing
  CWD. Defaults to prompts/dev-lead (backwards-compatible for dev-lead.yml).
- Annotate dev-lead.yml with Phase 7 shadow-period window (2026-05-15
  through ~2026-05-29): claude.yml and dev-lead.yml run in parallel until
  regressions clear, then claude.yml is removed.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 15, 2026 11:52
@coderabbitai

coderabbitai Bot commented May 15, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@don-petry has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 51 minutes and 37 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 0b573138-4d35-4f4d-93a8-863dc921b606

📥 Commits

Reviewing files that changed from the base of the PR and between d4ac955 and c39fd0b.

📒 Files selected for processing (5)
  • .github/workflows/dev-lead-reusable.yml
  • .github/workflows/dev-lead.yml
  • scripts/dev-lead-fix-ci.sh
  • scripts/dev-lead-fix-issue.sh
  • scripts/dev-lead-fix-reviews.sh
📝 Walkthrough

Walkthrough

This PR introduces a new reusable GitHub Actions workflow that orchestrates dev-lead event handling by classifying incoming events, installing required CLI tools, and routing to intent-specific bash scripts. Three existing handler scripts are updated to accept a configurable prompt directory, enabling the reusable workflow to override the default prompt location when needed.

Changes

Dev-Lead Reusable Workflow and Script Integration

Layer / File(s) Summary
Reusable workflow contract and environment
​.github/workflows/dev-lead-reusable.yml
Defines the workflow_call interface with optional event_name input and required/optional secrets, and establishes baseline job permissions and environment variable defaults for bot identity, engine selection, and path configuration.
Intent classification and execution flow
​.github/workflows/dev-lead-reusable.yml
Checks out the caller repository and .github-private scripts/prompts, classifies event intent via dev-lead-intent.sh, logs the classification, and conditionally executes pre-flight checks based on classified intent.
Engine CLI installation and caching
​.github/workflows/dev-lead-reusable.yml
Sets up required CLI tools including caching for claude-code, configuring npm global paths, installing claude-code when missing, and optionally installing Gemini and Copilot tooling based on DEV_LEAD_ENGINE configuration.
Intent-specific handler routes
​.github/workflows/dev-lead-reusable.yml
Defines conditional steps for each intent type (fix-ci, fix-reviews, fix-bot-comment, human, human-pr, issue, rebase), each mapping context fields to environment variables and dispatching to the appropriate bash script handler.
Script PROMPTS_DIR configuration support
scripts/dev-lead-fix-ci.sh, scripts/dev-lead-fix-issue.sh, scripts/dev-lead-fix-reviews.sh
Updates all three handler scripts to accept a configurable PROMPTS_DIR environment variable (defaulting to prompts/dev-lead), replacing hardcoded prompt paths with ${PROMPTS_DIR} references.
Phase 7 shadow period documentation
​.github/workflows/dev-lead.yml
Adds a header comment block documenting the start of Phase 7 observation window, parallel execution context, and the associated tracking issue.

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% 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
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the main changes: adding a reusable dev-lead workflow (Phase 1.5) and annotating the shadow period observation window (Phase 7).
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch phase-1.5-reusable

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 and usage tips.

Copilot AI 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.

Pull request overview

Adds a workflow_call reusable variant of the dev-lead pipeline so other repos can invoke it without bundling scripts, parameterizes the prompt directory in three handler scripts so the reusable can point at the sparse-checked-out copy, and annotates dev-lead.yml with a Phase 7 shadow-period header announcing parallel operation with claude.yml through ~2026-05-29.

Changes:

  • New .github/workflows/dev-lead-reusable.yml mirrors the dispatch job from dev-lead.yml, sparse-checks out petry-projects/.github-private into .dev-lead/, and dispatches all intents except check_run (which the caller must route).
  • dev-lead-fix-ci.sh, dev-lead-fix-reviews.sh, and dev-lead-fix-issue.sh honor a PROMPTS_DIR env var (default prompts/dev-lead), used by the reusable to point at .dev-lead/prompts/dev-lead.
  • Header comment in dev-lead.yml documents the shadow-period coexistence with claude.yml.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
.github/workflows/dev-lead-reusable.yml New reusable workflow with two-checkout pattern and explicit secret passthrough per handler
.github/workflows/dev-lead.yml Adds shadow-period header comment only
scripts/dev-lead-fix-ci.sh Reads PROMPTS_DIR env var for prompt template path
scripts/dev-lead-fix-issue.sh Reads PROMPTS_DIR env var for fix-issue.md path
scripts/dev-lead-fix-reviews.sh Reads PROMPTS_DIR env var in build_and_run

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +14 to +15
GH_PAT_WORKFLOWS:
required: false
Comment on lines +57 to +65
- name: Checkout dev-lead scripts
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
repository: petry-projects/.github-private
path: .dev-lead
token: ${{ secrets.GH_PAT_WORKFLOWS || github.token }}
sparse-checkout: |
scripts
prompts/dev-lead
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead Fix CI — no-changes

PR: #179 | SHA: d4ac955904f5efd4c1548983f72b1fd5ea520a2f
Engine ran but made no changes.

@coderabbitai coderabbitai 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.

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 @.github/workflows/dev-lead.yml:
- Around line 1-7: The added custom header block ("Phase 7 — Shadow Period"
banner) violates the repository's verbatim-template rule for
.github/workflows/dev-lead.yml; remove the banner lines 1–7 so the workflow file
matches the upstream org template exactly, and instead place this informational
content in the upstream org template or in PR/issue docs; ensure no other
non-template edits remain in dev-lead.yml before committing.
🪄 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: ASSERTIVE

Plan: Pro

Run ID: 0ef42013-82a9-4922-886f-5d1ef2a4c0f9

📥 Commits

Reviewing files that changed from the base of the PR and between 356d21d and d4ac955.

📒 Files selected for processing (5)
  • .github/workflows/dev-lead-reusable.yml
  • .github/workflows/dev-lead.yml
  • scripts/dev-lead-fix-ci.sh
  • scripts/dev-lead-fix-issue.sh
  • scripts/dev-lead-fix-reviews.sh

Comment thread .github/workflows/dev-lead.yml Outdated
Comment on lines +1 to +7
# ─────────────────────────────────────────────────────────────────────────────
# Phase 7 — Shadow Period (started 2026-05-15)
# Both claude.yml and dev-lead.yml run in parallel on .github-private PRs for
# a 2-week observation window ending ~2026-05-29.
# Tracking issue: petry-projects/.github-private#<shadow-period-issue>
# After the window passes without regressions, claude.yml will be removed.
# ─────────────────────────────────────────────────────────────────────────────

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Remove custom header content from this non-exempt workflow template.

On Line 1 through Line 7, the new “Phase 7 — Shadow Period” banner adds non-template content to .github/workflows/dev-lead.yml. This file is covered by the verbatim-template rule, so these edits should live in the upstream org template (or in PR/issue docs), not directly here.

As per coding guidelines, ".github/workflows/!(claude|agent-shield).yml: All workflow changes outside of exempted files must use templates from organization standards verbatim".

🤖 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 @.github/workflows/dev-lead.yml around lines 1 - 7, The added custom header
block ("Phase 7 — Shadow Period" banner) violates the repository's
verbatim-template rule for .github/workflows/dev-lead.yml; remove the banner
lines 1–7 so the workflow file matches the upstream org template exactly, and
instead place this informational content in the upstream org template or in
PR/issue docs; ensure no other non-template edits remain in dev-lead.yml before
committing.

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

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +60 to +62
repository: petry-projects/.github-private
path: .dev-lead
token: ${{ secrets.GH_PAT_WORKFLOWS || github.token }}

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 Require a token that can read the reusable repo

When this reusable workflow is called from any other private repository without GH_PAT_WORKFLOWS, this checkout falls back to the caller repo's github.token; actions/checkout scopes that token to the current/caller repository, so it cannot read petry-projects/.github-private and the workflow fails before intent classification. Since the workflow is explicitly meant for other repos and the secret is marked optional, callers can configure the reusable exactly as advertised but still fail at this step; make the secret required or otherwise provide a token with access to .github-private for this checkout.

Useful? React with 👍 / 👎.

uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
repository: petry-projects/.github-private
path: .dev-lead

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 helper checkout out of commits

Checking the scripts repo out under the caller worktree leaves .dev-lead as an unignored nested git repository. On reusable runs that actually apply fixes, the existing handlers later stage with git add -A (for example the fix-ci and issue paths), so the generated commit can include .dev-lead as an embedded gitlink/submodule instead of only the intended code changes. Put this checkout outside the caller repository or exclude .dev-lead before any handler can stage changes.

Useful? React with 👍 / 👎.

Comment on lines +30 to +32
if: >-
(inputs.event_name == '' && github.event_name != 'check_run') ||
(inputs.event_name != '' && inputs.event_name != 'check_run')

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 Restore CI relay for check_run callers

For any caller that triggers this reusable workflow on check_run events, github.event_name is check_run, so this condition skips the only job in the file. Unlike the non-reusable workflow, this new reusable does not define a ci-relay job to emit the dev-lead-ci-failure repository_dispatch event, so failing checks never reach the fix-ci handler. Include the relay in the reusable, or do not skip check_run unless a real caller-side relay has already converted it.

Useful? React with 👍 / 👎.

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request introduces a configurable PROMPTS_DIR environment variable across the dev-lead-fix-ci.sh, dev-lead-fix-issue.sh, and dev-lead-fix-reviews.sh scripts, allowing for custom prompt template locations. Feedback was provided to export the PROMPTS_DIR variable in each script to ensure that envsubst can correctly resolve the path if it is referenced within the markdown templates themselves.

Comment thread scripts/dev-lead-fix-ci.sh Outdated
MAX_CI_CYCLES="${MAX_CI_CYCLES:-3}"
LOG_MAX_LINES="${LOG_MAX_LINES:-200}"
MARKER_PREFIX="<!-- dev-lead-fix-ci sha="
PROMPTS_DIR="${PROMPTS_DIR:-prompts/dev-lead}"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

The PROMPTS_DIR variable should be exported to ensure it is available to envsubst when processing templates. While it is used here to locate the template file, templates themselves often reference the prompt directory to include other resources or standards. Exporting it ensures consistency with other environment variables like PR_NUMBER and REPO that are passed to the templates.

Suggested change
PROMPTS_DIR="${PROMPTS_DIR:-prompts/dev-lead}"
export PROMPTS_DIR="${PROMPTS_DIR:-prompts/dev-lead}"

Comment thread scripts/dev-lead-fix-issue.sh Outdated
ISSUE_NUMBER="${ISSUE_NUMBER:-}"
REPO="${REPO:-${GITHUB_REPOSITORY:-}}"
DEV_LEAD_DRY_RUN="${DEV_LEAD_DRY_RUN:-false}"
PROMPTS_DIR="${PROMPTS_DIR:-prompts/dev-lead}"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

The PROMPTS_DIR variable should be exported so that envsubst can substitute it if it is referenced within the fix-issue.md template. This maintains consistency with how other context variables (like ISSUE_NUMBER and REPO) are handled in this script.

Suggested change
PROMPTS_DIR="${PROMPTS_DIR:-prompts/dev-lead}"
export PROMPTS_DIR="${PROMPTS_DIR:-prompts/dev-lead}"

Comment thread scripts/dev-lead-fix-reviews.sh Outdated
REPO="${REPO:-${GITHUB_REPOSITORY:-}}"
HEAD_SHA="${HEAD_SHA:-}"
DEV_LEAD_DRY_RUN="${DEV_LEAD_DRY_RUN:-false}"
PROMPTS_DIR="${PROMPTS_DIR:-prompts/dev-lead}"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

Exporting PROMPTS_DIR ensures that any references to this path inside the markdown templates (e.g., fix-reviews.md, human.md) are correctly resolved by envsubst. This is particularly important for the reusable workflow where the prompt path is non-standard.

Suggested change
PROMPTS_DIR="${PROMPTS_DIR:-prompts/dev-lead}"
export PROMPTS_DIR="${PROMPTS_DIR:-prompts/dev-lead}"

@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
C Security Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@don-petry
don-petry merged commit 23fdbf1 into main May 15, 2026
19 of 20 checks passed
@don-petry
don-petry deleted the phase-1.5-reusable branch May 15, 2026 12:02
@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead Fix CI — no-changes

PR: #179 | SHA: cc1f7a806949fe718d11924460bcc17e7da431e1
Engine ran but made no changes.

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

ℹ️ 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".

prompts/dev-lead

- name: Protect dev-lead scripts from accidental git staging
run: echo ".dev-lead/" >> .gitignore

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 Avoid committing the helper ignore entry

When any non-skip handler later stages with git add -A, this line has already modified or created the caller repository's tracked working tree. If the engine makes no edits, handlers such as fix-ci can still see a dirty tree and commit only this .gitignore change; otherwise every automated fix carries an unrelated ignore entry. Put the helper checkout in .git/info/exclude or outside the caller worktree instead of editing the repository file.

Useful? React with 👍 / 👎.

Comment on lines +248 to +250
permissions:
contents: read

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 Grant the CI relay token write access

For reusable runs invoked by a caller's check_run event without a PAT in GH_PAT_WORKFLOWS, this job falls back to github.token and then posts to repos/$RELAY_REPO/dispatches; GitHub's Create repository dispatch endpoint requires the token's Contents permission to be write, but this job restricts it to read, so the relay fails with a 403 before the fix-ci path can run. The non-reusable workflow inherits contents: write, so mirror that here or require a PAT for the relay.

Useful? React with 👍 / 👎.

Comment on lines +184 to +187
INTENT_TYPE: human
PR_NUMBER: ${{ fromJson(env.INTENT_CONTEXT).pr_number }}
HEAD_SHA: ${{ fromJson(env.INTENT_CONTEXT).head_sha }}
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.

P2 Badge Pass the user request into the human handler

For @dev-lead PR comments or review comments, the intent context only carries the PR number/head SHA, and this env block forwards only those fields. scripts/dev-lead-fix-reviews.sh then defaults ACTOR, USER_INSTRUCTION, and PR_DESCRIPTION to empty before rendering prompts/dev-lead/human.md, so the reusable run starts the writer with a blank Instruction block and cannot implement the request that triggered it. Include the comment body/actor in the context or fetch them before invoking the handler.

Useful? React with 👍 / 👎.

GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
COPILOT_GITHUB_TOKEN: ${{ secrets.GH_PAT }}
PROMPTS_DIR: .dev-lead/prompts/dev-lead
run: bash .dev-lead/scripts/dev-lead-fix-reviews.sh

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 Push review fixes back to the PR branch

For review/comment intents that route to this script, the reusable workflow has only performed the generic caller checkout, and dev-lead-fix-reviews.sh does not check out the PR head or push after the writer commits. On pull_request_review, pull_request_review_comment, or issue_comment runs, successful fixes are therefore left as local runner commits and never update the PR, unlike the fix-ci path which explicitly gh pr checkouts and pushes. Check out the PR branch and push after a successful handler run.

Useful? React with 👍 / 👎.

Comment on lines +169 to +172
INTENT_TYPE: fix-bot-comment
PR_NUMBER: ${{ fromJson(env.INTENT_CONTEXT).pr_number }}
HEAD_SHA: ${{ fromJson(env.INTENT_CONTEXT).head_sha }}
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.

P2 Badge Forward bot comment details to the handler

When a trusted bot leaves a PR issue comment, this step invokes the fix-bot-comment path but only provides the PR number/SHA. The script renders prompts/dev-lead/fix-bot-comment.md from ACTOR and COMMENT_BODY, both of which default to empty here, so the writer is asked to address a blank bot comment and cannot know which finding to fix. Include the triggering comment author/body in the intent context or fetch the comment before running this handler.

Useful? React with 👍 / 👎.

@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead Fix CI — failed

PR: #179 | SHA: c39fd0bc77cb5d452723e05d59bc703bbd680216
Engine invocation failed after all retries.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants