Skills

Fold a new requirement into a design as if it was always there

When a rule changes, it redesigns the type model or module from the start instead of adding another special case.

Free, to use and to change. What it can see: only the chat you add it to.

Its short name: first-principles. Source on GitHub.

Who it helps

Install

Pick the one you use.

Claude Code

/plugin marketplace add mbsi-labs/skills
/plugin install first-principles@skills

Changelog

Licence: MIT.

Read the skill itself

Don't bolt a change onto the current design. Redesign as if the new requirement had been an assumption from day one.

  1. Read every affected file, type and rule. Know the current design before you change it.
  2. Ask: "Writing this from scratch with this requirement, what would we build?" Answer in types and a state machine first, before any code.
  3. Propagate the change everywhere it reaches: types, states, events, errors catalogue, docs, rules, examples. A leftover old name is a bug.
  4. Design the whole redesign, then deliver it in small verifiable steps.

Signs you bolted it on: a new optional field or flag beside an old one, a special case branch, a comment explaining why two paths exist.