From b81b6651847fcb3f6df17a85338d60b7ca96270e Mon Sep 17 00:00:00 2001 From: garrytan Date: Sun, 4 Oct 2026 17:53:44 +0000 Subject: [PATCH] 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. --- deslop-shared-libs/SKILL.md.tmpl | 4 +++- test/shared-libs-rendering.test.ts | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/deslop-shared-libs/SKILL.md.tmpl b/deslop-shared-libs/SKILL.md.tmpl index 29cf64c5d..b87f791da 100644 --- a/deslop-shared-libs/SKILL.md.tmpl +++ b/deslop-shared-libs/SKILL.md.tmpl @@ -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. diff --git a/test/shared-libs-rendering.test.ts b/test/shared-libs-rendering.test.ts index b2c80d95f..8373470aa 100644 --- a/test/shared-libs-rendering.test.ts +++ b/test/shared-libs-rendering.test.ts @@ -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];