Support closing-note rank fallback

This commit is contained in:
OpenClaw Bot
2026-05-27 19:38:53 +02:00
parent 90beb50459
commit 13622de5a0
3 changed files with 75 additions and 1 deletions
+31
View File
@@ -270,6 +270,37 @@ try {
assert.equal(threadGuardrail.buildOrder.doFirst[0], 'build-order-2', 'thread-level guardrail should demote a labelled Build first dashboard and promote the first eligible manual move');
assert.match(threadGuardrail.brief.decisionReceipt.sourceAnchor, /concept-map\.lenses\.channel/);
const closingNoteFallbackResponse = await fetch(`${base}/api/rank-feedback`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
sourceName: 'Scattermind',
artifactId: 'concept_map_closing_note_only',
originalPrompt: 'Clarify a rough service idea where the paid output has questions but no labelled Build Order text.',
conceptMap: {
working_name: 'Service proof without labels',
opening_reflection: 'The Concept Map says to prove a manual package teardown before building a product surface.',
lenses: {
shape: { title: 'Recommended Direction', content: 'Start as a manual service proof before adding software.' },
question: { title: 'Proof Steps', content: 'Ask two freelancers to send one messy offer page and record whether the teardown helps.' },
},
questions_to_sit_with: [
'Will one freelancer act on a manual package teardown within 48 hours?',
'What would make the teardown feel worth paying for?',
],
closing_note: 'Spend the next 48 hours running one manual package teardown for a real freelancer before designing any dashboard.',
reference_code: 'SM-CLOSE',
},
}),
});
assert.equal(closingNoteFallbackResponse.status, 200);
const closingNoteFallback = await closingNoteFallbackResponse.json();
assert.equal(closingNoteFallback.buildOrder.doFirst[0], 'closing-note-next-move');
assert.match(closingNoteFallback.brief.decisionReceipt.firstProofStep, /running one manual package teardown/i);
assert.match(closingNoteFallback.brief.decisionReceipt.sourceAnchor, /concept-map\.closingNote/);
assert.equal(closingNoteFallback.buildOrderDetails.validateNext[0].sourceSection, 'concept-map.questionsToSitWith');
assert.equal(closingNoteFallback.handoff.readiness.status, 'ready');
const softDashLabelResponse = await fetch(`${base}/api/rank-feedback`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },