Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions docs/TELEMETRY.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,12 +83,12 @@ name from the closed `corbits-skills` allowlist (`ast-grep`, `create-issue`,
`pull-request-review`, `refactor`, `review`, `scribe`, `style`,
`typescript`), or `custom` for anything else. `user-invocable: false` opts a
skill out of slash synthesis, not out of name reporting: eleven bundled
skills carry the flag, and seven of them (`git-rebase`, `git-worktrees`,
`linear-issue-workflow`, `opsh`, `philosophy`, `style`, `typescript`)
remain real `use_skill` recipes, so they stay on the allowlist — the names
are ours either way. Excluded are the four bake-only background skills
(`idiot-proof`, `native-integration`, `native-runtime`, `ponytail`), which
are baked into agent prompts rather than invoked as skills. Unknown,
skills carry the flag — eight stay listed and loadable (`git-rebase`,
`linear-issue-workflow`, `opsh`, `philosophy`, `style`, `typescript`,
`native-integration`, `ponytail`), `git-worktrees` resolves by explicit name
only, and two stay hidden bake-only (`idiot-proof`, `native-runtime`). Of
the eleven, seven are reported by name and four stay `custom` (pinned;
conservative under-reporting, never a leak). Unknown,
project-local, and plugin-authored skill names are never transmitted —
`skill_name` is the only identifying-adjacent property the event can carry.
`plugin_loaded` goes further: there is no first-party list of plugins to
Expand Down
15 changes: 8 additions & 7 deletions src/telemetry/classify.ts
Original file line number Diff line number Diff line change
Expand Up @@ -77,13 +77,14 @@ const BUILT_IN_AGENT_NAMES: ReadonlySet<string> = new Set([
// plugin id and kind — no skill list — so the closed set is spelled out here
// and pinned by tests/unit/telemetry-product-events.test.ts.
// `user-invocable: false` is a slash-surface flag, not a telemetry flag:
// eleven bundled skills carry it, and seven of them (git-rebase,
// git-worktrees, linear-issue-workflow, opsh, philosophy, style, typescript)
// opt out of slash synthesis yet remain real `use_skill` recipes, so they
// stay reportable by name. Excluded are the four bake-only background skills
// (idiot-proof, native-integration, native-runtime, ponytail), which are
// baked into agent prompts rather than invoked as skills. Project- or
// plugin-authored skills are never reported by name.
// eleven bundled skills carry it — eight stay listed and loadable
// (git-rebase, linear-issue-workflow, opsh, philosophy, style, typescript,
// native-integration, ponytail), `git-worktrees` resolves by explicit name
// only, and two stay hidden bake-only (idiot-proof, native-runtime), which
// are baked into agent prompts rather than invoked as skills. Of the eleven,
// seven are reported by name and four stay `custom` (pinned; conservative
// under-reporting, never a leak). Project- or plugin-authored skills are
// never reported by name.
const FIRST_PARTY_SKILL_NAMES: ReadonlySet<string> = new Set([
"ast-grep",
"create-issue",
Expand Down
Loading