agent-skills
CLAUDE.md99 starsChanged 13 days agoApache-2.0View on GitHub
The skills in this repository are consumed operationally by agentic frameworks (AI coding agents, copilots, and autonomous developer tools). Every piece of guidance must be written so that an agent can act on it without human interpretation. When writing or editing skill content, follow these principles: - Be prescriptive, not descriptive. Tell the agent what to do (Use a Histogram) rather than explaining concepts (Histograms capture distributions). Explanations are acceptable only when they inform the decision. - Make decisions enumerable.…
In this repository4 other files it gives its agents.
- otel-collectorSkill
- otel-instrumentationSkill
- otel-ottlSkill
- otel-semantic-conventionsSkill
The file
Show its rules and text
We split this CLAUDE.md into the rules it gives an agent
19 rules. About 0 are common, 10 are distinctive, and 9 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈10
Distinctive · estimate
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 6
Every piece of guidance must be written so that an agent can act on it without human interpretation.
- Distinctive: line 8
When writing or editing skill content, follow these principles:
- Distinctive: line 13
When multiple options exist, provide a numbered decision process, a lookup table, or explicit criteria — not open-ended advice.
- Distinctive: line 18
Do not write "if the user wants" or "it is likely that." State concrete, testable criteria the agent can evaluate from the code or …
- Very specific: line 39
When adding, removing, or renaming a ## heading in the rule file, update the corresponding list in SKILL.md so the entries match one-to-one.
- Distinctive: line 44
Follow these rules when changing skill content:
- Very specific: line 53
Use a // BAD-style line comment or <!-- eval:bad --> so the validator exempts them.
- Very specific: line 55
Only reserved example domains and TEST--prefixed identifiers, for example user@example.test and TEST-0001.
- Very specific: line 63
When adding a Tessl scenario, place it directly under evals/tessl/ (Tessl does not discover nested subdirectories) and keep its task …
- Distinctive: line 67
Follow these rules when writing or editing prose in this project.
- Distinctive: line 73
Keep paragraphs between 2 and 5 lines (sentences).
- Very specific: line 79
Use inline Markdown links: visible text.
- Distinctive: line 84
Use code blocks to provide illustrative examples.
- Distinctive: line 88
Use the Oxford comma (e.g., "error status, latency thresholds, rate limits, and so on").
- Very specific: line 89
Use curly/typographic quotes in prose ("...", '...').
- Distinctive: line 90
Write numbers as digits and spell out "percent" (e.g., "10 percent", not "10%" or "ten percent").
- Very specific: line 93
Write span status codes in all-caps: UNSET, OK, ERROR.
- Very specific: line 94
Do not use mixed case like Ok, Error, or Unset in prose.
- Very specific: line 95
Write log severity levels in all-caps: TRACE, DEBUG, INFO, WARN, ERROR, FATAL, UNSET.
≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Agent rules
Audience
The skills in this repository are consumed operationally by agentic frameworks (AI coding agents, copilots, and autonomous developer tools). Every piece of guidance must be written so that an agent can act on it without human interpretation.
When writing or editing skill content, follow these principles:
- Be prescriptive, not descriptive.
Tell the agent what to do (
Use a Histogram) rather than explaining concepts (Histograms capture distributions). Explanations are acceptable only when they inform the decision. - Make decisions enumerable. When multiple options exist, provide a numbered decision process, a lookup table, or explicit criteria — not open-ended advice.
- Include code examples for every actionable rule.
An agent generating code needs a template to follow.
Show both the correct pattern and, where useful, the incorrect one labelled
// BAD. - Avoid subjective conditions. Do not write "if the user wants" or "it is likely that." State concrete, testable criteria the agent can evaluate from the code or configuration it has access to.
- Keep rules self-contained. An agent may load a single rule file without reading the rest of the skill. Each file must make sense on its own; use cross-references for detail, not for essential context.
Skill separation of concerns
otel-instrumentation vs otel-collector
These two skills have a strict boundary: application code vs Collector configuration.
otel-instrumentationcovers the application and its deployment: SDK setup, environment variables (OTEL_SERVICE_NAME,OTEL_RESOURCE_ATTRIBUTES, etc.), resource attributes, instrumentation libraries, and the Kubernetes workload resources and pod specs that deploy the application (e.g., downward API configuration, container env blocks, secret references for auth tokens in Kubernetes).otel-collectorcovers what happens inside the OpenTelemetry Collector process: receivers, processors (memory_limiter,batch,k8sattributes,resourcedetection,resource), exporters, pipelines, and Collector deployment manifests (e.g., DaemonSet and Deployment in Kubernetes, Docker Compose).
When content could live in either skill, apply this rule: if the guidance tells an agent how to modify application code or deployment specs, it belongs in otel-instrumentation; if it tells an agent how to modify Collector YAML configuration or Collector deployment manifests, it belongs in otel-collector.
Cross-reference the other skill for context, but do not duplicate Collector configuration in otel-instrumentation or SDK/pod-spec configuration in otel-collector.
Keeping SKILL.md index lists in sync with rule files
Some SKILL.md files contain a bullet list that mirrors the ## headings in a referenced rule file (marked with a <!-- keep-in-sync --> comment).
When adding, removing, or renaming a ## heading in the rule file, update the corresponding list in SKILL.md so the entries match one-to-one.
Eval rules
The eval harness in evals/custom/ runs an agent against the skills and validates every fenced example; the operator manual is evals/custom/README.md.
Follow these rules when changing skill content:
- Register every added or renamed rule file in the eval registry.
Classify it as
dedicated,shared, orexemptinevals/custom/harness/registry.go, and fordedicatedfiles declare a scenario inevals/custom/scenarios/or apendingScenariosentry. The registry completeness test fails CI on unclassified files, stale entries, and uncovered dedicated files. - Every fenced example must validate or carry an
eval:annotation. Unclassifiable blocks fail CI; use<!-- eval:skip -->,<!-- eval:fragment -->,<!-- eval:k8s -->, or<!-- eval:collector-config -->per the annotation table in evals/custom/README.md.<!-- eval:fragment -->is context-aware: on ayamlor untagged block it marks a service-less Collector fragment, and on an SDK-code block it marks a code fragment that is reported but not compiled — use it on a genuinely-complete Go block only when the block is deliberately uncompilable, never to hide a real compile failure. - Mark deliberately wrong examples.
Use a
// BAD-style line comment or<!-- eval:bad -->so the validator exempts them. - Keep fixture data synthetic.
Only reserved example domains and
TEST--prefixed identifiers, for exampleuser@example.testandTEST-0001; see evals/custom/fixtures/README.md. - Expect code-owner review on prompt-bearing paths.
Changes under
skills/**andevals/custom/scenarios/require approval from the owners in.github/CODEOWNERSbefore eval workflows run them.
Two eval systems
The evals/ tree carries two independent eval systems, and the rules above apply to the Go harness in evals/custom/.
The Tessl-format scenarios in evals/tessl/ are a separate system: one scenario per subdirectory with a task.md and a criteria.json weighted-checklist rubric, scored by Tessl's LLM judge at publish time rather than run by the Go harness.
When adding a Tessl scenario, place it directly under evals/tessl/ (Tessl does not discover nested subdirectories) and keep its task fixtures synthetic; see evals/tessl/README.md.
Prose rules
Follow these rules when writing or editing prose in this project.
Line and Paragraph Structure
- One sentence per line (semantic line breaks). Each sentence starts on its own line; do not wrap mid-sentence.
- Separate paragraphs with a single blank line.
- Keep paragraphs between 2 and 5 lines (sentences).
Section headers
Section headers should be written in sentence case, e.g., "This is an example".
Links
- Use inline Markdown links:
[visible text](url). - Link the most specific relevant term, not generic phrases like "click here" or "this page."
Code Blocks
- Fence with triple backticks and a language identifier (e.g.,
```yaml). - Use code blocks to provide illustrative examples.
Punctuation and Typography
- End sentences with full stops.
- Use the Oxford comma (e.g., "error status, latency thresholds, rate limits, and so on").
- Use curly/typographic quotes in prose (
"...",'...'); straight quotes are fine inside code blocks. - Write numbers as digits and spell out "percent" (e.g., "10 percent", not "10%" or "ten percent").
OpenTelemetry terminology
- Write span status codes in all-caps:
UNSET,OK,ERROR. Do not use mixed case likeOk,Error, orUnsetin prose. - Write log severity levels in all-caps:
TRACE,DEBUG,INFO,WARN,ERROR,FATAL,UNSET. - In code examples, follow the casing of the SDK API (e.g.,
SpanStatusCode.ERROR,SeverityNumber.INFO).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

