Skip to content

feat(design-buddy): SOLID/DRY/YAGNI design-quality norms (DN-7/8/9) - #19

Merged
davcs86 merged 1 commit into
mainfrom
claude/sdd-upgrade-principles-9qu583
Sep 14, 2026
Merged

davcs86 merged 1 commit into
mainfrom
claude/sdd-upgrade-principles-9qu583

Conversation

@davcs86

@davcs86 davcs86 commented Sep 14, 2026

Copy link
Copy Markdown
Owner

Summary

Upgrades the design-buddy plugin's portable governance seed with explicit SOLID / DRY / YAGNI design-quality principles, so the debate and plan gates grill a design's shape — not just its groundedness. These are Norms (DN-*, addressed-or-waived at a gate), never Floor rules — matching their conditional nature.

  • DN-2 relabeled "Reuse over rebuild (DRY)" — surfaces the existing reuse norm as the DRY expression it already was.
  • DN-7 Right-sized design (YAGNI) — least mechanism that satisfies the requirement; no speculative abstraction/option/extension the change didn't ask for.
  • DN-8 Sound structure (SOLID) — one clear responsibility per new/changed unit, stable seams, applied only to the seams the change touches (bounded by DN-7).
  • DN-9 the staff-engineer check — DN-2/7/8 are subordinate to scalability, maintainability, and performance; when a heuristic conflicts with a higher quality the quality wins and the trade-off is recorded (compliance, not a waiver); the litmus is what would a staff engineer optimizing this system's long-term health do?, so a dogmatic objection (premature abstraction as SOLID, a DRY merge coupling unrelated call-sites, YAGNI starving a stated scalability need) is itself dismissable.

Threaded through the full flow: the adversary grills against DN-2/7/8/9 (without dogma), the proposer right-sizes proactively, the plan-review criteria flag YAGNI/SOLID/DRY as WARNING (never a BLOCKER — DN-9), and the impl-plan step rules bar smuggling "while we're here" generality into a step the design didn't decide.

principles.md is kept byte-identical across all three skills (validator-enforced). Version bumped 2.0.0 → 2.1.0 across the Claude Code, Cursor, and Codex manifests. README §Governance updated to DN-1..9. All norm text stays tool-neutral (origin-leak guard clean).

Test plan

  • python3 plugins/design-buddy/scripts/validate.py --self-test — passes
  • python3 plugins/design-buddy/scripts/validate.py — passes (byte-identity of the three principles.md, origin-leak guard, manifest fields, semver)
  • python3 scripts/validate_manifests.py --self-test — passes (7 scenarios)
  • python3 scripts/validate_manifests.py — passes (2 plugins registered per tool, membership parity)

Base is main (this remote has no main-dev).

🤖 Generated with Claude Code

https://claude.ai/code/session_01YBBgRjacyqBoku22xhb4wM


Generated by Claude Code

Introduce three design-quality Norms into the portable governance seed so the
proposer proposes with them in mind, the adversary grills against them, and the
plan-review gate flags violations:

- DN-2 relabeled "Reuse over rebuild (DRY)"
- DN-7 Right-sized design (YAGNI)
- DN-8 Sound structure (SOLID)
- DN-9 staff-engineer check: these heuristics are subordinate to scalability,
  maintainability, and performance; a recorded trade-off is compliance, not a
  waiver, and a dogmatic objection is itself dismissable.

Wired through adversary + proposer agents, the plan-review criteria, and the
impl-plan step rules. Bumped 2.0.0 -> 2.1.0 across all three tool manifests;
principles.md kept byte-identical across the three skills; README governance
updated to DN-1..9. Plugin + marketplace validators (incl. --self-test) pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YBBgRjacyqBoku22xhb4wM
@davcs86
davcs86 merged commit e542ce2 into main Sep 14, 2026
2 checks passed
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.

2 participants