Skip to content

fix: pin consumer LLM workflow installs - #2730

Merged
stranske merged 2 commits into
mainfrom
codex/fix-sync-llm-installs
Jul 7, 2026
Merged

fix: pin consumer LLM workflow installs#2730
stranske merged 2 commits into
mainfrom
codex/fix-sync-llm-installs

Conversation

@stranske

@stranske stranske commented Jul 7, 2026

Copy link
Copy Markdown
Owner

Summary

  • stop consumer auto-pilot and issue-optimizer workflows from installing repo requirements.txt before LLM dependencies
  • install the pinned tools/requirements-llm.txt set with python -m pip in root and consumer-template workflow copies
  • make check_test_dependencies.sh recommend python -m pytest when a repo does not provide ./scripts/run_tests.sh

Validation

  • PYTHONPYCACHEPREFIX=/tmp/workflows-syncfix-pycache python3 -m pytest tests/workflows/test_workflow_llm_installs.py tests/scripts/test_validate_dependency_test_setup.py tests/scripts/test_generate_llm_workflow_update_comment.py tests/docs/test_workflow_snippets_yaml.py -q
  • python3 scripts/validate_template_sync.py
  • python3 scripts/validate_template_completeness.py
  • git diff --check

Related sync blocker: stranske/Manager-Database#1388.

Summary by CodeRabbit

  • Bug Fixes

    • Updated workflow dependency installs to use a consistent pinned Python command and a single LLM requirements file.
    • Added caching for Python packages in supported workflows to speed up runs.
    • Expanded workflow coverage to include the issue optimizer path.
  • Documentation

    • Refreshed workflow update guidance and checklists to match the new install and cache expectations.
  • Tests

    • Adjusted validation to accept the updated install command format and added checks for the new workflow coverage.

Copilot AI review requested due to automatic review settings July 7, 2026 06:11
@stranske stranske added automation Automation and workflow automation maintenance Maintenance tasks sync codex codex-automation labels Jul 7, 2026
@stranske
stranske temporarily deployed to agent-standard July 7, 2026 06:11 — with GitHub Actions Inactive
@coderabbitai

coderabbitai Bot commented Jul 7, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Standardizes Python dependency installation to python -m pip install -r tools/requirements-llm.txt across agents-auto-pilot and agents-issue-optimizer workflows (root and consumer templates), removing conditional requirements.txt and hardcoded langchain* installs. Updates related docs, drift allowlist, comment-generation script, and tests, plus an unrelated test-command fallback tweak.

Changes

Pinned LLM Install Standardization

Layer / File(s) Summary
Root workflow pinned installs
.github/workflows/agents-auto-pilot.yml, .github/workflows/agents-issue-optimizer.yml
Both workflows switch dependency install steps to python -m pip install -r tools/requirements-llm.txt, removing conditional requirements.txt and langchain* installs.
Consumer template parity
templates/consumer-repo/.github/workflows/agents-auto-pilot.yml, templates/consumer-repo/.github/workflows/agents-issue-optimizer.yml
Consumer-repo templates mirror the pinned install command change.
Docs, snippets, and drift allowlist
docs/workflow-snippets/agents-auto-pilot-install.yml, docs/workflow-updates/agents-auto-pilot-changes.yml, docs/workflow-updates/README.md, agents/codex-1447.md, config/template-drift-allowlist.txt
Snippets, update instructions, checklist, and allowlist fingerprints/reasons are revised to reflect the pinned command and cache key requirements.
Comment generator script
scripts/generate_llm_workflow_update_comment.py
DEFAULT_WORKFLOWS gains agents-issue-optimizer.yml, and generated body text now references python -m pip install -r tools/requirements-llm.txt.
Test suite updates
tests/docs/test_workflow_snippets_yaml.py, tests/scripts/test_generate_llm_workflow_update_comment.py, tests/workflows/test_workflow_llm_installs.py
Tests assert the pinned install command variants, exact command counts, and issue-optimizer workflow inclusion.

Test Command Fallback

Layer / File(s) Summary
Conditional run_tests.sh check
scripts/check_test_dependencies.sh
Success message now conditionally suggests ./scripts/run_tests.sh if executable, else falls back to python -m pytest.

Estimated code review effort: 2 (Simple) | ~12 minutes

Possibly related PRs

  • stranske/Workflows#2397: Both PRs re-baseline config/template-drift-allowlist.txt fingerprint/reason entries for intentional workflow divergences.
  • stranske/Workflows#2608: Both PRs modify comment-generation logic in scripts/generate_llm_workflow_update_comment.py.

Suggested labels: dependencies

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: pinning consumer LLM workflow installs.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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.
✨ 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/fix-sync-llm-installs

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

@stranske
stranske enabled auto-merge (squash) July 7, 2026 06:11
@stranske-keepalive

Copy link
Copy Markdown
Contributor

Workflow source needed

PR #2730 needs either a linked GitHub issue or one valid non-issue Workflow Source before PR metadata automation can manage it safely.

Please do one of:

  • Add <!-- meta:issue:123 --> or a normal Closes #123 / Related to #123 line.
  • Check one Workflow Source option in the PR body.
  • Add a hidden marker such as <!-- workflow-source:local_request -->, <!-- workflow-source:manual_remote -->, <!-- workflow-source:review_followup -->, <!-- workflow-source:sync_campaign -->, or <!-- workflow-source:dependabot -->.
  • Add a workflow source label such as workflow:source-direct-pr, workflow:source-local-request, workflow:source-review-followup, workflow:source-sync, or workflow:no-automation.

Once a valid source is present, this warning will not be reposted.

@agents-workflows-bot

agents-workflows-bot Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Automated Status Summary

Head SHA: 15af0d0
Latest Runs: ⏳ pending — Gate
Required contexts: Gate / gate, Health 45 Agents Guard / guard
Required: core tests (3.12): ⏳ pending, core tests (3.13): ⏳ pending, docker smoke: ⏳ pending, gate: ⏳ pending

Workflow / Job Result Logs
(no jobs reported) ⏳ pending

Coverage Overview

  • Coverage history entries: 1

Coverage Trend

Metric Value
Current 75.70%
Baseline 85.00%
Delta -9.30%
Minimum 70.00%
Status ✅ Pass

Top Coverage Hotspots (lowest coverage)

File Coverage Missing
scripts/issue_dedup_smoke.py 0.0% 4
scripts/runner_lib/__main__.py 0.0% 3
scripts/validate_template_sync.py 0.0% 77
scripts/langchain/topic_splitter.py 19.1% 57
tools/codex_log_analyzer.py 19.6% 140
scripts/repo_review_round2_runner.py 25.1% 344
scripts/prune_agent_stubs.py 39.7% 26
scripts/repo_review_round1_runner.py 40.7% 133
tools/ensure_workflow_timeout_variables.py 42.1% 74
scripts/sync_label_docs.py 42.9% 64
tools/ci_failure_triage.py 44.2% 123
scripts/repo_review_backlog_scan.py 45.3% 116
scripts/repo_review_body_writer.py 46.5% 86
tools/codex_session_analyzer.py 47.9% 59
scripts/create_verifier_labels.py 48.3% 58

Low Coverage Files (<50.0%)

File Coverage Missing
scripts/issue_dedup_smoke.py 0.0% 4
scripts/runner_lib/__main__.py 0.0% 3
scripts/validate_template_sync.py 0.0% 77
scripts/langchain/topic_splitter.py 19.1% 57
tools/codex_log_analyzer.py 19.6% 140
scripts/repo_review_round2_runner.py 25.1% 344
scripts/prune_agent_stubs.py 39.7% 26
scripts/repo_review_round1_runner.py 40.7% 133
tools/ensure_workflow_timeout_variables.py 42.1% 74
scripts/sync_label_docs.py 42.9% 64
tools/ci_failure_triage.py 44.2% 123
scripts/repo_review_backlog_scan.py 45.3% 116
scripts/repo_review_body_writer.py 46.5% 86
tools/codex_session_analyzer.py 47.9% 59
scripts/create_verifier_labels.py 48.3% 58

Updated automatically; will refresh on subsequent CI/Docker completions.


Keepalive checklist

Scope

No scope information available

Tasks

  • No tasks defined

Acceptance criteria

  • No acceptance criteria defined

@stranske
stranske force-pushed the codex/fix-sync-llm-installs branch from d81134f to 07adcac Compare July 7, 2026 06:13
@stranske
stranske temporarily deployed to agent-high-privilege July 7, 2026 06:14 — with GitHub Actions Inactive

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

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

# Install langchain dependencies
pip install langchain langchain-core langchain-openai \
langchain-anthropic langchain-community
python -m pip install -r tools/requirements-llm.txt

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 Install deps from the checked-out Workflows copy

In this consumer template, the job checks out stranske/Workflows into workflows-scripts and later runs python workflows-scripts/scripts/langchain/..., but this line installs the consumer checkout's tools/requirements-llm.txt. When Workflows main updates the optimizer scripts or their pinned LLM dependencies before the consumer sync lands, the workflow executes newer workflows-scripts code with stale consumer pins and can fail at import/runtime; install workflows-scripts/tools/requirements-llm.txt here or pin the Workflows checkout to the same synced revision.

Useful? React with 👍 / 👎.

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

This PR tightens the consumer-facing agent workflows’ LLM dependency installation so they consistently install the pinned tools/requirements-llm.txt set (via python -m pip) and avoid pre-installing a consumer repo’s requirements.txt ahead of LLM deps, with tests/docs updated to reflect the new contract.

Changes:

  • Update agents-auto-pilot.yml and agents-issue-optimizer.yml (root + consumer template copies) to install LLM deps via python -m pip install -r tools/requirements-llm.txt and remove the prior floating/consumer requirements.txt installs.
  • Extend workflow/tests + snippet tests to cover the optimizer workflow and accept python -m pip in install snippets.
  • Update workflow-update docs/snippets and local tooling output (check_test_dependencies.sh) to match the new guidance.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
tests/workflows/test_workflow_llm_installs.py Adds coverage for pinned LLM installs in agents-issue-optimizer.yml and updates the expected install command to python -m pip.
tests/docs/test_workflow_snippets_yaml.py Accepts python -m pip install -r ... in snippet validation (but needs indentation cleanup for stable formatting).
templates/consumer-repo/.github/workflows/agents-issue-optimizer.yml Switches optimizer to install pinned LLM deps from tools/requirements-llm.txt (removing repo requirements.txt + floating langchain installs).
templates/consumer-repo/.github/workflows/agents-auto-pilot.yml Switches auto-pilot to python -m pip install -r tools/requirements-llm.txt and removes the conditional consumer requirements.txt install.
scripts/generate_llm_workflow_update_comment.py Updates the needs-human guidance text to reference python -m pip install -r tools/requirements-llm.txt (but currently omits issue-optimizer despite this PR changing it).
scripts/check_test_dependencies.sh Recommends python -m pytest when ./scripts/run_tests.sh is absent.
docs/workflow-updates/README.md Updates verification guidance for auto-pilot’s pinned install (but currently doesn’t include issue-optimizer).
docs/workflow-updates/agents-auto-pilot-changes.yml Updates the protected-workflow snippet to use python -m pip install -r tools/requirements-llm.txt.
docs/workflow-snippets/agents-auto-pilot-install.yml Updates the snippet to use python -m pip install -r tools/requirements-llm.txt.
.github/workflows/agents-issue-optimizer.yml Switches optimizer to install pinned LLM deps from tools/requirements-llm.txt (removing repo requirements.txt + floating langchain installs).
.github/workflows/agents-auto-pilot.yml Switches auto-pilot to python -m pip install -r tools/requirements-llm.txt and removes the conditional consumer requirements.txt install.

Comment on lines +70 to +74
assert any(
isinstance(step, dict)
and isinstance(step.get("run"), str)
and any(
line.strip() == f"pip install -r {requirements_path}"
for line in step["run"].splitlines()
)
and any(
line.strip() in {
Comment thread docs/workflow-updates/README.md Outdated
Comment on lines 19 to 22
**Verification**
1. Confirm `.github/workflows/agents-auto-pilot.yml` contains `pip install -r tools/requirements-llm.txt` and no unpinned `langchain` install commands.
1. Confirm `.github/workflows/agents-auto-pilot.yml` contains `python -m pip install -r tools/requirements-llm.txt` and no unpinned `langchain` install commands.
2. Confirm `.github/workflows/reusable-agents-verifier.yml` contains `pip install -r .workflows-lib/tools/requirements-llm.txt` in both evaluate and compare paths.
3. Confirm both workflows include `actions/cache@v4` steps with keys that include `python-version` and the relevant `hashFiles(...)` call.
Comment thread scripts/generate_llm_workflow_update_comment.py
@stranske
stranske temporarily deployed to agent-high-privilege July 7, 2026 06:32 — with GitHub Actions Inactive
@stranske
stranske merged commit 87a5587 into main Jul 7, 2026
52 of 55 checks passed
@stranske
stranske deleted the codex/fix-sync-llm-installs branch July 7, 2026 06:36

@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 `@config/template-drift-allowlist.txt`:
- Around line 93-98: The allowlist entry for pair.11 is out of date because the
template hash no longer matches the current contents of
templates/consumer-repo/.github/workflows/agents-issue-optimizer.yml. Regenerate
or update the pair.11 hashes in config/template-drift-allowlist.txt so
template_sha256 reflects the latest template while keeping main_sha256
unchanged, and preserve the existing reason text unless the divergence meaning
has changed.
🪄 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: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: fbb49f6d-32e1-444a-ba9b-286ed149a73e

📥 Commits

Reviewing files that changed from the base of the PR and between 9ab5891 and a240c90.

📒 Files selected for processing (14)
  • .github/workflows/agents-auto-pilot.yml
  • .github/workflows/agents-issue-optimizer.yml
  • agents/codex-1447.md
  • config/template-drift-allowlist.txt
  • docs/workflow-snippets/agents-auto-pilot-install.yml
  • docs/workflow-updates/README.md
  • docs/workflow-updates/agents-auto-pilot-changes.yml
  • scripts/check_test_dependencies.sh
  • scripts/generate_llm_workflow_update_comment.py
  • templates/consumer-repo/.github/workflows/agents-auto-pilot.yml
  • templates/consumer-repo/.github/workflows/agents-issue-optimizer.yml
  • tests/docs/test_workflow_snippets_yaml.py
  • tests/scripts/test_generate_llm_workflow_update_comment.py
  • tests/workflows/test_workflow_llm_installs.py

Comment on lines 93 to +98
[pair.11]
main = .github/workflows/agents-issue-optimizer.yml
template = templates/consumer-repo/.github/workflows/agents-issue-optimizer.yml
main_sha256 = 26806e76cd620e227c81566f4db0cb9a4eca2ddd4c3e05a941d2c4072b2fe3b5
template_sha256 = ea5a33238a2dfc8bbc5e4661f66751dde1e9ca853b2cf77ed4eb286865fb9c93
reason = Intentional divergence (re-baselined 2026-06-14): consumer template SHA-pins third-party actions per the fleet action-pin contract (docs/HISTORY.md, PR #1925) and sets LangSmith tracing env; root uses floating major tags with repo-internal concurrency + sparse-checkout (docs/fixes/sparse-checkout-audit-2026-02-03.csv). Fingerprints refreshed after #2391/#2394 bumps. Do not align: would strip consumer action pins.
main_sha256 = 1e2fb1b588d00f694fd9d02816944e68a4d1a8041f4f052730b1f30f3ad696db
template_sha256 = bbd9d30e392d3df884ebabd9738fcd5864d79754dcfc04068466132e4c2e769d
reason = Intentional divergence re-baselined 2026-07-07: root and consumer issue-optimizer workflows keep different auth plumbing/action pin surfaces, but both now use the pinned tools/requirements-llm.txt install path with python -m pip. Do not align wholesale because that would strip consumer action pins/token setup.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🔴 Critical | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Recompute sha256 for the actual current workflow files to compare against the allowlist entries.
sha256sum .github/workflows/agents-issue-optimizer.yml templates/consumer-repo/.github/workflows/agents-issue-optimizer.yml
fd check_template_drift.py --exec cat {}

Repository: stranske/Workflows

Length of output: 25459


🏁 Script executed:

#!/bin/bash
set -euo pipefail

python3 - <<'PY'
from pathlib import Path
import hashlib

def normalize_text(text: str) -> str:
    normalized = text.replace("\r\n", "\n").replace("\r", "\n")
    lines = [line.rstrip() for line in normalized.split("\n")]
    while lines and lines[-1] == "":
        lines.pop()
    if not lines:
        return ""
    return "\n".join(lines) + "\n"

def normalized_sha256(path: Path) -> str:
    text = path.read_text(encoding="utf-8")
    return hashlib.sha256(normalize_text(text).encode("utf-8")).hexdigest()

paths = [
    Path("config/template-drift-allowlist.txt"),
    Path(".github/workflows/agents-issue-optimizer.yml"),
    Path("templates/consumer-repo/.github/workflows/agents-issue-optimizer.yml"),
]
for path in paths:
    print(f"== {path} ==")
    if path.exists():
        text = path.read_text(encoding="utf-8").splitlines()
        for i, line in enumerate(text[92:98], start=93):
            print(f"{i}: {line}")
        if path.suffix == ".yml":
            print(f"normalized_sha256={normalized_sha256(path)}")
            print(f"line_count={len(text)}")
    else:
        print("MISSING")
PY

Repository: stranske/Workflows

Length of output: 1616


🏁 Script executed:

#!/bin/bash
set -euo pipefail

python3 - <<'PY'
from pathlib import Path
import hashlib
import configparser

def normalize_text(text: str) -> str:
    normalized = text.replace("\r\n", "\n").replace("\r", "\n")
    lines = [line.rstrip() for line in normalized.split("\n")]
    while lines and lines[-1] == "":
        lines.pop()
    if not lines:
        return ""
    return "\n".join(lines) + "\n"

def normalized_sha256(text: str) -> str:
    return hashlib.sha256(normalize_text(text).encode("utf-8")).hexdigest()

repo = Path('.').resolve()
allowlist_path = repo / 'config/template-drift-allowlist.txt'
main_path = repo / '.github/workflows/agents-issue-optimizer.yml'
template_path = repo / 'templates/consumer-repo/.github/workflows/agents-issue-optimizer.yml'

for p in [allowlist_path, main_path, template_path]:
    print(f"== {p.relative_to(repo)} ==")
    print(f"exists={p.exists()}")
    if p.exists():
        txt = p.read_text(encoding='utf-8')
        print(f"normalized_sha256={normalized_sha256(txt)}")
        print(f"raw_bytes={len(txt.encode('utf-8'))}")
        if p == allowlist_path:
            parser = configparser.ConfigParser(interpolation=None)
            parser.read(p, encoding='utf-8')
            for section in parser.sections():
                if section == 'pair.11':
                    print("pair.11 parsed values:")
                    for key in ['main', 'template', 'main_sha256', 'template_sha256', 'reason']:
                        print(f"  {key}={parser.get(section, key)}")
PY

python3 - <<'PY'
from pathlib import Path
import hashlib
import configparser
import yaml

def normalize_text(text: str) -> str:
    normalized = text.replace("\r\n", "\n").replace("\r", "\n")
    lines = [line.rstrip() for line in normalized.split("\n")]
    while lines and lines[-1] == "":
        lines.pop()
    if not lines:
        return ""
    return "\n".join(lines) + "\n"

def normalized_sha256(text: str) -> str:
    return hashlib.sha256(normalize_text(text).encode("utf-8")).hexdigest()

repo = Path('.').resolve()
allowlist = configparser.ConfigParser(interpolation=None)
allowlist.read(repo / 'config/template-drift-allowlist.txt', encoding='utf-8')
entry = allowlist['pair.11']
main_path = repo / entry['main']
template_path = repo / entry['template']
main_text = main_path.read_text(encoding='utf-8')
template_text = template_path.read_text(encoding='utf-8')

print("pair.11 match status:")
print("  main_hash_matches=", entry['main_sha256'] == normalized_sha256(main_text))
print("  template_hash_matches=", entry['template_sha256'] == normalized_sha256(template_text))
print("  content_equal=", normalize_text(main_text) == normalize_text(template_text))

# Reproduce checker results for all pairs using the repo's discovery rules
manifest_path = repo / '.github/sync-manifest.yml'
manifest = yaml.safe_load(manifest_path.read_text(encoding='utf-8')) if manifest_path.exists() else {}
workflow_names = set()
for e in (manifest or {}).get('workflows', []) or []:
    if isinstance(e, dict):
        src = str(e.get('source', ''))
        if src.startswith('.github/workflows/'):
            workflow_names.add(src.removeprefix('.github/workflows/'))

alias = {"agents-63-issue-intake.yml": "agents-issue-intake.yml"}
main_dir = repo / '.github/workflows'
template_dir = repo / 'templates/consumer-repo/.github/workflows'
pairs = []
for main in sorted(main_dir.glob('agents-*.yml')):
    template_name = alias.get(main.name, main.name)
    template = template_dir / template_name
    if (not template.exists()) and (main.name not in alias) and (template_name not in workflow_names):
        continue
    pairs.append((main, template))

drifts = []
for main, template in pairs:
    main_text = main.read_text(encoding='utf-8')
    if not template.exists():
        drifts.append((main.name, template.name, 'missing-template'))
        continue
    template_text = template.read_text(encoding='utf-8')
    if normalize_text(main_text) != normalize_text(template_text):
        drifts.append((main.name, template.name, 'diff'))
print("drift_pairs=", drifts)
PY

Repository: stranske/Workflows

Length of output: 2446


Refresh pair.11's template hash config/template-drift-allowlist.txt:93-98main_sha256 still matches, but template_sha256 is stale for templates/consumer-repo/.github/workflows/agents-issue-optimizer.yml, so this pair will keep tripping the drift check until the allowlist entry is regenerated.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~94-~94: The official name of this software platform is spelled with a capital “H”.
Context: ...s digest to ebef44a. [pair.11] main = .github/workflows/agents-issue-optimizer.yml te...

(GITHUB)


[uncategorized] ~95-~95: The official name of this software platform is spelled with a capital “H”.
Context: ...yml template = templates/consumer-repo/.github/workflows/agents-issue-optimizer.yml ma...

(GITHUB)

🤖 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 `@config/template-drift-allowlist.txt` around lines 93 - 98, The allowlist
entry for pair.11 is out of date because the template hash no longer matches the
current contents of
templates/consumer-repo/.github/workflows/agents-issue-optimizer.yml. Regenerate
or update the pair.11 hashes in config/template-drift-allowlist.txt so
template_sha256 reflects the latest template while keeping main_sha256
unchanged, and preserve the existing reason text unless the divergence meaning
has changed.

Source: Pipeline failures

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants