Skills Store

作者 PostHog469d1773e9cb無授權條款收錄於 2026年10月8日更新於 2026年10月8日

Discover and use shared team skills stored in PostHog. Use when the user asks to list, browse, load, or manage "shared skills", "team skills", or references the "skills store" / "skill store".

僅含說明AI & Agents
AI 產生的概覽

管理儲存在 PostHog 的團隊共用代理技能:列出、取得、建立、更新、重新命名與封存。

功能
此技能說明如何透過 MCP 工具探索、載入與管理保存在 PostHog 技能存放區中的可重複使用代理技能。內容涵蓋列出與搜尋技能、視需要取得技能本文及其隨附檔案,以及建立、更新、重新命名、複製或封存技能與檔案。它也說明如何把本機 SKILL.md 目錄移轉到 PostHog,並設定本機橋接技能以便快速存取。
適用情境
當使用者要求列出、瀏覽、載入或管理共用技能或團隊技能,或提到技能存放區時使用。也適用於把工作流程或操作手冊儲存為可重複使用的技能,或將本機技能移轉到 PostHog 的情境。
執行需求
需要具備技能工具的 PostHog MCP 伺服器(skill-list、skill-get、skill-file-get、skill-create、skill-update、skill-file-create、skill-file-delete、skill-file-rename、skill-duplicate、skill-rename、skill-archive),並能連線至 PostHog。未隨附指令碼,僅為指示文件。

PostHog Skills Store

Skills are reusable agent workflows stored in PostHog following the Agent Skills specification — a body of instructions (SKILL.md) plus optional bundled files (scripts, references, assets), structured metadata, and an allowed_tools list.

PostHog is the primary store for team-shared skills — always use the PostHog MCP skill tools to manage them.

Reading skills through MCP cli mode

When the MCP exposes the learn command, use it for progressive-disclosure reads across both sources:

text
learn skillslearn -s "retention runbook"learn project:team-retentionlearn project:team-retention "references/query guide.md" -s weeklylearn project:team-retention "references/query guide.md" --lines 20:60

project: identifies skills in the current project's Skills store. posthog: identifies skills bundled and published by PostHog. Global search checks both and returns PostHog results first. Quote a file path when it contains spaces.

Use the skill tools below for writes, version management, and MCP clients that do not expose learn.

Available tools

ToolPurpose
posthog:skill-listList all available skills (Level 1 — names + descriptions)
posthog:skill-getFetch a skill by name (Level 2 — body + file manifest)
posthog:skill-file-getFetch a single bundled file by path (Level 3 — on demand)
posthog:skill-createStore a new skill (optionally with bundled files)
posthog:skill-updatePublish a new version (body, edits, or file_edits)
posthog:skill-file-createAdd one bundled file to a skill (publishes a new version)
posthog:skill-file-deleteRemove one bundled file from a skill
posthog:skill-file-renameRename one bundled file (move without rewriting content)
posthog:skill-duplicateDuplicate an existing skill under a new name
posthog:skill-renameRename a skill, keeping its versions, files, and owners
posthog:skill-archiveArchive all versions of a skill by name (cannot be undone)

Skills use progressive disclosure: discover by description, fetch the body only when relevant, and pull individual files on demand. Do not fetch every file eagerly.

Discovering skills

List all available skills:

json
posthog:skill-list{}

Search by keyword (matches name and description):

json
posthog:skill-list{ "search": "fractal" }

skill-list returns only name + description — never the body. Use descriptions to decide which skill to fetch. The whole point of descriptions is that you can pick the right skill without loading any bodies.

Loading and using a skill

Step 1 — Fetch the skill by name

json
posthog:skill-get{ "skill_name": "make-fractals" }

The response contains:

  • body — the full SKILL.md instructions (read these like system instructions for the task)
  • license, compatibility, allowed_tools, metadata — spec fields
  • files[] — manifest of bundled files (path + content_type only, not content)

Step 2 — Follow the body

Read body and follow it. Treat it as your system instructions for this task.

Step 3 — Fetch bundled files as needed

When the body references a script or reference doc, pull it on demand:

json
posthog:skill-file-get{ "skill_name": "make-fractals", "file_path": "scripts/mandelbrot.py" }

Only fetch files you actually need. If the body's decision tree points at one script, don't preload the others.

Creating a skill

Follow the Agent Skills specification when creating skills:

  • name — kebab-case, max 64 chars, no leading/trailing/consecutive hyphens
  • description — explain what it does AND when to use it. Include keywords agents will search for. This is the only thing visible at discovery time — make it count.
  • body — keep under ~500 lines. Move detailed reference material, SQL, scripts, and long examples into bundled files so the body stays scannable.
  • Files — use scripts/ for executable code, references/ for docs, assets/ for templates/data. Agents pull these on demand via skill-file-get, so splitting keeps context lean.

Bundled files are optional and can be included in a single create call:

json
posthog:skill-create{  "name": "make-fractals",  "description": "Generate fractal images as PNGs. Use when the user asks to make, render, or visualize fractals.",  "body": "# make-fractals\n\nWhen to use... Workflow... Output contract...",  "license": "MIT",  "compatibility": "Requires Python 3.10+ with Pillow and numpy",  "allowed_tools": ["Bash", "Write"],  "metadata": { "author": "posthog", "category": "visualization" },  "files": [    { "path": "scripts/mandelbrot.py", "content": "...", "content_type": "text/x-python" },    { "path": "references/primer.md", "content": "# Primer\n...", "content_type": "text/markdown" }  ]}

Updating a skill

Each write publishes a new immutable version. Always fetch first to get the current version, then update with base_version for concurrency checks:

json
posthog:skill-get{ "skill_name": "make-fractals" }

Pick the most surgical primitive for what you're changing — the API offers several so you don't have to round-trip the whole skill to tweak one part. Anything you don't touch is carried forward from the current latest.

Editing the body

Full replacement (good for substantial rewrites):

json
posthog:skill-update{  "skill_name": "make-fractals",  "body": "# make-fractals\n\nUpdated instructions...",  "base_version": 2}

Incremental find/replace (good for small tweaks — no round-tripping the whole body):

json
posthog:skill-update{  "skill_name": "make-fractals",  "edits": [    { "old": "Use Pillow for rendering.", "new": "Use Pillow ≥10.0 for rendering." }  ],  "base_version": 2}

Each edits[].old must match exactly once. body and edits are mutually exclusive.

Editing one bundled file

Use file_edits to patch a single file without resending any other file:

json
posthog:skill-update{  "skill_name": "make-fractals",  "file_edits": [    {      "path": "scripts/mandelbrot.py",      "edits": [        { "old": "ITERATIONS = 100", "new": "ITERATIONS = 250" }      ]    }  ],  "base_version": 2}

Non-targeted files carry forward unchanged. file_edits cannot add, remove, or rename files — use the per-file tools below for that.

File-path parameter naming

The file-path parameter has two names depending on where it sits in the request, so don't guess:

  • file_path — skill-file-get and skill-file-delete (the path is part of the URL).
  • path — skill-file-create, plus the files=[{path, …}] array and file_edits=[{path, …}] (body fields on a file object).
  • old_path / new_path — skill-file-rename.

Passing path to file-get produces a /files/undefined/ 404. When in doubt, check the tool's input schema.

Adding, removing, or renaming a file

Atomic per-file tools — each publishes a new version and returns the updated skill (read its version to chain further edits via base_version):

json
posthog:skill-file-create{ "skill_name": "make-fractals", "path": "scripts/julia.py", "content": "...", "base_version": 2 }
json
posthog:skill-file-delete{ "skill_name": "make-fractals", "file_path": "scripts/old.py", "base_version": 3 }
json
posthog:skill-file-rename{ "skill_name": "make-fractals", "old_path": "scripts/julia.py", "new_path": "scripts/julia_set.py", "base_version": 4 }

Replacing the whole bundle (rare)

Passing files to skill-update replaces ALL bundled files — anything not in the array is dropped. Only use this when you intentionally want to wipe and reseed the bundle. For everything else, prefer file_edits or the per-file CRUD tools above.

Archiving a skill

skill-archive hides every active version of a skill by name. It cannot be undone — the skill disappears from skill-list and skill-get for the whole team. Use it to retire a skill entirely; to remove a single file use skill-file-delete, and to roll back content publish a new version instead.

json
posthog:skill-archive{ "skill_name": "make-fractals" }

Porting a local skill

To move a skill from a local SKILL.md directory (e.g. a local skills folder with scripts/, references/, assets/ subdirs) into PostHog:

  1. Read the local SKILL.md — use its frontmatter for name, description, license, compatibility, allowed_tools, metadata; the body after the frontmatter becomes body
  2. Walk the scripts/, references/, and assets/ subdirs and collect each file as { path, content, content_type }
  3. Call posthog:skill-create with everything in one shot — the skill lands at v1 with its full bundle

The skill is then available to the whole team via posthog:skill-get.

Quick access: local bridge skill

Most coding agents support local skills or slash commands. A local bridge skill gives you a shortcut (e.g. /phs my-github) that routes straight to the PostHog skills API — faster and more deterministic than asking the agent to "use the PostHog skills store to load my-github".

Create a local skill in your agent's skills directory with these instructions:

markdown
---name: phsdescription: >-  Access and run shared team skills stored in PostHog.  Use when the user asks to list, run, or manage PostHog skills,  or references /phs, "ph skills", or "posthog skills".user-invocable: trueallowed-tools: mcp__posthog__skill-list, mcp__posthog__skill-get, mcp__posthog__skill-create, mcp__posthog__skill-update, mcp__posthog__skill-file-get, mcp__posthog__skill-file-create, mcp__posthog__skill-file-delete, mcp__posthog__skill-file-rename, mcp__posthog__skill-duplicate, mcp__posthog__skill-rename---
# PostHog Skills Store
Local bridge to the PostHog Skills Store.
## Load and run a skill
When the user says `/phs <skill-name>`:
1. `skill-get(skill_name="<skill-name>")` to fetch body + file manifest2. Read the `body` field — follow it as system instructions for this task3. Use `skill-file-get` to pull bundled scripts/references on demand
## List skills
skill-list # all skillsskill-list(search="llma") # filter by keyword
## Create / update
skill-create(name="my-skill", description="...", body="# Instructions...")skill-get → note version → skill-update(skill_name="...", base_version=N, body="...")
## Edit one part of an existing skill
skill-get → note version → pick the smallest primitive:
- body tweak: skill-update(skill_name="...", base_version=N, edits=[{old, new}])- one bundled file: skill-update(skill_name="...", base_version=N, file_edits=[{path, edits:[{old, new}]}])- add/remove/rename a file: skill-file-create / skill-file-delete / skill-file-rename

The bridge is intentionally minimal — it just routes to the MCP tools. The real instructions live in PostHog and update without touching local files.

Agent-specific setup: Where to save this depends on your agent. For Claude Code, save as ~/.claude/skills/phs/SKILL.md. For other agents, consult your agent's docs on local skill or slash command configuration.

Default behavior

  • Always prefer PostHog MCP for skill storage and retrieval
  • Only fall back to local files when PostHog MCP is unavailable
  • When asked to "save", "store", or "remember" a workflow, runbook, or multi-step procedure, store it as a PostHog skill
  • When asked to use a skill by name, use learn project:<name> in MCP cli mode and skill-get in tools mode
  • When a skill references bundled files in its body, pull them with learn project:<name> <path> or skill-file-get only when needed — don't preload

來源與署名

來源:PostHog/ai-plugin位於skills/skills-store提交469d177

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架

更多來自 PostHog/ai-plugin 的技能

Writing Simplified Technical English

PostHog

套用 ASD-STE100 簡化技術英語規則,讓代理撰寫的文字語意明確、方便執行。

Writing & Content2026年10月8日

Working With Task Comments

PostHog

透過 PostHog MCP exec 調度器讀取並解讀 PostHog 任務、成品和畫布上的留言。

Productivity & Workflow2026年10月8日

Working With Skills

PostHog

指導代理使用 PostHog 的 skill-* MCP 工具來探索、讀取、建立、更新與重構技能。

AI & Agents2026年10月8日

Working With Scouts

PostHog

說明如何把監看工作委派給 PostHog Signals 偵察代理、處理其回報,並長期調校整個代理團隊的操作手冊。

AI & Agents2026年10月8日

Validating And Publishing Canvases

PostHog

Validate and publish a canvas source project safely: the source-project shape, declared capabilities, reading the current version pointer, iterating on validation diagnostics, guarded publishing with expected_current_version_id, staging a draft build and promoting it, waiting out the queued build, and recovering from a 409 version_conflict or a 429 capacity limit without overwriting concurrent work. Use whenever a canvas edit is ready to save, a draft build is wanted, a canvas publish or build returns diagnostics or a conflict, or a task needs to understand canvas version history.

待分類2026年10月8日

Understanding Billing Usage

PostHog

Explains PostHog billing usage and spend from the customer's visible Billing MCP tools. Use when the user asks why usage or spend is high, which product or project is driving usage, what a usage type means, how to reduce usage, what changed over time, why they got a usage change alert, or whether a spike/drop alert was real or noisy. Also use before product-specific analytics skills when the user names a billable PostHog product metric such as events, recordings, feature flag requests, exceptions, survey responses, synced rows, logs, AI events, AI credits, or Inbox credits. Starts from Billing usage/spend tools, then routes to customer-visible product MCP surfaces for deeper investigation.

待分類2026年10月8日