Hi - I answer from the OpenSmartRoute documentation: routing, the API, plans and quotas, self-hosting. Ask away, or open a support ticket if you need a person.
Grounded in the docs - follow a source before acting on it.
Operate rhysd/actionlint for GitHub Actions in TypeScript monorepos: install, CI gate, shellcheck integration, problem matchers, ignore rules, and workflow authoring hygiene. Use when hardening owned
Imported from bedkillerspacex-boop/codex-skill-library (typescript-actionlint-ops/SKILL.md). Install upstream with npx skills add bedkillerspacex-boop/codex-skill-library --skill typescript-actionlint-ops. Copyright stays with the author.
TypeScript Actionlint Ops
Scope And Authorization
In scope: owned repositories; linting and fixing GitHub Actions workflows you control.
Out of scope: modifying workflows in orgs without permission; secret exfiltration research
beyond authorized hardening.
Prefer CI non-blocking first if workflows are legacy-noisy, then fail-closed.
Redact secrets that appear in workflow logs when triaging.
Pair workflow edits with code-quality-standards and secure CI practices.
When To Use
Add static checks for .github/workflows/*.yml in a TS monorepo.
Catch expression errors, invalid runs-on, bad permissions:, and shell issues early.
# Install (example — pin version in CI)# https://github.com/rhysd/actionlint/releasesactionlint -version# Lint all workflowsactionlint# Explicit pathsactionlint .github/workflows/*.yml# With shellcheck on PATHactionlint -shellcheck shellcheck# JSON for toolingactionlint -format '{{json .}}' > actionlint-report.json
Repos and workflow owners; required checks policy.
Success: “PRs fail on actionlint errors; critical workflows least-privilege permissions.”
2. Inventory
List workflows; note reusable workflows and local actions.
Self-hosted runner labels that must be declared for actionlint.
Existing super-linter / check-yaml overlap.
3. Baseline
actionlint 2> actionlint-baseline.txt || true
Classify true positives vs style noise.
4. Integrate
Pin actionlint version in CI download step.
Add job to required checks when clean.
Fix high-value issues: bad expressions, secrets in echo, missing permissions.
Prefer OIDC + least permissions: over long-lived PATs.
5. Verify
actionlint# TS package workflows still typecheck separatelypnpm tsc --noEmit
6. Observe and hand off
Track suppressions; revisit quarterly.
Document how to run actionlint locally for workflow authors.
Pair with CODEOWNERS on .github/workflows.
Good / Bad
Topic
Good
Bad
Version
Pinned actionlint
Floating latest script only
Permissions
Explicit least privilege
Default GITHUB_TOKEN write
Actions
SHA-pinned third parties
@master unpinned
Secrets
Masked, not echoed
echo ${{ secrets.X }}
CI
Required check
Optional forever
Scope
Owned repos
Filing noisy PRs on strangers
Output Checklist
actionlint pinned in CI
Baseline issues dispositioned
Local run instructions documented
Self-hosted labels configured if needed
Shellcheck enabled when applicable
Workflow permissions reviewed
CODEOWNERS for workflows
Required check enabled or exception dated
code-quality-standards applied
Rules
Only modify workflows you are authorized to change.
Linting is necessary but not sufficient for CI security.
Keep focus on actionlint operations for GHA in TS repos.
Use it
Copy one of these into your project. Installing also returns the manifest and these snippets.
# after Install: the listing is in your workspace's routing pool - a plan picks it for its slot
curl -s -X POST https://api.opensmartroute.ai/api/v1/route -H 'Authorization: Bearer $OSR_API_KEY' -H 'Content-Type: application/json' -d '{"text": "...", "plan": true}'
Manifest
An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.
{
"ocm": "1",
"id": "bedkillerspacex-boop-codex-skill-library-typescript-acti-1736ed",
"kind": "skill",
"name": "typescript-actionlint-ops",
"description": "Operate rhysd/actionlint for GitHub Actions in TypeScript monorepos: install, CI gate, shellcheck integration, problem matchers, ignore rules, and workflow authoring hygiene. Use when hardening owned .github/workflows — not for attacking Actions on foreign orgs.",
"publisher": "bedkillerspacex-boop",
"version": "1.0.0",
"capabilities": {
"domains": [
"coding"
],
"tags": [
"skill-md",
"github"
],
"languages": [
"en"
]
},
"quality_prior": 0.6,
"examples": [
"Operate rhysd/actionlint for GitHub Actions in TypeScript monorepos: install, CI gate, shellcheck integration, problem matchers, ignore rules, and workflow authoring hygiene. Use when hardening owned .github/workflows — not for attacking Actions on foreign orgs."
],
"primary": false,
"metadata": {
"source": {
"provider": "github",
"repository": "https://github.com/bedkillerspacex-boop/codex-skill-library",
"path": "typescript-actionlint-ops/SKILL.md",
"ref": "eed9fd05579890130b25214473a7970a5b4d776a",
"url": "https://github.com/bedkillerspacex-boop/codex-skill-library/blob/eed9fd05579890130b25214473a7970a5b4d776a/typescript-actionlint-ops/SKILL.md",
"key": "bedkillerspacex-boop/codex-skill-library/typescript-actionlint-ops/SKILL.md"
}
},
"instructions": "# TypeScript Actionlint Ops\n\n## Scope And Authorization\n\n- **In scope:** owned repositories; linting and fixing GitHub Actions workflows you control.\n- **Out of scope:** modifying workflows in orgs without permission; secret exfiltration research\n beyond authorized hardening.\n- Prefer CI non-blocking first if workflows are legacy-noisy, then fail-closed.\n- Redact secrets that appear in workflow logs when triaging.\n- Pair workflow edits with `code-quality-standards` and secure CI practices.\n\n## When To Use\n\n- Add static checks for `.github/workflows/*.yml` in a TS monorepo.\n- Catch expression ",
"cost": {
"context_tokens": 1087
}
}
Fetch it by URL: GET /api/v1/registry/bedkillerspacex-boop-codex-skill-library-typescript-acti-1736ed/manifest?version=1.0.0
Reviews
Star ratings from people who tried it. One review per account; edit yours any time.
No reviews yet. Install it, try it, and be the first to rate it.