ci-tooling

Author and debug GitHub Actions workflows for dashboards and private-cluster CI automation.

11|9|Updated May 25, 2026
One-click install
npx skills add https://github.com/projectbluefin/lab --skill ci-tooling-projectbluefin
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: ci-tooling
Source: https://github.com/projectbluefin/lab/tree/main/docs/skills/ci-tooling
Command: npx skills add https://github.com/projectbluefin/lab --skill ci-tooling-projectbluefin

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? GitHub Actions workflows that feed dashboards or touch private homelab clusters fail in non-obvious ways: stale Pages data, hung runners on unreachable private endpoints, merge-queue checks that never fire, and ruleset-protected branches rejecting GITHUB_TOKEN pushes. This Skill encodes the operational rules that prevent those failures. ## Core Features & Use Cases - Workflow Authoring Rules: Enforces concurrency limits on git-mutating workflows, mandatory network timeouts on private-endpoint calls, merge_group triggers for required checks, and extraction of large inline scripts into standalone files. - Dashboard Data Integrity: Preserves last-known snapshots with explicit freshness metadata instead of wiping data on fetch failures, and requires source lineage for every published metric. - Private Cluster Access Patterns: Covers ARC container-mode runners, kubectl API-server proxy subresources, and dedicated CI Tailscale tailnets for best-effort cache seeding. - Use Case: A publishing workflow fails with GH013 ruleset violations; the Skill directs you to push generated data with a repository deploy key over SSH instead of routing through GITHUB_TOKEN or the merge queue. ## Quick Start Review my GitHub Actions workflow that publishes dashboard JSON and fix any issues with timeouts, concurrency, or ruleset-protected pushes.

Frequently Asked Questions about ci-tooling

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fix GitHub Actions workflows that hang on private network calls?▼

Add explicit timeouts to every execSync, fetch, curl, or skopeo call that reaches private endpoints, such as timeout: 2000 in Node.js or --max-time for curl. Without timeouts, one unreachable endpoint hangs the runner indefinitely and starves the concurrency group.

Why does my required status check never run on merge queue entries?▼

Pull_request triggers alone do not fire for merge-queue refs. Add merge_group with types: [checks_requested] beside pull_request for every workflow named in a branch ruleset's required status checks, otherwise queued entries wait at AWAITING_CHECKS forever.

How do I push generated data to a ruleset-protected branch from GitHub Actions?▼

GITHUB_TOKEN holds no ruleset bypass and cannot start workflows on bot-opened PRs, so both direct pushes and PR routes fail. Create a write deploy key, store its private half as a repo secret, and push over SSH as a DeployKey bypass actor.

Should dashboard data be cleared when a private cluster fetch fails?▼

No, clearing fields makes the dashboard lie by omission. Preserve the last known live values and set explicit freshness metadata such as _meta.live_snapshot_ok and _meta.refreshed_at so the UI can show staleness honestly.

When should I use Tailscale versus ARC runners for private cluster access in CI?▼

Prefer an on-cluster ARC runner (runs-on: ghost-runners) first; Tailscale bridging is only for best-effort seeding jobs, never required gates. Use a dedicated CI tailnet, OAuth client with a dedicated tag, continue-on-error on every step, and keep the production tailnet separate.

Why do my CI tests pass locally but fail on GitHub-hosted runners?▼

GitHub-hosted runners lack homelab network access and developer PAT scopes, so assertions expecting live LAN data always fail. Handle missing data gracefully with fallback rendering and write assertions that accept both live and degraded paths.