Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Releases: reporails/cli

v0.5.10

19 May 08:03
@github-actions github-actions
852c3ef
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

Capability targeting + lint scope correctness.

Highlights

  • ails check <capability> / ails check <capability> <name> — focused scorecards per skill / rule / agent / memory. Listing mode renders one health bar per item, sorted worst-first, with (N: Xe/Yw/Zi) finding-count breakdowns. Vocabulary read from the detected agent's config.
  • Level: L# <Label> read-out in the scorecard, re-aligned to the canonical ladder in docs/capability-levels.md: System / Primer / Composite / Scoped / Delegated / Abstracted / Governed / Adaptive (L0–L7). Read-out only; rule applicability unchanged.
  • New rule CORE:S:0056 broken-markdown-link — mechanical validator for [text](path) and [ref]: path references. Code-span aware (backtick syntax examples don't false-positive). Severity high.
  • Per-agent memory locatorsails check memory enumerates Claude auto-memory (~/.claude/projects/*/memory/), Gemini private memory (~/.gemini/tmp/*/memory/), and project-local agent-memory dirs. Codex declared as tombstone (/memories slash command surface, no rule pressure).
  • generic file class via link-reachability (opt-in generic_scanning: true) — classifier BFS-walks outgoing links and tags reached in-tree .md files. Cycle-safe, depth-bounded.

Fixes

  • Mechanical-check glob targets honor .ails/config.yml: exclude_dirs.
  • Project-wide attribution no longer points at user-scope ~/.claude/CLAUDE.md; user-scope rendering gated on classifier precedence: user (read from agent config), not path-prefix heuristics.
  • Mapper daemon stays attached across runs (socket-existence gate, FIFO-only FD close, SIGPIPE ignored). Warm ails check ~5.6s.
  • walk_glob follows symlinked dirs with cycle protection.
  • Gemini memory locator updated to current upstream surface; legacy ## Gemini Added Memories removed.

Full changelog: CHANGELOG.md

Assets 2
Loading

v0.5.9

12 May 01:29
@github-actions github-actions
3282271
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

Reporails CLI v0.5.9

Self-contained install: the spaCy English pipeline and the ONNX embedder now ship inside the wheel, so pip install reporails-cli, uv pip install, or npx @reporails/cli deliver everything in one step — no separate model download, no post-install surprise under uv virtualenvs.

Install

npx @reporails/cli check # zero-install via npm
uvx --from reporails-cli ails check # zero-install via uv 
pip install --upgrade reporails-cli # permanent install 

What's new

Build & install

  • Bundled spaCy pipeline (en_core_web_sm, ~15 MB) ships inside the wheel under bundled/spacy/, alongside the existing bundled ONNX MiniLM-L6-v2 (~80 MB). Removes
    the separate python -m spacy download step that silently failed under uv virtualenvs.
  • Python version pin: requires-python = >=3.12,<3.14. Python 3.14 ships a pydantic.v1 introspection regression that breaks import spacy; the pin keeps the
    classifier reliable under uv sync.

User-visible polish

  • API client sends a stable User-Agent: reporails-cli/<version> header on every diagnostic request, replacing the generic python-httpx/<version> default.
  • Rate-limit CTA surfaces a Try again in ~N min. hint when the server returns reset_in, between the limit blurb and the upgrade prompt.
  • Bug-report URLs render as OSC 8 terminal hyperlinks with a short clickable label (github.com/reporails/cli/issues/new) instead of dumping the full percent-encoded
    prefilled URL; falls back gracefully on terminals without hyperlink support.
  • Error wording for unrecognized server responses now reads Diagnostics server returned HTTP <code>. Noisy stderr warnings demoted to debug logging.
  • Duplicate-file annotations: file rows show (+alias) labels for files surfaced under multiple paths — mintlify (+.claude) for symlinked surfaces, AGENTS.md (+CLAUDE.md) for same-directory content-identical pairs.

Fixes

  • frontmatter_valid_glob no longer crashes on comma-separated paths: values; each entry is split and validated individually, and invalid glob syntax surfaces as a
    structured check failure.
  • Skill and rule files surfaced under multiple agent paths via symlinks (e.g. .claude/skills/.agents/skills/) are now collapsed to one canonical entry, eliminating
    duplicate findings and inflated scoring.

Removed

  • ails map command.

Full Changelog: 0.5.8...0.5.9

Loading

v0.5.8

06 May 17:10
@github-actions github-actions
2567dfe
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

Bandwidth and lifecycle improvements on large projects, the daemon adjustments and a lot of rule updates

Highlights

  • Compact wire format. via msgpack, anon users are much less frequent to rate limit
  • Local byte preflight. New WIRE_MAX_BYTES_BY_TIER table and preflight_byte_size() in core/funnel. Local rejection returns a payload_too_large FunnelError
    before transmission instead of an opaque server-side 4xx.
  • Mapper daemon adjustment. The 1-hour idle timeout is now opt-in via AILS_DAEMON_IDLE_S instead of applied by default. Without the override the daemon runs until
    ails daemon stop or an explicit kill.
  • Four rule-ID mappings repointed. ails explain on description-mismatch, orphan, overall-strength, and named-coverage returned unrelated rules. The bug is now fixed, it resolves accurately — CORE:C:0055 description-coherence (new), CORE:C:0053 ideal-instruction, CORE:C:0042 specificity-gap respectively. Two dead RULE_ID_MAP
    entries (cross-conflict, cross-repetition) pruned.
  • Four cross-agent rule promotions. skill-name-matches-directoryCORE:S:0036, skill-no-readmeCORE:S:0035, skill-description-lengthCORE:S:0040,
    import-depth-within-limitCORE:S:0033. The last follows the path-scope-declared supersede pattern: CLAUDE supersedes with the documented 5-hop limit, CURSOR with
    max: 1, Codex/Copilot exclude (no @<path> syntax), Gemini inherits.
  • Cross-agent rule matching fixed. Rules with match: {type: scoped_rule} and match: {type: skill} were silently never matching any file because agent configs use
    plural keys (rules:, skills:) while rule-side match expressions use the singular concept names. A _FILE_TYPE_MATCH_ALIASES map normalizes this. Bandage — full
    vocabulary alignment is tracked as a follow-up.
  • GitHub-issues deep-link on unknown errors. When the diagnostic API returns an unrecognized error, the "Did you see an error?" exit ramp now opens /issues/new with
    the title and a triage-ready body (environment + reproduce skeleton) prefilled, plus a bug label. Known funnel errors keep the plain /issues index.

Full Changelog: 0.5.7...0.5.8

Loading

v0.5.7

06 May 03:08
@github-actions github-actions
22c02b6
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

Bugfix release. Discovery and classification rebuild — ails check no longer false-positives on per-package CLAUDE.md / AGENTS.md / GEMINI.md files in monorepos.

Highlights

  • Monorepo fix. Per-package nested instruction files are now classified as nested_context, not main. Size and other match: {type: main} rules stop firing on
    them. Bug surfaced against activepieces/activepieces.
  • Project root = your target. ails check <path> treats <path> as the project root. No walking up to find .git or .ails/. What you point at is what gets
    scanned.
  • Per-project surface tuning. .ails/config.yml gains surfaces.<agent>.<file_type>.include / .exclude and agents.<id>.fallback_filenames (mirrors Codex
    project_doc_fallback_filenames). .ails/config.local.yml (gitignored) layers on top for personal / CI-only overrides.
  • scope: nested enum. New schema value for surfaces whose subtree applicability comes from file location rather than frontmatter — replaces the prior overload of
    scope: path_scoped.
  • Case-sensitive AGENTS.md matching. Aligns with Codex's source (DEFAULT_AGENTS_MD_FILENAME = "AGENTS.md"). agents.md (lowercase) is no longer mis-surfaced.
  • depends_on resolves through supersession. Rules that depend on a base rule now match its superseding agent rule too — no more spurious "dependency not loaded"
    warnings.

Full Changelog: 0.5.6...0.5.7

Loading

v0.5.6

05 May 01:02
@github-actions github-actions
ec3adfb
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

Public docs, a clearer tier model, better error messaging, and a few CI quality-of-life wins.

Highlights

Public documentation at cli/docs/

Seven pages covering installation, agent support, tier limits, configuration, score interpretation, and FAQ. Browse on reporails.com/docs or in-repo under docs/. Each page has prev/next navigation footers and YAML frontmatter.

Anonymous vs signed-in mode

Replaces the prior Free/Pro framing with a cleaner two-mode model that matches what you actually experience:

  • Anonymous — no account, summary findings, cross-file conflict counts
  • Signed in — full per-finding fix text and exact cross-file conflict locations

See Tiers and Limits for the side-by-side breakdown.

ails auth token

New subcommand prints the stored API key to stdout for CI export. Pipes cleanly into your CI provider's secret store:

AILS_API_KEY=$(ails auth token)

Exits non-zero when not authenticated, so scripts can detect missing credentials.

Rich error messages

When the diagnostic backend returns a 4xx (rate-limited, oversized payload, atom-cap hit), the CLI now renders a tier-aware CTA in the assessment box instead of silently swallowing the error. Anonymous mode points at ails auth login; signed-in mode points at the GitHub issues page for use-case escalation. A secondary "Did you see an error?
Let us know" line ensures failures always carry an exit ramp.

GitHub Action wrapper inputs

Two new inputs on the composite action:

- uses: reporails/cli/action 
 with: 
 api-key: ${{ secrets.REPORAILS_API_KEY }} # authenticated CI runs
 strict: "true" 
 min-score: "7.0" 

Hook regex tightening (vendor-docs audit)

  • Claude — Setup event added to the valid-events regex (29 events total). New scheduled_tasks file_type covering ~/.claude/scheduled-tasks/**/SKILL.md.
  • Copilot — hook-handler-has-type restricted to command only; hook-valid-event-types reduced to the 8 PascalCase events documented by VS Code Copilot.
  • Cursor — narrative corrected to 20 events (regex already covered the full set).
  • Gemini — hook-handler-has-type restricted to command only.
  • Codex — hook regexes audited against the vendor docs; no changes needed.

Small wins

  • README trimmed to elevator-pitch length with a runnable showcase block; CONTRIBUTING.md added as a recognized GitHub community-health file.
  • Empty-files short-circuit in _lint_remote skips the HTTP round-trip when the mapper returns no instruction files.
  • Universal-cap preflight (atom / file / cluster counts) saves a multi-MB upload when the payload would be hard-rejected regardless of tier.
  • 4xx response bodies are now parsed and surfaced via a new LintResponse envelope (.result or .funnel_error).
  • Credential storage corrected in docs/: actual location is ~/.reporails/credentials.yml (chmod 0600 on POSIX), not the OS keyring as previously documented.
  • Pre-release Branch ↔ version alignment gate catches the "branch cut but never bumped" class of drift.
  • Fixed pyproject.Documentation URL (was pointing at a 404).
Loading

v0.5.5

25 Apr 16:27
@github-actions github-actions
73d2f9f
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

What's new

  • Full Windows support — ails check now runs reliably on Windows 10/11. Cross-platform regex timeout via the regex library replaces POSIX-only signal.SIGALRM.
    POSIX-only APIs (os.fork, socket.AF_UNIX, chmod, ITIMER_REAL) properly guarded so Windows surfaces clear errors instead of crashes. Path serialization uses
    as_posix() everywhere so generated backbone.yml, violation locations, and SARIF file URIs use forward slashes regardless of platform. windows-latest added to the CI
    matrix; mypy --platform=win32 runs on every release.

  • Pydantic-native schemas — Check, Rule, FileMatch, FileTypeDeclaration, and ClassifiedFile migrated from dataclasses to Pydantic. The model is the schema —
    Rule.model_json_schema() exports it. No more hand-maintained YAML schema artifact.

  • Rule layering — new inherited field lets a child rule accumulate parent checks without replacing them, and depends_on declares execution ordering between rules with
    cycle detection. Check-level replaces, severity, and message overrides expand the per-check escape hatches.

  • source field on rules — rules can now declare an authoritative documentation URL. When present, source supersedes backed_by for verification — the rule points at
    the official spec it enforces, not at a research bibliography. 22 rules already use source URLs.

  • Hook rules overhaul — 5 new CORE base rules with a depends_on chain, plus agent-specific overrides for Claude (5), Codex (3), Copilot (3), Cursor (5), and Gemini (3).
    Recognized event names, handler types, and shell-variable references like $CLAUDE_PROJECT_DIR are now properly checked. Double-negation patterns fixed (expect: absent

  • pattern-not-regexexpect: present + pattern-regex).
  • New CORE rules — CORE:S:0026 import-references-used (verify @path imports resolve), CORE:G:0003 permissions-ordered (permission configuration must be present in
    settings), CORE:C:0037 static-before-dynamic (separate stable from dynamic content with headings), CORE:S:0031 skill-file-length (500-line ceiling on SKILL.md
    files).

Fixes

  • Windows crash — AttributeError: module 'signal' has no attribute 'SIGALRM' in _scan_file no longer occurs; the entire deterministic checks phase now runs on Windows.
    (#17)
  • Match scope leaks — 12 project-level CORE rules narrowed from format: freeform to type: main, fixing false positives that previously fired on agent and skill files.
  • Copilot scope detection — frontmatter_valid_glob now reads the applyTo key for Copilot scope validation.
  • CLAUDE:S:0003 — broken byte_size check replaced with description field presence check.
  • Severity tuning — CORE:S:0017 self-contained-skills and CORE:S:0022 local-override-file downgraded to low; local-override-file now correctly treated as optional.
  • Hook rule slugs — 3 Claude skill rules and 2 Codex rules renamed from sentence-fragment slugs to clean kebab-case names.

Full Changelog: 0.5.4...0.5.5

Loading

v0.5.4

23 Apr 06:46
@github-actions github-actions
e4ae322
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

What's new

  • Per-surface health scores — the scorecard now breaks down quality by surface (Main, Rules, Skills, Agents, Memory) with individual scores, file counts, and finding totals. No more hiding a weak surface behind an aggregate number.

  • Rule inheritance — agent-specific rules can now supersede CORE rules, inheriting their checks while optionally replacing individual ones. CLAUDE:S:0012, CURSOR:S:0001, and COPILOT:S:0001 all supersede the generic CORE:S:0038 path-scope check with agent-specific validation.

  • Claude Code frontmatter detection — new rule CLAUDE:S:0012 catches two common mistakes: using globs: instead of paths: (Claude Code reads paths: only), and adding unrecognized frontmatter keys that are silently ignored.

Fixes

  • Charge classifier accuracy — added 8 missing verbs (append, stage, compose, etc.), rescued ambiguous verbs at position 0, and fixed spaCy nsubj misparses that demoted
    real imperatives to neutral
  • Sentence splitting — no longer splits inside quoted strings or parenthetical spans, preventing example fragments from becoming standalone atoms
  • Backtick filter — fixed false positives where a position-0 verb like "Build" was incorrectly filtered because the same word appeared in a later backtick span (uv build)
  • Mixed-type rule dispatch — mechanical rules containing deterministic checks now have both check types executed; file targeting uses full property-based matching (scope,
    format, not just type)
  • Silent hang on startup — progress output now shows during mapper initialization; default directory excludes prevent walking node_modules, .git, etc.

Full Changelog: 0.5.3...0.5.4

Loading

v0.5.3

20 Apr 20:09
@github-actions github-actions
cad94c0
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

What's New

Global daemon — one mapper process serves all projects. No more per-project daemons eating 1GB RAM each. Runtime artifacts moved out of your project directory —
.ails/ is now config-only.

Install to PATHails install puts the CLI on your PATH permanently. No more npx prefix for daily use. MCP config now uses the direct binary (faster startup,
works offline).

ails update — one command to upgrade to the latest version.

Classifier Fixes

Charge classification validated against 2,850 labeled atoms:

  • Charge inversions eliminated — compound instructions ("Use X. Do not Y") now marked AMBIGUOUS instead of assigned (0.30% → 0.03% inversion rate)
  • Colon-label rescue — "Label: Use X" / "Label: Never Y" patterns no longer neutralized as headings
  • Late-constraint guard — negation after sentence boundaries in imperative atoms now detected

Upgrade

npx @reporails/cli install # first time
ails update # if already installed 
 
Full changelog: https://github.com/reporails/cli/blob/main/CHANGELOG.md
Loading

v0.5.2

19 Apr 20:07
@github-actions github-actions
26c5b53
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

What's new

Performance fix — Pre-compiled regex eliminates ~26,500 re.compile() calls per run. The check_specificity() hot loop was compiling 53 patterns on every atom — now a single
alternation regex compiled once at module load.

Display extraction — Rendering logic extracted from main.py (1118 → 315 lines) into formatters/text/display.py, display_constants.py, and scorecard.py. No user-visible
output changes.

Free tier redesign — Inline Pro diagnostic counts per file card (⊕ N Pro diagnostics), cross-file coordinate section, and integrated upgrade CTA replace the disconnected
Hints section.

Daemon reliability — Closes inherited file descriptors before forking (fixes npx/CI hangs on pipe EOF). Detects orphaned state (PPID=1) and shuts down within 30s.

Bug fixes

  • Fix ails map crash when ~/.claude/settings.json exists outside project directory
  • Add scikit-learn to runtime dependencies (was dev-only, masked by uv sync)
  • Fix uvx reporails-cli — add script alias so uvx resolves the executable
  • Log warning when mapper fails instead of silent degradation

Install

pip install reporails-cli
npx @reporails/cli check .
uvx --from reporails-cli ails check .

See https://github.com/reporails/cli/blob/main/CHANGELOG.md for the complete list.
Full Changelog: 0.5.1...0.5.2

Loading

v0.5.1

15 Apr 19:28
@github-actions github-actions
c70f991
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

Full Changelog: 0.5.0...0.5.1

Loading
Previous 1
Previous

AltStyle によって変換されたページ (->オリジナル) /