Agent skill

Caveman Workflow Labeler

by JuliusBrussee in JuliusBrussee/caveman

Finds every LLM workflow in a repository, proposes a labeling table and, once you agree, wires labels so Caveman Cloud groups spend per workflow.

Apache-2.0Auto-check passedAI & LLM Engineering

Install Caveman Workflow Labeler

skills CLI
$ npx skills add JuliusBrussee/caveman --skill caveman-discover -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install JuliusBrussee/caveman caveman-discover --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/JuliusBrussee/caveman.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/caveman-discover .claude/skills/caveman-discover && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
caveman-discover
GitHub stars
111k
Used in
1 other repo
Token cost
~1.3k tokens
SKILL.md length
590 words
Files
1
Skills in repo
18
Repo updated
First seen
Licence
Apache-2.0

At a glance

Finds every LLM workflow in a repository, proposes a labeling table and, once you agree, wires labels so Caveman Cloud groups spend per workflow.

  • Works in 5 steps: Inventory the workflows → Name them → Propose, then apply → …
  • Breaking down LLM spend by workflow in Caveman Cloud
  • SKILL.md covers Step 1 — Inventory the workflows, Step 2 — Name them, Step 3 — Propose, then apply and Step 4 — Verify, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Caveman Cloud groups LLM spend by workflow label, and unlabeled gateway traffic lands in a single unlabeled-workflow bucket. This skill has the agent find the repository's workflows, name them, wire the labels and verify that nothing broke. Because it edits code, the agent proposes a table first and applies changes only after you agree, and running it again on an already-labeled repo must change nothing.

The inventory starts from entry points, not imports: HTTP or RPC handlers that call an LLM, scheduled jobs and queue workers, CLI commands and scripts, eval harnesses that spend real tokens, and distinct agents or chains inside a framework such as LangGraph. One workflow is one job a person would name, so a shared helper used by three jobs makes three workflows, labeled at the callers. Names are lowercase slugs of 1–96 characters naming the job instead of the technology, such as support-reply or nightly-digest, and unclear ones are marked for review.

When your agent uses it

  • Breaking down LLM spend by workflow in Caveman Cloud
  • Finding every place a repository calls an LLM
  • Labeling gateway requests so traffic stops landing in one bucket

Example prompts

  • “Discover the LLM workflows in this repo and show me the labeling table before changing anything.”
  • “Our spend all shows up as unlabeled-workflow. Label each job separately.”
  • “Re-run workflow discovery and confirm that nothing needs to change.”

Requirements

  • A Caveman Cloud gateway that reads workflow labels

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Inventory the workflows
  2. Name them
  3. Propose, then apply
  4. Verify
  5. Report

What it can do on your machine

Read from SKILL.md and the folder at commit 2e08b91. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Caveman Workflow Labeler loads about 1.3k tokens when it runs. Until then it costs about 51 tokens; SKILL.md has 590 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~51
When it runs · the whole SKILL.md, loaded when a task matches
~1.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from JuliusBrussee/caveman at commit 2e08b91, republished under its Apache-2.0 licence (© JuliusBrussee). 590 words, ~1,312 tokens.

Download SKILL.mdSave it as .claude/skills/caveman-discover/SKILL.md (or your agent's skills folder).
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.

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.

Show full SKILL.md (261 more words)Show less

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.

© JuliusBrussee, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/caveman-discover of JuliusBrussee/caveman.

Open the folder on GitHubat commit 2e08b91

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in JuliusBrussee/caveman, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Caveman Workflow Labeler next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Caveman Workflow Labeler compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Caveman Workflow Labeler this skillJuliusBrussee/caveman111k1 repos~1.3kAutomated safety check: PassApache-2.0
CodexBar Usage Readersteipete/CodexBar22k—~320Automated safety check: PassMIT
Analyzing Claude Code Sessionsamd/gaia1.6k—~2.3kAutomated safety check: PassMIT
OmniRoute Cost and Usage CLIdiegosouzapw/OmniRoute75k—~693Automated safety check: PassMIT
Langfuse and LLM Gateway LogsKonghaYao/peri229—~4.3kAutomated safety check: NotesApache-2.0
Claude Code Daily Cost Reporttombelieber/claude-view111—~3kAutomated safety check: PassMIT

Similar skills

  • CodexBar Usage Reader

    steipete/CodexBar

    CodexBar read. Provider usage, limits, credits, config health. JSON. No writes.

    22k GitHub stars~320 tokensUpdated today
    AI & LLM EngineeringAuto-check passed
  • Mines local Claude Code session transcripts with a deterministic Python pipeline to show what the agent is actually used for, how often it fails and what it costs.

    1.6k GitHub stars~2.3k tokensUpdated today
    AI & LLM EngineeringAuto-check passed
  • OmniRoute Cost and Usage CLI

    diegosouzapw/OmniRoute

    View cost breakdowns, token usage, and call logs from the CLI. Filter by provider, model, or date range. Export usage reports and inspect per-connection…

    75k GitHub stars~693 tokensUpdated today
    AI & LLM EngineeringAuto-check passed
  • Queries Langfuse traces, prompts, datasets and sessions, and analyzes local LLM gateway logs for requests, context growth, token use and cache hits.

    229 GitHub stars~4.3k tokensUpdated today
    AI & LLM EngineeringAuto-check: notes
  • Claude Code Daily Cost Report

    tombelieber/claude-view

    Shows today's Claude Code spending through the claude-view MCP server, with total cost, running sessions and a per-session breakdown, and other date ranges on request.

    111 GitHub stars~3k tokensUpdated 10 days ago
    AI & LLM EngineeringAuto-check passed
  • Sentry Instrument

    getsentry/sentry-for-ai

    Official

    Instrument an application with Sentry — detect the platform, install and initialize the SDK if needed, and wire up any signal — error monitoring, tracing/performance, logging, metrics, profiling…

    268 GitHub stars~3.2k tokensUpdated yesterday
    AI & LLM EngineeringAuto-check passed

More from JuliusBrussee/caveman

All 18 skills in this repo
  • Caveman Evidence Review

    JuliusBrussee/caveman

    Read-only review of Caveman Cloud data to explain where LLM spend goes: cost, score, workflows, traces, latency, errors, routing and verified savings.

    111k GitHub starsUsed in 1 repo~927 tokens
    Auto-check passed
  • Caveman Experiment Manager

    JuliusBrussee/caveman

    Reads the state and results of Caveman Cloud experiments and reports one recommendation or a block, without changing an experiment's lifecycle itself.

    111k GitHub starsUsed in 1 repo~975 tokens
    Auto-check passed
  • Caveman Optimization Evaluator

    JuliusBrussee/caveman

    Turns a Caveman report-only optimization observation into one minimal code change and a paired baseline evaluation, after the operator picks which to pursue.

    111k GitHub starsUsed in 1 repo~1.2k tokens
    Auto-check passed
  • Caveman Gateway Setup

    JuliusBrussee/caveman

    Routes every LLM call in a repository through the Caveman Cloud gateway in record mode, so requests and costs are measured without changing behavior.

    111k GitHub starsUsed in 1 repo~2.6k tokens
    Auto-check: warnings
  • Caveman Help Card

    JuliusBrussee/caveman

    Quick-reference card for the three caveman skills and their commands. Trigger: /caveman-help or "caveman help".

    111k GitHub stars~690 tokensUpdated 2 days ago
    Auto-check passed
  • Caveman Mode

    JuliusBrussee/caveman

    Switches the agent to a terse reply style that gives the answer first, drops filler, and keeps every technical fact, command and number exact.

    111k GitHub stars~1.2k tokensUpdated 2 days ago
    Auto-check passed

Questions about Caveman Workflow Labeler

What does Caveman Workflow Labeler do?

Finds every LLM workflow in a repository, proposes a labeling table and, once you agree, wires labels so Caveman Cloud groups spend per workflow. Caveman Cloud groups LLM spend by workflow label, and unlabeled gateway traffic lands in a single unlabeled-workflow bucket. This skill has the agent find the repository's workflows, name them, wire the labels and verify that nothing broke.

When should I use Caveman Workflow Labeler?

Caveman Workflow Labeler fits situations like: breaking down LLM spend by workflow in Caveman Cloud; finding every place a repository calls an LLM; labeling gateway requests so traffic stops landing in one bucket.

How do I install Caveman Workflow Labeler in Claude Code?

Run `npx skills add JuliusBrussee/caveman --skill caveman-discover -a claude-code`. Or copy the skill folder (skills/caveman-discover in JuliusBrussee/caveman) into .claude/skills/caveman-discover in your project. Claude Code loads it when a task matches its description.

How do I install Caveman Workflow Labeler in Codex?

Run `npx skills add JuliusBrussee/caveman --skill caveman-discover -a codex`. Or copy the skill folder (skills/caveman-discover in JuliusBrussee/caveman) into .agents/skills/caveman-discover in your project. Codex loads it when a task matches its description.

Can I use Caveman Workflow Labeler in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add JuliusBrussee/caveman --skill caveman-discover -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/caveman-discover, .gemini/skills/caveman-discover, .github/skills/caveman-discover and .opencode/skills/caveman-discover in your project.

What does Caveman Workflow Labeler need to run?

SKILL.md names no scripts, command-line tools or credentials: Caveman Workflow Labeler is instructions for the agent only. Our summary lists: A Caveman Cloud gateway that reads workflow labels.

Does Caveman Workflow Labeler access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Caveman Workflow Labeler safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Caveman Workflow Labeler use?

Caveman Workflow Labeler is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Caveman Workflow Labeler use?

About 1.3k tokens (SKILL.md is roughly 5.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Caveman Workflow Labeler?

Skills that share tags, products or a category with Caveman Workflow Labeler: CodexBar Usage Reader (steipete/CodexBar, 22k stars), Analyzing Claude Code Sessions (amd/gaia, 1.6k stars), OmniRoute Cost and Usage CLI (diegosouzapw/OmniRoute, 75k stars) and Langfuse and LLM Gateway Logs (KonghaYao/peri, 229 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Caveman Workflow Labeler?

JuliusBrussee (a GitHub user) maintains it in JuliusBrussee/caveman, which has 110,815 GitHub stars. The repository holds 18 skills in this directory. The repository was last updated on October 9, 2026.

Source: JuliusBrussee/caveman on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.