Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,42 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.4.0] - 2026-02-16

Rules consolidation — 47 rules reduced to 17 focused rules, GitHub Copilot agent added, new governance and maintenance categories.

### Added
- [AGENT]: GitHub Copilot CLI — agent config, `.github/copilot-instructions.md`, 2 rules (COPILOT:S:0001, COPILOT:C:0001)
- [CORE]: Governance category — cross-agent-compatibility (CORE:G:0001, moved from structure)
- [CORE]: Maintenance category — valid-internal-references (CORE:M:0001), valid-glob-patterns-in-frontmatter (CORE:M:0002)
- [RUNTIME]: Agent exclude patterns — `excludes` list in agent config.yml with wildcard support (`CLAUDE:*`)
- [RUNTIME]: Agent-scoped rule discovery — `--agent` flag filters to agent's own rules plus core
- [SOURCES]: 5 Copilot sources added to docs/sources.yml (copilot-cli-best-practices, copilot-coding-agent-best-practices, copilot-custom-instructions, awesome-copilot-meta-instructions, spec-writing-for-agents)

### Changed
- **BREAKING — Rules consolidation**: 47 rules → 17. Most rules moved to [reporails/recommended](https://github.com/reporails/recommended) or consolidated into broader rules
- **BREAKING — Coordinate renumbering**: All coordinates reassigned from fresh sequence
- [CORE:S]: 12 → 3 rules — root-instruction-file-presence (S:0001), monorepo-nested-instruction-files (S:0002), structured-markdown-format (S:0003)
- [CORE:C]: 18 → 5 rules — include-project-context (C:0001), verification-build-commands (C:0002), project-architecture-documentation (C:0003), avoid-generic-placeholder-content (C:0004), boundary-constraints (C:0005)
- [CLAUDE]: 10 → 3 rules — rules-directory-for-modular-instructions (S:0001), path-scoped-rules (S:0002), import-syntax-for-modular-content (C:0001)
- [CODEX]: 7 → 1 rule — combined-instruction-size-limit (S:0001)
- [REGISTRY]: Coordinate map rewritten for new rule set; tombstones cleared (fresh coordinate space — backfill planned for 0.5.0)
- [DOCS]: CONTRIBUTING.md updated for multi-agent workflows (Claude Code, Codex, Copilot CLI)
- [DOCS]: rule-template.md — improved pass/fail example formatting with fenced code blocks
- [BACKBONE]: Added copilot agent entry (config, no skills directory)

### Removed
- [CORE:S]: 9 rules consolidated or moved to recommended (S:0002–S:0009, S:0011, S:0012)
- [CORE:C]: 13 rules consolidated or moved to recommended (C:0004–C:0007, C:0009–C:0012, C:0015–C:0017, C:0019, C:0022–C:0025)
- [CLAUDE]: 7 rules consolidated or moved to recommended (S:0001, S:0002, S:0004, S:0005, S:0008–S:0012)
- [CODEX]: 6 rules consolidated or moved to recommended (S:0001–S:0007)

### Metrics
- Rules: 17 (11 core + 3 Claude + 1 Codex + 2 Copilot)
- Schemas: 8 (rule, capability, levels, agent, package, project, sources, user)
- Sources: 15 weighted sources
- Agents: 3 (Claude, Codex, Copilot)

## [0.3.0] - 2026-02-10

### Added
Expand Down
4 changes: 2 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@ docker compose -f runtime/docker-compose.yml run test --verbose

Key paths:
- @registry/ — Capabilities, levels, coordinate map, tombstones
- @core/ — Core rules (12 structure, 18 content)
- @agents/ — Agent-specific config and rules (10 Claude, 7 Codex)
- @core/ — Core rules (3 structure, 5 content, 1 governance, 2 maintenance)
- @agents/ — Agent-specific config and rules (3 Claude, 1 Codex, 2 Copilot)
- @schemas/ — Machine-readable contracts (8 schemas)
- @docs/ — Contributor guides and source registry

Expand Down
26 changes: 14 additions & 12 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Currently supported: **Claude Code**, **Codex**, **GitHub Copilot CLI**
Each rule lives in its own directory with three parts:

```
core/structure/instruction-file-size-limit/
core/structure/root-instruction-file-presence/
rule.md # Definition: frontmatter (id, type, level, checks) + prose
rule.yml # OpenGrep patterns (or empty `rules: []` for mechanical)
tests/
Expand All @@ -24,12 +24,12 @@ core/structure/instruction-file-size-limit/

## Coordinates

Every rule has a coordinate like `CORE:S:0005` — three parts:
Every rule has a coordinate like `CORE:S:0001` — three parts:

| Part | Meaning | Values |
|------|---------|--------|
| Namespace | Who owns it | `CORE`, `CLAUDE`, `CODEX` |
| Category | What it checks | `S` (structure), `C` (content) |
| Namespace | Who owns it | `CORE`, `CLAUDE`, `CODEX`, `COPILOT` |
| Category | What it checks | `S` (structure), `C` (content), `G` (governance), `M` (maintenance) |
| Slot | Sequence number | `0001`–`9999` |

Check `registry/coordinate-map.yml` to see which slots are taken before picking a new one.
Expand All @@ -38,9 +38,9 @@ Check `registry/coordinate-map.yml` to see which slots are taken before picking

| Type | How it detects | Example |
|------|---------------|---------|
| **mechanical** | Python structural checks (file exists, line count, byte size) | CORE:S:0001 — instruction file exists |
| **deterministic** | OpenGrep pattern matching on file content | CORE:C:0006specificity over vagueness |
| **semantic** | OpenGrep pre-filter + LLM evaluation | CORE:C:0017repo-specific content |
| **mechanical** | Python structural checks (file exists, line count, byte size) | CORE:S:0001 — root instruction file presence |
| **deterministic** | OpenGrep pattern matching on file content | CORE:C:0004avoid generic placeholder content |
| **semantic** | OpenGrep pre-filter + LLM evaluation | CORE:C:0001include project context |

Mechanical rules have `rules: []` in their rule.yml. Deterministic and semantic rules have OpenGrep patterns.

Expand Down Expand Up @@ -103,13 +103,15 @@ All tests must pass before submitting.

```
core/
structure/ # 12 rules — file existence, size, format
content/ # 18 rules — what instruction files should contain
structure/ # 3 rules — file presence, nesting, format
content/ # 5 rules — context, commands, architecture, constraints
governance/ # 1 rule — cross-agent compatibility
maintenance/ # 2 rules — reference integrity, glob validation

agents/
claude/rules/ # 10 rules — CLAUDE.md-specific patterns
codex/rules/ # 7 rules — AGENTS.md-specific patterns
copilot/rules/ # 25 rules — copilot-instructions.md patterns
claude/rules/ # 3 rules — CLAUDE.md-specific patterns
codex/rules/ # 1 rule — AGENTS.md-specific patterns
copilot/rules/ # 2 rules — copilot-instructions.md patterns
```

Opinionated rules (governance, style) live in [reporails/recommended](https://github.com/reporails/recommended) with the `RRAILS_` namespace.
Expand Down
18 changes: 11 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Validation rules for AI agent instruction files (CLAUDE.md, .cursorrules, copilot-instructions.md).
Community-maintained.

**Version:** 0.3.1 <!-- source of truth: VERSION file -->
**Version:** 0.4.0 <!-- source of truth: VERSION file -->

### Pre-1.0 — moving fast, API still evolving, feedback welcome.

Expand All @@ -26,20 +26,24 @@ npx @reporails/cli check
## What's here
```
core/
structure/ # 12 rules: File organization, size limits, modularity
content/ # 18 rules: Clarity, completeness, specificity
structure/ # 3 rules: File presence, nesting, format
content/ # 5 rules: Context, commands, architecture, constraints
governance/ # 1 rule: Cross-agent compatibility
maintenance/ # 2 rules: Reference integrity, glob validation

agents/
claude/ # 10 rules: Claude Code specific
codex/ # 7 rules: OpenAI Codex specific
copilot/ # 25 rules: GitHub Copilot CLI specific
claude/ # 3 rules: Claude Code specific
codex/ # 1 rule: OpenAI Codex specific
copilot/ # 2 rules: GitHub Copilot CLI specific

schemas/ # Rule, agent, and config schemas
registry/ # Capabilities, levels, coordinate map
docs/ # Capability levels, sources
```

47 core rules. For additional recommended rules, see [reporails/recommended](https://github.com/reporails/recommended).
17 rules. For additional recommended rules, see [reporails/recommended](https://github.com/reporails/recommended).

> **Tombstones**: Old coordinate slots from pre-0.4.0 rules will be backfilled in `registry/tombstones.yml` after 0.5.0.

## Contributing

Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.3.1
0.4.0
8 changes: 4 additions & 4 deletions docs/capability-levels.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,13 +116,13 @@ Rules and capabilities are **separate systems** connected only by the level iden

This means an L3 project is checked against all rules at L1, L2, and L3 — not just L3 rules.

**47 rules** across 3 types:
**17 rules** across 3 types:

| Type | Count | Detection Method | LLM Cost |
|------|-------|------------------|----------|
| Mechanical | 22 | Python structural checks | None |
| Deterministic | 18 | OpenGrep pattern match | None |
| Semantic | 7 | OpenGrep gate + LLM evaluation | Per check |
| Mechanical | 6 | Python structural checks | None |
| Deterministic | 10 | OpenGrep pattern match | None |
| Semantic | 1 | OpenGrep gate + LLM evaluation | Per check |

---

Expand Down