Agent skill

evlog Contributing Guide

by evloghq in evloghq/evlog

Answers questions about contributing to the evlog repository: changesets, commit and PR title rules, the Definition of Done and where its authored build guides live.

MITAuto-check passedDevelopment

Install evlog Contributing Guide

skills CLI
$ npx skills add evloghq/evlog --skill contributing -a claude-code

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

GitHub CLI
$ gh skill install evloghq/evlog contributing --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/evloghq/evlog.git skills-src && mkdir -p .claude/skills && cp -r skills-src/apps/evi/agent/skills/contributing .claude/skills/contributing && 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
contributing
GitHub stars
1.9k
Token cost
~2.4k tokens
SKILL.md length
1,384 words
Files
1
Skills in repo
20
Repo updated
First seen
Licence
MIT

At a glance

Answers questions about contributing to the evlog repository: changesets, commit and PR title rules, the Definition of Done and where its authored build guides live.

  • Works in 7 steps: Branch off the current main the session… → Edit, then run the checks above. A bug… → When a consumer of evlog would notice… → …
  • Opening a pull request to the evlog repository
  • SKILL.md covers The parts people get wrong, The Definition of Done, Authored procedures in the repo and Verifying a change before you…, plus 4 more sections
  • Calls pnpm, git and npx

What it does

This one is deliberately short and sends the agent to the repository's own AGENTS.md before it gives specifics, because that file changes. It then lists the points contributors most often get wrong: a changeset is required for any change users would notice, commits follow Conventional Commits with a lowercase subject, and PR title scopes must come from the closed list in the semantic-pull-request workflow.

Other rules are writing a failing regression test before a bug fix, registering new exports in package.json and tsdown.config.ts, and updating SKILL.md files in the same PR when a change touches something they document. The Definition of Done asks for lint, typecheck and test to exit 0, a matching test, and JSDoc on new public APIs, and the skill points to authored procedures for adding an adapter, enricher, framework integration or map rule.

When your agent uses it

  • Opening a pull request to the evlog repository
  • Choosing a valid Conventional Commit type and scope for an evlog change
  • Checking whether a change needs a changeset
  • Adding a new adapter, enricher or framework integration to evlog

Example prompts

  • “Does my change to the Nuxt module need a changeset?”
  • “Write a PR title for a docs-only fix under apps/docs.”
  • “What has to pass before my evlog pull request can merge?”
  • “Walk me through adding a new adapter to evlog.”

Requirements

  • Access to the evlog repository's AGENTS.md
  • pnpm

Workflow steps

7 steps, taken from the first numbered list in SKILL.md.

  1. Branch off the current main the session starts on: git checkout -b .
  2. Edit, then run the checks above. A bug fix commits its failing regression test first, then the fix. For a visual change, start the dev…
  3. When a consumer of evlog would notice the change, add a changeset: write .changeset/.md by hand with the --- frontmatter naming the…
  4. Commit with a Conventional Commits subject: lowercase, a registered scope or none.
  5. Push the branch with git__push. That tool is the only way code reaches the remote: never the GitHub file API. It refuses main and master…
  6. Open a normal, ready pull request with github__createPullRequest only after the local readiness gate is complete: the diff is coherent…
  7. Read CI back once it has run. Validate PR title settles in seconds and is the check your own title most often breaks. Fix any required…

What it can do on your machine

Read from SKILL.md and the folder at commit 59a105f. 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

    Shell commands in SKILL.md call:

    • pnpm
    • git
    • npx

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

  • Network

    No URLs in SKILL.md. Its commands use pnpm, git and npx, which can reach the network depending on how they are called.

    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

evlog Contributing Guide loads about 2.4k tokens when it runs. Until then it costs about 84 tokens; SKILL.md has 1,384 words of instructions outside code blocks.

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

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 evloghq/evlog at commit 59a105f, republished under its MIT licence (© evloghq). 1,384 words, ~2,406 tokens.

Download SKILL.mdSave it as .claude/skills/contributing/SKILL.md (or your agent's skills folder).
name
contributing
description
How to contribute to evlog, covering commit and PR conventions, changesets, the Definition of Done, testing rules, and the authored skills that walk through building a new adapter, enricher, framework integration, or map rule. Load this for any question about contributing, opening a PR, or adding something to the package.

Contributing to evlog

The repository's own AGENTS.md is the source of truth for all of this. It changes; this skill does not restate it in full on purpose. Read AGENTS.md from the repo before giving specifics.

Your system context has a Workspace section saying whether the repository is checked out on this turn. With a checkout, read_file /workspace/AGENTS.md: free, and at the ref you were summoned on. Without one, github__getFileContent on AGENTS.md at the root of the repository that section names.

What follows is the shape of the answer, so you know what to look for and what to warn about.

The parts people get wrong

  • A changeset is required for anything a consumer of evlog would notice: a feature, a bug fix, a breaking change. pnpm changeset, committed alongside the code. Changes confined to apps/* or examples/* never need one. A PR without a changeset for a user-facing change does not merge.
  • Conventional Commits, lowercase subject. feat: add stream server, not feat: Add stream server. Omit the scope when the change is cross-cutting; never use evlog as a scope. A new subsystem needs its scope registered in both .github/workflows/semantic-pull-request.yml and .github/pull_request_template.md, and because title validation reads the base branch, that registration has to land in an earlier PR.
  • The scope list is a closed set, and you read it before you write the title. .github/workflows/semantic-pull-request.yml holds the only scopes CI accepts. Anything else fails Validate PR title, and a scope that merely sounds plausible (evlog, the package name, the app directory) is the usual way that happens. A change confined to apps/docs is docs:, with no scope: docs is already the type.
  • A bug fix needs a failing regression test first, then the fix.
  • New exports go in packages/evlog/package.json (exports and typesVersions) and tsdown.config.ts.
  • Skills must stay in sync. If a change touches something a skill documents, the SKILL.md changes in the same PR, both the internal .agents/skills/ and the published skills/.

The Definition of Done

AGENTS.md lists eight conditions. The ones worth repeating up front: pnpm run lint, pnpm run typecheck and pnpm run test all exit 0; the change has a matching test; new public APIs have JSDoc.

Authored procedures in the repo

For anything substantial, the repo already has a step-by-step skill. Read the relevant one with github__getFileContent rather than improvising:

TaskSkill
New drain adapter.agents/skills/create-adapter/SKILL.md
New enricher.agents/skills/create-enricher/SKILL.md
New framework integration.agents/skills/create-framework-integration/SKILL.md
New evlog map rule or framework adapter.agents/skills/create-map-rule/SKILL.md

Each covers source, build config, package exports, tests, and every doc page that has to move with it. They are long and specific; point people at them and read the relevant section rather than summarizing from memory. On a GitHub turn they are on disk under /workspace/.agents/skills/.

Verifying a change before you propose it

The sandbox carries a ready-to-work checkout at /workspace/repo, with dependencies installed and dev:prepare already run; each session starts on the current main. When you have written or edited code, run the checks there rather than asserting they pass:

cd /workspace/repo
pnpm run lint
pnpm run typecheck
pnpm --filter evlog exec vitest run test/path/to/file

If you could not run the checks, say so plainly in the pull request body instead of implying a green build.

For authored or changed prose, run the content review even when the scanner scores 100. Capture each page with content_snapshot and send its identity to content_review, along with sources and executed-check results. Source edits must be committed before this handoff; page text can remain uncommitted. The reviewer shares the parent workspace and must use content_load. Do not edit files or change Git state while reviewers are reading. Wait for all readers to finish, recapture and compare the current identity with the rewrite input, then apply reviewed changes serially with the parent’s existing editing tools. A changed identity requires a fresh review first. Capture and review the saved file again after editing; a proposed rewrite is not verification of the saved result. A critical factual error or missing evidence blocks readiness. Follow content-pass for the verification procedure, while keeping the scope the maintainer requested.

Read the changed pages together before shipping. Each should answer a distinct reader question, agree on behavior and link to shared explanations instead of repeating them. Record the revision, command and observed result for runtime claims. After changing relevant code or examples, rerun the affected checks.

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

Shipping a change

The whole flow runs in /workspace/repo; nothing ships through the GitHub file API.

  1. Branch off the current main the session starts on: git checkout -b <branch>.
  2. Edit, then run the checks above. A bug fix commits its failing regression test first, then the fix. For a visual change, start the dev server in the background before the checks (see before-after, step 0) so it warms while they run. Before the first check of the session, call turbo__enable_remote_cache once, then prefix each check with TURBO_REMOTE_CACHE_READ_ONLY=true: turbo reuses the artifacts CI already built, and the template cache covers the rest, so only what the diff affects actually runs.
  3. When a consumer of evlog would notice the change, add a changeset: write .changeset/<some-name>.md by hand with the --- frontmatter naming the package and bump plus a consumer-facing description (pnpm changeset is interactive and cannot run here). Look at an existing file in .changeset/ for the exact shape.
  4. Commit with a Conventional Commits subject: lowercase, a registered scope or none.
  5. Push the branch with git__push. That tool is the only way code reaches the remote: never the GitHub file API. It refuses main and master, and only maintainer sessions have it. For a repository other than the home one, git__checkout it, git__install its dependencies, and pass the same repository to git__push; the whole flow then runs in that checkout instead of /workspace/repo, with no cache, so its checks run cold.
  6. Open a normal, ready pull request with github__createPullRequest only after the local readiness gate is complete: the diff is coherent, required tests and changesets are present, and every applicable local check is green. A draft is not a holding area for unfinished autonomous work; if the gate is incomplete, keep the result local and report the blocker instead.
  7. Read CI back once it has run. Validate PR title settles in seconds and is the check your own title most often breaks. Fix any required failure before requesting hugorcd via github__requestReviewers. A reviewer request means Evi considers the pull request mergeable.

A pull request is not finished when it is open. Before you report it and request review, the local checks are green, CI is green, and you have looked at the rendered result of anything visual. "Lint and typecheck pass" is a claim about the build, not about whether the thing you wrote is correct or reads well.

pnpm --filter @evlog/cli exec evlog map --json --no-write scores an entry point's observability and is built for exactly this: it is the fastest way to ground a "should this be logged" answer in the tree you are working in. Run the workspace copy rather than npx @evlog/cli, which would fetch and execute whatever version the registry currently serves.

The PR body shows the change

A body that only describes its change in prose is not finished, whatever kind of PR it carries. Show it:

ChangeEvidence in the body
New or changed public APIA usage snippet, even for a one-line addition
Bug fixThe input and output before and after, in a fenced or diff block
CLI changeThe real terminal output, captured while running it
Anything rendered, docs edits includedA before-after capture

Prose alone is only for cases where none of these is possible, and the body says so plainly when that is the case. A snippet or captured output is evidence, not filler: the style rule keeps the prose short, not the proof.

Tests

packages/evlog/test/ mirrors src/ and uses Vitest. packages/evlog/test/README.md has the file layout, the framework runtime fidelity matrix, and the helper decision table; read it before answering a testing question. Framework tests must drive the framework's real request driver (supertest, app.inject, app.handle, ...), never a hand-rolled stand-in.

Style

The repo has an explicit "no slop" section: no defensive code the surrounding file does not have, no silent fallbacks, no as any, comments only for constraints the code cannot express, no speculative options. It applies to prose too: test names, error messages, changeset descriptions, PR bodies. Factual and plain.

© evloghq, MIT. 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 apps/evi/agent/skills/contributing of evloghq/evlog.

Open the folder on GitHubat commit 59a105f

Compare with similar skills

evlog Contributing Guide 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.

evlog Contributing Guide compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
evlog Contributing Guide this skillevloghq/evlog1.9k—~2.4kAutomated safety check: PassMIT
Verdaccio Pull Request Workflowverdaccio/verdaccio18k—~1.9kAutomated safety check: PassMIT
React Router Release Notes Prepremix-run/react-router57k—~1.1kAutomated safety check: PassMIT
Git Workflow and Versioningaddyosmani/agent-skills103k2 repos~3.5kAutomated safety check: NotesMIT
Verdaccio PR Reviewverdaccio/verdaccio18k—~1.7kAutomated safety check: PassMIT
Commit And PR Messagessuperplanehq/superplane7.7k—~1.6kAutomated safety check: PassCustom licence

Similar skills

  • Takes a change through a verdaccio pull request: branch, local checks, changeset, title and body, labels, CI and review rounds, and ports to other release lines.

    18k GitHub stars~1.9k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • React Router Release Notes Prep

    remix-run/react-router

    Polishes pending React Router change files before the versioning scripts run, and decides whether a long-form What's Changed section is warranted.

    57k GitHub stars~1.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Git Workflow and Versioning

    addyosmani/agent-skills

    Sets git habits for every change: short-lived branches, atomic commits with descriptive messages, clean pull requests, plus versioning, tagging and changelogs for releases.

    103k GitHub starsUsed in 2 repos~3.5k tokens
    DevelopmentAuto-check: notes
  • Verdaccio PR Review

    verdaccio/verdaccio

    Reviews an existing verdaccio/verdaccio pull request end to end, verifies each finding and reports whether it is mergeable, optionally fixing it on the PR branch.

    18k GitHub stars~1.7k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Commit And PR Messages

    superplanehq/superplane

    Write Git commit messages and pull request titles/descriptions using the Chris Beams / Tim Pope conventions (subject/body split, ~50-char subject, imperative mood, why-not-how body) plus ASD-STE100…

    7.7k GitHub stars~1.6k tokensUpdated today
    DevelopmentAuto-check passed
  • Codewhale Landing Workflow

    codewhale-hq/Codewhale

    Decides how verified work should reach main, directly, in a worktree or on an integration branch, while keeping contributor credit and respecting merge gates.

    41k GitHub stars~1.6k tokensUpdated today
    DevelopmentAuto-check passed

More from evloghq/evlog

All 20 skills in this repo
  • Walks through adding a new built-in evlog drain adapter for an observability platform: source, build config, exports, tests, docs and PR scope.

    1.9k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Guides adding a new built-in enricher to the evlog package, covering the source, tests, docs, README, a related skill and a changeset.

    1.9k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Walks a contributor through adding a new HTTP framework integration to the evlog logging package: middleware source, build entry, exports, tests, example app and docs.

    1.9k GitHub stars~5k tokensUpdated today
    Auto-check: notes
  • Walks through adding a new rule or framework adapter to `evlog map` in @evlog/cli, from the rule source and registry to types, tests, docs and the published skill.

    1.9k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Rules for writing and reviewing evlog docs, blog posts, READMEs, skills and AGENTS.md files, with separate review and rewrite roles, a house voice and a catalog of AI-sounding tells.

    1.9k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Before After

    evloghq/evlog

    Produce a before/after visual comparison of an evlog surface (landing, docs, telemetry, playgrounds) and share it as public Blob URLs.

    1.9k GitHub stars~2.7k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about evlog Contributing Guide

What does evlog Contributing Guide do?

Answers questions about contributing to the evlog repository: changesets, commit and PR title rules, the Definition of Done and where its authored build guides live. md before it gives specifics, because that file changes. It then lists the points contributors most often get wrong: a changeset is required for any change users would notice, commits follow Conventional Commits with a lowercase subject, and PR title scopes must come from the closed list in the semantic-pull-request workflow.

When should I use evlog Contributing Guide?

evlog Contributing Guide fits situations like: opening a pull request to the evlog repository; choosing a valid Conventional Commit type and scope for an evlog change; checking whether a change needs a changeset; adding a new adapter, enricher or framework integration to evlog.

How do I install evlog Contributing Guide in Claude Code?

Run `npx skills add evloghq/evlog --skill contributing -a claude-code`. Or copy the skill folder (apps/evi/agent/skills/contributing in evloghq/evlog) into .claude/skills/contributing in your project. Claude Code loads it when a task matches its description.

How do I install evlog Contributing Guide in Codex?

Run `npx skills add evloghq/evlog --skill contributing -a codex`. Or copy the skill folder (apps/evi/agent/skills/contributing in evloghq/evlog) into .agents/skills/contributing in your project. Codex loads it when a task matches its description.

Can I use evlog Contributing Guide 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 evloghq/evlog --skill contributing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/contributing, .gemini/skills/contributing, .github/skills/contributing and .opencode/skills/contributing in your project.

What does evlog Contributing Guide need to run?

Going by SKILL.md and its folder, evlog Contributing Guide needs the command-line tools its instructions call (pnpm, git and npx). Our summary lists: Access to the evlog repository's AGENTS.md; pnpm.

Does evlog Contributing Guide access the network?

SKILL.md contains no URLs. Its commands use git and npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is evlog Contributing Guide 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 evlog Contributing Guide use?

evlog Contributing Guide is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does evlog Contributing Guide use?

About 2.4k tokens (SKILL.md is roughly 9.6k 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 evlog Contributing Guide?

Skills that share tags, products or a category with evlog Contributing Guide: Verdaccio Pull Request Workflow (verdaccio/verdaccio, 18k stars), React Router Release Notes Prep (remix-run/react-router, 57k stars), Git Workflow and Versioning (addyosmani/agent-skills, 103k stars) and Verdaccio PR Review (verdaccio/verdaccio, 18k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains evlog Contributing Guide?

evloghq (a GitHub organization) maintains it in evloghq/evlog, which has 1,887 GitHub stars. The repository holds 20 skills in this directory. The repository was last updated on October 7, 2026.

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