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
- 2026-10-28 (c6d1e92): Updated.
- 2026-10-16 (6f94f8b): Start mbsi-skills with five short-name skills adapted from pstack
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.
- Read every affected file, type and rule. Know the current design before you change it.
- Ask: "Writing this from scratch with this requirement, what would we build?" Answer in types and a state machine first, before any code.
- Propagate the change everywhere it reaches: types, states, events, errors catalogue, docs, rules, examples. A leftover old name is a bug.
- 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.