Skip to content

chore: sync workflow templates#274

Closed
stranske wants to merge 1 commit intomainfrom
sync/workflows-d2757b0c8597
Closed

chore: sync workflow templates#274
stranske wants to merge 1 commit intomainfrom
sync/workflows-d2757b0c8597

Conversation

@stranske
Copy link
Copy Markdown
Owner

Sync Summary

Files Updated

  • agents-keepalive-loop.yml: Keepalive loop - continues agent work until tasks complete
  • agents-verifier.yml: Verifier - validates agent work meets acceptance criteria
  • agents-auto-label.yml: Auto-label - suggests/applies labels based on semantic matching (Phase 5A)
  • agents-dedup.yml: Duplicate detection - flags similar open issues (Phase 3C)
  • agents-auto-pilot.yml: Auto-pilot - end-to-end automation orchestrator (format → optimize → agent → verify)
  • parse_chatgpt_topics.py: Parses ChatGPT conversation into issue topics
  • error_classifier.js: Classifies CI errors for agent handling
  • conflict_detector.js: Conflict detector - identifies merge conflicts for targeted resolution
  • issue_formatter.py: Issue formatter - converts raw text to AGENT_ISSUE_TEMPLATE format
  • llm_provider.py: LLM provider configuration - GitHub Models and OpenAI client setup

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

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: d2757b0c8597

Changes synced from sync-manifest.yml
Copilot AI review requested due to automatic review settings January 10, 2026 20:38
@stranske stranske added sync Automated sync from Workflows automated Automated sync from Workflows labels Jan 10, 2026
@github-actions
Copy link
Copy Markdown
Contributor

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

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Jan 10, 2026

🤖 Keepalive Loop Status

PR #274 | 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/13 complete
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). |

@github-actions github-actions bot added the autofix Triggers autofix on PR label Jan 10, 2026
@github-actions
Copy link
Copy Markdown
Contributor

Status | ✅ no new diagnostics
History points | 0
Timestamp | 2026-01-10 20:40:13 UTC
Report artifact | autofix-report-pr-274
Remaining | ∅
New | ∅
No additional artifacts

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

This PR syncs workflow templates from the stranske/Workflows repository, updating agent-related automation workflows and supporting scripts. The changes improve model selection for better evaluation quality, enhance duplicate detection accuracy, add task decomposition capabilities, and introduce a comprehensive auto-pilot workflow for end-to-end issue automation.

Changes:

  • Upgraded default LLM model from gpt-4o-mini to gpt-4o for stricter evaluation
  • Added task decomposition integration to issue formatter for better task breakdown
  • Introduced new agents-auto-pilot workflow for orchestrating the full issue-to-PR pipeline
  • Enhanced duplicate detection with higher similarity threshold (0.92) and title overlap filtering
  • Improved conflict detection by filtering out bot comments to reduce false positives

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
tools/llm_provider.py Updates default model to gpt-4o with explanation comment
scripts/langchain/issue_formatter.py Adds task decomposition functionality with new helper functions
.github/workflows/agents-verifier.yml Updates model defaults and descriptions for evaluation
.github/workflows/agents-keepalive-loop.yml Adds force_retry input parameter for manual retry control
.github/workflows/agents-dedup.yml Increases similarity threshold and adds title overlap filtering
.github/workflows/agents-auto-pilot.yml New 780-line workflow orchestrating complete automation pipeline
.github/workflows/agents-auto-label.yml Modifies auto-apply logic to prevent over-labeling with multiple labels
.github/scripts/parse_chatgpt_topics.py Adds admin and dependency section mappings
.github/scripts/error_classifier.js Adds debug logging for error classification
.github/scripts/conflict_detector.js Filters bot comments to reduce conflict detection false positives


from scripts.langchain import issue_optimizer

return issue_optimizer._apply_task_decomposition(formatted, {"task_splitting": suggestions})
Copy link

Copilot AI Jan 10, 2026

Choose a reason for hiding this comment

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

The code calls a private method issue_optimizer._apply_task_decomposition() from another module. Calling private methods (prefixed with underscore) from external modules violates encapsulation and is an anti-pattern. This creates tight coupling and the private method's signature or behavior could change without warning. Consider either making this a public method in the issue_optimizer module or refactoring to use a public API.

Suggested change
return issue_optimizer._apply_task_decomposition(formatted, {"task_splitting": suggestions})
# Prefer a public API on issue_optimizer if available; fall back gracefully.
apply_task_decomposition = getattr(issue_optimizer, "apply_task_decomposition", None)
if apply_task_decomposition is None:
# Backwards compatibility: attempt to use a private helper if it exists.
private_name = "_" + "apply_task_decomposition"
apply_task_decomposition = getattr(issue_optimizer, private_name, None)
if apply_task_decomposition is None:
return formatted
return apply_task_decomposition(formatted, {"task_splitting": suggestions})

Copilot uses AI. Check for mistakes.
Comment on lines +352 to +365
from scripts.langchain import task_decomposer

suggestions: list[dict[str, Any]] = []
for task in tasks:
decomposition = task_decomposer.decompose_task(task, use_llm=use_llm)
sub_tasks = decomposition.get("sub_tasks") or []
if sub_tasks:
suggestions.append({"task": task, "split_suggestions": sub_tasks})
if not suggestions:
return formatted

from scripts.langchain import issue_optimizer

return issue_optimizer._apply_task_decomposition(formatted, {"task_splitting": suggestions})
Copy link

Copilot AI Jan 10, 2026

Choose a reason for hiding this comment

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

The imports are placed inside the function instead of at the module level. While this can avoid circular imports, it impacts performance as the modules are imported every time the function is called. If these imports are not causing circular dependency issues, consider moving them to the top of the file. If they are needed here to avoid circular imports, add a comment explaining this.

Copilot uses AI. Check for mistakes.
Comment on lines +720 to +722
const waitTime = 45000; // 45 seconds
core.info(`Waiting ${waitTime/1000}s for ${currentStep} to complete...`);
await new Promise(resolve => setTimeout(resolve, waitTime));
Copy link

Copilot AI Jan 10, 2026

Choose a reason for hiding this comment

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

The hardcoded wait time of 45 seconds (45000ms) may not be sufficient for all prep workflows to complete. If the format/optimize/apply workflow takes longer than 45 seconds, the re-dispatch will occur before the previous step completes, potentially causing race conditions or duplicate work. Consider making this configurable or implementing a polling mechanism to check for actual completion.

Copilot uses AI. Check for mistakes.
@stranske stranske closed this Jan 11, 2026
@stranske stranske deleted the sync/workflows-d2757b0c8597 branch January 11, 2026 04:37
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