ci-lint-check
Run pre-commit CI lint validation locally before pushing to avoid GitHub Actions failures.
Skill by gitricko
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/gitricko-ci-lint-check
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: devops
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Shell scripts
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/ci-lint-check
What's inside
- Skill name
ci-lint-check- Description
- Run pre-commit CI lint validation locally before pushing to avoid GitHub Actions failures.
- License
- MIT
- Instructions
- 146 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (3)
- SKILL.md
- dev-prod-parity.md · references/
- ci_lint_check.sh · scripts/
SKILL.md (first lines)
# CI Lint Check Skill
Run the full CI lint validation locally before committing or creating a PR. This mirrors the `lint-check` job in `.github/workflows/ci.yml` and catches all format/validation issues that would fail CI.
## When to Use
- **Before every commit** that touches `skills/**`, `wiki/**`, `mnemon/**`, `memories/**`, or `*.sh`
- **Before creating a PR** to ensure CI passes
- When CI fails and you need to debug locally
## Prerequisites
- `markdownlint-cli` (auto-installed by script)
- `python3` (for Mnemon seed validation)
- `bash` (for shell syntax checks)
## How to Run
```bash
# Quick one-liner (runs all checks):
bash skills/ci-lint-check/scripts/ci_lint_check.sh
# Or step by step:
bash skills/ci-lint-check/scripts/ci_lint_check.sh --markdown-only
bash skills/ci-lint-check/scripts/ci_lint_check.sh --skills-only
bash skills/ci-lint-check/scripts/ci_lint_check.sh --wiki-only
bash skills/ci-lint-check/scripts/ci_lint_check.sh --mnemon-only
bash skills/ci-lint-check/scripts/ci_lint_check.sh --shell-only
bash skills/ci-lint-check/scripts/ci_lint_check.sh --symlink-only
```
## What It Validates
| Check | Files | CI Job |
|-------|-------|--------|
| Markdown lint | `wiki/*.md`, `skills/*/SKILL.md`, `.hermes.md`, `README.md` | `lint-check` |
| SKILL.md structure | All skills in `skills/*/SKILL.md` | `lint-check` |
| Wiki INDEX.md consistency | Every `.md` in wiki/ referenced in INDEX.md | `lint-check` |
| Mnemon seed.json | `mnemon/seed.json` schema | `lint-check` |
| Root shell syntax | `*.sh` | `lint-check` |
| Skill shell syntax | `skills/*/scripts/*.sh` | `lint-check` |
| Symlink persistence | Tracked dirs + boot script symlink logic | `lint-check` |
## Procedure
### 1. Install dependencies (first run only)
```bash
npm install -g markdownlint-cli
```
### 2. Run full validation
```bash
bash skills/ci-lint-check/scripts/ci_lint_check.sh
```
### 3. Fix any reported issues
- Markdown lint: fix reported line/column issues
- SKILL.md: ensure YAML frontmatter with `name:` field
- Wiki: add missing articles to INDEX.md table
- Mnemon: `python3 mnemon/validate-seed.py mnemon/seed.json`
- Shell: `bash -n <script>` to see syntax errors
- Symlinks: ensure boot scripts create proper symlinks
### 4. Commit and push
```bash
git add -A
git commit -m "your message"
git push
```
## CI Behavior
| Changed Paths | CI Job | Duration |
|---------------|--------|----------|
| `skills/**` | `lint-check` | ~30s |
| `wiki/**` | `lint-check` | ~30s |
| `mnemon/**` | `lint-check` | ~30s |
| `memories/**` | `lint-check` | ~30s |
| `*.sh` | `lint-check` | ~30s |
| `.github/workflows/**`, `install.sh`, `boot.sh`, `self-check.sh` | `full-build` | ~15min |
**Only infrastructure changes trigger full-build.** Content changes (skills, wiki, mnemon, memories, shell scripts) run the fast lint-check only.
## Dev/Prod Parity Principle
**The local script IS the CI job.** The `lint-check` workflow step delegates entirely to `ci_lint_check.sh`:
```yaml
- name: Run local CI lint check script
run: |
npm install -g markdownlint-cli
bash skills/ci-lint-check/scripts/ci_lint_check.sh
```
This guarantees identical validation in both environments. Never duplicate validation logic in CI YAML — the skill script is the single source of truth.
## Pitfalls
- **Don't skip this** — CI will fail and you'll waste time debugging in GitHub Actions
- **Run from repo root** — paths are relative to `/workspaces/.minions`
- **markdownlint config** is embedded in the script (matches CI config)
- **Mnemon seed validation** requires the validator script to exist
- **Symlink check** validates boot script logic, not actual runtime symlinks
- **MD034 / no-bare-urls** — version-like strings (`omniroute@3.8.x`) and bare URLs both trigger `MD034/no-bare-urls Bare URL used`. Wrap versions in backticks (`` `omniroute@3.8.x` ``) and real URLs in `<...>`; `ci_lint_check.sh` LINTCONF now sets `"MD034": false` — keep local config in sync with CI or Lint fails on CI despite passing locally.
- **MD056 / table column count** — unescaped `|` inside a markdown table cell splits the row (`Expected: 3; Actual: 5`). Escape every `|` as `\|` so `||` becomes `\|\|` and the 3-col table stays at 4 pipes. Run `bash skills/ci-lint-check/scripts/ci_lint_check.sh --markdown-only` before pushing any `SKILL.md` edit — catches MD056/MD013 without a CI round-trip.
- **Invalid job ID silently kills the ENTIRE workflow** — GitHub Actions job IDs must start with a letter or `_` (alphanumeric/`_`/`-` only). A violating ID (e.g. `9router-model-check`) fails the whole workflow at dispatch: the run shows `completed/failure` with **zero jobs, no logs (HTTP 404), created-at == updated-at**, and the API annotations endpoint returns 404 — the error only appears in the PR's Checks tab. DTS, real-install and every other job never start. After any `ci.yml` edit, check the PR Checks tab for an "Invalid workflow file" note and rename the ID (e.g. `router-model-check`). The display `name:` field is unconstrained — only the ID matters.
## Integration with Git Hooks (Optional)
Add to `.git/hooks/pre-commit`:
```bash
#!/bin/bash
bash skills/ci-lint-check/scripts/ci_lint_check.sh || exit 1
```
## References
- `.github/workflows/ci.yml` — source of truth for CI jobs
- `wiki/github-actions-testing-plan.md` — CI design docFrom gitricko/.minions, MIT.
More from gitricko/.minions
- 0.584score
minions-llm-proxy-ops
gitricko
Use when operating or debugging the .minions LLM proxies.
SkillAFreshness: A★ 1Claude Code +9 - 0.583score
ci-debugging
gitricko
Use when a CI/test failure seems to have one cause but the real root is different, or when a silent failure hides the real issue.
SkillAFreshness: A★ 1Claude Code +9 - 0.583score
codespace-port-visibility
gitricko
Automate Codespace port visibility via CLI w/ vscode token.
SkillAFreshness: A★ 1Claude Code +9 - 0.580score
docker-test-shell
gitricko
Use when testing in a clean throwaway container.
SkillAFreshness: A★ 1Claude Code +9 - 0.579score
codespace-gh-auth
gitricko
Extract GitHub token from VS Code for API in Codespaces.
SkillAFreshness: A★ 1Claude Code +9 - 0.578score
adopting-external-skills
gitricko
Import external skills into the Codespace tree, adapted.
SkillAFreshness: A★ 1Claude Code +9 - 0.574score
minions-9router-models
gitricko
Manage 9Router model list via etc/9router-models.json.
SkillAFreshness: A★ 1Claude Code +9 - 0.549score
codespace-webtop
gitricko
Native Selkies/XFCE webtop (browser desktop) via pixelflux-based selkies package — install, run, and autostart on any Ubuntu base system
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
ci-log-capture
gitricko
Use when test scripts redirect probe output to /dev/null, hiding failure details.
SkillBFreshness: B★ 1Claude Code +9 - 0.546score
codespace-vscode-open
gitricko
Auto-discover VS Code CLI in Codespaces and open files in connected editor
SkillBFreshness: B★ 1Claude Code +9 - 0.546score
agent-context-transfer
gitricko
Transfer implementation context to a fresh agent for seamless handoff
SkillBFreshness: B★ 1Claude Code +9 - 0.546score
codespace-lavish
gitricko
Launch a headed Lavish-AXI whiteboard over noVNC in Codespaces.
SkillBFreshness: B★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 2
- Open issues
- 3
- Last commit (this folder)
- Oct 22, 2026 (6 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/gitricko/.minions
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from gitricko
- 0.584score
minions-llm-proxy-ops
gitricko
Use when operating or debugging the .minions LLM proxies.
SkillAFreshness: A★ 1Claude Code +9 - 0.583score
ci-debugging
gitricko
Use when a CI/test failure seems to have one cause but the real root is different, or when a silent failure hides the real issue.
SkillAFreshness: A★ 1Claude Code +9 - 0.583score
codespace-port-visibility
gitricko
Automate Codespace port visibility via CLI w/ vscode token.
SkillAFreshness: A★ 1Claude Code +9 - 0.580score
docker-test-shell
gitricko
Use when testing in a clean throwaway container.
SkillAFreshness: A★ 1Claude Code +9 - 0.579score
codespace-gh-auth
gitricko
Extract GitHub token from VS Code for API in Codespaces.
SkillAFreshness: A★ 1Claude Code +9 - 0.578score
adopting-external-skills
gitricko
Import external skills into the Codespace tree, adapted.
SkillAFreshness: A★ 1Claude Code +9
Cite this page
ci-lint-check skill. Agent Mart. https://agentmart.dev/skills/gitricko-ci-lint-check (last updated 2026-10-24)