C3: /deslop-shared-libs names a concrete risk for each recommendation, never 'none'

Both shared-libs-opportunity-judgment reds (37193478719 t3, 37195203538 t1)
failed adoption_and_risk because the top recommendation said 'Main risk:
none found inside the repo' / 'none in behavior'. The skill asked to 'name
the main risk or uncertainty' without saying what counts.
This commit is contained in:
garrytan committed 2026-10-04 17:53:44 +00:00
1 parent e14c0c1de1
commit b81b665184
2 files changed
+12 -1

No files matched your search

+3 -1
View File
@@ -171,7 +171,9 @@ Keep explanations short and plain spoken. Report:
do not hide test or integration costs in a single optimistic number.
3. Up to three ranked recommendations. Link both verified callers, describe the
smallest helper and destination, sketch migration and compatibility tests,
explain why it is useful now, and name the main risk or uncertainty. Briefly
explain why it is useful now, and name the main risk or uncertainty: a concrete
behavior that could differ after migration, or the shared-failure blast radius,
never "none". Briefly
explain why the other candidates rank lower and how recency affected the choice.
Separately identify work covered by existing PRs. If no worthwhile opportunity
survives validation, say so and state the evidence limits.
+9
View File
@@ -157,6 +157,15 @@ describe('shared-code skill distribution', () => {
}
});
test('every rendered recommendation names a concrete risk, never "none"', () => {
// C3: shared-libs-opportunity-judgment reds 37193478719 t3 and 37195203538 t1 wrote
// "Main risk: none found inside the repo" / "none in behavior" for the top recommendation.
for (const host of ALL_HOST_CONFIGS) {
const text = rendered(host, 'deslop-shared-libs').replace(/\s+/g, ' ');
expect(text, host.name).toContain('name the main risk or uncertainty: a concrete behavior that could differ after migration, or the shared-failure blast radius, never "none".');
}
});
test('standalone catalog entry adds exactly the approved 82 bytes', () => {
const skill = readFileSync(join(output, 'deslop-shared-libs/SKILL.md'), 'utf8');
const description = skill.match(/^description: (.+)$/m)?.[1];