Use when a change crosses module boundaries, adds a dependency direction between modules, touches a critical path, or conflicts with a stated principle - and when writing or updating architecture principles themselves. Encodes structural invariants as named, enforced contracts: statement, rationale, guard. Use whenever "we'll just import it from there for now" appears, which is how boundaries die.
Install
npx skills add riekelt/principal-engineer --skill guarding-architecturenpx skills add riekelt/principal-engineer --skill guarding-architecture -a claude-code -gnpx skills add riekelt/principal-engineer --skill guarding-architecture -a codex -ggemini skills install https://github.com/riekelt/principal-engineer.git --path plugins/principal-engineer/skills/guarding-architecturegh skill install riekelt/principal-engineer guarding-architecturegit clone --depth 1 https://github.com/riekelt/principal-engineer /tmp/riekelt__principal-engineer
mkdir -p ~/.claude/skills ~/.agents/skills
cp -R /tmp/riekelt__principal-engineer/plugins/principal-engineer/skills/guarding-architecture ~/.claude/skills/guarding-architecture # Claude Code
cp -R /tmp/riekelt__principal-engineer/plugins/principal-engineer/skills/guarding-architecture ~/.agents/skills/guarding-architecture # Codex, Cursor, Gemini CLI, Copilot, OpenCode