feat: gbrain.context_queries manifests on 6 V1 skills (Lane E partial)

Adds the V1 retrieval contracts. Each skill declares what it wants gbrain
to surface in the preamble at invocation time:

  /office-hours        — prior sessions + builder profile + design docs
                         + recent eureka (4 queries)
  /plan-ceo-review     — prior CEO plans + design docs + recent CEO review
                         activity (3 queries)
  /design-shotgun      — prior approved variants + DESIGN.md + recent
                         design docs (3 queries)
  /design-consultation — existing DESIGN.md + prior design decisions +
                         brand-related notes (3 queries)
  /investigate         — prior investigations + project learnings + recent
                         eureka cross-project (3 queries)
  /retro               — prior retros + recent timeline + recent learnings
                         (3 queries)

Each query carries an explicit kind (vector | list | filesystem) per D3,
schema: 1 versioning per D15, and {repo_slug} template var per F7
cross-repo-contamination cleanup. Mix of vector / list / filesystem
matches what each skill actually needs:

  - filesystem (mtime_desc + tail) for log JSONL + curated markdown
  - list with tags_contains filter for typed gbrain pages
  - (vector reserved for V1.0.1 when gbrain query surface stabilizes)

Smoke test: bun run bin/gstack-brain-context-load.ts --skill-file
office-hours/SKILL.md --repo test-repo --explain returns mode=manifest
queries=4 with the filesystem kinds populating real data from
~/.gstack/builder-profile.jsonl + ~/.gstack/analytics/eureka.jsonl on
this Mac. End-to-end retrieval flow confirmed.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Garry Tan
2026-05-01 20:04:12 -07:00
parent 566ccc8577
commit d0650f5239
12 changed files with 270 additions and 0 deletions

View File

@@ -23,6 +23,29 @@ triggers:
- design system
- create a brand
- design from scratch
gbrain:
schema: 1
context_queries:
- id: existing-design-md
kind: filesystem
glob: "DESIGN.md"
tail: 1
render_as: "## Existing DESIGN.md (if any)"
- id: prior-design-decisions
kind: filesystem
glob: "~/.gstack/projects/{repo_slug}/*-design-*.md"
sort: mtime_desc
limit: 3
render_as: "## Prior design decisions for this project"
- id: brand-guidelines
kind: list
filter:
type: ceo-plan
tags_contains: "repo:{repo_slug}"
content_contains: "brand"
sort: updated_at_desc
limit: 3
render_as: "## Brand-related notes from CEO plans"
---
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs -->

View File

@@ -23,6 +23,29 @@ triggers:
- design system
- create a brand
- design from scratch
gbrain:
schema: 1
context_queries:
- id: existing-design-md
kind: filesystem
glob: "DESIGN.md"
tail: 1
render_as: "## Existing DESIGN.md (if any)"
- id: prior-design-decisions
kind: filesystem
glob: "~/.gstack/projects/{repo_slug}/*-design-*.md"
sort: mtime_desc
limit: 3
render_as: "## Prior design decisions for this project"
- id: brand-guidelines
kind: list
filter:
type: ceo-plan
tags_contains: "repo:{repo_slug}"
content_contains: "brand"
sort: updated_at_desc
limit: 3
render_as: "## Brand-related notes from CEO plans"
---
{{PREAMBLE}}

View File

@@ -20,6 +20,26 @@ allowed-tools:
- Grep
- Agent
- AskUserQuestion
gbrain:
schema: 1
context_queries:
- id: prior-approved-variants
kind: filesystem
glob: "~/.gstack/projects/{repo_slug}/designs/*/approved.json"
sort: mtime_desc
limit: 5
render_as: "## Prior approved design variants for this project"
- id: design-md
kind: filesystem
glob: "DESIGN.md"
tail: 1
render_as: "## DESIGN.md (project design system)"
- id: recent-design-docs
kind: filesystem
glob: "~/.gstack/projects/{repo_slug}/*-design-*.md"
sort: mtime_desc
limit: 3
render_as: "## Recent design docs"
---
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs -->

View File

@@ -20,6 +20,26 @@ allowed-tools:
- Grep
- Agent
- AskUserQuestion
gbrain:
schema: 1
context_queries:
- id: prior-approved-variants
kind: filesystem
glob: "~/.gstack/projects/{repo_slug}/designs/*/approved.json"
sort: mtime_desc
limit: 5
render_as: "## Prior approved design variants for this project"
- id: design-md
kind: filesystem
glob: "DESIGN.md"
tail: 1
render_as: "## DESIGN.md (project design system)"
- id: recent-design-docs
kind: filesystem
glob: "~/.gstack/projects/{repo_slug}/*-design-*.md"
sort: mtime_desc
limit: 3
render_as: "## Recent design docs"
---
{{PREAMBLE}}

View File

@@ -37,6 +37,28 @@ hooks:
- type: command
command: "bash ${CLAUDE_SKILL_DIR}/../freeze/bin/check-freeze.sh"
statusMessage: "Checking debug scope boundary..."
gbrain:
schema: 1
context_queries:
- id: prior-investigations
kind: list
filter:
type: timeline
tags_contains: "repo:{repo_slug}"
content_contains: "investigate"
sort: updated_at_desc
limit: 5
render_as: "## Prior investigations in this repo"
- id: project-learnings
kind: filesystem
glob: "~/.gstack/projects/{repo_slug}/learnings.jsonl"
tail: 10
render_as: "## Recent learnings (patterns + pitfalls)"
- id: recent-eureka
kind: filesystem
glob: "~/.gstack/analytics/eureka.jsonl"
tail: 5
render_as: "## Recent eureka moments (cross-project)"
---
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs -->

View File

@@ -37,6 +37,28 @@ hooks:
- type: command
command: "bash ${CLAUDE_SKILL_DIR}/../freeze/bin/check-freeze.sh"
statusMessage: "Checking debug scope boundary..."
gbrain:
schema: 1
context_queries:
- id: prior-investigations
kind: list
filter:
type: timeline
tags_contains: "repo:{repo_slug}"
content_contains: "investigate"
sort: updated_at_desc
limit: 5
render_as: "## Prior investigations in this repo"
- id: project-learnings
kind: filesystem
glob: "~/.gstack/projects/{repo_slug}/learnings.jsonl"
tail: 10
render_as: "## Recent learnings (patterns + pitfalls)"
- id: recent-eureka
kind: filesystem
glob: "~/.gstack/analytics/eureka.jsonl"
tail: 5
render_as: "## Recent eureka moments (cross-project)"
---
{{PREAMBLE}}

View File

@@ -28,6 +28,33 @@ triggers:
- is this worth building
- help me think through
- office hours
gbrain:
schema: 1
context_queries:
- id: prior-sessions
kind: list
filter:
type: ceo-plan
tags_contains: "repo:{repo_slug}"
sort: updated_at_desc
limit: 5
render_as: "## Prior office-hours sessions in this repo"
- id: builder-profile
kind: filesystem
glob: "~/.gstack/builder-profile.jsonl"
tail: 1
render_as: "## Your builder profile snapshot"
- id: design-doc-history
kind: filesystem
glob: "~/.gstack/projects/{repo_slug}/*-design-*.md"
sort: mtime_desc
limit: 3
render_as: "## Recent design docs for this project"
- id: prior-eureka
kind: filesystem
glob: "~/.gstack/analytics/eureka.jsonl"
tail: 5
render_as: "## Recent eureka moments"
---
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs -->

View File

@@ -28,6 +28,33 @@ triggers:
- is this worth building
- help me think through
- office hours
gbrain:
schema: 1
context_queries:
- id: prior-sessions
kind: list
filter:
type: ceo-plan
tags_contains: "repo:{repo_slug}"
sort: updated_at_desc
limit: 5
render_as: "## Prior office-hours sessions in this repo"
- id: builder-profile
kind: filesystem
glob: "~/.gstack/builder-profile.jsonl"
tail: 1
render_as: "## Your builder profile snapshot"
- id: design-doc-history
kind: filesystem
glob: "~/.gstack/projects/{repo_slug}/*-design-*.md"
sort: mtime_desc
limit: 3
render_as: "## Recent design docs for this project"
- id: prior-eureka
kind: filesystem
glob: "~/.gstack/analytics/eureka.jsonl"
tail: 5
render_as: "## Recent eureka moments"
---
{{PREAMBLE}}

View File

@@ -25,6 +25,30 @@ triggers:
- expand scope
- strategy review
- rethink this plan
gbrain:
schema: 1
context_queries:
- id: prior-ceo-plans
kind: filesystem
glob: "~/.gstack/projects/{repo_slug}/ceo-plans/*.md"
sort: mtime_desc
limit: 5
render_as: "## Prior CEO plans for this project"
- id: recent-design-docs
kind: filesystem
glob: "~/.gstack/projects/{repo_slug}/*-design-*.md"
sort: mtime_desc
limit: 3
render_as: "## Recent design docs for this project"
- id: recent-reviews
kind: list
filter:
type: timeline
tags_contains: "repo:{repo_slug}"
content_contains: "plan-ceo-review"
sort: updated_at_desc
limit: 5
render_as: "## Recent CEO review activity"
---
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs -->

View File

@@ -25,6 +25,30 @@ triggers:
- expand scope
- strategy review
- rethink this plan
gbrain:
schema: 1
context_queries:
- id: prior-ceo-plans
kind: filesystem
glob: "~/.gstack/projects/{repo_slug}/ceo-plans/*.md"
sort: mtime_desc
limit: 5
render_as: "## Prior CEO plans for this project"
- id: recent-design-docs
kind: filesystem
glob: "~/.gstack/projects/{repo_slug}/*-design-*.md"
sort: mtime_desc
limit: 3
render_as: "## Recent design docs for this project"
- id: recent-reviews
kind: list
filter:
type: timeline
tags_contains: "repo:{repo_slug}"
content_contains: "plan-ceo-review"
sort: updated_at_desc
limit: 5
render_as: "## Recent CEO review activity"
---
{{PREAMBLE}}

View File

@@ -18,6 +18,25 @@ triggers:
- weekly retro
- what did we ship
- engineering retrospective
gbrain:
schema: 1
context_queries:
- id: prior-retros
kind: filesystem
glob: "~/.gstack/projects/{repo_slug}/retros/*.md"
sort: mtime_desc
limit: 5
render_as: "## Prior retros for this project"
- id: recent-timeline
kind: filesystem
glob: "~/.gstack/projects/{repo_slug}/timeline.jsonl"
tail: 30
render_as: "## Recent timeline events"
- id: recent-learnings
kind: filesystem
glob: "~/.gstack/projects/{repo_slug}/learnings.jsonl"
tail: 10
render_as: "## Recent learnings"
---
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs -->

View File

@@ -18,6 +18,25 @@ triggers:
- weekly retro
- what did we ship
- engineering retrospective
gbrain:
schema: 1
context_queries:
- id: prior-retros
kind: filesystem
glob: "~/.gstack/projects/{repo_slug}/retros/*.md"
sort: mtime_desc
limit: 5
render_as: "## Prior retros for this project"
- id: recent-timeline
kind: filesystem
glob: "~/.gstack/projects/{repo_slug}/timeline.jsonl"
tail: 30
render_as: "## Recent timeline events"
- id: recent-learnings
kind: filesystem
glob: "~/.gstack/projects/{repo_slug}/learnings.jsonl"
tail: 10
render_as: "## Recent learnings"
---
{{PREAMBLE}}