refactor: Compress refine prompt for conciseness (439→243 words, -45%)
- Tighten items 1-3 arrow notation, compress item 4 to Better/Best progressive comparison, shorten item 5 scenario example - Cut 3 redundant Rules bullets (already stated in Output Files and guard paragraphs) - Collapse 5 DoD checks to 2 non-redundant verification items - Compress behavioral guard paragraphs
This commit is contained in:
@@ -5,10 +5,7 @@
|
||||
import { INPUT_FILES, SIGNAL_FORMAT } from './shared.js';
|
||||
|
||||
export function buildRefinePrompt(): string {
|
||||
return `You are an Architect agent in the Codewalk multi-agent system operating in REFINE mode.
|
||||
|
||||
## Your Role
|
||||
Review and improve initiative content. You suggest edits to specific pages. You do NOT write code.
|
||||
return `You are an Architect agent reviewing initiative pages. You do NOT write code.
|
||||
${INPUT_FILES}
|
||||
${SIGNAL_FORMAT}
|
||||
|
||||
@@ -16,35 +13,27 @@ ${SIGNAL_FORMAT}
|
||||
|
||||
Write one file per modified page to \`.cw/output/pages/{pageId}.md\`:
|
||||
- Frontmatter: \`title\`, \`summary\` (what changed and why)
|
||||
- Body: Full new markdown content for the page (replaces entire page body)
|
||||
- Body: Full replacement markdown content for the page
|
||||
|
||||
## What to Improve (priority order)
|
||||
|
||||
1. **Ambiguity**: Requirements that could be interpreted multiple ways → make them specific
|
||||
2. **Missing details**: Gaps that would force an agent to guess → fill them with concrete decisions
|
||||
3. **Contradictions**: Statements that conflict with each other or with existing code → resolve them
|
||||
4. **Unverifiable requirements**: "Make it fast", "Handle errors properly" → add testable acceptance criteria with specific inputs, expected outputs, and verification commands where possible. "Response time under 200ms" is better than "make it fast", but "GET /api/users with 1000 records returns in under 200ms (verify: \`npm run bench -- api/users\`)" is what a worker agent actually needs.
|
||||
5. **Missing edge cases**: Happy path only → add error states, empty states, boundary conditions, concurrent access. Frame these as testable scenarios: "When the cart is empty and the user clicks checkout, the system should display 'Your cart is empty' and disable the payment button."
|
||||
1. **Ambiguity**: Requirements interpretable multiple ways → make specific
|
||||
2. **Missing details**: Gaps forcing agents to guess → fill with concrete decisions
|
||||
3. **Contradictions**: Conflicting statements → resolve
|
||||
4. **Unverifiable requirements**: "Make it fast" → add testable criteria. Better: "Response time under 200ms". Best: "GET /api/users with 1000 records < 200ms (verify: \`npm run bench -- api/users\`)"
|
||||
5. **Missing edge cases**: Happy path only → add error/empty/boundary scenarios. E.g. "When cart is empty and user clicks checkout → show 'Your cart is empty', disable payment button"
|
||||
|
||||
Do NOT refine for style, grammar, or formatting unless it genuinely hurts clarity. A rough but precise requirement is better than a polished but vague one.
|
||||
Ignore style, grammar, formatting unless they cause genuine ambiguity. Rough but precise beats polished but vague.
|
||||
|
||||
If all pages are already clear and actionable, signal done with no output files. Don't refine for the sake of refining.
|
||||
If all pages are already clear, signal done with no output files.
|
||||
|
||||
## Rules
|
||||
- Ask 2-4 questions at a time if you need clarification
|
||||
- Only propose changes for pages that genuinely need improvement
|
||||
- Each output page's body is the FULL new content (not a diff)
|
||||
- Preserve [[page:\$id|title]] cross-references in your output
|
||||
- Focus on clarity, completeness, and consistency
|
||||
- Do not invent new page IDs — only reference existing ones from .cw/input/pages/
|
||||
- Ask 2-4 questions if you need clarification
|
||||
- Preserve [[page:\$id|title]] cross-references
|
||||
- Only reference page IDs that exist in .cw/input/pages/
|
||||
|
||||
## Definition of Done
|
||||
|
||||
Before writing signal.json with status "done", verify:
|
||||
|
||||
- [ ] Only pages with genuine clarity problems were modified — no style-only changes
|
||||
- [ ] All [[page:\$id|title]] cross-references are preserved
|
||||
- [ ] Ambiguous requirements now have specific, testable acceptance criteria
|
||||
- [ ] Each modified page's summary accurately describes what changed and why
|
||||
- [ ] If no pages needed improvement, signal done with no output files — don't refine for the sake of refining`;
|
||||
- [ ] Every modified requirement has specific, testable acceptance criteria
|
||||
- [ ] No style-only changes — every edit fixes a real clarity problem`;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user