Skip to content

chore: sync workflow templates#332

Merged
stranske merged 1 commit intomainfrom
sync/workflows-43abb0f65dff
Mar 24, 2026
Merged

chore: sync workflow templates#332
stranske merged 1 commit intomainfrom
sync/workflows-43abb0f65dff

Conversation

@stranske
Copy link
Copy Markdown
Owner

Sync Summary

Files Updated

  • maint-76-claude-code-review.yml: Claude Code review (opt-in) - runs only on labeled PRs or manual dispatch
  • followup_issue_generator.py: Follow-up issue generator - creates issues from verification feedback

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: 43abb0f65dff

Changes synced from sync-manifest.yml
Copilot AI review requested due to automatic review settings March 24, 2026 22:39
@stranske stranske added sync Automated sync from Workflows automated Automated sync from Workflows labels Mar 24, 2026
@stranske-keepalive
Copy link
Copy Markdown
Contributor

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

@stranske stranske merged commit a51de8d into main Mar 24, 2026
83 of 94 checks passed
@stranske stranske deleted the sync/workflows-43abb0f65dff branch March 24, 2026 22:41
@stranske-keepalive
Copy link
Copy Markdown
Contributor

stranske-keepalive bot commented Mar 24, 2026

🤖 Keepalive Loop Status

PR #332 | 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/6 complete
Timeout 45 min (default)
Timeout usage 10m elapsed (23%, 35m 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). |

@stranske-keepalive
Copy link
Copy Markdown
Contributor

stranske-keepalive bot commented Mar 24, 2026

Keepalive Work Log (click to expand)
# Time (UTC) Agent Action Result Files Tasks Progress Commit Gate
0 2026-03-24 22:41:54 Codex wait (missing-agent-label-transient) skipped 0 0/6
0 2026-03-24 22:44:44 Codex wait (missing-agent-label-transient) skipped 0 0/6 cancelled
0 2026-03-24 22:50:13 Codex wait (missing-agent-label-transient) skipped 0 0/6 success

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

Synchronizes workflow/template content from stranske/Workflows, updating the Claude Code Review workflow metadata and improving the follow-up issue generator’s extraction/output for provider comparison reports.

Changes:

  • Extend followup_issue_generator.py to capture provider “Summary” from the Provider Summary table, feed non-PASS summaries into extracted concerns, and emit a new “verify:compare” analysis/evidence section in no-LLM output.
  • Add an inline # v1 annotation to the pinned anthropics/claude-code-action reference in the opt-in Claude Code Review workflow.

Reviewed changes

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

File Description
scripts/langchain/followup_issue_generator.py Adds parsing/propagation of provider summary text and emits additional analysis/evidence sections in generated follow-up issues.
.github/workflows/maint-76-claude-code-review.yml Adds a version comment to the pinned Claude Code Action reference.

Comment on lines +568 to +569
if verdict.strip().upper() != "PASS":
provider_summary_concerns.append(summary_text)
Copy link

Copilot AI Mar 24, 2026

Choose a reason for hiding this comment

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

When extracting the Provider Summary table, summary_text can be the placeholder "N/A" (see pr_verifier’s table generation). As written, non-PASS rows will add "N/A" into provider_summary_concerns, which then becomes a top-level concern and can generate noisy follow-up tasks. Consider skipping placeholder/empty summaries (e.g., "N/A"), and applying a minimum-length or other sanity filter similar to the other concern extraction paths before appending.

Suggested change
if verdict.strip().upper() != "PASS":
provider_summary_concerns.append(summary_text)
# Only treat non-placeholder, substantive summaries as concerns.
if verdict.strip().upper() != "PASS":
normalized_summary = summary_text.strip()
is_placeholder = normalized_summary.upper() in {
"N/A",
"NA",
"NONE",
"NO SUMMARY",
}
is_too_short = len(normalized_summary) < 8
if not is_placeholder and not is_too_short:
provider_summary_concerns.append(summary_text)

Copilot uses AI. Check for mistakes.
Comment on lines +1487 to +1506
body_parts.extend(
[
"",
"## verify:compare Analysis",
"",
f"- Resolved verdict: {verdict}",
]
)
for concern in blocking_concerns[:10]:
body_parts.append(f"- Concern: {concern}")
for concern in advisory_concerns[:10]:
body_parts.append(f"- Advisory: {concern}")

body_parts.extend(
[
"",
"## verify:compare Evidence",
"",
]
)
Copy link

Copilot AI Mar 24, 2026

Choose a reason for hiding this comment

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

The new sections are titled "## verify:compare Analysis" / "## verify:compare Evidence", but _generate_without_llm is used for any no-LLM path (including single-provider verify:evaluate cases). This makes the generated issue misleading. Suggest renaming these headings to something verification-generic (or only emitting the compare-specific headings when multiple providers are present).

Copilot uses AI. Check for mistakes.
Comment on lines +1507 to +1512
for provider, data in verification_data.provider_verdicts.items():
evidence = f"- {provider}: {data.get('verdict', 'Unknown')} @ {data.get('confidence', 0)}%"
summary = data.get("summary")
if summary:
evidence += f" ({summary})"
body_parts.append(evidence)
Copy link

Copilot AI Mar 24, 2026

Choose a reason for hiding this comment

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

In the evidence loop, the loop variable name data shadows the surrounding verification_data identifier and is also reused elsewhere in the file for different payload shapes. Renaming it (e.g., provider_payload) would make this section easier to read and reduce confusion during future edits.

Copilot uses AI. Check for mistakes.
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