Skip to content

ci(agda): typecheck the experimental echo-additive tree standalone - #343

Merged
hyperpolymath merged 5 commits into
mainfrom
ci/echo-additive-lane
Oct 19, 2026
Merged

hyperpolymath merged 5 commits into
mainfrom
ci/echo-additive-lane

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

Adds a CI lane (in both check and cold-check) that typechecks every module under proofs/agda/experimental/echo-additive/ on its own.

Nothing is wired into the shipped closure. All.agda and Smoke.agda are untouched, nothing in shipped code imports from experimental/, and the retraction R-2026-05-18 stands. The lane adds no claim; it only makes a break visible here.

Why

choreographic-types vendors experimental/echo-additive/Grade.agda (the ℕ∪{∞} grade dioid, "PROVEN-but-UNWIRED"). Today no echo-types CI job compiles that tree, so an edit that breaks it is found by a consumer, not by echo-types.

Gate — needs the author's call before merge

experimental/echo-additive/DECISIONS.adoc (D-2026-06-14-R1) says nothing from experimental/ goes to main without the terminating condition and the author's explicit authorization. STATE.adoc records the terminating-condition half as met (R2–R4, 2026-06-15). I am treating this lane as covered by that gate and not merging it; it is a draft for the author to accept, change or close. If the author would rather keep the tree out of CI entirely, closing this PR loses nothing.

What changed

  • .github/workflows/agda.yml: one step in check and one in cold-check that loops over proofs/agda/experimental/echo-additive/*.agda (a glob, so new experimental modules are included automatically). No new uses:, so actions.lock is unaffected.

How has this been verified?

Locally with Agda 2.6.3, stdlib v2.3, absolute-zero f486c29 (the CI pin):

  • All seven modules exit 0: Grade, VarianceGate, GradedCarrier, GradedCarrierFaithful, GradedMonad, GradedComonad, GradedAdjunction. Each declares --safe --without-K; none has a postulate declaration.
  • The exact CI loop exits 0.
  • bash tools/check-guardrails.sh proofs/agda passes (210 modules).

Cost: the first module pays for building stdlib interfaces on a cold run; the others take about 5 s each warm.


Generated by Claude Code

Adds a lane (warm and cold) that typechecks every module under
proofs/agda/experimental/echo-additive/ on its own. Nothing is added to
All.agda or Smoke.agda, so the shipped closure and its claims are unchanged
(D-2026-06-14-R1 firewall; R-2026-05-18 stands). A consumer that vendors
Grade.agda (choreographic-types) now learns here when an edit breaks it.

Verified locally under Agda 2.6.3 / stdlib v2.3 / absolute-zero f486c29:
all seven modules exit 0; check-guardrails.sh passes.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MF5GeeBBDF6sUzr6pZTjWV
@github-actions

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 52 issues detected

Severity Count
🔴 Critical 0
🟠 High 19
🟡 Medium 33
View findings
[
  {
    "reason": "Required file missing",
    "type": "missing",
    "file": "0-AI-MANIFEST.a2ml",
    "level": "epi",
    "action": "create",
    "rule_module": "root_hygiene",
    "severity": "high",
    "evidence": [
      {
        "span": {
          "file": "0-AI-MANIFEST.a2ml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "root_hygiene/missing",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "reason": "Invalid .github/workflows/actions.lock: {:line, 4, {:unsupported_version, \"v0.0.3\"}}. Regenerate and verify it with gh actions-lock.",
    "type": "invalid_actions_lock",
    "file": ".github/workflows/actions.lock",
    "level": "epi",
    "action": "regenerate",
    "rule_module": "workflow_audit",
    "severity": "high",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/actions.lock",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/invalid_actions_lock",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "reason": "Job `triage` in label-triage.yml has no `timeout-minutes:` declaration. Default is 6 hours — a stuck codeload fetch or runner hang can burn budget. Add `timeout-minutes: 10` (or proportional).",
    "type": "missing_timeout_minutes",
    "file": ".github/workflows/label-triage.yml",
    "level": "epi",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium",
    "recipe_id": "recipe-add-workflow-timeout-minutes",
    "job": "triage",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/label-triage.yml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/missing_timeout_minutes",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "reason": "Job `sync` in labels.yml has no `timeout-minutes:` declaration. Default is 6 hours — a stuck codeload fetch or runner hang can burn budget. Add `timeout-minutes: 10` (or proportional).",
    "type": "missing_timeout_minutes",
    "file": ".github/workflows/labels.yml",
    "level": "epi",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium",
    "recipe_id": "recipe-add-workflow-timeout-minutes",
    "job": "sync",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/labels.yml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/missing_timeout_minutes",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 39,
    "reason": "job in .github/workflows/labels.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/labels.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/labels.yml",
          "end_line": 39,
          "start_line": 39
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 53,
    "reason": "job in .github/workflows/label-triage.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/label-triage.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/label-triage.yml",
          "end_line": 53,
          "start_line": 53
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 87,
    "reason": "job in .github/workflows/hypatia-scan.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/hypatia-scan.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/hypatia-scan.yml",
          "end_line": 87,
          "start_line": 87
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 46,
    "reason": "job in .github/workflows/push-email-notify.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/push-email-notify.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/push-email-notify.yml",
          "end_line": 46,
          "start_line": 46
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": null,
    "reason": "actions.lock failed closed: {:line, 4, {:unsupported_version, \"v0.0.3\"}}",
    "type": "invalid_actions_lock",
    "file": ".github/workflows/actions.lock",
    "level": "epi",
    "action": "regenerate",
    "rule_module": "workflow_hardening",
    "severity": "high",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/actions.lock",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_hardening/invalid_actions_lock",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 34,
    "reason": "workflow .github/workflows/labels.yml:34 job `sync` has no `timeout-minutes:` — defaults to 360 min on hang",
    "type": "WH006",
    "file": ".github/workflows/labels.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "workflow_hardening",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/labels.yml",
          "end_line": 34,
          "start_line": 34
        },
        "rule": "workflow_hardening/WH006",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@hyperpolymath
hyperpolymath marked this pull request as ready for review October 19, 2026 17:05

Copy link
Copy Markdown
Owner Author

Two kinds of red here, neither caused by this diff (it only adds a loop to agda.yml):

  • governance / * and scan / *: Unable to resolve action actions/checkout@3d3c42e5…: invalid lockfile pin. governance.yml calls standards at fad242d, secret-scanner.yml at 8435558. GitHub now refuses a lock record whose ref repeats the SHA of a tagged action, and the lock inside those standards commits has that form. Governance and Secret Scanner were already red on main (92ac330, 17 Oct). The known fix, from CI: the lock is accepted at job setup again (required checks, Scorecard) choreographic-types#34: pin the standards callers at 75bd599 (whose lock records tags) and move this repo's lock records with them.
  • check: kernel-guard Check B fails before Agda starts: unclassified Echo* module(s): EchoFidelity. EchoFidelity.agda is already on main and is not touched here; it needs a line in docs/echo-types/echo-kernel-note.adoc and MAP.adoc. That also means the new lane has not run in CI yet. I ran it locally (all seven modules exit 0).

I have not widened this PR to fix either. Neither exists as a PR yet; I can open them as separate PRs if wanted.


Generated by Claude Code

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ⚠️ Failed 2026-10-19T22:16:02.088339Z 73a0268 New commits
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@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: 5d91cdf2b4

ℹ️ 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 thread .github/workflows/agda.yml Outdated
Codex review on #343: the cold lane started a fresh Agda process per module
with --ignore-interfaces, rebuilding the standard library seven times inside
the job's 30-minute cap. proofs/agda/experimental/echo-additive/All.agda
imports the seven modules; both the warm and cold steps now check that one
root. Cold, locally: exit 0 in 95 s. Not imported by the shipped All.agda or
Smoke.agda.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MF5GeeBBDF6sUzr6pZTjWV
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@github-actions

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 52 issues detected

Severity Count
🔴 Critical 0
🟠 High 19
🟡 Medium 33
View findings
[
  {
    "reason": "Required file missing",
    "type": "missing",
    "file": "0-AI-MANIFEST.a2ml",
    "level": "epi",
    "action": "create",
    "rule_module": "root_hygiene",
    "severity": "high",
    "evidence": [
      {
        "span": {
          "file": "0-AI-MANIFEST.a2ml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "root_hygiene/missing",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "reason": "Invalid .github/workflows/actions.lock: {:line, 4, {:unsupported_version, \"v0.0.3\"}}. Regenerate and verify it with gh actions-lock.",
    "type": "invalid_actions_lock",
    "file": ".github/workflows/actions.lock",
    "level": "epi",
    "action": "regenerate",
    "rule_module": "workflow_audit",
    "severity": "high",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/actions.lock",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/invalid_actions_lock",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "reason": "Job `triage` in label-triage.yml has no `timeout-minutes:` declaration. Default is 6 hours — a stuck codeload fetch or runner hang can burn budget. Add `timeout-minutes: 10` (or proportional).",
    "type": "missing_timeout_minutes",
    "file": ".github/workflows/label-triage.yml",
    "level": "epi",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium",
    "recipe_id": "recipe-add-workflow-timeout-minutes",
    "job": "triage",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/label-triage.yml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/missing_timeout_minutes",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "reason": "Job `sync` in labels.yml has no `timeout-minutes:` declaration. Default is 6 hours — a stuck codeload fetch or runner hang can burn budget. Add `timeout-minutes: 10` (or proportional).",
    "type": "missing_timeout_minutes",
    "file": ".github/workflows/labels.yml",
    "level": "epi",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium",
    "recipe_id": "recipe-add-workflow-timeout-minutes",
    "job": "sync",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/labels.yml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/missing_timeout_minutes",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 39,
    "reason": "job in .github/workflows/labels.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/labels.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/labels.yml",
          "end_line": 39,
          "start_line": 39
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 53,
    "reason": "job in .github/workflows/label-triage.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/label-triage.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/label-triage.yml",
          "end_line": 53,
          "start_line": 53
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 87,
    "reason": "job in .github/workflows/hypatia-scan.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/hypatia-scan.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/hypatia-scan.yml",
          "end_line": 87,
          "start_line": 87
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 46,
    "reason": "job in .github/workflows/push-email-notify.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/push-email-notify.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/push-email-notify.yml",
          "end_line": 46,
          "start_line": 46
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": null,
    "reason": "actions.lock failed closed: {:line, 4, {:unsupported_version, \"v0.0.3\"}}",
    "type": "invalid_actions_lock",
    "file": ".github/workflows/actions.lock",
    "level": "epi",
    "action": "regenerate",
    "rule_module": "workflow_hardening",
    "severity": "high",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/actions.lock",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_hardening/invalid_actions_lock",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 34,
    "reason": "workflow .github/workflows/labels.yml:34 job `sync` has no `timeout-minutes:` — defaults to 360 min on hang",
    "type": "WH006",
    "file": ".github/workflows/labels.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "workflow_hardening",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/labels.yml",
          "end_line": 34,
          "start_line": 34
        },
        "rule": "workflow_hardening/WH006",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@coderabbitai

coderabbitai Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Important

Review skipped

Review was skipped as selected files did not have any reviewable changes.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 4da80f37-539f-427d-8fb5-3515de84850f
📥 Commits

Reviewing files that changed from the base of the PR and between 52c1ef5 and 73a0268.

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

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 9ce45643-ee9a-4601-bc2f-d435d62b475e
📥 Commits

Reviewing files that changed from the base of the PR and between 92ac330 and 52c1ef5.

📒 Files selected for processing: 2
  • .github/workflows/agda.yml
  • proofs/agda/experimental/echo-additive/All.agda

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

📜 Recent review details
⏰ Context from checks skipped due to timeout: 1
  • GitHub Check: cold-check
🔇 Additional comments: 2
proofs/agda/experimental/echo-additive/All.agda: 1

1-24: LGTM!

.github/workflows/agda.yml: 1

160-168: LGTM!

Also applies to: 214-214

📝 Summary

Summary by CodeRabbit

  • New Features
    • Added an experimental Agda module that brings together proofs for grades, variance, graded carriers, monads, comonads and adjunctions.
  • Tests
    • Automated checks now typecheck the experimental module in both cached and uncached runs. This adds coverage for the module while keeping it separate from the existing aggregate and smoke-test checks.

The change adds a safe aggregate module for the experimental echo-additive Agda modules. The cached and uncached workflow jobs now typecheck this aggregate.

Changes: Echo-additive Agda checks

Layer / File(s) Summary
Aggregate module
proofs/agda/experimental/echo-additive/All.agda
Adds a safe aggregate module that imports seven echo-additive modules.
Workflow checks
.github/workflows/agda.yml
Adds the aggregate to the cached and uncached typecheck sequences. The cached job notes that the aggregate is not imported by All.agda or Smoke.agda.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~8 minutes

Change: Other

Merge Risk: 🟡 Moderate · up to 52c1e

The new aggregate remains experimental, and the independent cold CI path can run despite the reported classification blocker. The project’s merge gate still awaits explicit author authorization, so do not merge this change until that authorization is given.

### Architecture Summary

Architecture risk: 🔵 Low · up to 52c1e

The change affects 1 system.

Changed systems: proofs

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — proofs (service) was modified; 1 changed file maps to changed impact.

Before / after behavior

  • observed — Modified behavior in proofs/agda/experimental/echo-additive/All.agda: Adds the experimental.echo-additive.All module with --safe and --without-K options and imports the seven echo-additive modules.
  • observed — Modified behavior in .github/workflows/agda.yml: The cached check job adds a standalone typecheck of the experimental echo-additive aggregate, documenting that it is not imported by All.agda or Smoke.agda.
  • observed — Modified behavior in .github/workflows/agda.yml: The uncached cold typecheck sequence now also checks the experimental echo-additive aggregate with --ignore-interfaces.
Pre-merge checks: Passed 5
Check name Status Explanation
Title check Passed The title clearly and concisely describes the main change: adding standalone CI type-checking for the experimental echo-additive Agda tree.
Description check Passed The description directly explains the CI changes, scope, authorisation gate, validation, and known unrelated failures.
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
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.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (2 skipped: 2 unsupported.)

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@hyperpolymath
hyperpolymath enabled auto-merge (squash) October 19, 2026 17:24
@coderabbitai

coderabbitai Bot commented Oct 19, 2026

Copy link
Copy Markdown
Contributor

Add Carrot credits or activate Agent usage billing to use Autofix

Copy link
Copy Markdown
Owner Author

@coderabbitai please do not attempt CI fixes, autofix, or edits to .github/workflows/ or actions.lock on this PR.

Two checks are red, neither caused by this PR: governance and scan fail on the standards-lock problem (fix in #344), and check fails the kernel-guard lint on an unclassified EchoFidelity module that is already on main (classification is a separate decision). The CI-fixer labelled this kind of failure as caused by the PR; it is not.

Review comments are welcome; automated pushes and "fix CI" suggestions are not.


Generated by Claude Code

@coderabbitai

coderabbitai Bot commented Oct 19, 2026

Copy link
Copy Markdown
Contributor

Tip

For best results, initiate chat on the files or code changes.

@hyperpolymath Thanks for the guidance. The failure attribution was incorrect: the failures you describe are pre-existing, not caused by this PR.

I will keep my involvement on this PR to review comments. I will not trigger CI fixes, autofix, automated pushes, or edits to .github/workflows/ or actions.lock. I will not suggest “fix CI” for these failures.


✏️ Learnings added
Learnt from: hyperpolymath
URL: https://github.com/hyperpolymath/echo-types/pull/343

Timestamp: 2026-10-19T18:34:31.878Z
Learning: For hyperpolymath/echo-types PR #343, the author permits review comments only and prohibits CI fixes, autofix, automated pushes, edits to `.github/workflows/` or `actions.lock`, and “fix CI” suggestions. The author identifies the governance and scan failures as a pre-existing standards-lock problem addressed in PR #344. The check failure is a pre-existing kernel-guard classification failure for EchoFidelity, whose classification is a separate decision. Do not attribute these failures to PR #343.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

You are interacting with an AI system.

hyperpolymath added a commit that referenced this pull request Oct 19, 2026
#344)

## Summary

GitHub's lock enforcement refuses a record for a tagged action whose
`ref` repeats the SHA, in the called repository's lock at the pinned
commit. The standards pins here (`fad242d`, `84355587`) fail that check,
so `governance`, `secret-scanner`, `scorecard` and `mirror` startup-fail
with no jobs. Standards `75bd5994` records tags in its own lock.

Same fix as choreographic-types #34.

## Changes

- Repin the four standards callers to
`75bd5994470661a099df562d6d5ad2fe744dbd66`.
- Record the standards edge in `actions.lock` (one `dependencies:`
record with the matching `uses:` list, plus the actions it reaches at
their release tags, copied from standards' own lock at that commit).
Before, these four workflows had empty lock entries.
- Bring the `smtp-notify-action` record to v0.5.0 (commit `c1c9fa07`,
the peeled tag), which `push-email-notify.yml` already uses; the lock
still said v0.3.0.

## Testing

`check-lock-sync.sh` and `check-action-pinning.js` from
affinescript-libraries, run here: lock in sync, transitively closed, all
refs pinned. On main the same sync check reports the three missing/stale
records above. The real test is those four jobs creating jobs on this
PR; I have not seen that yet.

Not touched: the `check` job failure on #343 (unclassified
`EchoFidelity` kernel-guard module) is separate.

---
_Generated by [Claude
Code](https://claude.ai/code/session_01MF5GeeBBDF6sUzr6pZTjWV)_

Co-authored-by: Claude <noreply@anthropic.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@github-actions

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 52 issues detected

Severity Count
🔴 Critical 0
🟠 High 19
🟡 Medium 33
View findings
[
  {
    "reason": "Required file missing",
    "type": "missing",
    "file": "0-AI-MANIFEST.a2ml",
    "level": "epi",
    "action": "create",
    "rule_module": "root_hygiene",
    "severity": "high",
    "evidence": [
      {
        "span": {
          "file": "0-AI-MANIFEST.a2ml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "root_hygiene/missing",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "reason": "Invalid .github/workflows/actions.lock: {:line, 4, {:unsupported_version, \"v0.0.3\"}}. Regenerate and verify it with gh actions-lock.",
    "type": "invalid_actions_lock",
    "file": ".github/workflows/actions.lock",
    "level": "epi",
    "action": "regenerate",
    "rule_module": "workflow_audit",
    "severity": "high",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/actions.lock",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/invalid_actions_lock",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "reason": "Job `triage` in label-triage.yml has no `timeout-minutes:` declaration. Default is 6 hours — a stuck codeload fetch or runner hang can burn budget. Add `timeout-minutes: 10` (or proportional).",
    "type": "missing_timeout_minutes",
    "file": ".github/workflows/label-triage.yml",
    "level": "epi",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium",
    "recipe_id": "recipe-add-workflow-timeout-minutes",
    "job": "triage",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/label-triage.yml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/missing_timeout_minutes",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "reason": "Job `sync` in labels.yml has no `timeout-minutes:` declaration. Default is 6 hours — a stuck codeload fetch or runner hang can burn budget. Add `timeout-minutes: 10` (or proportional).",
    "type": "missing_timeout_minutes",
    "file": ".github/workflows/labels.yml",
    "level": "epi",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium",
    "recipe_id": "recipe-add-workflow-timeout-minutes",
    "job": "sync",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/labels.yml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/missing_timeout_minutes",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 39,
    "reason": "job in .github/workflows/labels.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/labels.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/labels.yml",
          "end_line": 39,
          "start_line": 39
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 53,
    "reason": "job in .github/workflows/label-triage.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/label-triage.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/label-triage.yml",
          "end_line": 53,
          "start_line": 53
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 87,
    "reason": "job in .github/workflows/hypatia-scan.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/hypatia-scan.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/hypatia-scan.yml",
          "end_line": 87,
          "start_line": 87
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 46,
    "reason": "job in .github/workflows/push-email-notify.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/push-email-notify.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/push-email-notify.yml",
          "end_line": 46,
          "start_line": 46
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": null,
    "reason": "actions.lock failed closed: {:line, 4, {:unsupported_version, \"v0.0.3\"}}",
    "type": "invalid_actions_lock",
    "file": ".github/workflows/actions.lock",
    "level": "epi",
    "action": "regenerate",
    "rule_module": "workflow_hardening",
    "severity": "high",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/actions.lock",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_hardening/invalid_actions_lock",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 34,
    "reason": "workflow .github/workflows/labels.yml:34 job `sync` has no `timeout-minutes:` — defaults to 360 min on hang",
    "type": "WH006",
    "file": ".github/workflows/labels.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "workflow_hardening",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/labels.yml",
          "end_line": 34,
          "start_line": 34
        },
        "rule": "workflow_hardening/WH006",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@github-actions

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 47 issues detected

Severity Count
🔴 Critical 0
🟠 High 15
🟡 Medium 32
View findings
[
  {
    "reason": "Required file missing",
    "type": "missing",
    "file": "0-AI-MANIFEST.a2ml",
    "level": "epi",
    "action": "create",
    "rule_module": "root_hygiene",
    "severity": "high",
    "evidence": [
      {
        "span": {
          "file": "0-AI-MANIFEST.a2ml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "root_hygiene/missing",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "reason": "Job `triage` in label-triage.yml has no `timeout-minutes:` declaration. Default is 6 hours — a stuck codeload fetch or runner hang can burn budget. Add `timeout-minutes: 10` (or proportional).",
    "type": "missing_timeout_minutes",
    "file": ".github/workflows/label-triage.yml",
    "level": "epi",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium",
    "recipe_id": "recipe-add-workflow-timeout-minutes",
    "job": "triage",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/label-triage.yml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/missing_timeout_minutes",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "reason": "Job `sync` in labels.yml has no `timeout-minutes:` declaration. Default is 6 hours — a stuck codeload fetch or runner hang can burn budget. Add `timeout-minutes: 10` (or proportional).",
    "type": "missing_timeout_minutes",
    "file": ".github/workflows/labels.yml",
    "level": "epi",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium",
    "recipe_id": "recipe-add-workflow-timeout-minutes",
    "job": "sync",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/labels.yml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/missing_timeout_minutes",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 39,
    "reason": "job in .github/workflows/labels.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/labels.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/labels.yml",
          "end_line": 39,
          "start_line": 39
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 53,
    "reason": "job in .github/workflows/label-triage.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/label-triage.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/label-triage.yml",
          "end_line": 53,
          "start_line": 53
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 87,
    "reason": "job in .github/workflows/hypatia-scan.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/hypatia-scan.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/hypatia-scan.yml",
          "end_line": 87,
          "start_line": 87
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 46,
    "reason": "job in .github/workflows/push-email-notify.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/push-email-notify.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/push-email-notify.yml",
          "end_line": 46,
          "start_line": 46
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 34,
    "reason": "workflow .github/workflows/labels.yml:34 job `sync` has no `timeout-minutes:` — defaults to 360 min on hang",
    "type": "WH006",
    "file": ".github/workflows/labels.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "workflow_hardening",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/labels.yml",
          "end_line": 34,
          "start_line": 34
        },
        "rule": "workflow_hardening/WH006",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 48,
    "reason": "workflow .github/workflows/label-triage.yml:48 job `triage` has no `timeout-minutes:` — defaults to 360 min on hang",
    "type": "WH006",
    "file": ".github/workflows/label-triage.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "workflow_hardening",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/label-triage.yml",
          "end_line": 48,
          "start_line": 48
        },
        "rule": "workflow_hardening/WH006",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 19,
    "reason": "workflow .github/workflows/mirror.yml:19 uses `secrets: inherit` — forwards every caller secret to the reusable workflow",
    "type": "WH008",
    "file": ".github/workflows/mirror.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "workflow_hardening",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/mirror.yml",
          "end_line": 19,
          "start_line": 19
        },
        "rule": "workflow_hardening/WH008",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@hyperpolymath
hyperpolymath enabled auto-merge (squash) October 19, 2026 22:16
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@hyperpolymath
hyperpolymath merged commit 8d7e882 into main Oct 19, 2026
32 checks passed
@hyperpolymath
hyperpolymath deleted the ci/echo-additive-lane branch October 19, 2026 22:21
@github-actions

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 47 issues detected

Severity Count
🔴 Critical 0
🟠 High 15
🟡 Medium 32
View findings
[
  {
    "reason": "Required file missing",
    "type": "missing",
    "file": "0-AI-MANIFEST.a2ml",
    "level": "epi",
    "action": "create",
    "rule_module": "root_hygiene",
    "severity": "high",
    "evidence": [
      {
        "span": {
          "file": "0-AI-MANIFEST.a2ml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "root_hygiene/missing",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "reason": "Job `triage` in label-triage.yml has no `timeout-minutes:` declaration. Default is 6 hours — a stuck codeload fetch or runner hang can burn budget. Add `timeout-minutes: 10` (or proportional).",
    "type": "missing_timeout_minutes",
    "file": ".github/workflows/label-triage.yml",
    "level": "epi",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium",
    "recipe_id": "recipe-add-workflow-timeout-minutes",
    "job": "triage",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/label-triage.yml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/missing_timeout_minutes",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "reason": "Job `sync` in labels.yml has no `timeout-minutes:` declaration. Default is 6 hours — a stuck codeload fetch or runner hang can burn budget. Add `timeout-minutes: 10` (or proportional).",
    "type": "missing_timeout_minutes",
    "file": ".github/workflows/labels.yml",
    "level": "epi",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium",
    "recipe_id": "recipe-add-workflow-timeout-minutes",
    "job": "sync",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/labels.yml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/missing_timeout_minutes",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 39,
    "reason": "job in .github/workflows/labels.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/labels.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/labels.yml",
          "end_line": 39,
          "start_line": 39
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 53,
    "reason": "job in .github/workflows/label-triage.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/label-triage.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/label-triage.yml",
          "end_line": 53,
          "start_line": 53
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 87,
    "reason": "job in .github/workflows/hypatia-scan.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/hypatia-scan.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/hypatia-scan.yml",
          "end_line": 87,
          "start_line": 87
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 46,
    "reason": "job in .github/workflows/push-email-notify.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/push-email-notify.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/push-email-notify.yml",
          "end_line": 46,
          "start_line": 46
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 34,
    "reason": "workflow .github/workflows/labels.yml:34 job `sync` has no `timeout-minutes:` — defaults to 360 min on hang",
    "type": "WH006",
    "file": ".github/workflows/labels.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "workflow_hardening",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/labels.yml",
          "end_line": 34,
          "start_line": 34
        },
        "rule": "workflow_hardening/WH006",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 48,
    "reason": "workflow .github/workflows/label-triage.yml:48 job `triage` has no `timeout-minutes:` — defaults to 360 min on hang",
    "type": "WH006",
    "file": ".github/workflows/label-triage.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "workflow_hardening",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/label-triage.yml",
          "end_line": 48,
          "start_line": 48
        },
        "rule": "workflow_hardening/WH006",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 19,
    "reason": "workflow .github/workflows/mirror.yml:19 uses `secrets: inherit` — forwards every caller secret to the reusable workflow",
    "type": "WH008",
    "file": ".github/workflows/mirror.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "workflow_hardening",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/mirror.yml",
          "end_line": 19,
          "start_line": 19
        },
        "rule": "workflow_hardening/WH008",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants