--- name: principle-redesign-from-first-principles description: "Apply when a requirement breaks a foundational assumption and needs coherent redesign." license: MIT metadata: author: jstack-maintainers source: michael-denyer/pstack-claude source-version: "0.9.30" source-commit: 45f768349a6d7d7e71509fee3f5bccfad54b3bad owner: software-factory risk: low capabilities: jstack,engineering-principle user-invocable: false --- # Redesign From First Principles When integrating a change, don't bolt it onto the existing design. Redesign as if the requirement had been there from the start. - Read all affected files and understand the current design - Ask: "if we were writing this from scratch with this new requirement, what would we build?" - Propagate the change through every reference: types, docs, examples, rationale sections - Think about the whole redesign, then deliver it incrementally This is the method for preserving option value when integrating changes into an existing design.