plugins/promode/skills/reinforce-design-constraints/SKILL.md
Walk the knowledge graph (rooted at CLAUDE.md) and ensure every crucial design constraint — invariants, prohibitions, required patterns, load-bearing decisions — is stated inline in the nearest loaded CLAUDE.md orientation that governs the affected area, with a link to its full rationale for expanded discovery. Use when constraints are buried in ADRs, knowledge docs, code comments, or tribal knowledge; when an agent violated a rule it had no way to know; or when asked to surface, hoist, lift, strengthen, or reinforce design constraints, or make them discoverable to agents.
npx skillsauth add mikekelly/promode reinforce-design-constraintsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
An agent acts only on what is in its context. CLAUDE.md files are the loaded project orientation: the root covers the repo, and major subdirectories may have their own CLAUDE.md for local rules. A crucial design constraint that lives only in an ADR, a code comment, a linked knowledge doc, or someone's head is invisible to the agent who needs it: agents can't know what isn't in their system prompt, and they don't follow links they don't know exist.
This skill traverses the knowledge graph, finds the crucial design constraints, and makes sure each one is stated inline in the nearest loaded orientation file that governs the affected area — concisely, with a link to its full rationale so an agent who wants the whole story can discover it. The binding rule is in front of the affected agent; the derivation stays one hop away.
<what-counts> A **design constraint** is a load-bearing rule about how the system must be built or changed. It passes all three tests: 1. **Load-bearing** — it shapes how code/architecture must be written, not just what exists. 2. **Violation causes harm** — breaking it causes breakage, silent data loss, rework, or a security/correctness hole. (If nothing bad happens when it's ignored, it's a preference, not a constraint.) 3. **Non-obvious from the code** — a competent agent reading the relevant files would not infer it. (If the code makes it self-evident, it doesn't need hoisting.)They come in a few shapes:
CLAUDE.md content; append and link."Not constraints (leave them in the graph or out entirely): general orientation ("auth lives in src/auth"), style preferences, anything obvious from the code, transient task state, and the promode methodology itself (that's hook-delivered and never goes in CLAUDE.md).
</what-counts>
## Design constraints
- **Hook output strings must stay under 10k chars.** Claude Code silently truncates longer output to a preview and drops the tail — split at section boundaries instead. See [hook delivery](docs/main-agent-delivery.md).
- **Never put methodology in the project's `CLAUDE.md`.** It's the project's own file and the knowledge-graph root; the brief is hook-delivered. See [why](docs/main-agent-delivery.md).
The statement is inline so no affected agent misses it; the link carries the full rationale and edge cases for expanded discovery. State the rule in exactly one inline home — root for repo-wide, subtree for local — and let the linked doc hold the rest: one idea, one home, with the headline as its earned inline exception. </inline-format>
<guardrails> - **Don't bloat the launchpad.** Inline the rule, not the essay. If you're tempted to inline more than ~2 lines per constraint, that surplus belongs in the linked doc. If root bloat comes from local rules, prefer subtree orientation. - **Never clobber orientation.** Append and integrate; preserve everything already there. - **The project's `CLAUDE.md` is the project's own file.** Don't import promode's methodology into it — that's the hook's job. - **Every constraint links somewhere expandable.** Inline-only with no path to the full story half-fails the skill's purpose; only-linked with no inline rule fully fails it. - **Keep harness compatibility.** Adjacent `AGENTS.md` symlinks should point to each loaded `CLAUDE.md` orientation where supported. - **Keep it grounded.** No speculative constraints — only rules with a real, traceable why. </guardrails><success_criteria>
CLAUDE.md orientation that governs the affected area, concisely, with a link to its full rationale.CLAUDE.md files stayed lean launchpads — only constraints that pass the three tests went inline; the rest stayed linked.AGENTS.md symlinks exist for created or maintained orientation files where symlinks are supported, or a minimal lockstep fallback is documented.development
Establish a design source-of-truth (a DESIGN.md-style two-layer doc of tokens + rationale), build a lookbook that renders it, and wire a live-refresh preview server so visual work gets a fast edit→see feedback loop. Use when setting up or restructuring a design system / design tokens, creating a DESIGN.md or design source-of-truth, building a lookbook, or wanting live preview / live reload of design or marketing artifacts — landing pages, decks, one-pagers, marketing material previews. The visual analogue of the operator-seam test loop: it crystallises taste into determinism. Defers aesthetic taste (typography/color/motion choices) to the frontend-design skill.
development
Audit how well a repository's codebase and practices align with the promode methodology, then produce a prioritised, actionable improvement plan. Fans out parallel assessors (one per dimension) and synthesises their findings. Use when the user wants to assess promode alignment/fit, audit a repo against the methodology, or get a plan to bring a codebase in line with promode. Also flags stale per-project install leftovers — promode ships its own SessionStart hook, so nothing should be copied into a project.
testing
Write a handoff document so a fresh agent can continue this work after the conversation ends. Invoke when the user is about to /clear or /compact, when context is filling up, or when the user asks to hand off, checkpoint, or pause work for a later session. Argument (optional): what the next session will focus on.
tools
Put the bulk of acceptance coverage below the UI through a fast, deterministic headless client driving an operator seam, and reserve a surgical UI state-graph tier for defects that only manifest through the real GUI. Use when designing test/QA or acceptance-testing strategy, automating acceptance, end-to-end (E2E), or QA testing of a running app, deciding what to cover with fast headless tests vs slow UI/E2E, building agent-driven exploration or automation of a running app, building a below-UI operator seam (interaction layer) or headless client, or crystallising agent-discovered knowledge into reusable deterministic artifacts (maps, graphs, scripts, tests). Covers the Discovery⇄Determinism flywheel, the operator-seam architecture (one seam serving both a headless test client and AI-agent tools), and layered headless-first acceptance testing with a surgical UI state-graph tier for GUI-only defects.