archflow-telemetry · git:20261003.ecb0c57 · 2026-10-03 · sha256 f6dd655bda68c1fc

archflow-telemetry git:20261003.ecb0c57A

Immutable. This exact content never changes and is served at /api/v1/blob/f6dd655bda68c1fc.

---
name: archflow-telemetry
description: "Use ONLY when the user asks for /archflow-telemetry or \"archflow telemetry\". Show or change anonymous usage telemetry (on by default; this is how to opt out)"
---

> Arguments are the text after the skill name.


# /archflow-telemetry — Show or change anonymous usage telemetry

Argument (`the text the user wrote after the skill name`): optional `on` or `off`. Empty or `status` → show the current setting.
Anything else → run nothing; tell the user the options are `on`, `off`, or `status` (or nothing)
to see the setting.

Telemetry is **on by default**. The first time a session starts on a machine whose
`~/.archflow/config.json` has not yet recorded the notice as shown (no `noticeShownAt` in it; see
`plugin/hooks/telemetry.mjs`), a one-time notice fires — not a question — saying telemetry is on
and how to turn it off; this command is that off switch, and the way to turn it back on later. The
setting lives in `~/.archflow/config.json`, one file shared by every Archflow project on this machine,
so an opt-out here holds everywhere, not just this project.

What is sent, while on: which command ran (`command_run`, just the command name — e.g. `archflow:status`
— never its arguments) and that a session started (`session_start`), each with the Archflow version,
current phase/mode, and a random id generated locally. Never a project name, a file path, file
contents, or anything from `project-context.md`.

Run exactly one of the commands below, then relay the line it prints to the user **verbatim** — do
not reword, summarise or add to it. It already says the setting (for status, since when), and when
turning it off, whether one final `telemetry_opted_out` event recorded the opt-out (nothing is sent
after it).

## Show current setting (no argument)
```bash
node ".github/archflow/hooks/telemetry.mjs" --status
```
If it says the config file could not be read, telemetry stays off and nothing is changed until the
user fixes or deletes that file. If turning it on or off says the file could not be written, nothing
was changed and nothing was sent; telemetry is as it was.

## Change it
```bash
node ".github/archflow/hooks/telemetry.mjs" --enable --host copilot    # on
node ".github/archflow/hooks/telemetry.mjs" --disable --host copilot   # off
```
Turning it back on sends `telemetry_opted_in`. Never run either without the user asking.