cavecrew
When to delegate to `cavecrew-investigator` (locate code), `cavecrew-builder` (1-2 file edit) or `cavecrew-reviewer` (diff…
Find and label every LLM workflow in the repository so Caveman Cloud groups spend by workflow instead of one bucket. Use for "discover workflows" or breaking LLM spend down by workflow.
Claude Code
$ npx -y skills add JuliusBrussee/caveman --skill caveman-discover --agent claude-code
Codex
$ npx skills add JuliusBrussee/caveman --skill caveman-discover -a codex -y
Cursor
$ npx skills add JuliusBrussee/caveman --skill caveman-discover -a cursor -y
Gemini CLI
$ npx skills add JuliusBrussee/caveman --skill caveman-discover -a gemini-cli -y
GitHub Copilot
$ npx skills add JuliusBrussee/caveman --skill caveman-discover -a github-copilot -y
OpenCode
$ npx skills add JuliusBrussee/caveman --skill caveman-discover -a opencode -y
Windsurf
$ npx skills add JuliusBrussee/caveman --skill caveman-discover -a windsurf -y
name: caveman-discover description: > Find and label every LLM workflow in the repository so Caveman Cloud groups spend by workflow instead of one bucket. Use for "discover workflows" or breaking LLM spend down by workflow.
You are labeling this repository's LLM workflows for Caveman Cloud. A *workflow* is a job the code performs — "answer a support ticket", "build the nightly digest", "run the eval suite" — not a technology. Every gateway request can carry a workflow label; unlabeled traffic all lands in one `unlabeled-workflow` bucket. Your job: find the workflows, name them well, wire the labels, and verify nothing broke.
This changes code, so it goes through the user's normal review: **propose the table first, apply after the user agrees.** Re-running on an already-labeled repo must change nothing (idempotent).
This skill is operator-invoked. An `unlabeled-traffic` Cave Plan observation is review-only and does not create an advisory file, proposal, or Draft PR. Do not infer that telemetry selected a callsite or authorized an edit. Independently inventory the repository, present the labeling table, and wait for the user's approval before changing code.
Walk the repo from its entry points, not from its imports:
that invoke LLM code
crew, each agent definition is usually its own workflow)
One workflow = one job a human would name. Ten callsites inside the same request handler are one workflow; one shared `llm.ts` helper used by three jobs is three workflows (label at the callers, never the shared helper).
Slug grammar (the gateway enforces this): lowercase `[a-z0-9_-]`, 1–96 chars. Name the job, not the tech:
`onboarding-email`
`johns-test-3` (won't age)
Names are forever-ish — renaming later splits the spend history. When a job's purpose isn't clear from the code, derive the slug from the file name and mark it `review` in the table rather than inventing a purpose.
Present this table and ask to proceed:
| workflow | job | where | how it gets labeled | |---|---|---|---| | support-reply | answers inbound tickets | src/bot/reply.ts:41 | defaultHeaders on the reply client | | nightly-digest | 02:00 summary job | jobs/digest.ts:12 | header on the digest client | | eval-suite (review) | scripts/eval.ts:8 — purpose inferred from filename | scripts/eval.ts:8 | env override at invocation |
Then wire each label with the lightest mechanism available at that callsite:
`defaultWorkflow` on the client a single-job service constructs.
`"x-cave-workflow": "<slug>"` to the same `defaultHeaders` / `default_headers` / `extra_headers` block that already carries `x-cave-api-key`. Shared client used by several jobs → pass the header per call (every SDK above accepts per-request header overrides), or give each job its own thin client.
`CAVE_WORKFLOW=<slug>` env at the invocation site (cron line, CI step).
Label the callers, keep the diff minimal, match the repo's style. If a callsite is not routed through the Caveman gateway at all, don't label it — list it under "not wired" in the report (labels only travel on gateway traffic; wiring is the caveman-setup skill's job).
Run whatever the repo already uses to exercise one labeled path (a test, a dev script, one curl). Then confirm: the request still succeeds (the gateway rejects an invalid label with 400 `cave_invalid_request_header` — fix the slug if so). Labeled spend appears on the dashboard at `/activity?tab=workflows` as each workflow next runs; jobs on a schedule show up when the schedule fires, and that's worth saying in the report rather than pretending they're live.
## Workflows labeled | workflow | job | where | |---|---|---| | support-reply | answers inbound tickets | src/bot/reply.ts:41 | | nightly-digest | 02:00 summary job | jobs/digest.ts:12 | Verified: <the labeled path you actually exercised, and what you observed> Lands at: <DASHBOARD>/activity?tab=workflows — each row appears as that workflow next runs. Anything still unlabeled shows as `unlabeled-workflow`. Not wired (no gateway routing, so no label): <list or "none"> Marked review: <slugs whose purpose was inferred from filenames, or "none">
If you found no LLM entry points at all: say exactly that, and point at the setup skill (`<docs origin>/docs/agent-setup.md`) instead of manufacturing a table.
Caveman make your AI agent say less and read less. Code stay exact. Brain still big.
When to delegate to `cavecrew-investigator` (locate code), `cavecrew-builder` (1-2 file edit) or `cavecrew-reviewer` (diff…
Compress a memory file such as CLAUDE.md or a todo list into caveman format to save input tokens, keeping a readable backup.…
Show recorded output and cache-read token usage and mode attribution for the current Claude Code session, or locate the host's…
Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman",…
Caveman in Classical Chinese: 文言文 register, far fewer characters, technical terms verbatim. Invoke only with /megacave or…
Caveman at maximum compression: fragments, one word when one word is enough, each fact once. Invoke only with /ultracave or…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.