Add tool
Investigate the tool described in GitHub issue $ARGUMENTS and determine whether it qualifies for the opt-out flake.
Read the GitHub issue using
gh issue viewto get the tool name and any linked documentation.Research the tool by visiting its official documentation and source repository. Look specifically for environment variables that disable telemetry, analytics, or crash reporting.
Verify eligibility. Only environment variable opt-outs qualify. The following do NOT qualify:
- Update check suppression (e.g.,
DENO_NO_UPDATE_CHECK) - CLI-command-based opt-out (e.g.,
flutter --disable-analytics) - Settings-file-based opt-out
- Update check suppression (e.g.,
Check for duplicates. Verify the tool does not already exist in
tools/(including_-prefixed excluded files).Create the tool file:
If a valid env var opt-out exists, create
tools/<toolname>.nix:{ name = "<toolname>"; meta = { description = "<description of the tool itself — do not reference other tools>"; homepage = "<link to the tool's git repository>"; documentation = "<link to the specific documentation page proving the env var opt-out>"; lastChecked = "YYYY-MM-DD"; hasTelemetry = true; }; variables = { ENV_VAR_NAME = "value"; }; commands = { }; }If the tool also has CLI commands for telemetry (e.g., to check status or disable), add them:
commands = { disable = "tool --disable-analytics"; status = "tool analytics status"; };If NO valid env var opt-out exists, create
tools/_<toolname>.nix(do not add comments explaining why the tool is excluded — the metadata fields are self-documenting):{ name = "<toolname>"; meta = { description = "<description of the tool itself — do not reference other tools>"; homepage = "<link to the tool's git repository>"; documentation = "<link to relevant documentation>"; lastChecked = "YYYY-MM-DD"; hasTelemetry = true; }; variables = { }; commands = { }; config = { }; }If the tool has a config-file-based opt-out, populate the
configmap with the file path as key and key/value settings as the value:config = { "~/.toolname/config.toml" = { "telemetry.enabled" = "false"; }; };Set
hasTelemetry = false;only if the tool was investigated and confirmed to have no telemetry at all.Metadata rules:
- The
descriptionmust describe only the tool being added. Do not mention other tools, frameworks, or ecosystems. - The
homepagemust link to the tool's own repository. - The
documentationmust link to the tool's own documentation page that covers telemetry/analytics opt-out. Prefer official website docs over source code links — only link to source code if no public documentation exists. - Set
lastCheckedto today's date inYYYY-MM-DDformat. - Set
hasTelemetrytotruefor tools with telemetry (even excluded ones that only have CLI opt-out). Set tofalseonly if the tool was investigated and confirmed to have no telemetry.
- The
Stage, format, and validate:
git add tools/<filename>.nix mise run fmt mise run lint mise run flake-checkUpdate README if the tool was added (not
_-prefixed):mise run readme-vars git add README.mdCommit, push, and create a PR:
- Create a branch named
add-tool/<toolname> - Commit with a clear message describing the addition
- Push and create a PR using
gh pr create - Assign the PR to
@adampie - Link to the GitHub issue in the PR body with
Closes #<number>
- Create a branch named