跳到主要内容

caveman-discover 精选

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.

在 GitHub 打开

安装方式

cp -r skills/caveman-discover ~/.claude/skills/caveman-discover

把该 skill 目录放进客户端 skills 目录。不同客户端的目录可能不同,Claude Code 默认是 ~/.claude/skills/

整仓一次性获取:git clone --depth 1 https://github.com/JuliusBrussee/caveman.git

依赖与权限

  • 需要 API Key —— 使用前需配置相应的密钥环境变量
  • 无需联网
  • 依赖外部命令:curl
  • 以上为按正文与 frontmatter 自动推断的信号,仅供参考;安装前建议先阅读原文。

SKILL.md 正文

来源 JuliusBrussee/caveman@2e08b91 · 许可 Apache-2.0 · 内容未修改

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.

质量与来源

所属仓库
JuliusBrussee/caveman
仓库星标
11 万
最近更新
今天
采集时间
今天
commit
2e08b9177c07
内容指纹
sha256:0483d17fce14ca5
文件路径
skills/caveman-discover/SKILL.md

同仓库其它 Skill

查看全部 28 个
cavecrew
When to delegate to `cavecrew-investigator` (locate code), `cavecrew-builder` (1-2 file edit) or `cavecrew-reviewer` (diff review) instead of working inline or using `Explore`. Their output is compressed, so main context lasts longer.
精选 JuliusBrussee/caveman 11 万 原文
Claude CodeCodex CLIGemini CLI
caveman-compress
Compress a memory file such as CLAUDE.md or a todo list into caveman format to save input tokens, keeping a readable backup. Trigger: /caveman-compress.
精选 JuliusBrussee/caveman 11 万 原文
Claude CodeCodex CLIGemini CLI
caveman-stats
Show recorded output and cache-read token usage and mode attribution for the current Claude Code session, or locate the host's native usage report. Trigger: /caveman-stats.
精选 JuliusBrussee/caveman 11 万 原文
Claude CodeCodex CLIGemini CLI
caveman
Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".
精选 JuliusBrussee/caveman 11 万 原文
Claude CodeCodex CLIGemini CLI
megacave
Caveman in Classical Chinese: 文言文 register, far fewer characters, technical terms verbatim. Invoke only with /megacave or /caveman wenyan. Stays on until "stop caveman" or "normal mode".
精选 JuliusBrussee/caveman 11 万 原文
Claude CodeCodex CLIGemini CLI
ultracave
Caveman at maximum compression: fragments, one word when one word is enough, each fact once. Invoke only with /ultracave or /caveman ultra. Stays on until "stop caveman" or "normal mode".
精选 JuliusBrussee/caveman 11 万 原文
Claude CodeCodex CLIGemini CLI

相似 Skill

更多「编码」
access
Manage Discord channel access — approve pairings, edit allowlists, set DM/group policy. Use when the user asks to pair, approve someone, check who's allowed, or change policy for the Discord channel.
精选 anthropics/claude-plugins-official 3.8 万 原文
Claude CodeMCP 客户端
configure
Set up the Discord channel — save the bot token and review access policy. Use when the user pastes a Discord bot token, asks to configure Discord, asks "how do I set this up" or "who can reach me," or wants to check channel status.
精选 anthropics/claude-plugins-official 3.8 万 原文
Claude CodeMCP 客户端
access
Manage iMessage channel access — approve pairings, edit allowlists, set DM/group policy. Use when the user asks to pair, approve someone, check who's allowed, or change policy for the iMessage channel.
精选 anthropics/claude-plugins-official 3.8 万 原文
Claude CodeMCP 客户端
configure
Check iMessage channel setup and review access policy. Use when the user asks to configure iMessage, asks "how do I set this up" or "who can reach me," or wants to know why texts aren't reaching the assistant.
精选 anthropics/claude-plugins-official 3.8 万 原文
Claude CodeMCP 客户端
access
Manage Telegram channel access — approve pairings, edit allowlists, set DM/group policy. Use when the user asks to pair, approve someone, check who's allowed, or change policy for the Telegram channel.
精选 anthropics/claude-plugins-official 3.8 万 原文
Claude CodeMCP 客户端
configure
Set up the Telegram channel — save the bot token and review access policy. Use when the user pastes a Telegram bot token, asks to configure Telegram, asks "how do I set this up" or "who can reach me," or wants to check channel status.
精选 anthropics/claude-plugins-official 3.8 万 原文
Claude CodeMCP 客户端