Skip to content

chore: sync workflow templates - #350

Merged
stranske-keepalive[bot] merged 1 commit into
mainfrom
sync/workflows-536a715df8b0
Jun 20, 2026
Merged

stranske-keepalive[bot] merged 1 commit into
mainfrom
sync/workflows-536a715df8b0

Conversation

@stranske

@stranske stranske commented Jun 20, 2026

Copy link
Copy Markdown
Owner

Sync Summary

Files Updated

  • agents-81-gate-followups.yml: Gate followups hub - consolidates keepalive and autofix followups
  • agents-73-codex-belt-conveyor.yml: Codex belt conveyor - orchestrates belt worker execution and handles completion
  • agents-guard.yml: Agents guard - enforces agents workflow protections (Health 45)
  • check_deliberate_break.py: Opt-in Gate helper that proves named deliberate-break acceptance tests fail against the base implementation
  • runtime_ac_merge_guard.js: Blocks external merge lanes for PRs that require local Orchestrator runtime acceptance checks
  • gate_summary.py: Gate summary renderer - generates PR gate check summary
  • AGENTS.md: Context file for agents and coding assistants
  • CLAUDE.md: Context file for Claude/AI assistants

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
  • llm_slots.json: None

Review Checklist

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

Source: stranske/Workflows
Source SHA: deacb8ee2852a7c22fe229645468776f35921628
Template hash: 536a715df8b0
Sync branch: sync/workflows-536a715df8b0
Consumer repo: stranske/Ready
Manifest: .github/sync-manifest.yml

Summary by CodeRabbit

  • New Features

    • Added runtime authorization checks to PR merge workflows
    • Added test-quality result tracking to CI/CD pipeline gates
    • Introduced deliberate-break verification script for test assertion validation
  • Documentation

    • Updated critical evaluator guidance in contributor documentation
  • Chores

    • Updated GitHub Actions setup API client to newer pinned versions

Automated sync from stranske/Workflows
Template hash: 536a715df8b0

Changes synced from sync-manifest.yml
@stranske stranske added sync Automated sync from Workflows automated Automated sync from Workflows labels Jun 20, 2026
@stranske
stranske temporarily deployed to agent-standard June 20, 2026 01:46 — with GitHub Actions Inactive
@stranske
stranske temporarily deployed to agent-standard June 20, 2026 01:46 — with GitHub Actions Inactive
@github-actions

github-actions Bot commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Workflow state fingerprint for Keepalive Loop Reporter. Do not edit.

@coderabbitai

coderabbitai Bot commented Jun 20, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: da20dbdf-474c-4522-8a55-aeacd8e4f94e

📥 Commits

Reviewing files that changed from the base of the PR and between c23eff7 and 6da235f.

📒 Files selected for processing (8)
  • .github/scripts/gate_summary.py
  • .github/scripts/runtime_ac_merge_guard.js
  • .github/workflows/agents-73-codex-belt-conveyor.yml
  • .github/workflows/agents-81-gate-followups.yml
  • .github/workflows/agents-guard.yml
  • AGENTS.md
  • CLAUDE.md
  • scripts/check_deliberate_break.py
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • stranske/Workflows (auto-detected)
📜 Recent review details
🧰 Additional context used
📓 Path-based instructions (7)
{AGENTS.md,CLAUDE.md}

📄 CodeRabbit inference engine (AGENTS.md)

Keep AGENTS.md materially aligned with CLAUDE.md; differences should only be agent-specific execution notes, not different repository rules.

Files:

  • CLAUDE.md
  • AGENTS.md
{CLAUDE.md,AGENTS.md}

📄 CodeRabbit inference engine (CLAUDE.md)

Keep CLAUDE.md materially aligned with AGENTS.md. Differences between the two should only be agent-specific execution notes, not different repository rules.

Files:

  • CLAUDE.md
  • AGENTS.md
{pyproject.toml,.github/workflows/*.{yml,yaml}}

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

{pyproject.toml,.github/workflows/*.{yml,yaml}}: For Python projects with coverage thresholds, ensure both pyproject.toml ([tool.coverage.report] fail_under) and workflow files have matching coverage-min settings, or the lower one will determine the actual threshold
The Manager-Database repository has a coverage threshold of 75%

Files:

  • .github/workflows/agents-guard.yml
  • .github/workflows/agents-81-gate-followups.yml
  • .github/workflows/agents-73-codex-belt-conveyor.yml
.github/workflows/*.{yml,yaml}

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

For GitHub Actions workflow startup_failure errors, check for invalid YAML syntax, invalid permissions: block in workflow_call reusable workflows, invalid permission scopes, or circular workflow references

Files:

  • .github/workflows/agents-guard.yml
  • .github/workflows/agents-81-gate-followups.yml
  • .github/workflows/agents-73-codex-belt-conveyor.yml
{.github/workflows/agents-*.yml,.github/workflows/autofix.yml,.github/codex/**/*.md,.github/scripts/synced/**}

📄 CodeRabbit inference engine (AGENTS.md)

Synced workflows (e.g., agents-*.yml, autofix.yml), prompts in .github/codex/, and synced scripts/docs should be fixed in stranske/Workflows source, not edited locally.

Files:

  • .github/workflows/agents-guard.yml
  • .github/workflows/agents-81-gate-followups.yml
  • .github/workflows/agents-73-codex-belt-conveyor.yml
.github/workflows/**/*.{yml,yaml}

📄 CodeRabbit inference engine (CLAUDE.md)

First-party consumers should reference reusable workflows with @main unless intentionally pinning to an exact commit SHA for a controlled reason.

Files:

  • .github/workflows/agents-guard.yml
  • .github/workflows/agents-81-gate-followups.yml
  • .github/workflows/agents-73-codex-belt-conveyor.yml
**/*.py

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

In the Manager-Database repository, use Prefect 2.x and import schedules from prefect.client.schemas.schedules

Files:

  • scripts/check_deliberate_break.py
🧠 Learnings (1)
📓 Common learnings
Learnt from: CR
Repo: stranske/Ready

Timestamp: 2026-06-20T01:47:18.215Z
Learning: When evaluating claims, designs, and instructions, provide correct judgment rather than agreement. Evaluate on the merits, flag objections plainly, and separate correctness from compliance. State confidence levels and conditions that would change your assessment.
Learnt from: CR
Repo: stranske/Ready

Timestamp: 2026-06-20T01:47:18.215Z
Learning: For workflow logic, keep it in `stranske/Workflows` root and only carry repo-specific configuration in the consumer repo unless there is explicit documented exception.
Learnt from: CR
Repo: stranske/Ready

Timestamp: 2026-06-20T01:47:18.215Z
Learning: For infrastructure work, follow the source-of-truth priority: (1) `stranske/Workflows` root docs, (2) `stranske/Workflows/docs/INTEGRATION_GUIDE.md` and `docs/ops/CONSUMER_REPO_MAINTENANCE.md`, (3) `stranske/Workflows/templates/consumer-repo/`, (4) local repo-specific files. If a file is synced from Workflows, fix it in Workflows first.
Learnt from: CR
Repo: stranske/Ready

Timestamp: 2026-06-20T01:47:18.215Z
Learning: Before editing local workflow infrastructure, verify whether the work belongs in `stranske/Workflows` instead. Changes affecting reusable workflows, agent prompts, keepalive/autofix behavior, or synced files should be made in Workflows first.
Learnt from: CR
Repo: stranske/Ready

Timestamp: 2026-06-20T01:47:30.986Z
Learning: Evaluate claims, designs, and instructions on the merits before agreeing — including the orchestrator's and the user's. When something is wrong, weaker than an alternative, or missing, say so plainly and lead with the strongest objection.
Learnt from: CR
Repo: stranske/Ready

Timestamp: 2026-06-20T01:47:30.986Z
Learning: State your confidence and what would change your mind; flag what you are unsure of. Do not soften a real problem to be agreeable, and do not manufacture disagreement to seem rigorous — calibrated dissent, not maximal.
Learnt from: CR
Repo: stranske/Ready

Timestamp: 2026-06-20T01:47:30.986Z
Learning: Most workflow logic for this repository lives in `stranske/Workflows`. The consumer repo should only carry repo-specific configuration unless it has an explicitly documented exception.
Learnt from: CR
Repo: stranske/Ready

Timestamp: 2026-06-20T01:47:30.986Z
Learning: For infrastructure work, follow this priority order: `stranske/Workflows` root docs (`README.md`, `docs/WORKFLOW_GUIDE.md`, `docs/ci/WORKFLOWS.md`), then `stranske/Workflows/docs/INTEGRATION_GUIDE.md` and `docs/ops/CONSUMER_REPO_MAINTENANCE.md`, then the consumer sync source in `stranske/Workflows/templates/consumer-repo/`, then this repo's local repo-specific files.
Learnt from: CR
Repo: stranske/Ready

Timestamp: 2026-06-20T01:47:30.986Z
Learning: Before editing local workflow infrastructure, determine whether the work belongs in `stranske/Workflows` instead. The answer is usually yes if the change affects reusable workflows, agent prompts or routing, keepalive/autofix/verifier behavior, synced workflow files, or synced scripts or docs.
Learnt from: CR
Repo: stranske/Ready

Timestamp: 2026-06-20T01:47:30.986Z
Learning: When synced files in the consumer repo change, make the source-of-truth change in `stranske/Workflows`, update the sync manifest if a consumer-facing file changed, and then sync or manually align this repo afterward.
🪛 ast-grep (0.43.0)
scripts/check_deliberate_break.py

[info] 329-329: use jsonify instead of json.dumps for JSON output
Context: json.dumps(_json_result(VERDICT_SKIPPED, reason="no deliberate-break marker"))
Note: Security best practice.

(use-jsonify)


[info] 341-341: use jsonify instead of json.dumps for JSON output
Context: json.dumps(result, sort_keys=True)
Note: Security best practice.

(use-jsonify)


[error] 143-150: Use of unsanitized data to create processes
Context: subprocess.run(
list(command),
cwd=cwd,
text=True,
capture_output=True,
env=env,
timeout=timeout,
)
Note: [CWE-78].

(os-system-unsanitized-data)


[error] 143-150: Command coming from incoming request
Context: subprocess.run(
list(command),
cwd=cwd,
text=True,
capture_output=True,
env=env,
timeout=timeout,
)
Note: [CWE-20].

(subprocess-from-request)


[error] 159-166: Command coming from incoming request
Context: subprocess.run(
["git", *args],
cwd=cwd,
check=True,
text=True,
capture_output=True,
timeout=timeout,
)
Note: [CWE-20].

(subprocess-from-request)


[error] 190-196: Command coming from incoming request
Context: subprocess.run(
["git", "archive", "--format=tar", base],
cwd=cwd,
check=True,
capture_output=True,
timeout=DEFAULT_TIMEOUT_SECONDS,
)
Note: [CWE-20].

(subprocess-from-request)

🔀 Multi-repo context stranske/Workflows

Based on my exploration of the stranske/Workflows repository (the source of these templates), I can now provide a comprehensive assessment. Let me compile my findings:

Linked repositories findings

stranske/Workflows [source repository]

Key Integration Points:

  1. gate_summary.py changes [::stranske/Workflows::]

    • SummaryContext dataclass adds field test_quality_result: str = "skipped" (line 18)
    • Environment variable TEST_QUALITY_RESULT is read in build_context() function (gate_summary.py)
    • In summarize(), when overall state is "success", the function now evaluates test_quality_result and can convert state to "pending" (if cancelled) or "failure" (if not success/skipped)
    • The function replaces the test-quality table row with normalized outcome (lines ~510-515 of gate_summary.py)
    • Tests confirm: tests/workflows/github_scripts/test_gate_summary.py:429 validates TEST_QUALITY_RESULT environment variable handling
  2. runtime_ac_merge_guard.js integration [::stranske/Workflows::]

    • Exported functions: assertRuntimeAcMergeAllowed(), hasRuntimeAcRequirement(), normalizeLabelName(), runtimeAcRequirement(), and RUNTIME_AC_REQUIRED_LABELS constant
    • Workflow integrations:
      • templates/consumer-repo/.github/workflows/agents-73-codex-belt-conveyor.yml - calls assertRuntimeAcMergeAllowed() in merge step with source: 'agents-73-codex-belt-conveyor' parameter
      • templates/consumer-repo/.github/workflows/agents-81-gate-followups.yml - calls assertRuntimeAcMergeAllowed() in guarded-merge job
    • Tests verify (tests/workflows/test_workflow_agents_consolidation.py:114-129): All merge workflows that call pulls.merge must call assertRuntimeAcMergeAllowed, and guard calls must fetch fresh labels at merge time (not use stale pre-fetched labels)
  3. check_deliberate_break.py [::stranske/Workflows::]

    • Exported dataclass DeliberateBreakSpec with fields: test_id, test_file, break_file, command
    • Exported functions: parse_deliberate_break_spec(), verify_spec(), main()
    • Module-level constants: VERDICT_PASS, VERDICT_HOLLOW, VERDICT_BROKEN, VERDICT_SKIPPED
    • Tests exist in tests/scripts/test_check_deliberate_break.py confirming the implementation
  4. Sync manifest [::stranske/Workflows::]

    • .github/sync-manifest.yml declares all three files as sync targets:
      • scripts/check_deliberate_break.py with description "Opt-in Gate helper that proves named deliberate-break acceptance tests fail against the base implementation"
      • .github/scripts/runtime_ac_merge_guard.js with description "Blocks external merge lanes for PRs that require local Orchestrator runtime acceptance checks"
      • The scripts section also includes tools/post_ci_summary.py as a consumer of gate summary records
  5. Test-quality job integration [::stranske/Workflows::]

    • pr-00-gate.yml defines the test-quality job that feeds its result to the gate summary
    • The job is conditional: if: ${{ github.event_name == 'pull_request' && needs.detect.outputs.doc_only != 'true' }}
    • Result is passed as TEST_QUALITY_RESULT: ${{ needs.test-quality.result || 'skipped' }} to the gate_summary step

Breaking Changes Analysis:

  • API-level risk (LOW): The SummaryContext field is optional with a default value ("skipped"), so existing consumers will not break, but environments that do not set TEST_QUALITY_RESULT will get default behavior.
  • Behavior change (MEDIUM): The gate summary now can fail/pend based on test-quality result when it previously did not. Repos must ensure test-quality job exists or is conditionally skipped.
  • Merge blocking (MEDIUM): New runtime AC merge guard will block merges for PRs with specific labels unless they are merged through local orchestrator. This is intentional per design but requires coordination with any external merge automation.
  • File integration (LOW): All three new scripts are correctly listed in sync manifest for consumer distribution.

Consistency Checks:
✅ Runtime AC guard properly exported from JS module
✅ Gate summary properly reads and threads test_quality through all rendering paths
✅ Check deliberate break spec parsing supports both explicit markers and fallback patterns
✅ All tests in source repo verify the integrations
✅ Sync manifest is complete and includes all new helper files

🔇 Additional comments (23)
.github/workflows/agents-guard.yml (1)

114-114: 💤 Low value

Verify the controlled reason for pinning this action to a specific SHA.

Per the coding guideline, first-party consumers should reference reusable workflows/actions with @main unless there is a documented controlled reason for pinning to a specific commit SHA (e.g., stability, security, compatibility).

Both fallback steps pin stranske/Workflows/.github/actions/setup-api-client@d68de1904bcdbe16bfe2462b73aa18f41f8a0a47. This appears to be inherited from the sync, but there is no documented reason visible in this repo for the pin.

Does this repo have a specific controlled reason to pin this action, or should it follow the standard consumer pattern of using @main to inherit updates from Workflows?

Since this is a synced file from Workflows, if the pinning pattern needs to change, it should be addressed in the source repository first.

Also applies to: 183-183

Source: Coding guidelines

AGENTS.md (1)

5-8: LGTM!

CLAUDE.md (1)

5-8: LGTM!

scripts/check_deliberate_break.py (6)

1-34: LGTM!

The module-level constants, imports, and regex patterns are well-defined. The frozen dataclass provides appropriate immutability for the spec.


37-93: LGTM!

The DeliberateBreakSpec dataclass and explicit marker parsing logic are correct. The key-value parsing handles normalization properly, and the required field validation at line 89-90 is appropriate.


190-216: LGTM!

The tar extraction includes proper path traversal protection via the is_relative_to check at lines 202-204, which prevents zip-slip style attacks. The permission masking at line 216 is also correct.


219-309: LGTM!

The verify_spec function correctly implements the head/base comparison logic with appropriate error handling for timeouts, missing files, and archive extraction failures. The verdict logic is sound:

  • BROKEN if head test fails
  • HOLLOW if base test passes (test doesn't prove the fix)
  • PASS if head passes and base fails

312-347: LGTM!

The CLI entrypoint properly handles both file-based and environment-variable-based PR body input, writes GitHub Actions outputs, and returns appropriate exit codes.


129-151: Acknowledge: Command injection surface is intentional and bounded by appropriately scoped CI permissions.

The script accepts commands from PR body markdown (line 88, via values.get("command")), which is attacker-controlled input. However, this design is intentional:

  1. PR authors already have arbitrary code execution by running their branch's CI
  2. The feature requires explicit opt-in via the deliberate-break marker in PR body
  3. The default command path (lines 129-130) safely constructs a pytest invocation with no injection risk
  4. The test-quality job has minimal, read-only permissions: contents: read, issues: write, pull-requests: read—no code push, secret access, or workflow modification capability

The tradeoff is accepted. No changes needed.

.github/scripts/runtime_ac_merge_guard.js (3)

1-56: LGTM!

The label matching logic correctly handles both exact matches and colon-suffixed labels (e.g., status:runtime-ac matches runtime-ac). The deduplication via seen Set prevents duplicate entries.


58-84: LGTM!

The fetchPullRequestLabels function properly validates the GitHub client, supports optional retry wrapping, and provides clear error messages.


86-137: LGTM!

The assertRuntimeAcMergeAllowed function correctly validates required parameters, supports both pre-fetched and on-demand label fetching, and throws a structured error with code: 'runtime_ac_merge_blocked' for specific catch handling in callers.

.github/workflows/agents-73-codex-belt-conveyor.yml (2)

186-197: LGTM!

The sparse-checkout correctly includes the runtime merge guard alongside other required helpers.


435-469: LGTM!

The merge guard integration is correct:

  1. Guard is imported at line 444 (intentionally without fallback - missing guard should block merge)
  2. Guard is called at lines 456-464 with all required parameters before the pulls.merge call
  3. The source identifier enables tracing blocked merges back to this workflow
.github/workflows/agents-81-gate-followups.yml (3)

1549-1557: LGTM!

The sparse-checkout correctly includes the runtime merge guard.


1558-1576: LGTM!

The guard import follows the same intentional pattern as agents-73: no fallback because a missing guard file should block the merge.


1728-1759: LGTM!

The merge guard integration is correct, with the guard call placed immediately before pulls.merge and proper error handling in the existing try-catch block.

.github/scripts/gate_summary.py (6)

12-24: LGTM!

The test_quality_result field with default "skipped" maintains backwards compatibility for existing consumers.


242-257: LGTM!

The job table extension follows the existing pattern for docs-guard and docker-smoke rows.


260-291: LGTM!

The _active_lines signature extension correctly threads the new parameter through to _append_job_table.


331-349: LGTM!

The value is correctly threaded from context and normalized for state evaluation.


387-411: LGTM!

The gate-state handling for test_quality_result correctly mirrors the existing patterns:

  • Only evaluated when overall state is already "success"
  • cancelled"pending" (waiting for rerun)
  • Non-success/non-skipped → "failure"

The line adjustment at 399-400 ensures the normalized value appears in the final output table.


421-448: LGTM!

The environment variable reading and context population are correct.


📝 Walkthrough

Walkthrough

Adds scripts/check_deliberate_break.py, a CLI that parses a deliberate-break spec from a PR body, runs the candidate test at HEAD and against a base snapshot via git archive, and emits a pass/fail/hollow/skipped verdict. Adds runtime_ac_merge_guard.js, a label-based merge gate that throws a coded error when required runtime AC labels are detected. Both are wired into agents-73 and agents-81 merge steps. gate_summary.py gains a test_quality_result field and gate-state logic. agents-guard.yml gets a SHA bump; AGENTS.md and CLAUDE.md get a critical-evaluator stance section.

Changes

Deliberate-Break Gate and Runtime AC Enforcement

Layer / File(s) Summary
check_deliberate_break.py — spec, verification, and CLI
scripts/check_deliberate_break.py
Adds the complete deliberate-break verification script: DeliberateBreakSpec dataclass, markdown spec parsing (explicit and fallback), command execution and tamper-detection helpers, git archive extraction with path-safety, verify_spec orchestrator (head vs base comparison), and the CLI entrypoint writing GitHub Actions outputs and a JSON result.
runtime_ac_merge_guard.js — label-based merge gate
.github/scripts/runtime_ac_merge_guard.js
New module defining required AC label constants, label normalization with colon-suffix matching, GitHub API label fetching with optional retry, and assertRuntimeAcMergeAllowed which either returns an allow result or throws a coded runtime_ac_merge_blocked error with matched labels.
Agent workflow merge guard integration
.github/workflows/agents-73-codex-belt-conveyor.yml, .github/workflows/agents-81-gate-followups.yml
Adds runtime_ac_merge_guard.js to sparse-checkout in both workflows, imports assertRuntimeAcMergeAllowed, and calls it with repo/PR context and a source identifier immediately before each squash-merge API call, creating a new pre-merge failure point.
gate_summary.py — test-quality result tracking
.github/scripts/gate_summary.py
Adds test_quality_result field to SummaryContext, reads TEST_QUALITY_RESULT from the environment, threads it through _active_lines and _append_job_table to render a new job-table row, and adds gate-state conversion logic (pending on cancelled, failure on non-success/non-skipped).

Pinned SHA bump and agent guidance docs

Layer / File(s) Summary
agents-guard.yml SHA bump and stance docs
.github/workflows/agents-guard.yml, AGENTS.md, CLAUDE.md
Replaces the pinned setup-api-client action commit SHA for both event triggers in agents-guard.yml, and inserts a "Working Stance — Critical Evaluator (read first)" section at the top of AGENTS.md and CLAUDE.md.

Sequence Diagram(s)

sequenceDiagram
  rect rgba(173, 216, 230, 0.5)
    Note over Workflow: agents-73 / agents-81 promote job
    participant Workflow
    participant MergeGuard as runtime_ac_merge_guard.js
    participant GitHubAPI as GitHub REST API
  end

  Workflow->>MergeGuard: assertRuntimeAcMergeAllowed(github, core, owner, repo, prNumber, source)
  MergeGuard->>GitHubAPI: GET /repos/{owner}/{repo}/pulls/{prNumber} (fetch labels)
  GitHubAPI-->>MergeGuard: PR label list
  alt No required AC labels present
    MergeGuard-->>Workflow: { allowed: true, labels: [] }
    Workflow->>GitHubAPI: pulls.merge (squash)
  else Required AC labels detected
    MergeGuard-->>Workflow: throws runtime_ac_merge_blocked error
    Note over Workflow: merge skipped, job marked failed
  end
Loading
sequenceDiagram
  rect rgba(255, 200, 150, 0.5)
    Note over CI: check_deliberate_break.py
    participant CI as GitHub Actions step
    participant Script as check_deliberate_break.py
    participant Git as git (diff / archive)
    participant Pytest as pytest runner
  end

  CI->>Script: --base SHA --pr-body-file body.txt
  Script->>Script: parse_deliberate_break_spec(PR body)
  alt No marker found
    Script-->>CI: verdict=SKIPPED, exit 0
  else Spec parsed
    Script->>Git: diff base...HEAD test_file (tamper check)
    Git-->>Script: removed assertion lines
    Script->>Pytest: run command at HEAD
    Pytest-->>Script: returncode + output
    alt HEAD run fails
      Script-->>CI: verdict=FAIL_BROKEN, exit 1
    else HEAD run passes
      Script->>Git: git archive base → tmpdir
      Script->>Pytest: run command against base snapshot
      Pytest-->>Script: returncode + output
      alt Base also passes
        Script-->>CI: verdict=FAIL_HOLLOW, exit 1
      else Base fails
        Script-->>CI: verdict=PASS, exit 0
      end
    end
  end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related issues

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 8.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'chore: sync workflow templates' accurately reflects the main objective of the PR, which is an automated synchronization of workflow templates from the source repository. It's concise and specific to the primary change.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ 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 sync/workflows-536a715df8b0

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

@github-actions

github-actions Bot commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Workflow state fingerprint for Agents Gate Followups. Do not edit.

@stranske-keepalive
stranske-keepalive Bot merged commit c6e03f6 into main Jun 20, 2026
88 of 98 checks passed
@stranske-keepalive
stranske-keepalive Bot deleted the sync/workflows-536a715df8b0 branch June 20, 2026 01:54
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.

1 participant