Skip to content
Flows
Assemble Tool Prompts Dynamically per Environment
Harness Engineering90-120 minutes
0/4 steps0%

Step 1 of 4

Identify conditional blocks

Find what only sometimes belongs in the prompt.

Prompt capsule

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.

Paste into Claude · Complete implementation prompt with explicit requirements

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.

Your notes for this step