Skip to content

chore: sync workflow templates - #5800

Closed
stranske wants to merge 1 commit into
phase-3from
sync/workflows-f8b96e4f5418
Closed

chore: sync workflow templates#5800
stranske wants to merge 1 commit into
phase-3from
sync/workflows-f8b96e4f5418

Conversation

@stranske

@stranske stranske commented Aug 8, 2026

Copy link
Copy Markdown
Owner

Sync Summary

Files Updated

  • agents-issue-intake.yml: Issue intake - processes new issues for agent assignment
  • agents-issue-optimizer.yml: Issue optimizer - LangChain-based issue formatting and optimization (Phase 1)
  • agents-issue-format-guard.yml: Issue format guard - validates issues on open/edit/reopen, hold/exemption-label changes, and manual dispatch against AGENT_ISSUE_FORMAT, while durable/wontfix and bot issues remain exempt. Pause and needs-human labels hold dispatch. Any invalid non-exempt issue change on those triggers clears stale agents:formatted state, and hold removal revalidates on resume. Non-conforming unheld work gets agents:format so the optimizer repairs it. Requires .github/scripts/issue_format.py.
  • agents-auto-label.yml: Auto-label - suggests/applies labels based on semantic matching (Phase 5A)
  • issue_format.py: Pure-stdlib validator for AGENT_ISSUE_FORMAT compliance. Single fleet definition of agent-processable; used by agents-issue-format-guard.yml and callable directly by local filers to pre-flight before gh issue create (non-zero exit = unfit). Do not fork per repo.
  • github-api-with-retry.js: GitHub API retry wrapper with exponential backoff and pagination support - required by agents-auto-pilot.yml

Files Skipped

  • pr-00-gate.yml: File exists and sync_mode is create_only
  • ci.yml: File exists and sync_mode is create_only
  • renovate.json: File exists and sync_mode is create_only
  • cross-repo-smoke.yml: File exists and sync_mode is create_only
  • AGENTS.md: Repo keeps historical Agents.md casing to avoid case-only path conflicts
  • llm_slots.json: None

Review Checklist

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

Source: stranske/Workflows
Source SHA: fdc561a5423df88576fb3e000c024f30df1611f1
Template hash: f8b96e4f5418
Consumer-sync plan ID: sha256:f8b96e4f541845294396e3adeed52535aa363a92f660bdf73e9b95c55eb51cdc
Sync phase: canary
Sync branch: sync/workflows-f8b96e4f5418
Consumer repo: stranske/Trend_Model_Project
Manifest: .github/sync-manifest.yml

  Automated sync from stranske/Workflows
  Template hash: f8b96e4f5418

  Changes synced from sync-manifest.yml
Copilot AI lite review requested due to automatic review settings August 8, 2026 22:03
@stranske stranske added sync Automated sync from Workflows automated Automated sync from Workflows labels Aug 8, 2026
@cursor

cursor Bot commented Aug 8, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@coderabbitai

coderabbitai Bot commented Aug 8, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are limited based on label configuration.

🚫 Review skipped — only excluded labels are configured. (7)
  • sync
  • workflow:source-sync
  • workflow:source-maintenance
  • consumer-sync
  • integration-sync
  • workflows-sync
  • template-sync

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: a7d62e9f-7f5d-4ded-810e-2edb5885d66f

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

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 syncs workflow automation from stranske/Workflows into stranske/Trend_Model_Project, primarily to improve issue formatting/validation behavior and keep agent workflows aligned with the fleet standard.

Changes:

  • Added an issue format guard workflow plus a pure-stdlib issue body validator to enforce AGENT_ISSUE_FORMAT and route non-conforming issues to the optimizer.
  • Updated the issue optimizer workflow to add concurrency control, improve dedup robustness, validate formatted output before applying agents:formatted, and release agents:format on failed format runs.
  • Adjusted issue intake and auto-label workflows to better gate execution (e.g., skip closed issues; isolate eligibility action checkout path).

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
.github/workflows/agents-issue-optimizer.yml Adds concurrency + stronger formatting/lease handling and output validation.
.github/workflows/agents-issue-intake.yml Prevents bridge routing on closed issues.
.github/workflows/agents-issue-format-guard.yml New guard workflow to validate issues and dispatch optimizer format runs when needed.
.github/workflows/agents-auto-label.yml Checks out eligibility action into a dedicated path and uses it from there.
.github/scripts/issue_format.py New canonical (stdlib-only) validator for AGENT_ISSUE_FORMAT.
.github/scripts/github-api-with-retry.js Routes retry logging to stderr for better signal separation.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +46 to +50
uses: ./.github/actions/setup-api-client
with:
# This guard only reads issue comments with the workflow token. Do not
# expose the repository-wide secret bundle to the composite action.
github_token: ${{ github.token }}

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

ℹ️ 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 +104 to +106
- name: Invalidate stale format completion after an invalid issue change
if: >-
steps.issue.outputs.exempt != 'true' && steps.validate.outputs.rc == '1'

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 Revalidate before clearing formatted state

When an issue is changed from invalid to valid while an older guard run is in progress, this step removes agents:formatted based on the stale body.md; the later routing step correctly re-fetches the live valid body and exits, while the queued valid edited run never restores the label because restoration is limited to hold-label removal. The issue consequently loses the ready-for-agent marker despite conforming, so re-fetch and revalidate before removing the label.

Useful? React with 👍 / 👎.

Comment on lines +121 to +122
- name: Route non-conforming issue to the optimizer
if: steps.issue.outputs.exempt != 'true' && steps.issue.outputs.held != 'true' && steps.validate.outputs.rc == '1'

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 Skip closed issues before optimizer dispatch

When a non-exempt closed issue's title or body is edited, the issues: edited event reaches this condition and dispatches the optimizer because no state check is made, even though Resolve issue fetched .state. The optimizer can then rewrite and relabel an already-closed issue; the intake workflow updated in this same commit explicitly excludes closed issues, so apply the equivalent state guard before routing.

Useful? React with 👍 / 👎.

def _task_has_concrete_target(item: str) -> bool:
"""True when a task checkbox names a file, path, symbol, config, job, or command."""
# Category word must be followed by a concrete identifier (not "file handling").
for match in re.finditer(rf"\b{_TASK_CATEGORY}\s+(`[^`]+`|[^\s]+)", item, re.I):

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 Accept identifiers that precede their artifact type

For tasks written in the repository guide's documented style, such as Write unit tests for calculateDiscount function, this matcher never examines calculateDiscount because it only recognizes a category followed by its identifier. The task is therefore reported as lacking a concrete target, and because one rejected checkbox invalidates the entire body, the guard unnecessarily dispatches formatting for otherwise compliant issues; recognize the common identifier-before-category form as well.

Useful? React with 👍 / 👎.

@stranske

stranske commented Aug 9, 2026

Copy link
Copy Markdown
Owner Author

Superseded by newer sync wave #5801 (sync/workflows-f74d65a1c283).

@stranske stranske closed this Aug 9, 2026
@stranske
stranske deleted the sync/workflows-f8b96e4f5418 branch August 9, 2026 01:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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