principle-foundational-thinking
About principle-foundational-thinking
A development skill for making foundational choices that preserve flexibility while keeping code simple. It emphasizes data structures, shared scaffolding, and isolating concurrently modified state.
Key features
- 01Choose data shapes before logic
- 02Prefer explicit code over cleverness
- 03Abstract structures, not every line
- 04Isolate concurrently shared state
- 05Set up shared foundations early
- 06Remove dead weight before scaffolding
Use cases
- 01Planning core types before implementation
- 02Setting up tests and CI before features
- 03Reviewing concurrency around shared state
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ poteto/ plugins --skill principle-foundational-thinkingAfter installing, type/principle-foundational-thinkingin Claude Code to confirm it loaded.
Details
From the project READMEFoundational Thinking
Structural decisions protect option value. Code-level decisions protect simplicity. Over-engineering is often a premature decision that closes doors. The right foundational data structure keeps doors open.
Data structures first. Get the data shape right before writing logic. The right shape makes downstream code obvious. Define core types early, trace every access pattern, and choose structures that match the dominant paths. A data-structure change late is a rewrite. Early, it is often a one-line diff.
At code level, DRY the structure, not every line. Types and data models should converge. Three similar statements still beat a premature abstraction. Prefer explicit over clever. Test behavior and edge cases, not line counts.
Concurrency corollary. Before sharing state between actors, ask "what happens if another actor modifies this concurrently?" If not "nothing", isolate.
Scaffold first. If something helps every later phase, do it first. Ask "does every subsequent phase benefit from this existing?" CI, linting, test infrastructure, and shared types are scaffold. Sequence for option value: setup before features, tests before fixes. Keep commits small and single-purpose.
Subtraction comes before scaffolding: remove dead weight first, then lay foundations.