* feat: smoke-test skillpack — post-restart health checks + auto-fix Adds `gbrain smoke-test` CLI command that runs 8 health checks after container restart, auto-fixes known issues, and reports results. Built-in tests: 1. Bun runtime (auto-install if missing) 2. GBrain CLI loads (auto-reinstall deps) 3. GBrain database connection (doctor health score) 4. GBrain worker process (auto-start) 5. OpenClaw Codex plugin Zod CJS (auto-reinstall broken zod@4) 6. OpenClaw gateway responding 7. Embedding API key present 8. Brain repo exists User-extensible: drop scripts in ~/.gbrain/smoke-tests.d/*.sh Includes SKILL.md with full documentation, pattern for adding tests, and known-issue database (e.g. Zod core.cjs publish bug). Designed to run from OpenClaw bootstrap hooks so every container restart automatically verifies and repairs the environment. * fix: register smoke-test in RESOLVER + add required SKILL sections Fixes the 7 failing unit tests + 1 failing Tier 1 E2E: - `skills/RESOLVER.md`: add smoke-test under Operational (mirrors skillpack-check placement). Fixes resolver_health check failure which cascaded into skillpack-check tests, doctor exit code, and the E2E 'gbrain doctor exits 0 on healthy DB' assertion. - `skills/smoke-test/SKILL.md`: add `## Anti-Patterns` and `## Output Format` sections required by skills-conformance.test.ts. Root cause: PR #369 added skills/smoke-test/ to the manifest but never wired it into RESOLVER.md and never added the sections the conformance test requires for every manifest entry. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix: regenerate llms-full.txt to pick up RESOLVER smoke-test row build-llms drift guard (test/build-llms.test.ts:58) failed because llms-full.txt inlines skills/RESOLVER.md and the last commit added a smoke-test trigger row there. Regenerated via `bun run build:llms`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore: bump version and changelog (v0.19.1) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: root <root@localhost> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
103 lines
5.1 KiB
Markdown
103 lines
5.1 KiB
Markdown
# GBrain Skill Resolver
|
|
|
|
This is the dispatcher. Skills are the implementation. **Read the skill file before acting.** If two skills could match, read both. They are designed to chain (e.g., ingest then enrich for each entity).
|
|
|
|
## Always-on (every message)
|
|
|
|
| Trigger | Skill |
|
|
|---------|-------|
|
|
| Every inbound message (spawn parallel, don't block) | `skills/signal-detector/SKILL.md` |
|
|
| Any brain read/write/lookup/citation | `skills/brain-ops/SKILL.md` |
|
|
|
|
## Brain operations
|
|
|
|
| Trigger | Skill |
|
|
|---------|-------|
|
|
| "What do we know about", "tell me about", "search for" | `skills/query/SKILL.md` |
|
|
| "Who knows who", "relationship between", "connections", "graph query" | `skills/query/SKILL.md` (use graph-query) |
|
|
| Creating/enriching a person or company page | `skills/enrich/SKILL.md` |
|
|
| Where does a new file go? Filing rules | `skills/repo-architecture/SKILL.md` |
|
|
| Fix broken citations in brain pages | `skills/citation-fixer/SKILL.md` |
|
|
| "Research", "track", "extract from email", "investor updates", "donations" | `skills/data-research/SKILL.md` |
|
|
| Share a brain page as a link | `skills/publish/SKILL.md` |
|
|
|
|
## Content & media ingestion
|
|
|
|
| Trigger | Skill |
|
|
|---------|-------|
|
|
| User shares a link, article, tweet, or idea | `skills/idea-ingest/SKILL.md` |
|
|
| Video, audio, PDF, book, YouTube, screenshot | `skills/media-ingest/SKILL.md` |
|
|
| Meeting transcript received | `skills/meeting-ingestion/SKILL.md` |
|
|
| Generic "ingest this" (auto-routes to above) | `skills/ingest/SKILL.md` |
|
|
|
|
## Thinking skills (from GStack)
|
|
|
|
| Trigger | Skill |
|
|
|---------|-------|
|
|
| "Brainstorm", "I have an idea", "office hours" | GStack: office-hours |
|
|
| "Review this plan", "CEO review", "poke holes" | GStack: ceo-review |
|
|
| "Debug", "fix", "broken", "investigate" | GStack: investigate |
|
|
| "Retro", "what shipped", "retrospective" | GStack: retro |
|
|
|
|
> These skills come from GStack. If GStack is installed, the agent reads them directly.
|
|
> If not, brain-only mode still works (brain skills function without thinking skills).
|
|
|
|
## Operational
|
|
|
|
| Trigger | Skill |
|
|
|---------|-------|
|
|
| Task add/remove/complete/defer/review | `skills/daily-task-manager/SKILL.md` |
|
|
| Morning prep, meeting context, day planning | `skills/daily-task-prep/SKILL.md` |
|
|
| Daily briefing, "what's happening today" | `skills/briefing/SKILL.md` |
|
|
| Cron scheduling, quiet hours, job staggering | `skills/cron-scheduler/SKILL.md` |
|
|
| Save or load reports | `skills/reports/SKILL.md` |
|
|
| "Create a skill", "improve this skill" | `skills/skill-creator/SKILL.md` |
|
|
| "Skillify this", "is this a skill?", "make this proper" | `skills/skillify/SKILL.md` |
|
|
| "Is gbrain healthy?", morning health check, skillpack-check | `skills/skillpack-check/SKILL.md` |
|
|
| Post-restart health + auto-fix, "did the container restart break anything", smoke test | `skills/smoke-test/SKILL.md` |
|
|
| Cross-modal review, second opinion | `skills/cross-modal-review/SKILL.md` |
|
|
| "Validate skills", skill health check | `skills/testing/SKILL.md` |
|
|
| Webhook setup, external event processing | `skills/webhook-transforms/SKILL.md` |
|
|
| "Spawn agent", "background task", "parallel tasks", "steer agent", "pause/resume agent" | `skills/minion-orchestrator/SKILL.md` |
|
|
|
|
## Setup & migration
|
|
|
|
| Trigger | Skill |
|
|
|---------|-------|
|
|
| "Set up GBrain", first boot | `skills/setup/SKILL.md` |
|
|
| "Migrate from Obsidian/Notion/Logseq" | `skills/migrate/SKILL.md` |
|
|
| Brain health check, maintenance run | `skills/maintain/SKILL.md` |
|
|
| "Extract links", "build link graph", "populate timeline" | `skills/maintain/SKILL.md` (extraction sections) |
|
|
| "Brain health", "what features am I missing", "brain score" | Run `gbrain features --json` |
|
|
| "Set up autopilot", "run brain maintenance", "keep brain updated" | Run `gbrain autopilot --install --repo ~/brain` |
|
|
| Agent identity, "who am I", customize agent | `skills/soul-audit/SKILL.md` |
|
|
| "Populate links", "extract links", "backfill graph" | `skills/maintain/SKILL.md` (graph population phase) |
|
|
| "Populate timeline", "extract timeline entries" | `skills/maintain/SKILL.md` (graph population phase) |
|
|
|
|
## Identity & access (always-on)
|
|
|
|
| Trigger | Skill |
|
|
|---------|-------|
|
|
| Non-owner sends a message | Check `ACCESS_POLICY.md` before responding |
|
|
| Agent needs to know its identity/vibe | Read `SOUL.md` |
|
|
| Agent needs user context | Read `USER.md` |
|
|
| Operational cadence (what to check and when) | Read `HEARTBEAT.md` |
|
|
|
|
## Disambiguation rules
|
|
|
|
When multiple skills could match:
|
|
1. Prefer the most specific skill (meeting-ingestion over ingest)
|
|
2. If the user mentions a URL, route by content type (link → idea-ingest, video → media-ingest)
|
|
3. If the user mentions a person/company, check if enrich or query fits better
|
|
4. Chaining is explicit in each skill's Phases section
|
|
5. When in doubt, ask the user
|
|
|
|
## Conventions (cross-cutting)
|
|
|
|
These apply to ALL brain-writing skills:
|
|
- `skills/conventions/quality.md` — citations, back-links, notability gate
|
|
- `skills/conventions/brain-first.md` — check brain before external APIs
|
|
- `skills/conventions/subagent-routing.md` — when to use Minions vs inline work
|
|
- `skills/_brain-filing-rules.md` — where files go
|
|
- `skills/_output-rules.md` — output quality standards
|