add-tool
Investigate a tool from a GitHub issue and add it to the opt-out flake
SKILL.md.claude/skills/add-tool/SKILL.md
GitHubAdd tool
Investigate the tool named in $ARGUMENTS and determine whether it qualifies for the opt-out flake.
Identify the tool. If $ARGUMENTS is an issue number, run
gh issue view <number>for the tool name and any linked documentation. If it is a bare tool name, use it directly and skip the issue-linking in step 6.Research it against its official documentation and source repository, looking for an environment variable that disables telemetry, analytics, or crash reporting. Eligibility rules are in
CLAUDE.md; only an environment variable qualifies.The search ends with a URL that names the variable, or with the documentation showing there is none. That URL is what step 4 records as
documentation, so a conclusion drawn without one is not finished research.Check for duplicates in
tools/, including_-prefixed files.Create the tool file from the matching template in
tools/README.md. Usetools/<toolname>.nixwhen a qualifying environment variable exists,tools/_<toolname>.nixwhen it does not. Every key in the template is asserted byflake.nix, so includecommandsandconfigeven when empty.Do not add comments restating what the metadata already says. Do add a brief comment when a tool has a data flow that deliberately falls outside the criteria, such as an update check that carries system statistics, so the next person does not re-investigate it and reach a different conclusion.
Filling in the metadata:
descriptioncovers only this tool. No other tools, frameworks, or ecosystems.homepagepoints at the tool's own repository.documentationpoints at the page proving the opt-out. Prefer official docs; link source only where no public documentation exists.lastCheckedis today,YYYY-MM-DD.hasTelemetrystaystruefor anything with telemetry, including tools excluded for only having a CLI or config opt-out. Setfalseonly after confirming there is none.
Stage, regenerate, validate. Flakes ignore untracked files and
mise run fmtformats whatgit ls-filesreports, so the new file has to be staged before either runs, and staged again afterwards to pick up the formatter's rewrite. Regenerate the README whether the tool was added or excluded: the tables cover commands, config and tools with no opt-out at all.git add tools/<filename>.nix mise run fmt mise run readme-tables git add tools/<filename>.nix README.md mise run lint-alllint-allis what CI runs, and it is the only gate that includesvalidate-tools:nix flake checkalone never evaluates the_-prefixed files. It must exit clean before step 6, andgit statusmust show nothing unstaged.Ship it. Never commit to
maindirectly; move the staged work onto its own branch first.git switch -c add-tool/<toolname> git commit -m "Add <toolname> telemetry opt-out" git push -u origin add-tool/<toolname> gh pr create --assignee adampie --title "..." --body "..."If the work came from an issue, close it from the PR body with
Closes #<number>.