Skip to main content

Build tool for AI coding skills — compiles skill definitions into tool-specific output

Project description

aictrl

Build tool for AI coding skills — compiles skill definitions into tool-specific output for Claude Code, Cursor, and other AI coding assistants.

Think dbt for AI skills: define your team's coding skills once in YAML, build them into the format each tool expects.

Install

pip install aictrl

Quick Start

If your repo already has an .aictrl/ directory (set up by aictrl.dev or manually):

aictrl build

This reads skill definitions from .aictrl/data/skills/ and renders them into .claude/ and .cursor/ folders.

To start from scratch:

aictrl init --org-id my-org
# Add skill YAML files to .aictrl/data/skills/
aictrl build

Commands

Command Description
aictrl build Build .claude/ and .cursor/ from skill data
aictrl build --target claude Build only Claude Code output
aictrl build --target cursor Build only Cursor output
aictrl check Check if build is stale (CI-friendly, exits 1 if stale)
aictrl clean Remove build output
aictrl status Show installed skill versions
aictrl init Initialize .aictrl/ scaffold
aictrl install-hook Install git post-checkout hook for auto-builds

How It Works

Directory Structure

your-repo/
├── .aictrl/                    # Committed to git
│   ├── config.yaml             # Org connection config
│   ├── skills.lock             # Locked versions + checksums
│   ├── data/
│   │   ├── org.yaml            # Organization metadata
│   │   └── skills/             # Skill definitions (YAML)
│   │       ├── code-review.yaml
│   │       └── testing-guide.yaml
│   └── overrides/
│       └── skills/             # Team customizations (partial YAML)
│           └── code-review.yaml
├── .claude/                    # Gitignored — built output
│   ├── skills/
│   │   └── code-review/
│   │       └── code-review.md
│   ├── settings.json
│   └── hooks/
│       └── skill-telemetry.sh
└── .cursor/                    # Gitignored — built output
    ├── hooks.json
    └── hooks/
        └── skill-telemetry.sh

Build Flow

.aictrl/data/skills/code-review.yaml   (base skill from aictrl)
  + .aictrl/overrides/skills/code-review.yaml  (team customizations)
  → rendered through Jinja2 templates
  → .claude/skills/code-review/code-review.md
  → .cursor/ hook configs

Skill YAML Format

Each skill is a self-contained YAML file:

slug: code-review
name: code-review
description: "Guides thorough code reviews"
version: "1.2.3"

instructions: |
  You are a code review assistant. Focus on:
  1. Security vulnerabilities
  2. Performance implications
  3. Code readability

sections:
  checklist: |
    ## Review Checklist
    - [ ] No hardcoded secrets
    - [ ] Error handling is complete

tags: [review, quality]
allowed_tools: [Bash, Read, Grep]

Overrides

Customize skills for your team without forking. Create partial YAML files in overrides/skills/:

# .aictrl/overrides/skills/code-review.yaml
# Only include fields you want to change.

allowed_tools:
  - Bash
  - Read
  - Grep
  - Edit

sections:
  team_standards: |
    ## Our Standards
    - Always check test coverage
    - Review error handling patterns

Merge rules:

  • Scalars: override replaces base
  • Lists: override replaces base entirely
  • Dicts: deep merge (override keys win)
  • _delete: [key1, key2]: removes keys from base

Overrides survive skill updates — when aictrl pushes new skill versions, your customizations are merged on top automatically.

Auto-build on Checkout

Install a git hook so skills rebuild after git pull, git checkout, or git merge:

aictrl install-hook

CI Integration

Use aictrl check in CI to ensure builds aren't stale:

# .github/workflows/ci.yml
- name: Check skills are built
  run: |
    pip install aictrl
    aictrl check

Integration with aictrl.dev

aictrl.dev manages skills centrally and pushes updates to your repos via PR:

  1. aictrl creates a PR updating .aictrl/data/skills/ and skills.lock
  2. Your team reviews and merges
  3. Developers run aictrl build (or it auto-builds via post-checkout hook)
  4. .claude/ and .cursor/ are regenerated with latest skills + your overrides

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aictrl-0.1.2.tar.gz (19.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aictrl-0.1.2-py3-none-any.whl (16.2 kB view details)

Uploaded Python 3

File details

Details for the file aictrl-0.1.2.tar.gz.

File metadata

  • Download URL: aictrl-0.1.2.tar.gz
  • Upload date:
  • Size: 19.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aictrl-0.1.2.tar.gz
Algorithm Hash digest
SHA256 9c51156c0ec3b235d7f3e9c78d7d21e943dc274c04e60c05995053352b4421c3
MD5 2482fea06e1bdce3f3ab1e473a76bbef
BLAKE2b-256 5cbee7219d7bd7ddc09eaaa0fa977ff79e1bc749da86c1bcb0c1be1e8f4744ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for aictrl-0.1.2.tar.gz:

Publisher: publish.yml on aictrl-dev/aictrl-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aictrl-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: aictrl-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 16.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aictrl-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 837213f1c6dbb445b50e2cc69e40a2ed26ab71d10cf46d36438e4d90ef7d9ad3
MD5 490f6a569c4a7d88de6d30d70f4352f2
BLAKE2b-256 1186bb35f45beb45610ba90248a76fe09e1905c89f6d05b175e0507743f21b68

See more details on using hashes here.

Provenance

The following attestation bundles were made for aictrl-0.1.2-py3-none-any.whl:

Publisher: publish.yml on aictrl-dev/aictrl-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page