Installs into .claude/skills of the current project.
Sponsors
SSkills DirectorySkills Directory
Is that skill safe to install?
SSkills DirectorySkills Directory
Know which skills are safe — weekly.
Are you the author of Principle Foundational Thinking?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/erickb336-principle-foundational-thinking)
---
name: principle-foundational-thinking
description: "Foundational thinking. Apply when before writing logic, when choosing core types and data structures or ordering scaffold against features."
license: MIT
metadata:
source: "pstack principle-foundational-thinking, MIT, Copyright (c) 2026 Lauren Tan, github.com/cursor/plugins, adapted; checked against pstack 0.15.36 at commit 0bb6f37"
---
<!-- Generated by scripts/build.mjs from the sources; edit the source, then run npm run build. -->
# Foundational thinking
Structural decisions protect your options later. Code-level decisions protect simplicity.
**Data structures first.** Get the shape of the data right before writing logic. Define the core types early, trace every way the data is accessed, and choose structures that fit the dominant paths. Once the data is right, the code around it becomes obvious.
At code level, avoid repeating structure, not every line. Types and data models should converge. Three similar statements still beat a premature abstraction. Prefer explicit over clever. Test behaviour and edge cases, not line counts.
**Shared state.** Before two actors share state, ask what happens if another one changes it at the same time. If the answer is not "nothing", isolate.
**Scaffold first.** If something helps every later phase, do it first: build and test infrastructure, shared types, a check that runs on every change. Setup before features, tests before fixes. Keep each change small and single-purpose. Each increment should land one coherent abstraction or deepen one that exists, not spread a new capability across callers as special cases.
Subtraction comes before scaffolding: remove dead code first, then lay foundations.