AI instruction diagnostics for coding agents
Project description
Reporails CLI
AI Instruction Diagnostics for coding agents. Validates the entire agentic instruction system against 97 rules.
Beta phase — Moving fast, feedback welcome.
Quick Start
npx @reporails/cli check
# or
uvx --from reporails-cli ails check
Install
npx @reporails/cli install
# or
uvx --from reporails-cli ails install
This installs ails to your PATH and configures the MCP server for detected agents. From then on:
ails check
ails update # Upgrade to latest version
Reporails — Diagnostics — Pro (beta)
┌─ Main (1)
│ CLAUDE.md
│ ⚠ Missing directory layout — show the project … CORE:C:0035
│ ⚠ L9 7 of 7 instruction(s) lack effective reinfor… CORE:C:0053
│ ... and 16 more
│ 1 misordered · 1 orphan · 1 ambiguous
│
└─ 21 findings
── Summary ────────────────────────────────────────────────────────
Score: 7.9 / 10 ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░ (1.3s)
Agent: Claude
Scope:
capabilities: 2 main
instructions: 4 directive / 7 prose (50%)
3 constraint
21 findings · 4 warnings · 1 info
Compliance: HIGH
Fix the issues, run again, watch your score improve.
Authentication
Offline diagnostics work without an account. For server-enhanced diagnostics (cross-file analysis, compliance scoring), sign up for the beta:
ails auth login # GitHub Device Flow — authorize in browser
ails auth status # Check current auth state
ails auth logout # Remove stored credentials
Commands
ails check # Validate instruction files
ails check -f json # JSON output
ails check -f github # GitHub Actions annotations
ails check --strict # Exit 1 on any finding
ails check --agent claude # Agent-specific rules only
ails check --exclude-dirs vendor # Exclude directory from scanning
ails check -v # Verbose: all findings with rule IDs
ails explain CORE:S:0001 # Explain a specific rule
ails heal # Auto-fix common violations
ails install # Install CLI to PATH + MCP server
ails update # Upgrade to latest version
ails version # Show version info
Exit codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Findings found (strict mode) |
| 2 | Invalid input (bad path, unknown agent/format/rule) |
Supported Agents
| Agent | Base config | Rules | Skills | Agents | Other |
|---|---|---|---|---|---|
| Claude | CLAUDE.md, .local.md |
.claude/rules/**/*.md |
.claude/skills/**/SKILL.md |
.claude/agents/**/*.md |
commands, output-styles, memory, MCP, settings |
| Codex | AGENTS.md, .override.md |
.codex/rules/*.rules |
.agents/skills/**/SKILL.md |
.codex/agents/*.toml |
hooks, config |
| Copilot | .github/copilot-instructions.md |
.github/instructions/**/*.md |
.github/skills/**/SKILL.md |
.github/agents/*.agent.md |
hooks, prompts, MCP |
| Cursor | .cursorrules, AGENTS.md |
.cursor/rules/**/*.mdc |
.cursor/skills/**/SKILL.md |
.cursor/agents/*.md |
hooks, notepads, MCP, policy |
| Gemini | GEMINI.md, AGENTS.md |
— | .gemini/skills/**/SKILL.md |
.gemini/agents/*.md |
commands, extensions, settings |
Auto-detects which agents are present. Scans project-level, user-level (~/), and managed (/etc/) paths.
Configuration
Project config in .ails/config.yml:
default_agent: claude # Default agent (run: ails config set default_agent claude)
exclude_dirs: [vendor, dist] # Directories to skip
disabled_rules: [CORE:C:0010] # Rules to disable
Set values via CLI: ails config set <key> <value>
Global defaults
Global config in ~/.reporails/config.yml applies to all projects. Project config overrides global.
ails config set --global default_agent claude
GitHub Actions
Add ails check as a CI gate with inline PR annotations:
name: Reporails
on:
pull_request:
paths: ['CLAUDE.md', '.claude/**', 'AGENTS.md', '.cursorrules']
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: reporails/cli/action
with:
strict: "true"
Or without the action:
- run: pip install reporails-cli && ails check . --format github --strict
What It Checks
97 rules across five categories:
- Structure — File organization, discoverability, size limits, modularity
- Content — Clarity, specificity, reinforcement patterns, tech stack, domain terminology
- Efficiency — Token usage, instruction elaboration, formatting
- Maintenance — Versioning, review processes
- Governance — Security policies, credential protection, permissions
Free vs Pro
| Feature | Free | Pro |
|---|---|---|
| Mechanical + structural rules | 97 rules, full detail | 97 rules, full detail |
| Content-quality checks (embedding-based) | Full detail | Full detail |
| Client checks (ordering, orphan, format, bold, scope) | Full detail | Full detail |
| Per-atom diagnostics (specificity, modality, brevity) | Full detail | Full detail |
| Interaction diagnostics (conflicts, competition, coupling) | Count per file | Full detail (line, fix, effect) |
| Cross-file analysis (conflicts, repetition) | Coordinates only | Full |
| Compliance band + system score | — | Full |
Free tier requires no account. Pro shows you how many interaction problems exist and where cross-file conflicts are — enough to know if your instructions are working. Pro gives the full detail: which line, what to fix, and how strong the effect is.
Performance
The embedding model is bundled in the wheel. First run may download the spaCy language model (~13 MB). Subsequent runs complete in under 2 seconds for typical projects.
License
BUSL 1.1 — converts to Apache 2.0 three years after each release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file reporails_cli-0.5.5.tar.gz.
File metadata
- Download URL: reporails_cli-0.5.5.tar.gz
- Upload date:
- Size: 577.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39e36eaee466f9b08c536cf4dba7241f6275c7fc1772418b8959f36f86854bcd
|
|
| MD5 |
c1610c7d816071fb54eca354a2d18025
|
|
| BLAKE2b-256 |
82f67ccd8ac67941e766ee04459239d9c092ed93a8ba7379849212baf9089542
|
Provenance
The following attestation bundles were made for reporails_cli-0.5.5.tar.gz:
Publisher:
release.yml on reporails/cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
reporails_cli-0.5.5.tar.gz -
Subject digest:
39e36eaee466f9b08c536cf4dba7241f6275c7fc1772418b8959f36f86854bcd - Sigstore transparency entry: 1383131161
- Sigstore integration time:
-
Permalink:
reporails/cli@73d2f9f475bb3e7f31f25b1945fdc82b9dedb188 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/reporails
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@73d2f9f475bb3e7f31f25b1945fdc82b9dedb188 -
Trigger Event:
push
-
Statement type:
File details
Details for the file reporails_cli-0.5.5-py3-none-any.whl.
File metadata
- Download URL: reporails_cli-0.5.5-py3-none-any.whl
- Upload date:
- Size: 83.5 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43a063a18f8683622e02fb0c032625eb2ff2bdb6e1511cfd8a17d55981ef5c25
|
|
| MD5 |
75ed38fa507f8c8c8a87964c55d18f61
|
|
| BLAKE2b-256 |
88c3c17a8902b3f4ca451b19096a3f3de08c37740d2f389a5d5445157449738a
|
Provenance
The following attestation bundles were made for reporails_cli-0.5.5-py3-none-any.whl:
Publisher:
release.yml on reporails/cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
reporails_cli-0.5.5-py3-none-any.whl -
Subject digest:
43a063a18f8683622e02fb0c032625eb2ff2bdb6e1511cfd8a17d55981ef5c25 - Sigstore transparency entry: 1383131216
- Sigstore integration time:
-
Permalink:
reporails/cli@73d2f9f475bb3e7f31f25b1945fdc82b9dedb188 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/reporails
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@73d2f9f475bb3e7f31f25b1945fdc82b9dedb188 -
Trigger Event:
push
-
Statement type: