跳到主要内容
知仓学习社ZHICANG

caveman-discover

>

不碰外部(只输出文字)无严重或高危命中JuliusBrussee/caveman

它会碰到什么

扫了多少1 个文本文件,5 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 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.

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。

它属于哪个仓库

星标★ 105,947
本站分层T1
该仓技能数24
原文件路径skills/caveman-discover/SKILL.md

同一个仓库里的其他技能

看这个仓库的全部 24 个技能