documentation
SkillDocs & knowledgeThis skill gives your AI established patterns for writing developer documentation. Once added, it can draft pull request descriptions, changelog entries, and feature documentation, and help you prepare releases.
Available today. Use it from your connected AI after setup.
No other account needed.
After adding the skill, ask your AI to write a pull request description, changelog entry, or release notes for the change you are working on.
Then ask your AI: use the documentation skill
What your AI can do with it
- Write pull request descriptions
- Draft changelog entries
- Document new features
- Prepare release notes
What this skill tells your AI
The instructions your AI receives, as published by comet-ml/opik in .agents/skills/documentation/SKILL.md and read by ahel’s review.
PR Description
Use the repository template at .github/pull_request_template.md — read the FULL file before drafting (the required sections continue past the first screen). CI (.github/workflows/pr-lint.yml) fails any PR whose description is missing one of these exact headings:
## Details## Change checklist## Issues## Testing## Documentation
Also fill in the template's ## AI-WATERMARK section (yes/no; if yes: Tools, Model(s), Scope, Human verification). Never invent a different structure such as ## Summary / ## Test Plan.
A section that does not apply gets N/A — never delete a heading.
## Details — style
Write what changes for a user. A reviewer reads the diff for the code; this section tells them what is different when they use the product.
- Short. Most PRs need 3–10 bullets. If it runs longer, the section is doing the diff's job — cut it.
- Bullets, not prose paragraphs. One behavior per bullet. Nest one level for sub-cases.
- Authoritative. State what happens: "The run is scored once." Not "This should now mean that the run will be scored once."
- No fluff. No motivation paragraph, no "this PR …", no approach summary, no benefits list, no restating the diff.
- Observable behavior first. What the UI shows, what the API returns, what gets scored, stored or logged. Name a class, method or file only when the behavior makes no sense without it.
Pick the shape that fits the change — do not force one:
- Before / After bullet lists when a behavior changed and the contrast is the point.
- A flat bullet list for a new capability, where there is no "before".
- One or two lines when users cannot see the change (refactor, dependency bump) — say what is unchanged and what improved, then stop.
Changelog Entry
### [VERSION] - [DATE]
#### New Features
- **Feature Name**: Brief description
#### Improvements
- **Improvement**: What changed and why
#### Bug Fixes
- **Fix**: What was broken (#issue)
#### Breaking Changes
- **Change**: What breaks, migration steps
Feature Documentation
When documenting a feature, cover:
User Impact
- What capability does this add?
- How do users access it?
Technical Changes
- API changes (endpoints, params)
- SDK changes (new methods)
- Database migrations
- Config changes
Breaking Changes (if any)
- What breaks
- Migration steps
Key Files
apps/opik-documentation/documentation/fern/docs-v2/self-host/changelog.mdx- Self-hosted deployment changelog (breaking/critical changes only; the former repo-rootCHANGELOG.mdwas removed)apps/opik-documentation/documentation/fern/docs-v2/changelog/- Main product docs changelog entries (dated.mdxfiles)apps/opik-documentation/documentation/fern/docs-v2/development/optimization-runs/changelog.mdx- Agent Optimizer release changelogapps/opik-documentation/documentation/fern/docs.yml- Docs routing/navigation source of truth for changelog surfaces.github/release-drafter.yml- Release template
Changelog Routing Rules
- Pick the changelog target by scope; do not default everything to one surface.
- Use
apps/opik-documentation/documentation/fern/docs-v2/self-host/changelog.mdxonly for self-hosted deployment breaking/critical/security-impacting notes. - Use
apps/opik-documentation/documentation/fern/docs-v2/changelog/*.mdxfor general Opik product release notes shown in/docs/opik/changelog. - Use
apps/opik-documentation/documentation/fern/docs-v2/development/optimization-runs/changelog.mdxfor Agent Optimizer version updates (for examplesdks/opik_optimizerreleases like3.1.0). - Liquibase
changelog.xmlfiles are migration manifests, not user-facing release-note changelogs. - If unsure where an entry belongs, confirm the surface from
apps/opik-documentation/documentation/fern/docs.ymlbefore editing.
Images in documentation
- Use
fern/imgfor documentation images (e.g.apps/opik-documentation/documentation/fern/img/...). - Do not use
static/imgfor new assets; it is a legacy folder used by external integrations and cannot be deleted. - Reference images in docs as
/img/...(e.g./img/tracing/openai_integration.png). - In repos that define
docs.yaml/docs.yml, treat that file as the routing source of truth; do not assume URLs mirror directory layout.
Internationalized READMEs
Non-English README files (readme_CN.md, readme_ES.md, readme_FR.md, readme_DE.md) are AI machine-translated from the English README.md.
- Each non-English README must have a notice at the top (as a blockquote) warning that the file is AI-translated and welcoming improvements.
- When the English README is updated with significant content changes, re-translate the affected non-English READMEs using AI and update accordingly.
- Do not manually edit translated READMEs for content changes; update the English source and re-translate.
Style
- User perspective, not implementation details
- Specific (version numbers, dates)
- Code examples for API/SDK changes
- Concise - link to docs, don't duplicate
Signals
- GitHub stars
- 22k
- Forks
- 2k
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
documentation-comet-ml- Source
- github.com/comet-ml/opik