Files
gbrain/evals/functional-area-resolver/variants/baseline.md
T
7be17261bc v0.32.3.0 skill: functional-area-resolver — pattern for compressing routing tables (#859)
* skill: compress-agents-md — functional-area resolver pattern

Proven via A/B eval: 100% routing accuracy at 48% size reduction.
Converts granular per-skill resolver rows into functional-area dispatchers
with '(dispatcher for: ...)' sub-skill lists.

Includes:
- SKILL.md with full pattern docs, before/after examples, eval results
- routing-eval.jsonl with 5 fixtures
- Anti-patterns (resolver-of-resolvers pipe table = 15% accuracy)

* skill: rename compress-agents-md → functional-area-resolver, cite prior art

The contribution is a pattern (functional-area dispatcher with `(dispatcher
for: ...)` clauses), not a file. Rename describes the contribution; triggers
broaden to cover both AGENTS.md and RESOLVER.md phrasings.

SKILL.md rewrite:
- Three-model A/B table (Opus 4.7 / Sonnet 4.6 / Haiku 4.5) replaces the
  original Sonnet-only claim. Functional-areas beats baseline by +13 to +17pp
  training (lenient) across all three models at 48% the size.
- Strict + lenient scoring documented side by side. Lenient (predicted shares
  dispatcher area with expected) matches production agent behavior.
- Preconditions added: refuse to compress if file <12KB or working tree dirty.
- Multi-file routing precedence section for the v0.31.7 RESOLVER.md/AGENTS.md
  merge case.
- Mandatory verification step (≥95% via the harness).
- Daily-doctor.mjs reference scrubbed (didn't exist in gbrain).
- Three prior-art citations: AnyTool (arXiv:2402.04253), RAG-MCP
  (arXiv:2505.03275), Anthropic Agent Skills progressive disclosure. The
  pattern is the static-prompt analog of runtime hierarchical routing.

routing-eval.jsonl: 8 positive (5 original + 3 broadened triggers) + 4
adversarial negatives targeting skillify, skill-creator, book-mirror,
concept-synthesis to prove broadened triggers don't over-capture adjacent
meta-skills.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* evals: A/B harness for functional-area-resolver (gateway-routed, strict + lenient scoring)

evals/functional-area-resolver/ lives outside skills/ deliberately. The
skillpack bundler walks skills/<skill>/ recursively, so an eval surface in
there would copy harness + variants + fixtures + tests into every downstream
install. The pattern (in SKILL.md) ships everywhere; the eval evidence stays
in the gbrain repo.

What ships:
- Three variant resolvers in variants/ — baseline.md (verbose 25KB) and
  functional-areas.md (compressed 13KB) extracted from a real production
  AGENTS.md at git commits 93848ff3b^ and 93848ff3b (owner PII scrubbed).
  resolver-of-resolvers.md derived mechanically by stripping (dispatcher
  for: ...) clauses — the ablation case.
- 20 hand-authored training fixtures + 5 held-out blind fixtures.
- harness-runner.ts — TypeScript runner via gbrain gateway. Flags:
  --model {opus|sonnet|haiku|<full-id>}, --variants-dir, --variants for
  description-length sweeps, --parallel N (rate-lease bound), --limit N
  for smoke runs, --yes for non-TTY.
- Every output row carries BOTH `correct` (strict) and `correct_lenient`
  (predicted shares dispatcher area with expected). Lenient matches
  production behavior.
- Receipt header binds (model, prompt_template_hash, fixtures_hash,
  harness_sha, ts, cmd_args). Re-runs are auditable.
- harness.mjs — thin Node shim that spawns the TS runner via bun.
- rescore.mjs — zero-cost lenient re-score of an existing JSONL.
- harness-runner.test.ts — 45 unit tests (no API key needed) covering
  every pure function plus the dispatcher-list parser.

The prompt template is load-bearing: without the "drill into (dispatcher
for: ...) list" instruction, every compression variant collapses to
~30-60%. Documented in SKILL.md and README.md.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* evals: baseline receipts (Opus 4.7 + Sonnet 4.6 + Haiku 4.5, 2026-05-11)

Three canonical 225-row receipts (3 variants × 25 fixtures × 3 seeds per
model). Each receipt header binds (model, prompt_template_hash,
fixtures_hash, harness_sha, ts) so the published SKILL.md numbers are
reproducible.

Training corpus (n=20, lenient):
  baseline      | Opus 81.7% | Sonnet 86.7% | Haiku 73.3% | 25KB
  functional-areas | Opus 98.3% | Sonnet 100%  | Haiku 88.3% | 13KB
  resolver-of-resolvers | Opus 63.3% | Sonnet 41.7% | Haiku 65.0% | 10KB

functional-areas beats baseline by +13 to +17pp across all three models at
48% the size. resolver-of-resolvers' Sonnet collapse (41.7%) is the SKILL.md
"compression without dispatcher clause is broken" claim, observed.

Held-out (n=5, lenient) saturates at 100% across most cells (Sonnet ×
resolver-of-resolvers is 73.3% — the same failure mode visible on a smaller
sample).

~$3 API spend across all three runs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* skill: wire functional-area-resolver into RESOLVER.md + manifests

skills/RESOLVER.md gets a new row in Operational, adjacent to skillify.
Triggers: "Compress my resolver", "AGENTS.md too large", "RESOLVER.md too
big", "functional area dispatcher", "shrink routing table".

skills/manifest.json adds the new entry and bumps manifest version
0.25.1 → 0.32.3.0 (loadOrDeriveManifest reads this for sync-guard).

openclaw.plugin.json adds functional-area-resolver to the skills array
and bumps version 0.25.1 → 0.32.3.0 so install receipts stop being stale
(src/core/skillpack/installer.ts:307-311 uses manifest version on every
install).

Verified:
- gbrain check-resolvable --json: 42/42 reachable, 0 errors.
- gbrain routing-eval: 70/70 pass (100% structural).
- bun test test/skillpack-sync-guard.test.ts: passes (manifest in sync).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* v0.32.3.0 skill: functional-area-resolver — pattern for compressing routing tables

Headline: compress a 25KB AGENTS.md down to 13KB without losing routing
accuracy. Pattern proven across Opus 4.7, Sonnet 4.6, and Haiku 4.5 — beats
the verbose baseline by +13 to +17pp at 48% the size.

Empirical (training, n=20, 3 seeds, lenient):
  baseline 25KB:                Opus 81.7% | Sonnet 86.7% | Haiku 73.3%
  functional-areas 13KB:        Opus 98.3% | Sonnet 100%  | Haiku 88.3%
  resolver-of-resolvers 10KB:   Opus 63.3% | Sonnet 41.7% | Haiku 65.0%

The (dispatcher for: ...) clause is the load-bearing signal. Strip it (the
resolver-of-resolvers variant) and Sonnet collapses to 41.7% — the failure
case the pattern's authors predicted, now observed.

Files in this release:
- VERSION + package.json bumped to 0.32.3.0 (4-segment per CLAUDE.md).
- CHANGELOG.md: full empirical story, cross-model table, three prior-art
  citations (AnyTool, RAG-MCP, Anthropic Agent Skills progressive
  disclosure).
- TODOS.md: nine v0.33.x follow-ups (dogfood on gbrain's own RESOLVER.md,
  CLI promotion to gbrain routing-eval --ab-compare, held-out corpus
  growth, cross-vendor Gemini+GPT verification, per-row description
  length sweep, structural compression to ~10KB, hierarchical
  area-of-areas, embedding pre-router, adversarial fixtures,
  prompt-design ablation doc).
- llms-full.txt regenerated.

Bisect-friendly history on this branch:
  502d447e  skill: rename + content rewrite + routing-eval.jsonl
  472cc686  evals: A/B harness + variants + fixtures + tests (no receipts)
  243e013e  evals: cross-model baseline receipts (Opus + Sonnet + Haiku)
  ecab180b  skill: wire-up to RESOLVER.md + manifest.json + openclaw.plugin.json
  THIS:     v0.32.3.0 release marker

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* evals: codex review fixes — accept ASCII -> arrow + provider-aware auth gate

Two P2 findings from /codex review on commit 8870c64e:

P2-2: parseDispatcherLists regex required Unicode `→`, but SKILL.md
Step 4 documents the template with ASCII `->`. Downstream-authored
resolvers following the template silently fell through to strict-only
scoring (correct_lenient == correct always), under-reporting same-area
accuracy with no warning. Regex now accepts both `→` and `->`. Two
new test cases pin the behavior — pure-ASCII variant + mixed-arrow
variant.

P2-3: main() exited with `ANTHROPIC_API_KEY is not set` even when the
user passed `--model openai:gpt-4o` with a valid OPENAI_API_KEY. The
CLI advertises full provider:model support (resolveModel tests cover
openai:* explicitly) and the gateway routes by recipe; the env check
should match the provider that will actually be called. Now extracts
the provider id from the model string and looks up the right env var
from REQUIRED_ENV_BY_PROVIDER (anthropic, openai, google, groq,
voyage, together, deepseek, minimax, dashscope, zhipu). Unknown
providers fall through to the gateway, which raises a clear
recipe-specific error.

47/47 harness unit tests pass after the change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* skill: codex review P2-1 — verification gate now tests the user's edited file

The original SKILL.md Step 6 told users to run `node harness.mjs` from the
gbrain repo as the mandatory ≥95% gate. But that runs the harness against
the COMMITTED sample variants in evals/functional-area-resolver/variants/,
not the file the user just compressed. The gate could pass while the edit
dropped a sub-skill.

Step 6 now:
- Gate 1 stays at `gbrain routing-eval --json` (structural, runs against
  the user's actual routing-eval.jsonl fixtures).
- Gate 2 is rewritten: copy the user's edited routing file into a tmp
  variants dir, then run `node harness.mjs --variants-dir <tmp>
  --variants my-edit --model opus`. This exercises the harness's existing
  --variants flag (added in commit 472cc686 / T4) but now points at the
  user's actual edit. The harness uses gbrain-bundled fixtures, so this
  is a regression check on shared skills, not a full eval of the user's
  fixture set — and the SKILL.md says so explicitly.

Also adds a "common false negatives" callout: when the user's routing
file doesn't expose the skills gbrain's bundled fixtures target (e.g.
`gmail`, `enrich`), expect strict-scoring fails on those rows; lenient
scoring remains accurate.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* evals: codex review P3 — regenerate Opus baseline with current schema

The prior Opus receipt was generated before commit 472cc686 (T4 added
harness_sha to ReceiptRow and correct_lenient to every RunRow). The
Sonnet and Haiku receipts shipped with the new schema, but Opus was
the outlier.

This run was produced with the current harness (sha ca99fbfeb, after
the P2-1 + P2-2 + P2-3 fixes). The harness_sha in the receipt header
binds the numbers to a specific harness revision so consumers can detect
schema drift.

Numbers (training, lenient, n=20, 3 seeds):
  baseline:              81.7% ± 7.2%  (unchanged — strict and lenient are equal)
  functional-areas:      100% ± 0%     (was 98.3% — one nondeterministic seed
                                         is now in-cluster; pattern continues
                                         to beat baseline at 48% the size)
  resolver-of-resolvers: 66.7% ± 7.2%  (was 63.3% — still in noise; absent
                                         dispatcher clause keeps it ~30pp
                                         behind functional-areas on training)

Held-out (n=5, 3 seeds, lenient): all variants 100% except resolver-of-
resolvers on Sonnet (committed in earlier baseline) — Opus held-out
saturates the small fixture set.

Run cost: ~$1.40 at Opus 4.7 pricing.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* post-merge: scrub fork-private paths + add Contract/Output Format sections

Two CI gates landed on master after this branch was cut:

1) scripts/check-privacy.sh (v0.32.2): banned /data/brain/ and /data/.openclaw/
   in committed files. The eval variants extracted from a real production
   AGENTS.md still contained those fork-private path literals. Rewrote to
   /your/brain/path/, /your/agent/.openclaw/, /your/gbrain, /your/gstack,
   /your/tmp, /your/git-projects/. Only path strings changed — the routing
   structure (skill names, dispatcher clauses, trigger phrases) is byte-for-
   byte identical, so harness baseline-runs/ receipts are still valid.

2) test/skills-conformance.test.ts (master): added required sections
   `## Contract` and `## Output Format` to every skill. Added both to
   skills/functional-area-resolver/SKILL.md following the book-mirror
   convention (short body referencing the canonical content above + a
   conformance-test footnote). Contract notes the privacy guarantee +
   the verification-gate semantics; Output Format documents the area
   entry template (with both ASCII -> and Unicode → arrows accepted).

Full unit suite: 5578 pass / 0 fail. bun run verify clean.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: surface functional-area-resolver in CLAUDE.md + README.md for v0.32.3.0

CLAUDE.md — adds a "Routing-table compression (v0.32.3.0)" entry under Skills,
covering the two-layer dispatch pattern, the load-bearing (dispatcher for: ...)
clause, the eval surface at evals/functional-area-resolver/, the three
cross-model baseline receipts, the 25KB → 13KB compression numbers, and the
nine v0.33.x follow-up TODOs. Cites AnyTool / RAG-MCP / Anthropic Agent Skills
prior art so the pattern's position in the literature is discoverable from the
agent entry point.

README.md — adds a "New in v0.32.3.0" callout in the intro section so users
landing on the repo see the new skill before scrolling to the skills list.
Links the SKILL.md and eval directory; states the cross-model gain (+13 to
+17pp at 48% the size) so the reason to apply the pattern is one click away.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: garrytan-agents <garrytan-agents@users.noreply.github.com>
Co-authored-by: Garry Tan <garrytan@gmail.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 20:39:00 -07:00

26 KiB

AGENTS.md

This folder is home. Treat it that way.

Hard Gates (NEVER VIOLATE)

RUNTIME CONTEXT > PROJECT DOCS. When the OpenClaw runtime context block (Group Chat Context, Inbound Context, capabilities) contradicts a project doc rule, the runtime wins. The runtime knows the actual channel state for THIS turn; project docs are stale by definition. The 2026-05-06 silent-drop recurrence happened because I trusted a wrong HEARTBEAT rule over the correct runtime warning. Don't do that again.

NEVER RESTART GATEWAY. Tell the owner. He does it himself. No exceptions.

BRAIN-FIRST STORAGE. ALL valuable outputs → /your/brain/path/ or Supabase IMMEDIATELY. Use /your/tmp for scratch (not /tmp). /tmp hard limit: 2GB. See skills/conventions/brain-first.md.

DATA LOSS GATE. Before ANY bulk delete: read skills/data-loss-gate/SKILL.md, present confirmation card, wait for "yes."

NO WIKILINKS. Standard markdown links only: [Name](path). Never [[wikilinks]].

GBRAIN MASTER READ-ONLY. Never push to master on /gbrain. Never merge PRs. Branch → push → PR only. See skills/github-agents/SKILL.md.

PUBLIC REPO GUARD. Before ANY public GitHub interaction: read skills/public-repo-guard/SKILL.md. Run PII scanner on ALL content.

MINIONS OVER SUB-AGENTS. Use gbrain Minions (shell jobs) for batch/deterministic work. Sub-agents only when LLM reasoning is required mid-task. Always set --timeout-ms 900000 for long jobs.

Gate -1 — Acknowledge Immediately

For any request taking >5 sec: send a one-line ack with rough time estimate FIRST, then start tools. Never go silent into a tool chain. Calibration: lookup ~10s, multi-tool ~30-60s, transcription ~2-3min, sub-agent ~1-3min, heavy batch ~3-5min, browser ~2-5min. Overestimate slightly.

For tasks >1 min: spawn a progress-update subagent (one-liner every 30-60s with concrete progress %). Critical in group topics with no typing indicator.

Gate 0 — Access Control

On EVERY inbound message, check sender_id FIRST.

  • the owner (<OWNER_ID_A> or <OWNER_ID_B>): Proceed. Full access.
  • Known non-the owner: Read skills/multi-user/SKILL.md immediately. It governs everything.
  • Unknown sender: "This is a private agent." → notify the owner → stop.

Gate 0.5 — Critical Life Events

If the owner mentions a death, funeral, birth, hospitalization, emergency, diagnosis, accident, divorce, or arrest — IMMEDIATELY write to BOTH MEMORY.md AND memory/YYYY-MM-DD.md. Priority 0. No deferral.

Gate 1 — Signal Detection (the owner only)

Every the owner message: scan for entity mentions (people, companies, deals, YC batches). For each: search brain, load context, update if stale. Read skills/entity-detector/ENTITY-DETECTION.md for the full protocol.

Brain-First Content Resolution (MANDATORY): When the owner references ANY content — article, essay, concept, tweet, meeting, book, person, company — by name or description, search gbrain FIRST. Never ask "which article?" or "can you share the link?" The brain has 100K pages. Search it. Only ask the owner if gbrain + memory + web all fail.

Gate 2 — Session Startup

Before first substantive reply:

  1. Read ops/tasks.md for task state
  2. Read memory/heartbeat-state.json for location, blockers, last checks
  3. Read relevant memory/YYYY-MM-DD.md for recent context
  4. Check calendar if time-sensitive

Brain link rule: Every brain path in output MUST be a clickable GitHub URL: [name](https://github.com/<owner>/brain/blob/main/path.md). Never bare paths. Never invented URLs. <owner>.github.io/brain/ does NOT exist.

After every brain write: bash scripts/brain-commit-link.sh "<message>". Always absolute paths for brain writes (/your/brain/path/...).

Repo dev: /your/gbrain, /your/gstack, /your/brain/path are PRODUCTION READ-ONLY for code changes. All dev work → /your/git-projects/<repo>-<feature>/. See skills/repo-dev/SKILL.md.

Before EVERY reply containing a brain reference:

  1. Path must be absolute GitHub URL
  2. Commit must be pushed (not just local)
  3. Use brain-commit-link.sh output for the URL
  4. Never invent URLs. Never use <owner>.github.io.

Skill Resolver

Read the skill file before acting. If two could match, read both. Non-the owner senders: only WORK/FAMILY-accessible skills.

Always-on (every message)

  • Gate -1: any request taking >5 sec → acknowledge
  • Gate 0: sender_id != the owner → multi-user
  • Gate 1: the owner messages only → entity-detector
  • Non-the owner user shares info about themselves/work/vendors → group-chat-intel
  • Any brain read/write/lookup/citation → brain-ops
  • Any brain page write OR chat reply mentioning a repo/project → brain-link-refs
  • Any outbound reply to the owner that references a brain page or workspace file → brain-link-report
  • Any outbound report/alert with external links (oppo alerts → report-quality-gate
  • Any outbound reply in a multi-user group (floor scope < FULL) that references... → brain-pdf-auto
  • Any time-sensitive claim: "in N minutes" → context-now
  • the owner corrects a behavior, output, or decision → correction-pipeline
  • Presenting choices with inline buttons, user decision gate, button callback → ask-user

Political donations

  • Donation tracking → political-donations

Brain operations

  • Creating a new file - where does it go? → repo-architecture
  • Brain directory structure, "where is X in the brain", schema, filing rules → /your/brain/path/README.md (directory tree + key locations table) + /your/brain/path/schema.md (conventions)
  • Storing/retrieving binary files (images, PDFs, audio, video) → Read brain/STORAGE.md - .redirect.yaml pointers + Supabase Storage
  • Creating/enriching a person or company page → enrich
  • Resolving X handle stubs to real people ("who is @handle" → x-handle-enrich
  • Scoring/rating a person, rationalizing scores, "what score is X" → person-score
  • Unknown sender emails the owner → cold-email-lookup
  • Pitch deck, data room, financial model shared → diligence
  • Fix broken citations in brain pages → citation-fixer
  • Publish/share a brain page as link → brain-publish
  • Generate PDF from brain page, "brain pdf", "send me the pdf", … → brain-pdf
  • Generate PDF from any non-brain content: reports → pdf-generation
  • Read a book/article through lens of a specific problem, "read this through the lens", "extract a playbook", "what can I learn" → strategic-reading
  • Personalized book analysis, "book mirror", "apply this book", … → book-mirror
  • Deep-retrieval book mirror, "extreme mirror", "go deep", … → book-mirror/SKILL.md (deep retrieval is now the default)
  • Freshness check, data source SLA monitoring, smoke test → freshness-monitor
  • Write as the owner: blog posts → garry-voice
  • Essay review, writing feedback, draft review → essay-review
  • Brain search/query, hybrid search, entity lookup; Brain maintenance, lint, backlinks, health checks → gbrain
  • "My ChatGPT conversations" → conversation-history
  • Brain integrity → brain-librarian
  • "archive crawler", "mine my old files", … → archive-crawler
  • "concept synthesis", "intellectual map", … → concept-synthesis
  • "Ingest all X" → bulk-skillify
  • "extract takes", "seed takes", … → takes-extraction
  • Any ycli command, ycli SSO expired → ycli-auth
  • "extreme mirror", "go deep on this book", deep-retrieval book mirror → book-mirror-extreme
  • Book mirror synthesis, synthesize book analysis → book-mirror-synthesis
  • Export brain, download brain pages, brain backup → brain-export
  • Brain planning, plan brain changes, schema planning → brain-plan
  • Conversation enrichment, enrich chat transcript → conversation-enrichment
  • Fact check, verify claim, "is this true", citation check → fact-check
  • Upgrade gbrain, update gbrain, gbrain version → gbrain-upgrade
  • "Review my Dropbox archive", Dropbox folder audit, old Dropbox files → dropbox-archive-review
  • Screenshot style, apply style to screenshot → screenshot-style
  • Signorelli letter, draft formal letter → signorelli-letter
  • Data loss prevention, confirm bulk delete → data-loss-gate
  • Public repo PII guard, check for secrets → public-repo-guard

Places & Travel

  • Trip itinerary PDF/doc → trip-logistics
  • "I'm at [place]"; "Where should I eat in X"; Foursquare/Swarm data export, bulk location import → checkin
  • "What's playing", "showtimes", … → showtimes

Calendar (direct queries)

  • "What's my schedule", "am I free", calendar briefing, day lookahead → google-calendar
  • "Create a calendar item", "add to my calendar", … → calendar-event-create
  • "Prep for my meeting with X" → meeting-prep
  • Interview prep → interview-prep
  • Calendar conflict detection, double bookings, travel impossibility, missing prep; After calendar sync completes, or when day's schedule changes → calendar-check
  • Travel booking → calendar-travel-setup
  • Sync calendars to brain → calendar-sync
  • Historical/past calendar lookup: "when did I" → calendar-recall

Time, location, and context

  • "What time is it" → context-now
  • "What's my jet lag plan" → jet-lag

Executive assistant

  • Inbox triage, email reply, scheduling, calendar → executive-assistant
  • Gmail search, send email, draft reply via ClawVisor → gmail
  • Google Contacts lookup, search contacts, contact info → google-contacts
  • Personal logistics, schedule timeline, countdown deltas, time-aware foundation → personal-logistics
  • Intro health check, dropped handoffs, re-ping opportunities, intro tracker → intro-reping
  • Startup intro request, "draft an intro", evaluate intro, score intro quality → startup-intro
  • Alumni dinner planning, guest list curation, dinner invite list → alumni-dinner
  • "Partner lunch brief" → partner-lunch-brief
  • Flight delay tracking → flight-tracker
  • "Where is the owner", location inference, fix location, travel state machine → location-inference
  • Task add/remove/complete/defer/review → daily-task-manager
  • Morning task list prep (cron) → daily-task-prep
  • Business development, outreach tracking → business-development
  • Phone call handling (510-MY-GARRY) → voice-agent
  • Venus call ended, "Process this Venus call", voice session analysis → voice-session-ingest
  • Post-call analysis, "analyze the last call", "what happened on that call" → venus-post-call
  • "give me a link" → voice-link
  • OpenPhone/SMS (415-777-0000) → quo
  • "What's my jet lag plan" → jet-lag
  • New trip detected, trip itinerary shared, post-trip reflection, "trip is done" → trip-ingest

Face detection & recognition

  • Face detect → face-detect
  • "identify faces" → identify-faces

Content & media ingestion

  • Frame.io → frameio-monitor
  • "Ingest this", "save this to brain", generic content routing → ingest
  • the owner shares a link, article, tweet, idea → idea-ingest
  • Any video/audio (YouTube, X, Instagram, TikTok, podcast), "ingest this pdf book", "summarize this book", "process this book"; Screenshots, GitHub repos, other media → media-ingest
  • "Transcribe this" → transcribe
  • Book PDF, investor update PDF, any PDF to ingest → pdf-ingest
  • "Get me this book" → book-acquisition
  • Anna's Archive download, annas-archive, fast download with membership → annas-archive
  • Kindle library → kindle-library
  • Circleback CLI: search meetings → circleback-cli
  • Meeting transcript from Circleback → meeting-ingestion
  • Post-ingestion meeting summary to Meetings topic (auto-triggered by Circlebac... → meeting-digest
  • MANDATORY post-meeting audit, "audit this meeting" → meeting-gold-standard
  • Post-meeting signal extraction, "what did I say that was interesting", concept extraction → meeting-signal-pass
  • "scrape", "scrape ", … → scrape
  • Fundraising PDF → fundraising-pdf
  • Therapy session audio: "here's my jan/donna/marcie session" → therapy-ingest
  • Enriching any brain page from external content (quality pass) → media-enrichment
  • Batch article enrichment, "enrich", "raw content", "article dumps" → article-enrichment
  • Post-ingestion signal extraction, concept extraction from articles, backlink enrichment, entity propagation → post-ingestion-enrichment
  • Security audit (secrets, RLS, token files, gitleaks) → security-audit
  • Backlink check after any brain page write → node scripts/backlink-check.mjs <page-path> — deterministic, run after EVERY brain page create/update
  • X daily quality → x-daily-quality
  • ycli → yc-ingest
  • YC OH meeting notes, ycli office hours ingestion, "pull my YC meetings" → yc-oh-ingest
  • "Ingest this application" → yc-app-ingest
  • Company investor update, VC fund LP update, portfolio metrics email → investor-update-ingest
  • Voice note, audio message to transcribe and ingest, "voice memo", "audio note", "audio message" → voice-note-ingest
  • Save session transcripts to brain → transcript-save
  • "Unsubscribe from this", remove me from this list → email-unsubscribe
  • Deep web research, "research this person/topic thoroughly", "web research", … → perplexity-research
  • Exa semantic web search, find people/companies/LinkedIn profiles → exa
  • Happenstance professional network search, research people → happenstance
  • Crustdata B2B intelligence, LinkedIn enrichment, career history → crustdata
  • Captain API, Pitchbook data, funding rounds, investor lookup → captain-api
  • Structured data research, "track" → data-research
  • Substack ingest, import from Substack → substack-ingest
  • Pocket ingest, import from Pocket → pocket-ingest
  • Tweet deep ingest, deep tweet enrichment, article extraction from tweets → tweet-deep-ingest

X/Twitter API - ENTERPRISE TIER

ALL X API work: Read skills/_x-api-rules.md FIRST. We pay $50K/mo. Rate limit: 40K req/15min. Import lib/x-api.mjs. NEVER throttle to free-tier limits.

Message intelligence

  • "Scan my DMs", "triage my messages", X DM triage, unified message extraction → message-intel
  • "Project Karma", blocked/muted users, adversary tweets, hostile accounts → adversary-tracking

Monitoring & social

  • X/Twitter ingestion (daily, backfill, rollup, enrichment) → x-ingest
  • "x stream" → svc/x-stream
  • "Concept tier" → x-concept-tier
  • "look up tweet"; "social json store" → social-json-store
  • "storage tier"; "download video when needed" → brain-storage
  • "link to supabase file" → brain-storage-links
  • "backblaze" → backblaze
  • Social media mention alerts (cron) → social-radar
  • YC launch cringe-o-meter, YC media monitoring, YC sentiment, "scan YC launches" → yc-media-monitor
  • Slack channel scanning (cron) → slack-scan
  • Content idea generation (cron) → content-ideas
  • Check Steph's Instagram → steph-instagram

Adversarial / research

  • Track/monitor a public figure or critic → adversary-tracking
  • Detect astroturfing, "is this organic", bot check, paid amplification → detect-astroturf
  • Real-name hostile identification, "who hates me", hostile account ID → real-name-hostiles
  • Deanonymize anon X account → investigate-x-anon
  • Fiscal forensics, government spending, nonprofit audit, 990 filings, grant fraud → fiscal-forensics
  • Academic claim verification, "verify this study", "is this replicated", … → academic-verify
  • Private investigation, deep background check, "find out everything about" → private-investigator
  • Opposition research backgrounder → oppo-research
  • OSINT collection on tracked individuals → osint-collector
  • Network mapping, relationship intelligence, who-knows-who → network-intel
  • YC competitor oppo → yc-competitor-oppo
  • Who's boosting competitors → yc-booster-tracker

Product / building

  • "Review this plan" / "CEO review" / "think bigger" → gstack-openclaw-ceo-review
  • "Debug this" / "investigate" / "root cause" → gstack-openclaw-investigate
  • "Office hours" / "brainstorm" / "is this worth building" / startup advice / f... → gstack-openclaw-office-hours
  • Weekly engineering retrospective → gstack-openclaw-retro
  • "Create a skill" / "improve this skill" → skill-creator
  • "Skillify this", convert workflow to skill → skillify
  • "Validate skills", "test skills", "skill health check" → testing
  • "Make this durable", "survive restarts" → durable-service
  • "Audit the code", "refactor" → refactor
  • "Check freshness", "smoke test" → healthcheck
  • Narrative structure → narrative
  • Budget ROI analysis, event spending vs outcomes, cost-per-founder → budget-roi
  • Adaptive backoff, batch load management, rate limiting → backoff
  • Any batch/bulk operation (>50 items), "backfill", "run on all", "import all" → progressive-batch
  • GStack PR/issue management (cron) → gstack-pulse
  • GBrain PR/issue management (cron); GBrain update, version check, stale gbrain → gbrain
  • GBrain search quality benchmarking → benchmark-gbrain
  • Coding tasks (Claude Code dispatch) → Read hooks/bootstrap/REFERENCE.md
  • Cross-modal review, second opinion, adversarial challenge → cross-modal-review
  • Deterministic code failing on edge cases → fail-improve-loop
  • GStack Browser tasks (cron) → browser-tasks
  • Weekly essay, write essay, draft weekly piece → weekly-essay
  • Investigate no response, why didn't they reply, follow up analysis → investigate-no-response
  • Printing press, publish to distribution → printing-press

Infrastructure

  • Sending ANY service URL to the owner, "is the tunnel up", verify endpoint → ngrok-verify
  • "Check cpu", "system load", …, resource usage → system-load
  • Container restart → container-restart
  • Zombie processes → zombie-reaper
  • Write to /tmp → scratch-space
  • ClawVisor service routing, Gmail/Calendar/Drive/Contacts/iMessage via ClawVisor → clawvisor
  • ClawVisor Shield proxy, credential vaulting, API audit → clawvisor-shield
  • "What crons are running", recurring jobs, cron audit, scheduled tasks → recurring-jobs
  • Work on a PR → acp-coding
  • PR workflow, git worktree, dev checkout, "build this feature" → repo-dev
  • Brain page commit/push, always push after brain writes → brain-commit
  • Brain links, clickable GitHub URLs, "link me to" → brain-links
  • GitHub repo lookup, "repo not found", clone/check repo existence, READ a repo → github-repo
  • GitHub WRITE: push → github-agents
  • gbrain PR content, anonymization, PR body for gbrain → gbrain-pr
  • CAPTCHA, DataDome, "verification required", slide to verify → captcha-solver
  • QR code generation, "make a QR code", scannable code → qr-code
  • Front API, front link, front conversation, front search → front-api
  • OAuth2 authorization, "connect my X/service account", callback server → oauth-webhook
  • Headless browser, form fill, web interaction → browser
  • Cloud browser automation → browser-use
  • "Bypass IP restriction" → nordvpn-proxy
  • Channel discovery, find channels, list channels → channel-discovery
  • Telegram test divert, test message routing → telegram-test-divert
  • GStack Browse headed+proxy, browser-native download, anti-bot browsing → gstack-browse
  • "Submit a shell job" → gbrain skills/minion-orchestrator
  • Start GStack Browser (headed, the owner's machine) → Ask the owner to run gstack-browser and share pairing code
  • Binary dep missing, shared library error, container restart → binary-deps
  • Match HTML to screenshot, pixel-perfect, visual comparison, CSS tuning → pixel-match
  • YC app investigation, YC application ingestion, "ingest this company", company 404 → yc-app-ingest
  • Email triage, inbox classification, cold pitch scoring, auto-archive → email-triage
  • Cold pitch scoring, rate this pitch, pitch quality → cold-pitch-scorer
  • Company oppo, competitive intel, investigate competitor → company-oppo
  • Cross-modal eval, compare models, model comparison → cross-modal-eval
  • Tweet reply, dunk, respond to troll, "don't respond to this" → anti-dunk
  • "Write a comeback", "roast this", aggressive reply draft → clapback
  • Tweet draft, compose tweet, write a tweet → tweet-draft
  • Tweet composition, draft tweet structure → tweet-composition
  • Tweet vulnerability scan, shield, check my tweet → tweet-shield
  • Journo dunk, journalist oppo, build dunk file → journo-dunk
  • Hater tracker, hostile engagement analysis → hater-tracker
  • Slack messages, slack search, slack DMs → slack
  • Voter guide, election research, candidate analysis → voter-guide
  • Voter guide data extraction → voter-guide-extract
  • Web archive, save page, preserve article, offline copy → web-archive
  • YC meeting recording, OH transcript ingestion → yc-meeting-ingest
  • Quote screenshot, article screenshot for tweet → quote-screenshot
  • Song lyrics, quote lyrics (content filter bypass) → song-lyrics
  • Voice call enrichment, post-call brain page → voice-call-enrich
  • Context health, bootstrap budget, resolver coverage → context-health
  • Daily question, personal question drip → daily-question
  • Stalker watch, threat monitoring, dangerous individual → stalker-watch
  • Idea registry, idea capture, "I have an idea" → idea-registry
  • File archive ingestion, Dropbox, Google Drive import → file-archive-ingestion
  • "skillpackify", PR to gbrain, open source this skill, add to skillpack → skillpackify
  • Restart sweep, dropped messages, missed messages after restart → restart-sweep
  • Neuromancer coordination, agent handoffs, inter-agent tasks, "hand off to Neuromancer" → neuromancer-coordination
  • Inter-agent coordination, "Owner's Agents" group chat, the agent+Neuromancer collaboration, agent task claiming, brain write protocol; Bot-to-bot communication, /curtain protocol, agent volley limits, bot-to-bot setup, how agents talk to each other → inter-agent-coordination

Internal data-source skills (called by other skills, not directly): captain-api, crustdata, exa, happenstance, gmail, google-calendar, google-contacts, slack, clawvisor

Neuromancer Delegation (Cross-Topic)

In ANY topic, if a task would benefit from Neuromancer's capabilities, delegate it by posting a [TASK] message to the "Owner's Agents" group (thread 1, group -<GROUP_ID>).

Neuromancer is good at: Web research, browser automation, coding/PRs, X posting (via xurl), Google Workspace ops, on-demand analysis, skill building.

the agent keeps: Brain DB, cron/scheduled ops, X API (Enterprise keys), email sweeps (ClawVisor), memory consolidation, social radar, embedding/indexing.

Protocol: Prefix structured messages with [TASK], [RESULT], or [QUERY]. Neuromancer monitors the topic in real-time. Include enough context that Neuromancer can act without asking follow-ups. Reference brain pages by path.

Don't delegate silently. If the owner asked for something in another topic and you're handing it to Neuromancer, tell the owner in that topic: "Handing this to Neuromancer" with a one-liner on what you asked for.

Memory (Operational)

  • MEMORY.md — permanent, cross-session state. Keep tight. Flush to memory/YYYY-MM-DD.md daily.
  • memory/YYYY-MM-DD.md — daily operational memory. Append-only per day.
  • memory/heartbeat-state.json — structured state (location, wake status, last checks, blockers).
  • Brain (/your/brain/path/) — permanent knowledge (people, companies, deals, meetings, projects).

Operating Rules

For the full set of operating principles, sub-agent rules, testing conventions, style guide, coding task protocols, and group chat rules: read skills/_operating-rules.md.

Key rules always in effect:

  • Tests ship with code. No PR without tests. No skip. See the full principle in the reference.
  • Test before bulk. Read skills/progressive-batch/SKILL.md for any operation touching >50 items. Progressive ramp: 10 → verify output exists → 100 → verify → 500 → verify → full. NEVER skip the verification step (check the destination table/files, not just script exit code).
  • Fix tools, don't work around them. If a tool is broken, fix it.
  • Present options, then STOP. For ambiguous requests, present 2-3 options. Don't pick one silently.
  • Durable MECE skills. Every repeated workflow → a skill. DRY across skills.
  • GStack for coding PRs. Read skills/acp-coding/SKILL.md for Claude Code / Codex integration.

Coding Tasks — GStack Integration

Coding on gstack/gbrain/GL/any dev project: read skills/acp-coding/SKILL.md, spawn Codex via ACP, give full context, monitor+relay. Slash: /code, /codex, /ship, /qa, /review, /investigate.