Skip to content

ci: standards ci-pipeline dry-run caller (observation, not adoption) - #38

Merged
hyperpolymath merged 1 commit into
mainfrom
secqual/standards-pipeline-dry-run
Sep 22, 2026
Merged

hyperpolymath merged 1 commit into
mainfrom
secqual/standards-pipeline-dry-run

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

What this is

A deliberate observation, not an adoption.

hyperpolymath/standards carries a reusable pipeline,
.github/workflows/ci-pipeline.yml, which as of today has zero callers
anywhere in the estate
. Its exemption ledger,
.machine_readable/pipeline-allow.txt, is seeded empty on purpose. The
ledger's own text is explicit about how it may be filled:

An entry here must be EARNED BY OBSERVATION: the pipeline ran in that
repository and went red. It must never be seeded by inference.
[…] The honest seed is a dry-run wave: adopt the caller in a deliberate
sample, record the real verdict per repository, and add only what actually
went red.

This PR is one of five in that dry-run wave.

Expected verdict in this repository

detect counts ecosystem markers on the default branch. Measured today
across 105 tracked files:

ecosystem markers
Rust / Nickel / ReScript / V / Haskell / Deno (supported) 0
Julia (Project.toml) — unsupported 1
TOTAL (supported) 0

So the pipeline is expected to REFUSE — and to say so loudly rather than
reporting a success it did not earn. This repository has real ecosystems; the
pipeline simply does not support any of them, and detect deliberately keeps
those markers out of its denominator. The workflow states the reasoning
itself:

Folding them into TOTAL would lift it above zero and SILENCE the
zero-denominator refusal below while nothing whatsoever had been checked.
That is a vacuous gate, and a vacuous gate is worse than an honest blind
spot: the blind spot reports nothing, the vacuous gate reports success.

A red run here is the correct outcome and is exactly what this wave is for.

Known defect, disclosed up front

⚠ hyperpolymath/standards#976 — detect counts *.ncl into its ecosystem
denominator, and the RSR template ships a six-file k9 Nickel set into every
seeded repository. TOTAL can therefore be lifted above zero by template
boilerplate alone, which silences the zero-denominator refusal while nothing
meaningful has been checked. On a 24-repo sample, 9 would go vacuously
green
that way.

This repository was chosen precisely because its verdict does not depend on
that contaminated signal.
It has zero .ncl files, so TOTAL is 0 whether or not the Nickel probe is corrected. The observation therefore survives
whichever cure for #976 is chosen.

Deliberate choices

  • Pinned to an immutable commit (2eb9bb19, ci-pipeline.yml blob
    d2583657), never @main — following main would let one push in
    standards change the verdict of every already-pinned caller with no review
    here.
  • No secrets: block at all. ci-pipeline.yml declares
    workflow_call.inputs only, has no secrets: block and references no
    secrets.* anywhere. secrets: inherit would hand the entire store to a
    workflow that consumes none of it.
  • pull_request + workflow_dispatch only, so the PR itself is the
    observation.
  • No actions.lock in this repository, so nothing to hand-edit. Measured separately: a reusable-workflow caller produces no lockfile findings at all — gh actions-lock v0.1.6 does not recognise reusable-workflow uses: paths.

Please do not merge yet

The verdict is the deliverable. Once the run completes, the result is recorded
against the ledger, and only repositories that actually went red are added
— in a commit carrying a column-0
Ratchet-exception: .machine_readable/pipeline-allow.txt — <why> trailer.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Ji1bq3TypfycfUPAR7hSxR

Adds a pinned caller for hyperpolymath/standards ci-pipeline.yml as part of
the deliberate dry-run wave that seeds .machine_readable/pipeline-allow.txt
by OBSERVATION rather than by inference. no actions.lock in this repository.

Discloses hyperpolymath/standards#976 in the workflow header.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ji1bq3TypfycfUPAR7hSxR
@coderabbitai

coderabbitai Bot commented Sep 22, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

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: 3e95f3ab-8ec0-48b2-bb98-399b7b2a8576

📥 Commits

Reviewing files that changed from the base of the PR and between 27db987 and 7d675ab.

📒 Files selected for processing (1)
  • .github/workflows/standards-pipeline.yml

Included review availability: 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. (21)
  • GitHub Check: pipeline / Secret scanning / gitleaks
  • GitHub Check: pipeline / Secret scanning / shell-secrets
  • GitHub Check: pipeline / SAST (semgrep)
  • GitHub Check: pipeline / Secret scanning / rust-secrets
  • GitHub Check: governance / Trusted-base reduction policy
  • GitHub Check: pipeline / Detect ecosystems
  • GitHub Check: governance / Security policy checks
  • GitHub Check: governance / Guix primary / Nix fallback policy
  • GitHub Check: governance / Check Workflow Staleness
  • GitHub Check: governance / Licence consistency
  • GitHub Check: governance / Code quality + docs
  • GitHub Check: governance / Workflow security linter
  • GitHub Check: governance / Well-Known (RFC 9116 + RSR)
  • GitHub Check: scan / gitleaks
  • GitHub Check: governance / Language / package anti-pattern policy
  • GitHub Check: scan / shell-secrets
  • GitHub Check: scan / rust-secrets
  • GitHub Check: hypatia / Hypatia Neurosymbolic Analysis
  • GitHub Check: Julia 1.11 - ubuntu-latest
  • GitHub Check: Julia 1.11 - macos-latest
  • GitHub Check: Julia 1.10 - ubuntu-latest
🔇 Additional comments (1)
.github/workflows/standards-pipeline.yml (1)

1-42: LGTM!


📝 Summary

Summary by CodeRabbit

  • Chores
    • Added automated standards checks for pull requests.
    • Added the option to run these checks manually.
    • Restricted the workflow’s repository access to read-only.

Walkthrough

The pull request adds a GitHub Actions workflow. It runs the reusable standards CI workflow on pull requests and manual dispatch. It pins the reusable workflow to an immutable commit and grants read-only contents access.

Changes

Standards CI

Layer / File(s) Summary
Standards workflow integration
.github/workflows/standards-pipeline.yml
Adds triggers for pull_request and workflow_dispatch. Calls the pinned reusable standards workflow with contents: read permission and no secrets.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Feature

Merge Risk: ⚪ Minimal · up to 7d675

This adds the intended observation-only standards workflow with bounded permissions and no unresolved merge-blocking risk.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the standards CI pipeline caller and its dry-run observation purpose. It matches the main change.
Description check ✅ Passed The description directly explains the workflow, its pinned reusable pipeline, expected refusal, and observation-only purpose. It is fully related to the changeset.
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.

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

A rabbit checks the workflow gate
The standards pipeline starts on cue
Pull requests and manual runs wait
Read-only access keeps the path true
A pinned commit guides each hop
No secrets cross the workflow stop

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

@hyperpolymath
hyperpolymath merged commit 0e7bea7 into main Sep 22, 2026
21 of 23 checks passed
@hyperpolymath
hyperpolymath deleted the secqual/standards-pipeline-dry-run branch September 22, 2026 12:29
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.

1 participant