Skip to content

chore: sync workflow templates#124

Merged
stranske merged 4 commits intomainfrom
sync/workflows-249ff585c47e
Feb 15, 2026
Merged

chore: sync workflow templates#124
stranske merged 4 commits intomainfrom
sync/workflows-249ff585c47e

Conversation

@stranske
Copy link
Copy Markdown
Owner

Sync Summary

Files Updated

  • autofix.yml: Autofix workflow - automatically fixes lint/format issues
  • agents-orchestrator.yml: Agent orchestrator - dispatches work to Codex/Copilot agents
  • agents-pr-meta.yml: PR metadata - tracks agent PR state and labels (deprecated; replaced by agents-80-pr-event-hub.yml, removal no earlier than 2026-02-15)
  • agents-issue-intake.yml: Issue intake - processes new issues for agent assignment
  • agents-80-pr-event-hub.yml: PR event hub - consolidates PR meta, bot comments, and verify-to-issue handlers
  • agents-81-gate-followups.yml: Gate followups hub - consolidates keepalive and autofix followups
  • agents-keepalive-loop.yml: Keepalive loop - continues agent work until tasks complete (deprecated; replaced by agents-81-gate-followups.yml, removal no earlier than 2026-02-15)
  • agents-keepalive-loop-reporter.yml: Keepalive reporter - posts summary when keepalive run fails or cancels
  • agents-71-codex-belt-dispatcher.yml: Codex belt dispatcher - selects issues and creates codex/issue-N branches for agent work
  • agents-72-codex-belt-worker.yml: Codex belt worker - executes Codex agent on issues with full prompt and context
  • agents-72-codex-belt-worker-dispatch.yml: Codex belt worker dispatch wrapper - allows workflow_dispatch for the worker
  • agents-73-codex-belt-conveyor.yml: Codex belt conveyor - orchestrates belt worker execution and handles completion
  • agents-autofix-loop.yml: Autofix loop - dispatches Codex when autofix can't fix Gate failures (deprecated; replaced by agents-81-gate-followups.yml, removal no earlier than 2026-02-15)
  • agents-verifier.yml: Verifier - validates agent work meets acceptance criteria
  • list-llm-models.yml: List LLM Models - helper to show available models for verifier
  • agents-bot-comment-handler.yml: Bot comment handler - dispatches agents to address bot review comments (deprecated; replaced by agents-80-pr-event-hub.yml, removal no earlier than 2026-02-15)
  • agents-issue-optimizer.yml: Issue optimizer - LangChain-based issue formatting and optimization (Phase 1)
  • agents-verify-to-issue.yml: Verify to issue v1 (DEPRECATED) - disabled workflow, replaced by v2
  • agents-verify-to-issue-v2.yml: Verify to issue v2 - creates follow-up issues from verification feedback with LLM curation (Phase 4E; deprecated for agents-80-pr-event-hub.yml, removal no earlier than 2026-02-15)
  • agents-verify-to-new-pr.yml: Verify to new PR - creates follow-up issue and triggers auto-pilot to prepare a new PR
  • agents-verify-to-new-pr-autopilot.yml: Verify to new PR continuation - workflow_run bridge to auto-pilot after follow-up issue creation
  • agents-auto-label.yml: Auto-label - suggests/applies labels based on semantic matching (Phase 5A)
  • agents-capability-check.yml: Capability check - pre-flight agent feasibility gate (Phase 3A)
  • agents-decompose.yml: Task decomposition - breaks large issues into sub-tasks (Phase 3B)
  • agents-dedup.yml: Duplicate detection - flags similar open issues (Phase 3C)
  • agents-guard.yml: Agents guard - enforces agents workflow protections (Health 45)
  • agents-auto-pilot.yml: Auto-pilot - end-to-end automation orchestrator (format → optimize → agent → verify)
  • agents-weekly-metrics.yml: Weekly metrics - aggregates auto-pilot, keepalive, autofix and verifier metrics into summary reports
  • maint-coverage-guard.yml: Coverage guard - daily baseline monitoring with automatic issue creation
  • autofix-versions.env: Autofix tool version pins - shared dev tool versions (synced)
  • dependabot-automerge.yml: Dependabot auto-merge - automatically merges dependabot PRs when checks pass
  • reusable-pr-context.yml: Reusable PR context workflow - centralized PR data fetching via GraphQL
  • keepalive_next_task.md: Keepalive prompt - instructs Codex on next task in PR
  • autofix_from_ci_failure.md: Autofix prompt - instructs Codex to fix CI/Gate failures
  • fix_ci_failures.md: CI fix prompt - general CI failure resolution instructions
  • fix_bot_comments.md: Bot comments prompt - instructs Codex to address bot review comments
  • verifier_acceptance_check.md: Verifier prompt - acceptance criteria validation
  • fix_merge_conflicts.md: Conflict resolution prompt - instructs Codex to resolve merge conflicts
  • sync_dev_dependencies.py: Syncs dev dependency versions from autofix-versions.env to pyproject.toml
  • resolve_mypy_pin.py: Resolves mypy version pinning - required by reusable CI workflow
  • requirements-llm.txt: Pinned LLM dependencies - required by agents-auto-pilot.yml
  • coverage_trend.py: Generates coverage trend summaries - required by reusable CI workflow
  • coverage_history_append.py: Appends coverage data to history file - required by reusable CI workflow
  • ci_metrics.py: Collects CI metrics for dashboard - required by reusable CI workflow
  • ci_history.py: Manages CI history data - required by reusable CI workflow
  • ci_coverage_delta.py: Computes coverage delta between runs - required by reusable CI workflow
  • sync_test_dependencies.py: Syncs test dependency pins - required by reusable CI workflow
  • check_test_dependencies.sh: Checks test dependencies match - required by reusable CI workflow
  • autopilot_step_timer.py: Emits step timing timestamps for auto-pilot workflows - required by agents-auto-pilot.yml
  • autopilot_metrics_collector.py: Collects and appends structured auto-pilot metrics to NDJSON log - required by agents-auto-pilot.yml
  • decode_raw_input.py: Decodes raw input from ChatGPT connector
  • parse_chatgpt_topics.py: Parses ChatGPT conversation into issue topics
  • fallback_split.py: Fallback topic splitting when parsing fails
  • detect-changes.js: Detects changed files for CI path-based filtering
  • agents-guard.js: Health 45 agents guard logic used by the workflow protections
  • coverage-normalize.js: Normalizes coverage data across different report formats
  • maint-post-ci.js: Post-CI maintenance tasks and cleanup
  • gate-docs-only.js: Gate check for docs-only changes to skip full CI
  • checkout_source.js: Source checkout utilities for CI workflows
  • package.json: Node package manifest for .github scripts (vendored minimatch)
  • minimatch/ (53 files): Vendored minimatch dependency for .github scripts
  • brace-expansion/ (5 files): Vendored brace-expansion dependency (transitive dep of minimatch)
  • balanced-match/ (5 files): Vendored balanced-match dependency (transitive dep of brace-expansion)
  • issue_pr_locator.js: Locates PRs associated with issues
  • issue_context_utils.js: Utilities for issue context extraction
  • issue_scope_parser.js: Parses issue scope and requirements
  • keepalive_instruction_template.js: Generates keepalive instructions for Codex
  • keepalive_loop.js: Core keepalive loop logic
  • token_load_balancer.js: Dynamic token load balancer for API rate limit management
  • keepalive_prompt_routing.js: Prompt routing logic for keepalive - determines which prompt template to use
  • keepalive_state.js: Keepalive state management
  • timeout_config.js: Timeout configuration parser for keepalive - required by keepalive_loop.js
  • keepalive_guard_utils.js: Guard utilities for keepalive state protection
  • keepalive_contract.js: Keepalive contract definitions and validation
  • keepalive_gate.js: Gate evaluation logic for keepalive workflow
  • keepalive_worker_gate.js: Worker gate logic for keepalive workflow
  • keepalive_orchestrator_gate_runner.js: Orchestrator gate runner for keepalive
  • keepalive_post_work.js: Post-work handling for keepalive rounds
  • keepalive_prompt_composer.js: Composes prompts for keepalive Codex calls
  • api-helpers.js: GitHub API helper utilities
  • autopilot_metrics.js: AutoPilot metrics collection and reporting
  • github_api_retry.js: Retry logic for GitHub API calls
  • github-api-with-retry.js: GitHub API retry wrapper with exponential backoff and pagination support - required by agents-auto-pilot.yml
  • github-rate-limited-wrapper.js: Transparent rate-limit proxy - wraps all github.rest.* calls with automatic retry and token switching
  • rate-limit-aware-client.js: Rate limit aware client - proactively checks API limits before operations
  • prompt_injection_guard.js: Security guard against prompt injection attacks
  • prompt_integrity_guard.js: Integrity validation for prompts
  • error_classifier.js: Classifies CI errors for agent handling
  • error_diagnostics.js: Diagnostic utilities for error analysis
  • failure_comment_formatter.js: Formats failure comments for PR status updates
  • conflict_detector.js: Conflict detector - identifies merge conflicts for targeted resolution
  • merge_manager.js: Manages PR merge operations
  • comment-dedupe.js: Deduplicates bot comments on issues/PRs
  • bot-comment-dismiss.js: Collects ignored bot review comments for auto-dismiss handling
  • bot-comment-handler.js: Bot comment handler logic - processes bot review comments for dispatch
  • autofix_emit_report.py: Emits autofix report - required by reusable-18-autofix.yml
  • gate_summary.py: Gate summary renderer - generates PR gate check summary
  • should-post-review.js: Evaluates whether a progress review comment should be posted
  • keepalive_review_guard.js: Guards against posting empty/null progress review comments
  • post_completion_comment.js: Posts completion comments on PRs
  • verifier_ci_query.js: Queries CI status for verifier workflow
  • verifier_issue_formatter.js: Formats issues for verifier output
  • agents_orchestrator_resolve.js: Resolves agent orchestrator state
  • agents_pr_meta_keepalive.js: PR metadata handling for keepalive
  • agents_pr_meta_orchestrator.js: PR metadata orchestrator logic
  • agents_pr_meta_update_body.js: Updates PR body with agent metadata
  • agents_verifier_context.js: Context gathering for agent verifier
  • agents_dispatch_summary.js: Summarizes agent dispatch operations
  • agents_belt_scan.js: Scans agent belt for available tools
  • issue_optimizer.py: Issue optimizer - analyzes issues and suggests improvements
  • structured_output.py: Shared structured output helpers for LangChain workflows
  • issue_formatter.py: Issue formatter - converts raw text to AGENT_ISSUE_TEMPLATE format
  • issue_dedup.py: Issue deduplication - finds similar open issues
  • injection_guard.py: Prompt injection guard - validates prompts before LLM submission
  • progress_reviewer.py: Progress reviewer - evaluates agent progress for keepalive rounds
  • context_extractor.py: Context extractor - extracts relevant context from issues/PRs
  • semantic_matcher.py: Semantic matcher - vector similarity for issues/labels
  • capability_check.py: Capability check - pre-flight agent feasibility assessment
  • task_decomposer.py: Task decomposer - breaks large issues into sub-tasks
  • label_matcher.py: Label matcher - suggests labels based on semantic matching
  • pr_verifier.py: PR verifier - validates PR changes against acceptance criteria
  • followup_issue_generator.py: Follow-up issue generator - creates issues from verification feedback
  • integration_layer.py: Integration layer - coordinates LangChain components
  • topic_splitter.py: Topic splitter - splits conversations into discrete issues
  • format_issue.md: Prompt template for LLM-based issue formatting
  • analyze_issue.md: Prompt template for issue analysis/optimization
  • apply_suggestions.md: Prompt template for applying optimization suggestions
  • context_extract.md: Prompt template for context extraction
  • decompose_task.md: Prompt template for task decomposition
  • pr_evaluation.md: Prompt template for PR evaluation/verification
  • refine_tasks.md: Prompt template for task refinement and validation
  • verdict_extract.py: Verdict extractor - parses verification verdicts from LLM output
  • verdict_policy.py: Verdict policy engine - applies pass/fail rules to verification results
  • llm_provider.py: LLM provider configuration - GitHub Models and OpenAI client setup
  • langchain_client.py: LangChain client builder - multi-provider client with slot-based fallback and configuration
  • agents-guard.js: Guards against unauthorized agent workflow file changes
  • pr-context-graphql.js: GraphQL PR context fetcher - reduces 4+ REST calls to 1 GraphQL call
  • github-api-cache.js: Shared cache utilities for GitHub API requests used by PR context scripts
  • github-api-cache-client.js: Client wrapper for cached GitHub API requests
  • AGENT_INSTRUCTIONS.md: Agent instructions - base instructions for all Codex runs
  • copilot-instructions.md: Repository-specific instructions for GitHub Copilot
  • export-load-balancer-tokens/ (1 files): Local action for exporting load balancer tokens
  • copilot-skills/ (4 files): Copilot skill definitions - patterns for CI, GitHub ops, etc.
  • keepalive-instruction.md: Keepalive instruction template - directives for Codex on each round
  • setup-api-client/ (1 files): Unified API client setup - installs @octokit deps and exports all load balancer tokens
  • export-load-balancer-tokens/ (1 files): Export load balancer tokens action - required by reusable-10-ci-python.yml (deprecated, use setup-api-client)
  • AGENT_ISSUE_FORMAT.md: Format specification for agent-compatible issues
  • CI_SYSTEM_GUIDE.md: Guide to the CI system for agents
  • LABELS.md: Label definitions and usage
  • CODEX_TOKEN_REFRESH.md: Codex OAuth token refresh guide
  • CLAUDE.md: Context file for Claude/AI assistants
  • model_registry.json: Model registry - available LLM models and their capabilities
  • .gitattributes: Git attributes - merge strategies to prevent pr_body.md conflicts
  • agent_task.yml: Agent task issue template - structured format for agent-compatible issues
  • config.yml: Issue template chooser config - controls which templates appear in the UI
  • WORKFLOW_USER_GUIDE.md: Workflow user guide - explains the CI/agent system for repo consumers

Files Skipped

  • pr-00-gate.yml: File exists and sync_mode is create_only
  • ci.yml: File exists and sync_mode is create_only
  • dependabot.yml: File exists and sync_mode is create_only
  • llm_slots.json: None

Review Checklist

  • CI passes with updated workflows
  • No repo-specific customizations were overwritten

Source: stranske/Workflows
Manifest: .github/sync-manifest.yml

Automated sync from stranske/Workflows
Template hash: 249ff585c47e

Changes synced from sync-manifest.yml
Copilot AI review requested due to automatic review settings February 15, 2026 08:51
@stranske stranske added sync Automated sync from Workflows automated Automated sync from Workflows labels Feb 15, 2026
@stranske-keepalive
Copy link
Copy Markdown
Contributor

⚠️ Action Required: Unable to determine source issue for PR #124. The PR title, branch name, or body must contain the issue number (e.g. #123, branch: issue-123, or the hidden marker ).

@agents-workflows-bot
Copy link
Copy Markdown
Contributor

agents-workflows-bot bot commented Feb 15, 2026

🤖 Keepalive Loop Status

PR #124 | Agent: Codex | Iteration 0/5

Current State

Metric Value
Iteration progress [----------] 0/5
Action wait (missing-agent-label)
Disposition skipped (transient)
Gate success
Tasks 0/160 complete
Timeout 45 min (default)
Timeout usage 8m elapsed (19%, 37m remaining)
Keepalive ❌ disabled
Autofix ❌ disabled

🔍 Failure Classification

| Error type | infrastructure |
| Error category | resource |
| Suggested recovery | Confirm the referenced resource exists (repo, PR, branch, workflow, or file). |

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Syncs workflow templates and supporting scripts, including updates to agent/CI automation and improved robustness when invoking LLM clients.

Changes:

  • Updates autofix workflow logic to detect relevant failures via workflow jobs with a fallback to check runs.
  • Makes LLM invocation in followup_issue_generator.py resilient to missing langchain_core and varying response shapes.
  • Bumps pinned Ruff version in shared autofix-versions.env.

Reviewed changes

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

Show a summary per file
File Description
scripts/langchain/pr_verifier.py Removes stray whitespace-only line to align with synced formatting.
scripts/langchain/issue_optimizer.py Removes stray whitespace-only line to align with synced formatting.
scripts/langchain/followup_issue_generator.py Adds fallback import/invoke paths and response normalization for LLM calls.
.github/workflows/autofix.yml Improves autofix trigger gating by inspecting failed jobs for relevant lint failures.
.github/workflows/autofix-versions.env Updates shared tool pin for Ruff.

Comment on lines +1035 to +1039
LOGGER.warning(
"LLM invoke failed with config/metadata; using config/metadata fallback. Error: %s",
exc,
)
response = client.invoke(messages)
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

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

The warning message is misleading: the fallback call drops config (and therefore drops metadata/tags), so it’s not a “config/metadata fallback”. Consider updating the log text to something like “retrying without config/metadata” to make debugging and observability clearer.

Copilot uses AI. Check for mistakes.
Comment on lines 1046 to 1049
LOGGER.warning(
"LLM invoke failed with config/metadata; using config/metadata fallback. Error: %s",
exc,
)
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

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

Same issue as above: this branch retries client.invoke(prompt) without passing config, so the warning should indicate it’s falling back to an invocation without config/metadata (not “config/metadata fallback”).

Copilot uses AI. Check for mistakes.
parts.append(json.dumps(item, ensure_ascii=False, sort_keys=True))
else:
parts.append(str(item))
combined = "".join(parts).strip()
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

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

Joining parts with an empty separator can merge adjacent chunks and change meaning (e.g., ["Hello", "world"] becomes "Helloworld"). Consider joining with a separator that preserves boundaries (commonly "\n" or " ") or implementing a boundary-preserving join strategy for mixed chunk types.

Suggested change
combined = "".join(parts).strip()
combined = " ".join(parts).strip()

Copilot uses AI. Check for mistakes.
@github-actions github-actions bot added autofix Triggers autofix on PR autofix:patch labels Feb 15, 2026
@github-actions
Copy link
Copy Markdown
Contributor

Autofix updated these files:

  • scripts/langchain/issue_optimizer.py
  • scripts/langchain/pr_verifier.py
  • tests/test_validate_release_workflow_yaml.py

@stranske stranske merged commit 893adda into main Feb 15, 2026
29 checks passed
@stranske stranske deleted the sync/workflows-249ff585c47e branch February 15, 2026 09:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autofix Triggers autofix on PR automated Automated sync from Workflows sync Automated sync from Workflows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants