From ac0c3ded43ee50a01ebaf5a354f0695b6ec707be Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Mon, 24 Aug 2026 15:59:36 +0000 Subject: [PATCH] feat(gen): strip gen-time-only frontmatter keys from Claude renders interactive + benefits-from are read from the .tmpl by buildContext at generation time; no runtime, host, or test reader consumes them from the generated SKILL.md (e2e-harness-audit reads .tmpl; benefits-from tests assert rendered prose). gbrain: stays (bin/gstack-brain-context-load reads it from the installed render); hooks: stays (Claude Code host wires PreToolUse from it). Co-Authored-By: Claude Fable 5 --- hosts/claude.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/hosts/claude.ts b/hosts/claude.ts index d533e9703..5381953ca 100644 --- a/hosts/claude.ts +++ b/hosts/claude.ts @@ -8,7 +8,14 @@ const claude = defineHost({ frontmatter: { mode: 'denylist', - stripFields: ['sensitive', 'voice-triggers'], + // interactive + benefits-from are gen-time inputs (buildContext reads them + // from the .tmpl); no runtime or test reader consumes them from the + // GENERATED file (verified: e2e-harness-audit reads .tmpl; benefits-from + // tests assert rendered prose; the host reads name/description/ + // allowed-tools/hooks; bin/gstack-brain-context-load reads gbrain: — which + // is why gbrain and hooks are NOT stripped). Stripping them trims the + // always-on frontmatter catalog every session loads. + stripFields: ['sensitive', 'voice-triggers', 'interactive', 'benefits-from'], descriptionLimit: null, },