Skip to content

Commit ec10d6c

Browse files
authored
Merge pull request #469 from PlanExeOrg/fix/enrich-concise-fields-and-verbatim-id
Reduce word counts, add anti-echoing, and use verbatim id guidance
2 parents d90ecc8 + 1d0c2b1 commit ec10d6c

1 file changed

Lines changed: 9 additions & 7 deletions

File tree

worker_plan/worker_plan_internal/lever/enrich_potential_levers.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -135,15 +135,15 @@ class InputLever(BaseModel):
135135

136136
class LeverCharacterization(BaseModel):
137137
"""Structured response for a single lever's enrichment from the LLM."""
138-
lever_id: str = Field(description="The uuid of the lever")
138+
lever_id: str = Field(description="The id of the lever — copy it verbatim from the prompt, without XML tags")
139139
description: str = Field(
140-
description="A comprehensive description (80-100 words) of the lever's purpose, scope, and key success metrics."
140+
description="A concise description (50-70 words) of the lever's purpose, scope, and key success metrics. Add new insight beyond what consequences and review already state."
141141
)
142142
synergy_text: str = Field(
143-
description="A free-form text (40-60 words) describing this lever's most prominent synergistic effects with other levers in the full list. Name the specific levers it enhances."
143+
description="A brief text (20-40 words) naming one or two other levers this lever amplifies or enables, and why."
144144
)
145145
conflict_text: str = Field(
146-
description="A free-form text (40-60 words) describing this lever's most prominent conflicts or trade-offs with other levers in the full list. Name the specific levers it constrains."
146+
description="A brief text (20-40 words) naming one or two other levers this lever constrains or trades off against, and why."
147147
)
148148

149149
class BatchCharacterizationResult(BaseModel):
@@ -167,10 +167,12 @@ class CharacterizedLever(InputLever):
167167
168168
**Full Context:** You will be given the overall project plan and the FULL list of ALL levers for context. You must analyze each lever in the batch against this full list.
169169
170+
**Lever identifiers:** Each lever's id is wrapped in `<lever>...</lever>` XML tags. For `lever_id` in your response, copy the id verbatim from inside the tags — strip the XML tags but do not alter the id itself.
171+
170172
**Output Requirements (for each lever in the batch):**
171-
1. **`description`:** (80-100 words) Clearly explain the lever's purpose, what it controls, its objectives, and key success metrics.
172-
2. **`synergy_text`:** (40-60 words) Describe its most important POSITIVE interactions. How does this lever amplify or enable others? You MUST explicitly name one or two other levers from the full list that it has strong synergy with.
173-
3. **`conflict_text`:** (40-60 words) Describe its most important NEGATIVE interactions or trade-offs. What difficult choices does this lever create? Which other levers does it constrain? You MUST explicitly name one or two other levers from the full list that it has a strong conflict with.
173+
1. **`description`:** (50-70 words) Explain the lever's purpose, scope, and key success metrics. Add new insight beyond what the consequences and review fields already state.
174+
2. **`synergy_text`:** (20-40 words) Name one or two other levers from the full list that this lever amplifies or enables, and briefly explain why.
175+
3. **`conflict_text`:** (20-40 words) Name one or two other levers from the full list that this lever constrains or trades off against, and briefly explain why.
174176
175177
In `synergy_text` and `conflict_text`, always refer to other levers by their name — for example, write "Policy Advocacy Strategy", not an identifier.
176178

0 commit comments

Comments
 (0)