mirror of
https://github.com/garrytan/gstack.git
synced 2026-08-29 17:30:40 +02:00
feat(brain): brain-aware planning resolvers + 3 new placeholders (T4)
scripts/resolvers/gbrain.ts adds:
- generateBrainPreflight(ctx) — emits per-skill ## Brain Context
block + bash that loads digests via
gstack-brain-cache get (one call per
digest). Per-skill subset comes from
SKILL_DIGEST_SUBSETS (single source).
- generateBrainCacheRefresh(ctx) — at-skill-end background refresh hook;
non-blocking; warms cache for next run.
- generateBrainWriteBack(ctx) — Phase 2 / E5 calibration write-back
with per-skill weight. Gated on
personal trust policy + the
BRAIN_CALIBRATION_WRITEBACK flag.
Includes invalidation bash that busts
affected digests after the write.
scripts/resolvers/index.ts registers three new placeholders:
{{BRAIN_PREFLIGHT}}, {{BRAIN_CACHE_REFRESH}}, {{BRAIN_WRITE_BACK}}
All three resolvers return empty string for skills not in
SKILL_DIGEST_SUBSETS (defensive — skill template authors can drop the
placeholders into non-preflight skills with zero effect).
D9 privacy is mentioned in the rendered preflight prose so the agent
knows to expect filtered salience.
D11 codex tension: write-back gates on brain_trust_policy@<hash> being
personal — shared brains skip write-back to avoid polluting team
calibration profile.
test/brain-preflight.test.ts: 19 tests covering subset rendering,
non-preflight skill gating, cross-project vs per-project --project flag
emission, weight injection per skill, BRAIN_CALIBRATION_WRITEBACK flag
mention, and registration in RESOLVERS map.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
7c9f1c2f8d
commit
8f65b862a1
@@ -30,7 +30,7 @@ import { generateInvokeSkill } from './composition';
|
||||
import { generateReviewArmy } from './review-army';
|
||||
import { generateDxFramework } from './dx';
|
||||
import { generateModelOverlay } from './model-overlay';
|
||||
import { generateGBrainContextLoad, generateGBrainSaveResults } from './gbrain';
|
||||
import { generateGBrainContextLoad, generateGBrainSaveResults, generateBrainPreflight, generateBrainCacheRefresh, generateBrainWriteBack } from './gbrain';
|
||||
import { generateQuestionPreferenceCheck, generateQuestionLog, generateInlineTuneFeedback } from './question-tuning';
|
||||
import { generateMakePdfSetup } from './make-pdf';
|
||||
import { generateTasksSectionEmit, generateTasksSectionAggregate } from './tasks-section';
|
||||
@@ -86,6 +86,9 @@ export const RESOLVERS: Record<string, ResolverValue> = {
|
||||
BIN_DIR: (ctx) => ctx.paths.binDir,
|
||||
GBRAIN_CONTEXT_LOAD: generateGBrainContextLoad,
|
||||
GBRAIN_SAVE_RESULTS: generateGBrainSaveResults,
|
||||
BRAIN_PREFLIGHT: generateBrainPreflight,
|
||||
BRAIN_CACHE_REFRESH: generateBrainCacheRefresh,
|
||||
BRAIN_WRITE_BACK: generateBrainWriteBack,
|
||||
QUESTION_PREFERENCE_CHECK: generateQuestionPreferenceCheck,
|
||||
QUESTION_LOG: generateQuestionLog,
|
||||
INLINE_TUNE_FEEDBACK: generateInlineTuneFeedback,
|
||||
|
||||
Reference in New Issue
Block a user