Opik Analytics Instrumentation
comet-ml/opik
Shows how to add product analytics events to Opik's frontend, Java backend and Python SDK, all reporting through Segment to PostHog with an opik_ name prefix.
Add a PostHog wizard capability backed by context-mill content.
$ npx skills add PostHog/wizard --skill adding-skill-program -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install PostHog/wizard adding-skill-program --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/PostHog/wizard.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/adding-skill-program .claude/skills/adding-skill-program && rm -rf skills-srcUse ~/.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/
Install the "adding-skill-program" agent skill from https://github.com/PostHog/wizard/tree/main/.claude/skills/adding-skill-program into .claude/skills/adding-skill-program/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adding-skill-program", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/PostHog/wizard/tree/main/.claude/skills/adding-skill-programType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add PostHog/wizard --skill adding-skill-program -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install PostHog/wizard adding-skill-program --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/PostHog/wizard.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/adding-skill-program .agents/skills/adding-skill-program && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "adding-skill-program" agent skill from https://github.com/PostHog/wizard/tree/main/.claude/skills/adding-skill-program into .agents/skills/adding-skill-program/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adding-skill-program", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add PostHog/wizard --skill adding-skill-program -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install PostHog/wizard adding-skill-program --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/PostHog/wizard.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/adding-skill-program .cursor/skills/adding-skill-program && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "adding-skill-program" agent skill from https://github.com/PostHog/wizard/tree/main/.claude/skills/adding-skill-program into .cursor/skills/adding-skill-program/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adding-skill-program", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/PostHog/wizard.git --path .claude/skills/adding-skill-program--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add PostHog/wizard --skill adding-skill-program -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install PostHog/wizard adding-skill-program --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/PostHog/wizard.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/adding-skill-program .gemini/skills/adding-skill-program && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "adding-skill-program" agent skill from https://github.com/PostHog/wizard/tree/main/.claude/skills/adding-skill-program into .gemini/skills/adding-skill-program/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adding-skill-program", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install PostHog/wizard adding-skill-programInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add PostHog/wizard --skill adding-skill-program -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/PostHog/wizard.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/adding-skill-program .github/skills/adding-skill-program && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "adding-skill-program" agent skill from https://github.com/PostHog/wizard/tree/main/.claude/skills/adding-skill-program into .github/skills/adding-skill-program/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adding-skill-program", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add PostHog/wizard --skill adding-skill-program -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install PostHog/wizard adding-skill-program --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/PostHog/wizard.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/adding-skill-program .opencode/skills/adding-skill-program && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "adding-skill-program" agent skill from https://github.com/PostHog/wizard/tree/main/.claude/skills/adding-skill-program into .opencode/skills/adding-skill-program/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adding-skill-program", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
adding-skill-programAdd a PostHog wizard capability backed by context-mill content.
Adding Skill Program is an agent skill from PostHog/wizard, published by the product's own GitHub organization. Add a PostHog wizard capability backed by context-mill content. Choose a skill command or native program, configure an orchestrator flow, and wire any required CLI, screens, or prerequisites.
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Designed for coding agents working on the PostHog wizard codebase.
It works with PostHog and TypeScript. The repository describes itself as: Quickly add PostHog to your project using the setup wizard ✨. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 08c70dd. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
pnpmtscFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Designed for coding agents working on the PostHog wizard codebase.
From compatibility in the SKILL.md frontmatter.
Adding Skill Program loads about 2.6k tokens when it runs. Until then it costs about 53 tokens; SKILL.md has 1,180 words of instructions outside code blocks.
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.
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.
The full file from PostHog/wizard at commit 08c70dd, republished under its MIT licence (© PostHog). 1,180 words, ~2,600 tokens.
.claude/skills/adding-skill-program/SKILL.md (or your agent's skills folder).Read wizard-development for the shared design policy. Use Pi for new agent work and prefer an orchestrator flow. Linear runs are for very simple work and existing flows. The Anthropic SDK remains a supported legacy fallback, deprecated as the default for new work; the shared guide owns the fallback criteria and gateway model/effort/system-prompt contract.
These are contribution defaults. A program whose config sets no binding runs
on DEFAULT_BINDING, Pi and
linear.
cliEntries. A new skill-backed child of an existing family ships through
context-mill; inspect
family dispatch. Unpromoted
skills run through the skill command.Command names, program id, context-mill agentFlow, and skillId have
different roles. Use the full product name for public commands. The config field
is id.
Use metrics as the current Pi/orchestrator example and read the runner architecture when changing execution behavior.
src/programs/<id>/. Its index.ts is the only
entry: it exports the ProgramConfig as config, and any detectors or keys
the TUI and CLI need. No other file in the folder is named index.ts. Copy a
sibling's tsconfig.json into the folder, unchanged, and add
{ "path": "<id>" } to references in
src/programs/tsconfig.json. The
folder is one project, its tests included, and pnpm typecheck (tsc -b)
builds it. Without the reference, the registry's import fails with TS6307.
Keep tests in <id>/__tests__; they reach other layers through their entries
only. Shared program code goes in src/programs/shared/, detection/,
warehouse-sources/, frameworks/ or oauth/, never in another program's
folder, and has no index.ts. A program imports its own files and the shared
program code by relative path, such as ../shared/skill-program. Set
agentFlow when its context-mill flow differs from id; setting it
explicitly also documents the content dependency. Keep a run definition so
runProgram executes agent work.agentFlow ?? id, requires a seed prompt, and checks task-skill
variants before running. run.skillId alone does not define this flow.import { config as <name> } from '@programs/<id>' in
program-registry.ts and add it
to PROGRAM_REGISTRY. Set the config's binding to Pi and the orchestrator.
ProgramId is a string.runCli in
src/cli/index.ts. A native family child uses the
handlers in family dispatch. Program registration derives screen sequences
and store lookup, not the top-level CLI .use() chain.oauthScopeAdditions to the config only when the base set is insufficient.
Keep a program's own set in its folder, as
replay-vision does; sets
several programs share live in
program-scopes.ts.Model and effort selections in flow frontmatter must be supported by the wizard and gateway. Follow the cross-repo procedure in wizard-development before introducing a model or changing gateway-required prompt material.
For a very simple linear flow, use
createSkillProgram to
configure installation of one skill. Register the native program as above. The
factory sets no binding, so the program runs on DEFAULT_BINDING unless you
add one to the config it returns. Read SkillProgramOptions for required
fields; audit demonstrates factory customization
and a dynamic run(session) that seeds a ledger.
Revenue analytics builds its
config directly and adds prerequisite detection.
ProgramRun.customPrompt, abortCases, postRun, and buildOutroData are
consumed by the
linear sequence. postRun
runs after success; buildOutroData receives session and credentials, with host
information inside credentials. The orchestrator currently uses its own task
prompts, failure handling, and outro, and does not invoke those hooks. Check
this limitation before migrating a linear flow; setting an orchestrator binding
does not preserve these behaviors automatically.
The program's UI lives in src/tui/programs/<id>/: flow.ts, deck/,
screens/, screen-ids.ts, and an index.ts(x) entry whose TUI_PROGRAMS
maps each program id it serves to a
TuiProgram (flow, deck, tips and screens).
Outside the folder, the
TUI program registry imports and spreads
the entry. A program with no entry runs
AGENT_SKILL_STEPS: intro,
health check, auth, run, outro, and keep-skills, with the skill deck. Map
its steps to swap in your own intro screen, as
audit's flow does. Auth also applies
the shared AI opt-in gate,
withAiOptInGate(config, flow), for agent programs. Set healthCheck: false on
the config when the run skips the PostHog readiness check, and leave the
health-check step out of its flow. Flow steps are
FlowSteps. Override screenId when adapting one. A
new screen needs an id in the folder's screen-ids.ts, a component, and an
entry in its entry's screens; the
screen registry mounts every program's
screens. State only the TUI reads, such as a screen's answer, lives in
TuiState and is written through a store
setter, such as store.setIntegrate. The folder is its own tsconfig project:
it may import the TUI core, through @tui/* and never by relative path,
@programs, @programs/types and its own @programs/<id>, never another
program's folder or the registry. Besides its line in src/tui/programs/index.ts, a new folder
needs a tsconfig.json copied from a sibling, unchanged, and
{ "path": "programs/<id>" } in references in
src/tui/tsconfig.json. Then run
pnpm typecheck. Without both, the registry's @tui/programs/<id> import fails
with TS6307.
Follow ink-tui for rendering and store usage. If the
program is team-owned, add both folders to CODEOWNERS.
Use the config's onReady(ctx) for session-dependent detection, then render
structured frameworkContext.detectError data in the intro. A step's onInit
runs when the TUI starts rendering with its initial session. onReady runs
after the real session is assigned: runTui calls runReadyHooks in
store.ts before the intro, and
detectProgram runs it as the
detection of a run whose store has none, as in headless. Set ciPreRun only
when a CI session needs a different prerequisite strategy: detectProgram runs
it in place of onReady for a CI session. Programs read a ProgramSession and
never use the UI: run gets a RunnerContext, ciPreRun gets a
CiRunnerContext and a run step's onRunPrep gets the runner's log
(runner-context.ts).
requires currently records metadata; it does not execute or enforce prior
programs. Compose real work through runSteps, keyed by the flow step id, with
runProgramId, onRunPrep and targetDir when needed.
Self-driving runs
posthog-integration composed at its integrate-run step. Composed sub-runs
are structurally linear; orchestrators cannot nest. A run step without
runProgramId can set targetDir and onRunPrep to scope the program's own
agent to a picked project and keep its sequence, as
error-tracking does for its
run step.
Reuse the relevant registry, binding, detection, or routing checks. Add a focused behavioral test only for a meaningful gap; avoid tests that repeat configuration fields. Check that the selected CLI route resolves the intended program and that its context-mill flow is available. Use the exploration guide for a warranted end-to-end run against a disposable app. Follow wizard-development for proportionate checks; documentation-only changes need source/link verification.
© PostHog, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/adding-skill-program of PostHog/wizard.
Open the folder on GitHubat commit 08c70dd
Adding Skill Program 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Adding Skill Program this skillPostHog/wizard | 197 | — | ~2.6k | Automated safety check: Pass | MIT | |
| Opik Analytics Instrumentationcomet-ml/opik | 22k | — | ~4.4k | Automated safety check: Pass | Apache-2.0 | |
| Compare Array Bundle SizePostHog/posthog-js | 613 | — | ~599 | Automated safety check: Pass | Custom licence | |
| Develop ExtensionPostHog/posthog-js | 613 | — | ~2.3k | Automated safety check: Pass | Custom licence | |
| Replay Incident RiskPostHog/posthog-js | 613 | — | ~1.1k | Automated safety check: Pass | Custom licence | |
| Integration Astro Staticwill-be-done/will-be-done | 152 | — | ~636 | Automated safety check: Pass | AGPL-3.0 |
comet-ml/opik
Shows how to add product analytics events to Opik's frontend, Java backend and Python SDK, all reporting through Segment to PostHog with an opik_ name prefix.
PostHog/posthog-js
Quickly compare the posthog-js array.js bundle size in the current working tree against a git baseline using the repository's esbuild proxy.
PostHog/posthog-js
Author a new PostHog browser extension, or port a posthog-js v1 extension, against the @posthog/browser-common Client/Extension contract.
PostHog/posthog-js
Cross-reference a posthog-js or rrweb change against past incident patterns before writing, reviewing, or merging it.
will-be-done/will-be-done
PostHog integration for static Astro sites using SSG. An agent skill from will-be-done/will-be-done.
PostHog/posthog-foss
Help users debug PostHog Error Tracking stack-trace symbolication for any supported platform — JavaScript/TypeScript web, React Native (Hermes), Android (Proguard / R8), or iOS / macOS (dSYM).
PostHog/wizard
Build or modify the PostHog wizard's Ink screens, primitives, keyboard interactions, and session-driven screen flow.
PostHog/wizard
Add or extend language and framework support in the PostHog wizard, including detection, framework configuration, registration, and matching context-mill content.
PostHog/wizard
Drive the PostHog wizard headlessly against a throwaway app through wizard-ci MCP tools, inspect decisions, and capture the real TUI.
PostHog/wizard
Architectural guidance for changes to the PostHog Wizard: program and framework boundaries, agent routing, gateway admission, security, and TUI state.
Works with
Add a PostHog wizard capability backed by context-mill content. Adding Skill Program is an agent skill from PostHog/wizard, published by the product's own GitHub organization. Add a PostHog wizard capability backed by context-mill content.
Run `npx skills add PostHog/wizard --skill adding-skill-program -a claude-code`. Or copy the skill folder (.claude/skills/adding-skill-program in PostHog/wizard) into .claude/skills/adding-skill-program in your project. Claude Code loads it when a task matches its description.
Run `npx skills add PostHog/wizard --skill adding-skill-program -a codex`. Or copy the skill folder (.claude/skills/adding-skill-program in PostHog/wizard) into .agents/skills/adding-skill-program in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add PostHog/wizard --skill adding-skill-program -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/adding-skill-program, .gemini/skills/adding-skill-program, .github/skills/adding-skill-program and .opencode/skills/adding-skill-program in your project.
Going by SKILL.md and its folder, Adding Skill Program needs the command-line tools its instructions call (pnpm and tsc). Compatibility (from SKILL.md): Designed for coding agents working on the PostHog wizard codebase..
SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.
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.
Adding Skill Program is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Adding Skill Program: Opik Analytics Instrumentation (comet-ml/opik, 22k stars), Compare Array Bundle Size (PostHog/posthog-js, 613 stars), Develop Extension (PostHog/posthog-js, 613 stars) and Replay Incident Risk (PostHog/posthog-js, 613 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
PostHog (a GitHub organization, an official publisher) maintains it in PostHog/wizard, which has 197 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 6, 2026.
Source: PostHog/wizard on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.