feat(directives): add 15 engagement-specific directives + tags.toml entries

This commit is contained in:
ed
2026-07-05 14:17:51 -04:00
parent 9434e4c6e9
commit 0c4a7621d4
31 changed files with 499 additions and 0 deletions
@@ -0,0 +1,9 @@
# directive_one_concept_per_file
## v1
**Why this iteration:** New rule, no prior source. Encodes the existing practice (every directive is one concept) as an explicit rule for future harvesters.
**Source:** new rule
---
**Lifted:** 2026-07-05
@@ -0,0 +1,14 @@
# One directive per directory — do not combine two rules in one `v1.md`
## What it says
Each directive directory (`conductor/directives/<name>/`) contains exactly ONE rule in its `v1.md`. Do not combine two related-but-distinct rules into a single `v1.md`. If a rule has two parts that could be independently tagged, split into two directives.
## Why
Directives are independently tagged (the 6-dim `tags.toml`), independently composed into presets, and independently tested. A `v1.md` that combines "ban `dict[str, Any]`" and "ban `Optional[T]` returns" cannot be tagged with a single subject (data-structures vs error-handling) and cannot be independently included in a preset (one without the other). One concept per file keeps the directive atomic.
## See also
- `conductor/directives/verbatim_lift_not_rewrite` — the harvest rule
- `conductor/directives/warm_md_duplicates_not_in_place` — the `.warm.md` duplicate rule