Skip to content

feat(rules): add intent-discipline rule package#72

Merged
Mathews-Tom merged 2 commits into
mainfrom
rule/intent-discipline
May 28, 2026
Merged

feat(rules): add intent-discipline rule package#72
Mathews-Tom merged 2 commits into
mainfrom
rule/intent-discipline

Conversation

@Mathews-Tom
Copy link
Copy Markdown
Owner

Summary

Adds a new rule-type package, intent-discipline, that codifies four behavioral guardrails for non-trivial coding work. It targets the failure modes where an agent runs ahead of the user's actual intent: silently picking one interpretation of an ambiguous request, over-engineering single-use code, mixing drive-by refactors into an unrelated diff, and reporting work "done" against a success criterion too weak to verify.

The rule is deliberately distilled against the existing armory rule set so it adds discipline that no current rule covers, and cross-references the rules it borders rather than restating them.

The four guardrails

  1. Surface intent before implementation — state assumptions, present multiple interpretations for ambiguous requests, push back when a simpler approach exists, stop and ask when confused.
  2. Minimum viable implementation — smallest code that solves the stated problem; no speculative abstractions for single-use code; the "200 → 50 line" simplicity test.
  3. Surgical changes — every added/removed/modified line traces to the request; no adjacent "improvements" or style drift; remove only the orphans your own change created.
  4. Verifiable goals over imperatives — convert "fix it" / "make it faster" into executable success criteria the agent can loop against; multi-step plans carry a non-optional verify column.

Distillation against existing rules

The rule explicitly defers instead of duplicating:

Concern Owned by
Test-first execution mechanics, coverage thresholds test-standards (cross-referenced)
Commit message format, diff-per-commit hygiene commit-standards (cross-referenced)
Token-efficient tool calls token-efficiency (out of scope)
Reasoning-depth control adaptive-thinking-control (out of scope)

A When to Use This Rule vs Related Rules table in the rule body draws these boundaries for the reader.

Hardening

Beyond the source framework, the rule adds:

  • When NOT to Apply — explicit trivial-task escape hatch (typo fixes, one-line tweaks, throwaway scripts) so the caution bias does not tax simple work.
  • Rationalizations to Reject — six common agent excuses paired with factual rebuttals.
  • Red Flags — observable patterns indicating the rule is being violated (unrequested file changes, code-block-first responses to ambiguous prompts, single-implementation abstractions, "should work" verification).

Changes

  • rules/intent-discipline/RULE.md — rule definition (frontmatter description trimmed to fit the 1024-char validator ceiling; triggers span the intent / simplicity / verifiability synonym families).
  • rules/intent-discipline/evals/cases.yaml — five positive cases (ambiguous request, over-engineering, drive-by refactor, imperative-to-verifiable, plan-with-verification) and three negative cases that disambiguate from typing-standards, test-standards, and commit-standards.
  • manifest.yaml — regenerated; rule count 5 → 6, total packages 130 → 131.
  • README.md — rule added to the Rules table; package count badge 130 → 131.
  • ATTRIBUTIONS.md — framework origin recorded under Conceptual Inspiration.

Commits

Two logical, bisectable commits:

  • feat(rules): add intent-discipline rule package — rule + evals + manifest (manifest travels with the package so the rule is self-consistent and CI-valid at this commit alone).
  • docs: surface intent-discipline in catalog and attributions — README + ATTRIBUTIONS.

Validation

Check Result
validate_frontmatter.py 131/131 packages
validate_evals.py all 6 rules
validate_references.py 131 packages, references intact
sync_templates.py in sync
Bisect check commit 1 alone passes all three validators

Cursor / Codex / Gemini adapters regenerate from the rule via generate_adapters.py (gitignored build artifacts, not committed).

Test plan

  • CI: manifest sync + eval validation pass
  • Run package-evaluator against rules/intent-discipline/ — target ≥70% (Adequate), aim ≥80% (Strong)
  • Confirm the Rules table renders and the package count badge reads 131

Four behavioral guardrails for non-trivial coding work: surface
assumptions before implementing, write minimum-viable code over
speculative abstractions, keep diffs surgical so every changed line
traces to the request, and convert imperative tasks into verifiable
success criteria the agent can loop against.

Cross-references test-standards and commit-standards instead of
restating their content. Adds explicit when-not-to-apply guidance,
a rationalizations table, and a red-flags inventory to harden the
rule against the common excuses agents use to skip it.

Includes five positive and three negative eval cases; negatives
disambiguate from typing-standards, test-standards, and
commit-standards trigger surfaces. Manifest regenerated.
Adds the rule to the README rules table and bumps the package count
badge from 130 to 131. Records the source observation and prior
Claude-Code packaging under Conceptual Inspiration so downstream
forks can trace the framework origin without reading the rule body.
@Mathews-Tom Mathews-Tom merged commit b772b23 into main May 28, 2026
3 checks passed
@Mathews-Tom Mathews-Tom deleted the rule/intent-discipline branch May 28, 2026 23:24
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