Skip to content

Feature/rulix v0.2.0#3

Merged
danielcinome merged 4 commits into
mainfrom
feature/rulix-v0.2.0
Feb 8, 2026
Merged

Feature/rulix v0.2.0#3
danielcinome merged 4 commits into
mainfrom
feature/rulix-v0.2.0

Conversation

@danielcinome
Copy link
Copy Markdown
Owner

What

Implements all code changes from PRD v0.2 — 7 changes across core types, adapters, validator, CLI, and documentation:

  • Remove maxInstructions from TokenBudget interface (C12)
  • Update token budgets: Cursor 10K→5K, Claude Code 2K→4K (C11)
  • Remove ClaudeMdStrategy type and claudeMdStrategy config option (C13)
  • Rewrite Claude Code adapter export — all scopes to .claude/rules/, never generate CLAUDE.md (C05)
  • AGENTS.md adapter exports all scopes, not just always + file-scoped (C06)
  • Add validation rules V011 (Cursor >50 lines warning) and V012 (total tokens >4000 info) (C10)
  • Add per-rule table to rulix status output with tokens, lines, and warnings (C09)

Why

Real-world testing revealed critical issues in v0.1:

  • Claude Code adapter concatenated all always/agent-selected rules into CLAUDE.md, producing 6,981 tokens (349% over budget). Anthropic recommends keeping CLAUDE.md lean and
    using .claude/rules/ for individual rules.
  • AGENTS.md adapter silently dropped agent-selected rules — a project with 6 rules only exported 1 to AGENTS.md.
  • Token budgets were based on inaccurate estimates: Claude Code was 2K (too low), Cursor was 10K (too permissive).
  • maxInstructions was a made-up metric with no basis in official documentation.
  • claudeMdStrategy controlled CLAUDE.md generation which no longer happens.

How

  • Claude Code adapter: Removed CLAUDE.md generation entirely. All scopes export to .claude/rules/{id}.md with scope-specific frontmatter: always → no frontmatter,
    file-scoped → paths: frontmatter, agent-selected → description: frontmatter.
    • AGENTS.md adapter: Removed .filter() that excluded agent-selected scope — all rules pass through to groupByCategory().
    • Validator: Extended validateRules() with optional targets?: string[] parameter (backward-compatible). V011 activates only when "cursor" is in targets.
    • Status command: Added per-rule table with ID, scope, tokens, lines, and ⚠ indicator for rules >50 lines.
    • Types/config: Removed maxInstructions, ClaudeMdStrategy, claudeMdStrategy from IR, config, and all re-exports.
    • Documentation: Updated 6 docs files to reflect all changes.

Type of change

  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist

  • npm run lint passes
  • npm run typecheck passes
  • npm test passes
  • Tests added/updated for new functionality
  • Documentation updated (if applicable)
  • Changeset added (if user-facing change): npx changeset

@danielcinome danielcinome merged commit efc8478 into main Feb 8, 2026
4 checks passed
@danielcinome danielcinome deleted the feature/rulix-v0.2.0 branch February 8, 2026 23:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant