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 <noreply@anthropic.com>
This commit is contained in:
Garry Tan
2026-08-24 15:59:36 +00:00
co-authored by Claude Fable 5
parent 85fd9db554
commit ac0c3ded43
+8 -1
View File
@@ -8,7 +8,14 @@ const claude = defineHost({
frontmatter: { frontmatter: {
mode: 'denylist', 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, descriptionLimit: null,
}, },