mismagent-write-adr

Writes Architecture Decision Records with executable enforcement rules verified by grep-based checks.

Updated Jun 12, 2026
One-click install
npx skills add https://github.com/lucolucus/mismagent --skill mismagent-write-adr-lucolucus
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: mismagent-write-adr
Source: https://github.com/lucolucus/mismagent/tree/main/codex/skills/mismagent-write-adr
Command: npx skills add https://github.com/lucolucus/mismagent --skill mismagent-write-adr-lucolucus

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Architecture Decision Records often become zombie documents that nobody enforces. This Skill writes ADRs that distinguish mechanical constraints (verified automatically by a verifier running grep/lint rules) from discursive ones (verified by code review), so decisions stay binding throughout the build. ## Core Features & Use Cases - Executable enforcement rules: Attaches an enforced_by grep/lint rule to mechanical constraints, with POSIX-portable, shell-safe, comment-stripped patterns validated against positive and negative fixtures. - Prohibition vs presence rules: Supports wave-gated presence rules (exigible_from: <block-id>) so a rule only becomes enforceable once the owning block is merged, avoiding false reds. - Consistency reconciliation: Closes answered spikes in the context-map, supersedes replaced ADRs, and checks decisions against profile boundary rules before finalizing. - Use Case: During the model movement of a feature, record the decision to forbid a specific HTTP client library; the Skill emits decisions/0007-no-retrofit.md with an import-anchored grep rule the verifier runs on every diff. ## Quick Start Ask the agent to write an ADR for a specific architectural decision, stating the scope, whether the constraint is mechanically enforceable, and any spike it closes.

Frequently Asked Questions about mismagent-write-adr

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write an ADR with an executable enforcement rule?

Add an enforced_by field to the ADR frontmatter containing a grep or lint rule that the verifier executes on the diff. Use a bare string for prohibition rules, or the structured form with kind: presence and exigible_from for rules that only apply once a block is merged.

What is the difference between mechanical and discursive ADRs?

Mechanical ADRs carry an enforced_by rule checked automatically by the verifier, while discursive ADRs leave enforced_by empty and are verified by semantic code review. Only constraints checkable by pattern matching, such as paths, naming, or imports, should be mechanical.

Why does my enforced_by grep rule give false green results?

False greens happen when a rule targets a guessed filename that does not exist, or matches only comments instead of code constructs. Anchor rules to directories, packages, imports, or declarations, and strip comment lines from every grep.

How do I make grep rules portable across macOS and Linux?

Stick to POSIX BRE/ERE with grep -rEn and POSIX classes like [[:space:]], avoiding GNU-only flags such as -z, -P, and PCRE classes. Validate the exact frontmatter string by running it through bash -c, quoting all globs and expansions.

When should a presence rule be wave-gated?

A presence rule requiring a construct to exist must use the structured form with exigible_from set to the manifest block that owns the symbol. Otherwise the rule stays red until that block is merged, producing failures that teach teams to ignore the verifier.

What happens when an ADR answers an open spike?

Set closes_spike to the spike slug in the ADR frontmatter and mark the spike as closed in the context-map in the same pass. Leaving the spike open creates a stale artifact that future features will re-open.