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:
Lukas May
2026-02-18 17:30:57 +09:00
parent a4d48262c1
commit b63a8b605c

View File

@@ -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`;
}