mirror of
https://github.com/garrytan/gstack.git
synced 2026-11-06 08:54:04 +01:00
GSTA-36 rule-19 grant 2026-10-27 naming 1f246e35. CHANGELOG via mergeChangelogs ([Unreleased] on top); CONTRIBUTING.md keeps this PR's new-skill steps 3-4 and main's step 5 (generated sections/preamble.md); test/fixtures/context-budget.json keeps main's values with modernize recaptured at 3772 (the preamble hoist moved it from 9466) and alwaysOnTotal 7769 -> 7880; test/helpers/carve-guards.ts ship cap 1.7524 -> 1.7528, measured 329,005 / 187,706 = 1.75277 on the merged tree (skeleton 60,900 after the hoist, 0 bytes from this PR); modernize/sections/preamble.md generated by the hoist.
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
46 lines
1.6 KiB
TypeScript
46 lines
1.6 KiB
TypeScript
import { defineHost } from './define-host';
|
|
|
|
const claude = defineHost({
|
|
name: 'claude',
|
|
displayName: 'Claude Code',
|
|
tier: 'full',
|
|
capabilities: { toolExecution: true, questions: 'native', planMode: true, delegation: true, browser: true, safetyHooks: 'enforced' },
|
|
|
|
usesEnvVars: false, // primary host — literal ~ paths, no $GSTACK_ROOT env vars
|
|
|
|
frontmatter: {
|
|
mode: 'denylist',
|
|
// 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', 'codex_default_prompt'],
|
|
descriptionLimit: null,
|
|
},
|
|
|
|
generation: {
|
|
generateMetadata: false,
|
|
skipSkills: ['claude-code'], // An outside reviewer must use a different harness.
|
|
},
|
|
|
|
pathRewrites: [], // Claude is the primary host — no rewrites needed
|
|
toolRewrites: {},
|
|
|
|
install: {
|
|
linkingStrategy: 'real-dir-symlink',
|
|
},
|
|
|
|
coAuthorTrailer: 'Co-Authored-By: Claude <noreply@anthropic.com>',
|
|
learningsMode: 'full',
|
|
|
|
transcripts: {
|
|
root: '~/.claude/projects/<slug>/*.jsonl',
|
|
layout: 'one folder per workspace; <slug> is the workspace path with every character that is not a letter or digit turned into "-"',
|
|
},
|
|
});
|
|
|
|
export default claude;
|