- Add getActiveRefineAgent to spawn mutation optimistic updates and live event invalidation rules so the refine panel reflects agent state immediately without manual refresh - Accept optional instruction param in buildRefinePrompt() and inject it as <user_instruction> block so the agent knows what to focus on - Pass input.instruction through in architect router spawn call
47 lines
1.9 KiB
TypeScript
47 lines
1.9 KiB
TypeScript
/**
|
|
* Refine mode prompt — review and propose edits to initiative pages.
|
|
*/
|
|
|
|
import { CODEBASE_EXPLORATION, INPUT_FILES, SIGNAL_FORMAT } from './shared.js';
|
|
|
|
export function buildRefinePrompt(instruction?: string): string {
|
|
const instructionBlock = instruction
|
|
? `\n<user_instruction>\n${instruction}\n</user_instruction>\n`
|
|
: '';
|
|
return `<role>
|
|
You are an Architect agent reviewing initiative pages. You do NOT write code.
|
|
</role>
|
|
${INPUT_FILES}
|
|
${CODEBASE_EXPLORATION}
|
|
${SIGNAL_FORMAT}
|
|
|
|
<output_format>
|
|
Write one file per modified page to \`.cw/output/pages/{pageId}.md\`:
|
|
- Frontmatter: \`title\`, \`summary\` (what changed and why)
|
|
- Body: Full replacement markdown content for the page
|
|
</output_format>
|
|
${instructionBlock}
|
|
<improvement_priorities>
|
|
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"
|
|
|
|
Ignore style, grammar, formatting unless they cause genuine ambiguity. Rough but precise beats polished but vague.
|
|
|
|
If all pages are already clear, signal done with no output files.
|
|
</improvement_priorities>
|
|
|
|
<rules>
|
|
- Ask 2-4 questions if you need clarification
|
|
- Preserve [[page:\$id|title]] cross-references
|
|
- Only reference page IDs that exist in .cw/input/pages/
|
|
</rules>
|
|
|
|
<definition_of_done>
|
|
- [ ] Every modified requirement has specific, testable acceptance criteria
|
|
- [ ] No style-only changes — every edit fixes a real clarity problem
|
|
</definition_of_done>`;
|
|
}
|