caveman-discover
Find and label every LLM workflow in the repository so Caveman Cloud groups spend by workflow instead of one bucket.
Skill by JuliusBrussee
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/juliusbrussee-caveman-discover
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: ml, productivity, monitoring-observability
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/caveman-discover
What's inside
- Skill 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.
- License
- Apache-2.0
- Instructions
- 109 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
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. ## Step 1 — Inventory the workflows Walk the repo from its entry points, not from its imports: - HTTP/RPC handlers that call an LLM (directly or through layers) - Scheduled jobs: cron definitions, queue consumers, workers, GitHub Actions that invoke LLM code - CLI commands and scripts (`scripts/`, `bin/`, package.json scripts) - Eval / test harnesses that burn real tokens - Distinct agents or chains inside a framework (each LangGraph graph, each 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). ## Step 2 — Name them Slug grammar (the gateway enforces this): lowercase `[a-z0-9_-]`, 1–96 chars. Name the job, not the tech: - Good: `support-reply`, `nightly-digest`, `pr-review`, `eval-suite`, `onboarding-email` - Bad: `openai-calls` (tech), `main` (says nothing), `SupportReply` (invalid), `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. ## Step 3 — Propose, then apply 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: - **@caveman-ai/sdk / caveman_cloud SDK**: per-trace `workflow` option, or `defaultWorkflow` on the client a single-job service constructs. - **Raw provider SDKs** (OpenAI/Anthropic/LangChain/LiteLLM/Vercel): add `"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. - **Wrapped coding agents** (`caveman wrap`): `--workflow <slug>` flag or `CAVE_WORKFLOW=<slug>` env at the invocation site (cron line, CI step). - **Raw HTTP**: add the `x-cave-workflow` header to the request. 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). ## Step 4 — Verify 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. ## Step 5 — Report ``` ## 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.
From JuliusBrussee/caveman, Apache-2.0.
More from JuliusBrussee/caveman
- 0.888score
caveman-compress
JuliusBrussee
Compress a memory file such as CLAUDE.md or a todo list into caveman format to save input tokens, keeping a readable backup.
SkillAFreshness: A★ 114.8KClaude Code +9 - 0.885score
caveman-learn
JuliusBrussee
Act on a Caveman learn report - review the ranked token sinks, apply cost-lowering fixes with per-edit consent, and report what those fixes returned.
SkillAFreshness: A★ 114.8KClaude Code +9 - 0.885score
caveman-manage
JuliusBrussee
Inspect Caveman Cloud's experiment lifecycle and block unsafe execution.
SkillAFreshness: A★ 114.8KClaude Code +9 - 0.885score
caveman-optimize
JuliusBrussee
Turn a Caveman optimization observation into an operator-chosen candidate with a paired baseline evaluation.
SkillAFreshness: A★ 114.8KClaude Code +9 - 0.885score
caveman-evidence-review
JuliusBrussee
Read-only review of Caveman Cloud evidence: cost, Cave Score, workflows, traces, latency, errors, routing, savings.
SkillAFreshness: A★ 114.8KClaude Code +9 - 0.882score
cavecrew
JuliusBrussee
When to delegate to `cavecrew-investigator` (locate code), `cavecrew-builder` (1-2 file edit) or `cavecrew-reviewer` (diff review) instead of working inline…
SkillAFreshness: A★ 114.8KClaude Code +9 - 0.882score
megacave
JuliusBrussee
Caveman in Classical Chinese: 文言文 register, far fewer characters, technical terms verbatim.
SkillAFreshness: A★ 114.8KClaude Code +9 - 0.882score
caveman-commit
JuliusBrussee
Write a Conventional Commits message compressed to intent only.
SkillAFreshness: A★ 114.8KClaude Code +9 - 0.882score
caveman-review
JuliusBrussee
Compressed code review - one line per finding with location, problem and fix.
SkillAFreshness: A★ 114.8KClaude Code +9 - 0.882score
caveman-setup
JuliusBrussee
Wire a repository through the Caveman Cloud gateway so every LLM request is measured, with no behavior change.
SkillAFreshness: A★ 114.8KClaude Code +9 - 0.882score
caveman-explore
JuliusBrussee
Read-only repository explorer for cold-start orientation, broad cross-file localization, or when a direct search failed.
SkillAFreshness: A★ 114.8KClaude Code +9 - 0.882score
ultracave
JuliusBrussee
Caveman at maximum compression: fragments, one word when one word is enough, each fact once.
SkillAFreshness: A★ 114.8KClaude Code +9
Signals
- Stars
- 114,786
- Forks
- 6,616
- Open issues
- 64
- Last commit (this folder)
- Aug 23, 2026 (2 months ago)
- Last release
- Oct 13, 2026 (13 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/JuliusBrussee/caveman
- Website
- docs.caveman.so/caveman
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
- 0.334score
caveman-discover
djshellshoxxx
Find and label every LLM workflow in the repository so Caveman Cloud groups spend by workflow instead of one bucket.
SkillAFreshness: AClaude Code +9 - 0.334score
caveman-discover
hanzxtf
Find and label every LLM workflow in the repository so Caveman Cloud groups spend by workflow instead of one bucket.
SkillAFreshness: AClaude Code +9 - 0.326score
caveman-discover
nguyenhungtran18
Find and label every LLM workflow in the repository so Caveman Cloud groups spend by workflow instead of one bucket.
SkillBFreshness: B★ 1Claude Code +9
More from JuliusBrussee
- 0.888score
caveman-compress
JuliusBrussee
Compress a memory file such as CLAUDE.md or a todo list into caveman format to save input tokens, keeping a readable backup.
SkillAFreshness: A★ 114.8KClaude Code +9 - 0.885score
caveman-learn
JuliusBrussee
Act on a Caveman learn report - review the ranked token sinks, apply cost-lowering fixes with per-edit consent, and report what those fixes returned.
SkillAFreshness: A★ 114.8KClaude Code +9 - 0.885score
caveman-manage
JuliusBrussee
Inspect Caveman Cloud's experiment lifecycle and block unsafe execution.
SkillAFreshness: A★ 114.8KClaude Code +9 - 0.885score
caveman-optimize
JuliusBrussee
Turn a Caveman optimization observation into an operator-chosen candidate with a paired baseline evaluation.
SkillAFreshness: A★ 114.8KClaude Code +9 - 0.885score
caveman-evidence-review
JuliusBrussee
Read-only review of Caveman Cloud evidence: cost, Cave Score, workflows, traces, latency, errors, routing, savings.
SkillAFreshness: A★ 114.8KClaude Code +9 - 0.882score
cavecrew
JuliusBrussee
When to delegate to `cavecrew-investigator` (locate code), `cavecrew-builder` (1-2 file edit) or `cavecrew-reviewer` (diff review) instead of working inline…
SkillAFreshness: A★ 114.8KClaude Code +9
Cite this page
caveman-discover skill. Agent Mart. https://agentmart.dev/skills/juliusbrussee-caveman-discover (last updated 2026-10-24)