Accept Scattermind assumption test aliases

This commit is contained in:
OpenClaw Bot
2026-05-27 21:03:08 +02:00
parent 74b6ad2d85
commit 18c85b21dc
4 changed files with 44 additions and 2 deletions
+29
View File
@@ -306,6 +306,35 @@ try {
assert.equal(softActionObject.ranked.find(item => item.id === 'saved-account-dashboard').lane.source, 'source-non-goal');
assert.equal(softActionObject.handoff.readiness.status, 'ready');
const assumptionTestsResponse = await fetch(`${base}/api/rank-feedback`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
sourceName: 'Scattermind',
artifactId: 'concept_map_assumption_tests',
originalPrompt: 'Clarify a paid workshop idea and decide what must be proven before building more surface.',
context: 'Solo builder. Avoid saved workspaces and billing until manual proof works.',
conceptMap: {
working_name: 'Workshop proof map',
next_48_hours: [
{ id: 'manual-workshop-invite', task: 'Invite three real operators to a manual workshop proof', proof_question: 'Will one person commit time from the invite alone?', source_item_id: 'first-48#1' },
],
riskiest_assumptions: [
{ id: 'operator-wants-workshop', hypothesis: 'Operators want a workshop rather than another dashboard', evidence_to_collect: 'At least one operator asks for the manual session after seeing the promise.', source_item_id: 'assumption#1' },
{ id: 'result-usable-without-account', assumption: 'The result is useful without accounts or saved workspaces', question: 'Can they act from the copied handoff alone?', source_item_id: 'assumption#2' },
],
},
}),
});
assert.equal(assumptionTestsResponse.status, 200);
const assumptionTests = await assumptionTestsResponse.json();
assert.equal(assumptionTests.buildOrder.doFirst[0], 'manual-workshop-invite');
assert.equal(assumptionTests.ranked.find(item => item.id === 'operator-wants-workshop').lane.id, 'test');
assert.equal(assumptionTests.ranked.find(item => item.id === 'operator-wants-workshop').provenance.sourceSection, 'concept-map.assumptionTests');
assert.match(assumptionTests.ranked.find(item => item.id === 'operator-wants-workshop').factors.evidenceNeeded, /manual session/);
assert.ok(assumptionTests.handoff.activeSlice.notNow.some(item => item.id === 'operator-wants-workshop'));
assert.equal(assumptionTests.handoff.readiness.status, 'ready');
const threadGuardrailResponse = await fetch(`${base}/api/rank-feedback`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },