Skip to content
Back to skills

Ci Rules

ASecurity

CI + hooks discipline — ci-test-memory-tuning (test-suite memory budget vs runner OS headroom; OOM vs worker-thrash diagnostic), github-actions-gotchas (named pitfalls: bash -e + pipefail, 21K char expression limit, SHA-pin actions, runner OOM, workerIdleMemoryLimit thrash, pull_request vs pull_request_target), hooks (lifecycle: SessionStart / PreToolUse / PostToolUse / PreCompact / Stop / SessionEnd). Select explicitly when this guidance applies.

  • 12 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 6, 2026
ai-agentspythonrustgojavarubyswiftkotlinc++c#bash

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned October 6, 2026

npx -y skills add Nmor/the-council --skill ci-rules --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ci Rules?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ci Rules
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nmor-ci-rules-the-council/badge)](https://www.skillsdirectory.com/skills/nmor-ci-rules-the-council)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ci-rules
description: CI + hooks discipline — ci-test-memory-tuning (test-suite memory budget vs runner OS headroom; OOM vs worker-thrash diagnostic), github-actions-gotchas (named pitfalls: bash -e + pipefail, 21K char expression limit, SHA-pin actions, runner OOM, workerIdleMemoryLimit thrash, pull_request vs pull_request_target), hooks (lifecycle: SessionStart / PreToolUse / PostToolUse / PreCompact / Stop / SessionEnd). Select explicitly when this guidance applies.
paths:
  - ".github/workflows/**/*.yml"
  - ".github/workflows/**/*.yaml"
  - ".github/actions/**/*.yml"
  - ".github/actions/**/*.yaml"
  - ".gitlab-ci.yml"
  - ".gitlab/**"
  - "azure-pipelines.yml"
  - "azure-pipelines.yaml"
  - "Jenkinsfile"
  - "**/Jenkinsfile"
  - ".circleci/**"
  - "bitbucket-pipelines.yml"
  - ".githooks/**"
  - ".pre-commit-config.yaml"
  - "**/.github/workflows/**"
  - "**/.github/actions/**"
disable-model-invocation: true
---

# ci-rules

> **Size budget: 25 KB.** Check: wc -c. Gate: node ~/.claude/scripts/token-budget.mjs --check
>
> Migrated 2026-06-02 from `~/.claude/rules/common/` as part of the lazy-rules-loading plan. Phase H
> will delete the source files to close the eager-load loop.

## Standards Cited

- **GitHub Actions Workflow syntax** (docs.github.com/actions/using-workflows) — canonical spec for
  `on:` triggers, job graph, expressions
- **OWASP Top 10 CI/CD Security Risks** (owasp.org/www-project-top-10-ci-cd-security-risks) —
  CICD-SEC-01 through CICD-SEC-10
- **SLSA v1.0** (slsa.dev/spec/v1.0) — supply-chain levels; SHA-pinned actions satisfy Build L3
- **CWE-829** Inclusion of Functionality from Untrusted Control Sphere (action-by-tag = vulnerable)
- **CWE-1357** Reliance on Insufficiently Trustworthy Component (unpinned third-party action)
- **NIST SP 800-204D** Strategies for the Integration of Software Supply Chain Security in DevSecOps
- **OWASP Top 10 A05:2021** Security Misconfiguration — `pull_request_target` + checkout-of-PR-code
  is the canonical misconfiguration shape
- **Conventional Commits 1.0** (conventionalcommits.org) — commit-message contract for downstream
  changelog / semver automation
- **Semantic Versioning 2.0** (semver.org) — version-bump rules the CI release pipeline encodes

## Source files migrated

- `rules-library/common/ci-test-memory-tuning.md`
- `rules-library/common/github-actions-gotchas.md`
- `rules-library/common/hooks.md`

## Purpose

Routing table for the CI + hooks discipline. This file is
`paths:`-gated, so it is added to the always-on context Floor in full
whenever a CI workflow or hook file is touched — the detail therefore
lives in `references/`, loaded only when the topic is actually in play.
Read the row you need; each reference file carries the complete,
unchanged guidance for its topic.

## Topic map

| Topic | Read |
| --- | --- |
| **CI test memory tuning** — OOM-preempt vs worker-thrash failure modes, runner RAM reference table, Jest / Vitest / pytest / Go tuning, diagnostic recipe, verification block | [`references/ci-test-memory-tuning.md`](references/ci-test-memory-tuning.md) |
| **GitHub Actions gotchas** — the 13 named pitfalls: `bash -e` + pipefail, 21K expression limit, required-workflow file access, `set -u` + empty array, `echo \| jq` newline mangling, Node 20→24 deprecation, YAML 1.1 `on:`, `cancel-in-progress`, the three timeouts, runner OOM, `workerIdleMemoryLimit` thrash, SHA-pinning, `pull_request` vs `pull_request_target` | [`references/github-actions-gotchas.md`](references/github-actions-gotchas.md) |
| **Hook lifecycle, mandatory hooks, permissions, TodoWrite** — SessionStart / UserPromptSubmit / PreToolUse / PostToolUse / PreCompact / Stop / SessionEnd, the mandatory global hooks, auto-accept policy, TodoWrite practices | [`references/hooks-lifecycle.md`](references/hooks-lifecycle.md) |
| **Per-language PostToolUse gates** — Go, TS/JS, Python, Java/Kotlin, Ruby, Rust, C/C++, Swift, Dart, C#, Markdown, Infrastructure, SQL, Bash | [`references/hooks-per-language-gates.md`](references/hooks-per-language-gates.md) |

## Cross-references

- [ci-test-memory-tuning](references/ci-test-memory-tuning.md) — sister to
  gotchas 10 + 11
- [github-actions-gotchas](references/github-actions-gotchas.md) — sister to
  `deploy-failures-become-checks.md`, `security-controls-org-wide.md`
- [hooks-lifecycle](references/hooks-lifecycle.md) — sister to
  `auto-skills.md`, `no-discards.md`
- [hooks-per-language-gates](references/hooks-per-language-gates.md) — sister
  to `done-criteria.md`, `extreme-lint-policy.md`

Files in this skill

  • SKILL.md4.5 KB
  • references/ci-test-memory-tuning.md8.5 KB
  • references/github-actions-gotchas.md13.3 KB
  • references/hooks-lifecycle.md6.5 KB
  • references/hooks-per-language-gates.md4.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…