Deprecate Before Removing
Keep the old name working for a release, point to the replacement, and announce when it goes away.
Where you'll practice this
One Promptles scenario teaches this principle directly.
Retire It Gently
Since 2.0.0 dropped `/shipkit:notes` for `/shipkit:release-notes`, things have broken. The release runbook in `acme/web-app` still tells people to type the old command, and the CI script (the automation that runs on every release tag) calls it too, so last night's tagged build…
Other principles in Constraints
Define Component Boundaries
When splitting a component, give the decisions already made and say nothing on screen should change.
Define Inputs and Outputs
Say what goes in, what comes out, and what happens with bad input. Leave the inside to Claude.
Define the Business Logic
Turn business words into exact rules: the fields, the thresholds, and how they combine.
Describe Edge Cases
Name the unusual cases you know about and what should happen in each.
Describe Type Contracts
Tell Claude the rules the code doesn't show, like allowed values and optional fields. It can work out the rest.
Explain the Why Behind Constraints
Give the reason behind each rule. Claude applies the why to cases you never spelled out.