Omnibus
Skill 184 of 200
Read and use comments attached to the current PostHog task, its artifacts, and any canvas through the PostHog MCP exec dispatcher.
4 minutes · 950 words · 10 sections
Install
npx skills add PostHog/skills --skill working-with-task-commentsnpx skills add PostHog/skills/plugin marketplace add PostHog/skillsThe first command installs just this skill, by the name in its SKILL.md; the second installs the whole repository.
Use the canonical PostHog MCP tool posthog:exec for every task-comment operation. A client or
harness may render that canonical name differently. tasks-comments-list and the related names are
inner tools, not separately registered MCP tools.
Do not conclude that comments are unavailable because a client-specific tool name differs from
posthog:exec, or because there is no top-level posthog:tasks-comments-list tool. Do not use MCP
resource-listing tools: comments are inner tools behind exec, not MCP resources.
Call posthog:exec with:
{ "command": "search ^(tasks-(artifacts-list|comments-(list|retrieve))|canvas-comments-(list|retrieve))$" }The expected inner tools are:
| Tool | Scope |
|---|---|
tasks-artifacts-list | Artifacts and canvases of the current task |
tasks-comments-list | Roots on the current task, its artifacts, and canvas roots it wrote |
tasks-comments-retrieve | One thread from tasks-comments-list |
canvas-comments-list | Every root on one canvas, whichever task or person wrote it |
canvas-comments-retrieve | One thread from canvas-comments-list |
The tasks-* tools need PostHog Desktop task context. The canvas-* tools need only a canvas id.
A user can leave a canvas comment without a task. The tasks-* tools do not return that comment.
If the client exposes no tool corresponding to canonical posthog:exec, the PostHog MCP server is
unavailable in the run. Report that comments cannot be accessed only when exec search returns no
tool for the target:
tasks-* tools must be present.canvas-* tools or the tasks-* tools must be present.A connection can have the canvas-* tools without task context. A connection can also have the
tasks-* tools without the canvas-* tools, because a feature flag controls the canvas-* tools.
Use info <inner-tool-name> when the schema is unclear. For example:
{ "command": "info tasks-comments-list" }execPut the complete inner-tool invocation in exec.command.
List open comment roots across the task:
{ "command": "call tasks-comments-list {}" }List artifacts and canvases when an inventory or filter id is needed:
{ "command": "call tasks-artifacts-list {}" }Filter roots to one returned artifact or canvas id:
{ "command": "call tasks-comments-list {\"artifact_id\":\"<artifact-id>\"}" }Retrieve a root and its replies:
{ "command": "call tasks-comments-retrieve {\"root_comment_id\":\"<root-comment-id>\"}" }List open roots on one canvas. No task id is necessary:
{ "command": "call canvas-comments-list {\"id\":\"<canvas-id>\"}" }Retrieve a canvas root and its replies:
{ "command": "call canvas-comments-retrieve {\"id\":\"<canvas-id>\",\"root_comment_id\":\"<root-comment-id>\"}" }Never attempt to invoke an inner name as a top-level MCP tool. The notation
posthog:tasks-comments-list also means to route that inner name through exec; it is not a literal
tool name.
Both root listing and thread retrieval are cursor-paginated. For either operation:
cursor.next is non-null, call the same inner tool again with "cursor":"<next>" and repeat the original filters.next is null.Example continuation:
{
"command": "call tasks-comments-list {\"artifact_id\":\"<artifact-id>\",\"include_resolved\":true,\"cursor\":\"<next>\"}"
}Start with the root inventory and retrieve only threads relevant to the user’s request. Before
acting on a root, retrieve its thread so an older message is not mistaken for the latest request.
The list returns open roots by default; pass "include_resolved":true only when resolved history
matters.
List bodies are bounded excerpts. Detail responses cap total comment-body bytes. When a detail entry
has content_truncated: true, call the same retrieve tool again with that entry’s id as
comment_id and its content_next_offset as content_offset. Continue until
content_next_offset is null. Do this only for comments needed for the task.
exec search if they have not been confirmed in this run.tasks-comments-list through exec and continue until the relevant roots are found.exec.tasks-artifacts-list through exec unless the target id is already known.artifact_id to tasks-comments-list through exec.exec.tasks-artifacts-list, or
canvas-list.id to canvas-comments-list through exec. This returns roots from all tasks
and people, including roots without a task.canvas-comments-retrieve through exec.If exec search does not return the canvas-* tools, pass the canvas id as artifact_id to
tasks-comments-list. That list contains only the canvas roots of the current task. Tell the user
that roots from other tasks, and roots without a task, can be missing.
selected_text to locate the intended content. Do not silently choose another repeated
occurrence.tasks-* tools, the host fixes the current task. The schemas intentionally expose no task
id, and the server rejects cross-task access.canvas-* tools, the space of the canvas controls access. A user who can see the space
can read all comments on its canvases.Read and use comments attached to the current PostHog task, its artifacts, and any canvas through the PostHog MCP exec dispatcher. Use when the user mentions task comments, artifact or canvas comments, annotations, selected-text feedback, replies, unresolved comments, or asks an agent to inspect or act on feedback left in PostHog Desktop. Covers exec discovery and calls, target filtering, pagination, full-thread retrieval, anchor/version context, task-scoped access, and standalone canvas comments that have no task.
The verbatim description from this skill’s front matter — the string an agent matches on to decide whether to load it.
main, last pushed 8 November 2026.SKILL.md, not by matching a directory convention. 2 distinct layouts observed: skills/omnibus/*/SKILL.md, skills/posthog/all/skills/*/SKILL.md.h1 and no skipped levels:.claude-plugin/marketplace.json by PostHog, declaring 6 plugins. It is read for editorial metadata only — never as the skill index, which is always the repository tree./PostHog/skills.md, and each skill at its own .md URL.