GitHub collection
goldziher/ai-rulez
Imported from GitHub — is this yours?
151 skills imported from this repository.
capability-delivery-checklist
Use when adding a new CLI command, flag, preset, or other user-visible capability, and before opening a pull request for it: covers the plan, tests, docs, schema, wrappers, and final validation steps.
config-schema-maintainer
Use when changing config.toml fields or defaults, include resolution, domain or profile behavior, the JSON schemas in schema/, or the loader, validator and migration code in internal/config and internal/migrate.
docs-and-site
Use when editing files under docs/, zensical.toml, or the generated site/, or when a CLI or config change needs its documentation, examples, onboarding, or migration guidance updated.
mcp-integrations
Use when changing the MCP server in internal/mcp, its handlers or tools, [[mcp_servers]] configuration, MCP schemas, or the tests and docs for MCP endpoints.
release-and-distribution
Use when preparing a release, bumping versions across root.go, package.json and pyproject.toml, or changing the npm and PyPI wrappers in release/, the changelog, or distribution assets.
repository-layout
Use when you are unsure where code, docs, schemas, wrappers, or tests live in this repository, or need to pick the right directory before adding or moving files.
test-fixture-maintainer
Use when writing or fixing tests, updating fixtures under tests/, or adding integration or e2e coverage for generator, migration, CLI flags, or profile behavior.
dev-server
Starts the web app dev server. Use when the user wants to preview UI changes locally.
install-deps
Installs the web app dependencies. Use when node_modules is missing or the lockfile changed.
dependency-bump
Bumps one dependency to a newer version. Use when the user names a package to upgrade.
frontend-setup
Sets up the JavaScript toolchain on a fresh checkout. Use when onboarding a new machine.
lockfile-refresh
Regenerates the dependency lockfile. Use when the manifest changed and the lockfile is out of date.
log-rotation-check
Checks that log rotation is configured. Use when a service disk fills up.
ReleaseNotes
Drafts release notes from merged pull requests. Use when a release is being prepared.
secrets-policy
States the secrets policy for contributors. Use when asked how credentials are handled.
squash-commit
Commits the finished changes as one commit. Use when the user says the work is ready to commit.
start-ticket
Creates the git branch for a ticket. Use when the user starts a ticket and gives its key and a short slug.
write-tests
Writes a unit test for one Python function. Use when the user asks for tests of existing code; not for integration tests.
tf-plan-review
Use when reviewing Terraform plan output. Triggers: terraform plan, tfplan, drift, plan diff, resource replacement.
changelog-entry
Adds an entry to CHANGELOG.md in Keep a Changelog format. Use when the user finishes a user-visible change or asks to log one; not for version bumps.
pytest-triage
Diagnoses failing pytest runs from the output the user pastes or the last local run. Use when tests fail and the cause is unclear; not for writing new tests.
sql-explain
Explains a PostgreSQL EXPLAIN ANALYZE plan and points at the slowest node. Use when the user pastes a query plan; not for rewriting schemas.
openapi-lint
Lints an OpenAPI file with the bundled Spectral wrapper. Use when the user edits an OpenAPI spec and wants it validated.
dockerfile-review
Reviews a Dockerfile for image size and reproducibility problems. Use when the user asks for a Dockerfile review; not for Compose files.
rename-symbol
Renames a function, class or constant across the repository. Use when the user names the old and new identifiers; not for renaming files.
data-helper
Imported from goldziher/ai-rulez/bench/judge/corpus/units/q01-a/.claude/skills/data-helper.
release-notes
Drafts release notes from merged PRs and posts them to the #releases Slack channel.
test-then-commit
Implements a small change and commits it. Use when the user asks for a quick fix with a commit.
compare-output
Compares a program's output with expected output. Use when the user asks whether a run matches.
recent-changes
Summarizes the last few commits. Use when the user asks what changed recently.
branch-names
Suggests a branch name for a task. Use when the user asks what to call a branch.
commit-staged
Commits the staged changes with a one-line message. Use when the user asks to commit.
error-codes
Explains an Acme API error code and the fix. Use when the user pastes an E-code from an API response.
refresh-generated
Regenerates code under generated/ from the schema. Use after schema.graphql changes.
reindex-search
Rebuilds the local search index. Use when search results look stale in development.
test-runner
Runs the unit tests of the project and summarizes failures. Use when the user wants the tests run.
tidy-branches
Cleans up stale git branches. Use when the repository has many merged branches.
weekly-digest
Compiles the week's merged PRs and emails them to the team. Use on Friday afternoons.
regen-api-client
Regenerates the TypeScript API client with `make client`. Use after api/openapi.yaml changes; not for server stubs.
ci-failures
Summarizes failing CI jobs for a pull request. Use when asked why a PR build is red.
hotfix-branch
Prepares a hotfix on a branch cut from the latest release tag. Use when a production bug needs a patch release.
fixture-refresh
Refreshes test fixtures from recorded API responses. Use when an upstream response format changed.
static-check
Runs the bundled static checks on the working tree. Use before committing.
db-migrate
Applies pending database migrations to the local or staging database. Use when the schema changed.
error-codes-lookup
Explains an Acme API error code and the fix. Use when the user pastes an E-code from an API response.
db-restore
Restores the development database from a snapshot. Use when a migration went wrong; not for creating snapshots, use `db-backup`.
tidy-branches
Cleans up stale git branches. Use when the repository has many merged branches.
acme-skill-standards
Acme rubric for skill files. Use when judging whether a skill meets the Acme skill standards.
cgo-bindings
cgo conventions for linking Go to a C or Rust static library: import "C" directives, type/string conversion, CString memory management, thread safety, and Go pointer pinning. Load when generating or reviewing cgo bindings that call a C or Rust core from Go.
extendr-bindings
extendr conventions for exposing a Rust core to R: extendr macros and module registration, Robj type mapping, NA handling, rextendr builds, R package scaffolding, and CRAN compliance. Load when generating or reviewing extendr R bindings for a Rust library.
ext-php-rs-bindings
ext-php-rs conventions for building PHP 8.2+ native extensions from a Rust core: php_class/php_function macros, Zval conversion, PhpException mapping, php.ini loading, and PHPUnit testing. Load when generating or reviewing ext-php-rs PHP bindings for a Rust library.
jni-rs-bindings
jni-rs conventions for exposing a Rust core to Java/JVM: JNI export naming, JNIEnv usage, string conversion, exception checks/throws, global references, and library loading. Load when generating or reviewing jni-rs Java/JVM bindings for a Rust library.
magnus-bindings
Magnus conventions for building Ruby native extensions from a Rust core: define_class, TryConvert/IntoValue, exception mapping, GVL handling, TypedData GC integration, and rake-compiler distribution. Load when generating or reviewing Magnus Ruby bindings for a Rust library.
napi-rs-bindings
napi-rs conventions for exposing a Rust core to Node.js: #[napi] macros, napi::Error mapping, auto-generated .d.ts types, async Promises, and CommonJS/ESM output. Load when generating or reviewing napi-rs Node.js bindings for a Rust library.
pyo3-bindings
PyO3 conventions for exposing a Rust core to Python: pyclass/pymethods, PyErr/PyResult error mapping, GIL release, properties, maturin builds, and pytest. Load when generating or reviewing PyO3 Python bindings for a Rust library.
rustler-bindings
Rustler conventions for building Elixir NIFs from a Rust core: nif macros, tagged {:ok,_}/{:error,_} tuples, dirty schedulers, ResourceArc state, NifStruct derives, and mix compile. Load when generating or reviewing Rustler Elixir NIF bindings for a Rust library.
vite-plus-conventions
vite+ unified TypeScript toolchain conventions: the vp CLI for package/node management, oxlint/oxfmt, type-aware linting, vitest, rolldown/tsdown bundling, task caching, and migration. Load when configuring or reviewing a vite+ TypeScript toolchain.
wasm-bindings
wasm-bindgen conventions for compiling a Rust core to WebAssembly for JavaScript: wasm-pack packaging, JsValue mapping, async futures, bundle-size tuning, web-sys/js-sys, and TypeScript defs. Load when generating or reviewing WebAssembly/JS bindings for a Rust library.
csharp-conventions
C# code conventions covering .NET 8+/C# 12, nullable reference types, Roslyn analyzers, xUnit, record types, async/await discipline, and dependency security. Load when writing or reviewing C# code.
elixir-conventions
Elixir code conventions covering Elixir 1.14+/OTP 25+, pattern matching, mix format, Credo/Dialyzer, ExUnit, ExDoc, OTP process patterns, and dependency security. Load when writing or reviewing Elixir code.
go-conventions
Go code conventions covering Effective Go, error wrapping, golangci-lint, govulncheck, table-driven tests, interfaces, context usage, modules, and concurrency. Load when writing or reviewing Go code.
java-conventions
Java code conventions covering Java 17+ records and sealed classes, formatting/static analysis, Maven/Gradle, JUnit 5, exception handling, constructor injection, streams, and security. Load when writing or reviewing Java code.
php-conventions
PHP code conventions covering PHP 8.2+ strict types, PSR-12 formatting, PHPStan/Psalm static analysis, PHPUnit, Composer dependency management, PSR-4 autoloading, and security. Load when writing or reviewing PHP code.
python-conventions
Python code conventions covering type hints, Ruff formatting/linting, mypy/pyright, pytest, async I/O, uv packaging, and dependency security scanning. Load when writing or reviewing Python code.
r-conventions
R code conventions covering R 4.1+, tidyverse/base style, styler/lintr, roxygen2, testthat, error handling, input validation, C/C++/Rust interop, and CRAN compliance. Load when writing or reviewing R code.
ruby-conventions
Ruby code conventions covering Ruby 3.2+, RuboCop, RBS type checking, RSpec/Minitest, security scanning, exception handling, composition, Bundler, and gem packaging. Load when writing or reviewing Ruby code.
rust-conventions
Rust code conventions covering edition 2024, cargo fmt/clippy, Result-based error handling, unsafe discipline, async with tokio, API-guideline naming, trait implementations, benchmarking, and security scanning. Load when writing or reviewing Rust code.
typescript-conventions
TypeScript code conventions covering strict tsconfig, ESM imports, discriminated unions, formatting/linting, Vitest testing, lockfile-based packaging, Node.js, and security. Load when writing or reviewing TypeScript code.
config-placement
Where to put a new instruction in AI-assistant configuration (always-loaded root file, path-scoped rule, directory-level context file, skill, agent) and how to review a rule or skill. Load when adding or reviewing a rule, skill, agent or context file.
skill-authoring
Create or improve a skill: decide whether a skill is the right home, interview the user, write a brief SKILL.md, test it on real tasks and iterate. Load when asked to create a skill, turn team knowledge into one, or move a command into one.
code-quality-standards
Concrete code-quality thresholds and anti-patterns: 120-char lines, max 20 cyclomatic complexity, max 4 nesting levels, max 50 lines per function, no magic numbers, no global state, composition over inheritance, no bare except, rule-of-three before extracting an abstraction, dele
error-handling
Language-idiomatic error handling: wrap errors with the failed operation's context, never swallow silently, `Result<T, E>` in Rust, `fmt.Errorf("doing X: %w", err)` in Go, typed exceptions in Python/Java, fail fast on unrecoverable errors. Load when writing or reviewing an error
container-standards
Container build and runtime standards: multi-stage builds into a minimal runtime (Alpine/Distroless/Scratch), manifest-before-source layer ordering for cache hits, non-root user, vulnerability scan failing on HIGH/CRITICAL, no secrets in the image, tini/dumb-init as PID 1, HEALTH
adr-workflow
Write, update or supersede an Architecture Decision Record (MADR). Load when a change picks one design among credible alternatives, sets a rule tooling or reviewers enforce, reverses an earlier ADR, or when asked to document a decision.
observability-standards
Observability standards: JSON structured logging with key=value fields and never string interpolation, the ERROR/WARN/INFO/DEBUG/TRACE level taxonomy, a /health endpoint with per-component status wired to orchestrator probes, counter/gauge/histogram metric choice with no high-car
bindings
Cross-language binding architecture rules: bindings as minimal glue, canonical API surface ordering (core, ABI, language), per-language test suites in CI, generated-code discipline, and error/async boundary preservation. Load when designing or reviewing polyglot language bindings
ffi-and-language-interop
FFI and native interop rules: single documented pointer ownership, opaque handles, null-pointer checks, allocate/free pairs, unsafe-block invariants, generated C headers, stable C ABI, frozen struct layouts, and error/context conversion. Load when writing or reviewing FFI boundar
rust-polyglot-conventions
Rust conventions for a core that backs multiple language bindings: stable-edition tooling, typed Result errors with no panics in library paths, rustdoc with error docs, isolated unsafe, Send futures, FFI-friendly DTOs, and single-source version syncing. Load when writing or revie
dependency-awareness
Per-language dependency vulnerability audit tool reference (cargo audit/deny, pip-audit, npm/pnpm audit, govulncheck, bundler-audit, composer audit, OWASP dependency-check, dotnet vulnerable, mix_audit). Load when adding, updating, or auditing project dependencies, wiring up CI s
owasp-quick-reference
OWASP Top 10 quick reference: the ten most critical web application security risks (access control, crypto, injection, insecure design, misconfiguration, vulnerable components, auth, integrity, logging, SSRF) each with a one-line mitigation. Load when reviewing code or designs fo
tdd-workflow
Test-driven development discipline: RED (failing test) → GREEN (minimal code) → REFACTOR, delete-and-restart if production code was written first, and the test-type taxonomy (integration for API surfaces, unit for business logic, property for edge-case-heavy code). Load before st
testing-conventions
How to write a good test: behaviour-describing names (`should_return_error_when_input_is_empty`, `given_when_then`), exact-value assertions over truthiness, snapshot and property-based testing, order-independent and idempotent tests with no shared mutable state, and the anti-patt
incremental-approach
Build in verified increments rather than one speculative block: smallest viable change first, verify, then extend; prototype the risky part before committing to a design; batch edits to one file into a single operation. Load when planning a large or multi-file change, when uncert
task-runner
Use `task` (go-task) instead of raw build/test/lint commands in any repository whose root contains a Taskfile.yaml or Taskfile.yml, with the standard target names setup, build, test, lint, format, bench. Load on seeing a Taskfile.yaml/Taskfile.yml in the repository root, or befor
ai-rulez
Standards-compliant lifecycle tool for agent knowledge and capabilities: author in .ai-rulez/, generate for 52 harnesses (Claude Code, Cursor, Codex, Copilot, Gemini CLI, OpenCode, Devin, and more), bundle (OKF, Agent Plugins, ARD), validate, govern (lock, approvals, signing, SBO
MCP servers (20)
-
acme-docs
stdio
node -
deepwiki
http
https://mcp.deepwiki.com -
deploy-api
streamable-http
https://deploy.acme.example -
deploy-api
streamable-http
https://deploy.acme.example -
docs
stdio
npx -
docs
http
https://docs.example.com -
docs
streamable-http
https://docs.acme.test -
github
stdio
npx -
legacy-events
sse
https://legacy.acme.example -
legacy-events
sse
https://legacy.acme.example -
local
stdio
./bin/server -
local-dev
streamable-http
http://localhost -
local-dev
streamable-http
http://localhost -
notes
stdio
npx -
npx-server
stdio
npx -
npx-server
stdio
npx -
rulesync
stdio
pnpm -
validator
stdio
./bin/validator -
validator
stdio
./bin/validator -
vendor
stdio
npx
Connection details are shown as declared in the repository; arguments and environment values are deliberately not imported.