feat(skills): claimed limitations now require evidence, everywhere + wave follow-ups filed

Every tier-2+ skill's preamble gains one directive distilled from nine live
release failures in two days on the fork: a claimed limitation or
requirement ('the API can't do this', 'X requires a credential',
'impossible on this platform') is a material claim, stated only with the
verbatim error, the documented statement, or a live probe in hand —
pattern-matching a failure to a familiar story is not evidence, and a cheap
probe runs BEFORE asking the user or declaring a step blocked. ONE directive
adapted into the preamble resolver; the fork's full judgment contract is
deliberately not imported. Full regen (46 files), ship goldens refreshed,
parity guards bumped with the measured ~0.45KB/skill (investigate, autoplan,
plan-design-review, office-hours), Step 0.9 registered as an intentional
sub-step.

Approved deferrals filed: persona-fleet hostile-user harness + answer-key
methodology in TODOS; the fork's question-budget ACCOUNTING judgment (never
its 5/8/12 constants) folded into the V1.1 pacing design doc; the Apple
adapter added to #1882's coverage note.

Ported from time-attack/gstack (GStack 2).

Co-authored-by: Sina Matian <sina@time-attack.dev>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Garry Tan
2026-08-14 13:30:21 -07:00
co-authored by Sina Matian Claude Fable 5
parent 15d1144fea
commit 81a2d48592
55 changed files with 326 additions and 30 deletions
+2
View File
@@ -53,6 +53,7 @@ import { generateAskUserFormat } from './preamble/generate-ask-user-format';
import { generateWritingStyle } from './preamble/generate-writing-style';
import { generateCompletenessSection } from './preamble/generate-completeness-section';
import { generateConfusionProtocol } from './preamble/generate-confusion-protocol';
import { generateEvidenceDirective } from './preamble/generate-evidence-directive';
import { generateContinuousCheckpoint } from './preamble/generate-continuous-checkpoint';
import { generateContextHealth } from './preamble/generate-context-health';
@@ -113,6 +114,7 @@ export function generatePreamble(ctx: TemplateContext): string {
generateWritingStyle(ctx),
generateCompletenessSection(ctx),
generateConfusionProtocol(ctx),
generateEvidenceDirective(ctx),
generateContinuousCheckpoint(),
generateContextHealth(ctx),
generateQuestionTuning(ctx),
@@ -0,0 +1,18 @@
import type { TemplateContext } from '../types';
/**
* Evidence-before-claimed-limitations (fork port wave 2, D1).
*
* The single highest-leverage judgment clause from the fork's live App Store
* releases: nine release failures in two days shared one root — the agent
* asserting folklore as fact ("the API can't do this", "X requires a
* password") instead of running the ten-second check that would have
* disproven it. Adapted as ONE directive into the shared preamble (the
* fork's full SHARED-JUDGMENT contract is deliberately not imported).
*/
export function generateEvidenceDirective(ctx?: TemplateContext): string {
if (ctx?.explainLevel === 'terse') return '';
return `## Claimed Limitations Need Evidence
A claimed limitation or requirement ("the API can't do this", "X requires a credential", "that's impossible on this platform") is a material claim. State one only with the verbatim error, the documented statement, or a live probe in hand — pattern-matching a failure to a familiar story is not evidence. When a cheap probe settles the question, run it BEFORE asking the user anything or declaring a step blocked.`;
}