Step 1 of 4
Identify conditional blocks
Find what only sometimes belongs in the prompt.
List every section of your current tool/system prompt and mark its activation condition: ALWAYS (core tool description), FEATURE-GATED (sandbox instructions only if sandboxing is enabled; background-task instructions only if background execution is allowed; git safety protocol only in repos), ENVIRONMENT-DERIVED (allowed paths, network hosts, resource limits - values that come from live config), and AUDIENCE (internal power users may get short skill references where external users need full inline instructions). For each block record: condition, source of truth for its values, and current token cost. This map is the spec for the generator.
Expected after this step
A block map: prompt section, activation condition, value source, token cost.
Should not happen
- ✕A static prompt describing sandbox rules while sandboxing is off, teaching the model false constraints
- ✕Config duplicated from multiple sources bloating every request by hundreds of tokens
- ✕Prompt and enforcement drifting apart because values are hand-copied
- ✕No measurement, so prompt bloat accumulates invisibly
Verify before continuing
Do not move on until every check is true. The complete button stays locked until then.
Do not continue if…
- !A static prompt describing sandbox rules while sandboxing is off, teaching the model false constraints
- !Config duplicated from multiple sources bloating every request by hundreds of tokens
- !Prompt and enforcement drifting apart because values are hand-copied
- !No measurement, so prompt bloat accumulates invisibly
If the AI messes this up
Use this when the AI fakes progress or breaks the feature. It forces a real fix.
Everything got marked ALWAYS. Challenge each block: would this text be wrong or wasted in any deployment (sandbox off, no git repo, feature flag off)? If yes, it is conditional - static-by-default is how prompts rot.