Adding Inbox Sources
PostHog/posthog
Add a new warehouse-backed source to the PostHog Desktop Self-driving Inbox (the feature that ships GitHub, Linear, Zendesk, pganalyze, Jira).
File a GitHub issue about a defect in First Tree itself — the CLI, agent runtime, chat, web app, GitHub integration, GitLab integration, or Context Tree tooling — onto First Tree's own GitHub-hosted…
$ npx skills add first-tree-ai/first-tree --skill first-tree-file-bug -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install first-tree-ai/first-tree first-tree-file-bug --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/first-tree-ai/first-tree.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/first-tree-file-bug .claude/skills/first-tree-file-bug && 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 "first-tree-file-bug" agent skill from https://github.com/first-tree-ai/first-tree/tree/main/skills/first-tree-file-bug into .claude/skills/first-tree-file-bug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "first-tree-file-bug", 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/first-tree-ai/first-tree/tree/main/skills/first-tree-file-bugType 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 first-tree-ai/first-tree --skill first-tree-file-bug -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install first-tree-ai/first-tree first-tree-file-bug --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/first-tree-ai/first-tree.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/first-tree-file-bug .agents/skills/first-tree-file-bug && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "first-tree-file-bug" agent skill from https://github.com/first-tree-ai/first-tree/tree/main/skills/first-tree-file-bug into .agents/skills/first-tree-file-bug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "first-tree-file-bug", 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 first-tree-ai/first-tree --skill first-tree-file-bug -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install first-tree-ai/first-tree first-tree-file-bug --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/first-tree-ai/first-tree.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/first-tree-file-bug .cursor/skills/first-tree-file-bug && 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 "first-tree-file-bug" agent skill from https://github.com/first-tree-ai/first-tree/tree/main/skills/first-tree-file-bug into .cursor/skills/first-tree-file-bug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "first-tree-file-bug", 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/first-tree-ai/first-tree.git --path skills/first-tree-file-bug--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 first-tree-ai/first-tree --skill first-tree-file-bug -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install first-tree-ai/first-tree first-tree-file-bug --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/first-tree-ai/first-tree.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/first-tree-file-bug .gemini/skills/first-tree-file-bug && 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 "first-tree-file-bug" agent skill from https://github.com/first-tree-ai/first-tree/tree/main/skills/first-tree-file-bug into .gemini/skills/first-tree-file-bug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "first-tree-file-bug", 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 first-tree-ai/first-tree first-tree-file-bugInstalls 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 first-tree-ai/first-tree --skill first-tree-file-bug -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/first-tree-ai/first-tree.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/first-tree-file-bug .github/skills/first-tree-file-bug && 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 "first-tree-file-bug" agent skill from https://github.com/first-tree-ai/first-tree/tree/main/skills/first-tree-file-bug into .github/skills/first-tree-file-bug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "first-tree-file-bug", 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 first-tree-ai/first-tree --skill first-tree-file-bug -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install first-tree-ai/first-tree first-tree-file-bug --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/first-tree-ai/first-tree.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/first-tree-file-bug .opencode/skills/first-tree-file-bug && 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 "first-tree-file-bug" agent skill from https://github.com/first-tree-ai/first-tree/tree/main/skills/first-tree-file-bug into .opencode/skills/first-tree-file-bug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "first-tree-file-bug", 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.
first-tree-file-bugFile a GitHub issue about a defect in First Tree itself — the CLI, agent runtime, chat, web app, GitHub integration, GitLab integration, or Context Tree tooling — onto First Tree's own GitHub-hosted…
First Tree File Bug is an agent skill from first-tree-ai/first-tree. File a GitHub issue about a defect in First Tree itself — the CLI, agent runtime, chat, web app, GitHub integration, GitLab integration, or Context Tree tooling — onto First Tree's own GitHub-hosted public tracker (agent-team-foundation/first-tree). Use only when the user reports that First Tree the platform is broken, errored, crashed, or misbehaving and wants it reported (e.g. "First Tree has a bug", "chat send keeps failing", "the CLI crashed", "给 First Tree 开个 issue 反馈这个 bug"). The skill gathers reproduction…
Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `agents/openai.yaml`).
It sits in Productivity & Automation. It works with GitHub and GitLab. The repository describes itself as: First-tree routes work to the right agent, gives it the same context your team has, and loops humans in only when the rules say so. Lives in your GitHub. Open source. The licence is Apache-2.0.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 13f2a38. 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:
ghpython3glabjqFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh and glab, which can reach the network depending on how they are called.
From 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.
First Tree File Bug loads about 2.8k tokens when it runs. Until then it costs about 235 tokens; SKILL.md has 1,260 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 first-tree-ai/first-tree at commit 13f2a38, republished under its Apache-2.0 licence (© first-tree-ai). 1,260 words, ~2,764 tokens.
.claude/skills/first-tree-file-bug/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Turn a user's informal bug report about First Tree itself into a
well-formed GitHub issue on agent-team-foundation/first-tree, filed with
the user's authenticated gh CLI. The value is that the user only has to
say "First Tree has a bug" — this skill does the collection, drafting, and
filing, opens a dedicated chat that follows the issue for tracking, and
reports the issue URL back.
The target repo is public. Filing publishes whatever you include, so gather deliberately, confirm with the user before creating, and never post secrets (see Guardrails).
first-tree …), the agent
runtime / client, chat delivery, the web app, notifications, GitHub
integration, GitLab integration, or Context Tree tooling.SECURITY.md reporting path instead.State briefly what you understand the bug to be and that it looks like a
First Tree defect worth filing. If it is ambiguous whether the fault is in
First Tree or the user's own setup, resolve that first — do not file an
issue against First Tree for something outside it. If the report is really
about the user's own project or their bound source repo, this is not the
skill: file it into that repo with the target repository's forge CLI
(gh issue create --repo <their repo> for GitHub, or glab issue create --repo <their repo> for GitLab) instead of here. If that CLI is not
authenticated, recover with gh auth login for GitHub or glab auth login
for GitLab.
Collect what the maintainers need to reproduce and triage. Get what you can yourself; ask the user only for what you genuinely cannot infer (typically the repro steps and the observed error). Do not over-interrogate.
| Field | How to get it |
|---|---|
| What happened | From the user: what they were doing, the expected result, and the actual result. Turn this into numbered reproduction steps. |
| Error output / logs | Paste from the user's message or from recent command output in this session. Scrub secrets first (see Guardrails). |
| Client / CLI version | Run the First Tree CLI with --version (e.g. first-tree --version — substitute your channel binary; see CLI binary below). |
| Runtime / provider | Your agent runtime kind (e.g. claude-code, codex), if relevant to the bug. |
| Chat ID | From the injected Current Chat Context block — the Chat ID: line, or the chatId field of the first-tree-current-chat-context JSON payload. |
| Reporting user ID | The human participant in this chat: their handle from the Current Chat Context participants list (type=human), which is also the <name> in the [From: <name> …] header of their message. |
| Operating system | uname -srm (or sw_vers on macOS). |
If the user already pasted a stack trace or exact error, capture it verbatim — it is the highest-signal part of the report.
Do a quick duplicate scan so you do not file a repeat:
gh issue list --repo agent-team-foundation/first-tree --search "<key error phrase>" --state all --limit 10If a clear match exists, show it to the user and ask whether to comment on it instead of opening a new one.
Follow the repo's bug-report template. Title as [Bug] <concise summary>.
Body:
## Summary
<one or two sentences>
## Surface Area
<which part of First Tree: CLI / runtime / chat / web / GitHub integration / GitLab integration / Context Tree>
## Environment
- version: <first-tree --version output>
- runtime: <claude-code | codex | …>
- operating system: <uname / sw_vers>
## Reproduction
1. …
2. …
3. …
## Expected Behavior
<what should have happened>
## Actual Behavior
<what actually happened; include the verbatim error / stack trace>
## First Tree Context
- Chat ID: <chatId>
- Reported by (user): <human participant handle>
- Agent: <your agent id / name>
## Additional Context
<logs, screenshots, related links — secrets scrubbed>Keep it tight and factual. The First Tree Context block is what lets maintainers correlate the report with server-side logs — these are opaque identifiers, not credentials.
Filing is outward-facing and publishes to a public tracker, so show the
user the drafted title and body and state the destination explicitly —
this files into agent-team-foundation/first-tree (First Tree's own public
tracker), not the user's own repo — then get an explicit go-ahead before
creating the issue. Incorporate any correction they make.
Write the body to a file so markdown reaches GitHub verbatim, then create:
gh issue create \
--repo agent-team-foundation/first-tree \
--title "[Bug] <summary>" \
--label bug \
--body-file <path-to-body.md>gh uses the user's own authentication on this host — that is the intended
"file with the user's gh CLI" path. This is GitHub-only because First Tree's
public issue tracker is GitHub-hosted.
Prefer a dedicated chat over the current one: open a new chat for this bug
and route the issue's webhook events there, so its lifecycle (comments,
labels, close) is tracked in its own thread instead of cluttering the chat
where the bug was reported. Fall back to the current chat only if the
dedicated chat cannot be opened (the else branch below).
Create the chat with the reporting user as the recipient, capture the new chat's ID from the JSON response, then follow the issue into that chat:
# 1. Open the tracking chat; capture the full JSON response (don't pipe
# straight into a parser that might not be installed — see below).
resp=$(first-tree chat create \
--to <reporting-user-handle> \
--topic "Bug: <concise summary>" \
--description "Tracking First Tree bug: <concise summary> — <issue-url>" \
-f markdown \
"Filed a First Tree bug issue: <issue-url>. This chat tracks its progress.")
# 2. Take the new chat's id from the response's data.chatId
# (shape: {"ok":true,"data":{"chatId":"…"}}). Read it directly, or:
new_chat=$(printf '%s' "$resp" | python3 -c 'import sys,json;print(json.load(sys.stdin)["data"]["chatId"])')
# 3. Follow the issue into the NEW chat — but ONLY with a non-empty id.
# `--chat ""` does NOT fall back; it fails with NO_CHAT_CONTEXT. So if the
# chat could not be created or its id not parsed, follow into the current
# chat instead so the issue is never left unfollowed.
if [ -n "$new_chat" ]; then
first-tree github follow <issue-url> --chat "$new_chat"
else
first-tree github follow <issue-url> # fallback: current chat
fi--to <reporting-user-handle> is the human who reported the bug (the
handle from step 2), so they get the tracking chat and are woken on it.data.chatId field of the create response.
Extraction above uses python3; jq -r '.data.chatId' works too — but do
not hard-depend on a parser you cannot confirm is installed. When in doubt,
read data.chatId straight from the JSON yourself.--topic yourself — an agent-declared github follow --chat does not auto-rewrite the tracking chat's topic from the
issue, so without it the chat keeps a low-signal auto-derived label
(--description is set at create time regardless, so the chat still
self-describes).chat create is not idempotent — create the chat exactly once; if the
result is uncertain, check chat list before retrying rather than
re-running blindly.else branch, not optional): github follow --chat "" fails with NO_CHAT_CONTEXT — it does not fall back on its
own. So when chat create fails (e.g. the --to handle will not resolve)
or the id cannot be parsed, follow the issue into the current chat
(first-tree github follow <issue-url>) and tell the user the dedicated
tracking chat could not be opened. Never leave the issue unfollowed.Finally, in the current chat, report the issue URL back to the user and say where it is being tracked: the dedicated chat if one was opened, or (on the fallback) this chat.
SECURITY.md, not a
public issue.gh is missing or unauthenticated, do not treat it as a First
Tree platform gap. Present the fully drafted issue (title + body) to the
user so they can file it manually, and offer the gh install / gh auth login path; this recovery is GitHub-specific because the First Tree
tracker is on GitHub.Examples use the canonical first-tree binary. Substitute the
channel-correct binary named in your briefing (first-tree on prod,
first-tree-staging on staging, first-tree-dev on dev) — it is the same
binary you use for chat send. gh is the host GitHub CLI and is not
channel-specific.
© first-tree-ai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files in skills/first-tree-file-bug of first-tree-ai/first-tree.
Open the folder on GitHubat commit 13f2a38
First Tree File Bug 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 |
|---|---|---|---|---|---|---|
| First Tree File Bug this skillfirst-tree-ai/first-tree | 154 | — | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| Adding Inbox SourcesPostHog/posthog | 40k | — | ~5.3k | Automated safety check: Pass | Custom licence | |
| PRkdlbs/kandev | 909 | — | ~6.3k | Automated safety check: Pass | AGPL-3.0 | |
| Jiramagnus919/agent-skills | 113 | — | ~3.3k | Automated safety check: Pass | MIT | |
| Greplooponyx-dot-app/onyx | 32k | 4 repos | ~3.3k | Automated safety check: Pass | MIT | |
| Check PRonyx-dot-app/onyx | 32k | 2 repos | ~2.3k | Automated safety check: Pass | MIT |
PostHog/posthog
Add a new warehouse-backed source to the PostHog Desktop Self-driving Inbox (the feature that ships GitHub, Linear, Zendesk, pganalyze, Jira).
kdlbs/kandev
Create a PR from a committed and pushed branch after task-defined checks pass.
magnus919/agent-skills
Interact with Atlassian Jira from the terminal: search issues with JQL, view details, create issues, add comments, count matches with fast approximate-count, list projects, discover valid…
onyx-dot-app/onyx
Iteratively improves a PR (GitHub), MR (GitLab), or shelved changelist (Perforce) until Greptile gives it a 5/5 confidence score with zero unresolved comments.
onyx-dot-app/onyx
Checks a GitHub, GitLab, or Perforce (p4) pull request (or merge request, or shelved changelist) for unresolved review comments, failing status checks, and incomplete PR descriptions.
ai-dynamo/dynamo
Create self-contained interactive HTML code-review dashboards from GitHub or GitLab pull requests, checked-out branch diffs, or supplied unified diffs, with correctness and safe-to-merge scores…
first-tree-ai/first-tree
Review a GitHub pull request or GitLab merge request against the workspace-bound Context Tree when a trusted server-authored Context Reviewer run supplies provider-scoped authority.
first-tree-ai/first-tree
A skill your agent uses for a First Tree onboarding first chat, especially natural opening messages like "welcome aboard", "Please help me get started with First Tree", or "Please help me get…
first-tree-ai/first-tree
Audit stored normal content on the bound Context Tree's actual binding branch when a human explicitly asks to audit the whole tree, a domain, or specific normal paths for drift, contradictions…
first-tree-ai/first-tree
Read the applicable Context Tree before acting. An agent skill from first-tree-ai/first-tree.
first-tree-ai/first-tree
Act as an independent QA engineer for a software repository.
first-tree-ai/first-tree
Bootstrap a team's Context Tree from readable source repos — for an onboarding "build / set up the Context Tree" task on a tree that has no domain structure yet: either no tree exists (creates and…
Categories
File a GitHub issue about a defect in First Tree itself — the CLI, agent runtime, chat, web app, GitHub integration, GitLab integration, or Context Tree tooling — onto First Tree's own GitHub-hosted…. First Tree File Bug is an agent skill from first-tree-ai/first-tree. File a GitHub issue about a defect in First Tree itself — the CLI, agent runtime, chat, web app, GitHub integration, GitLab integration, or Context Tree tooling — onto First Tree's own GitHub-hosted public tracker (agent-team-foundation/first-tree).
First Tree File Bug fits situations like: reports that First Tree the platform is broken; misbehaving and wants it reported (e.g.
Run `npx skills add first-tree-ai/first-tree --skill first-tree-file-bug -a claude-code`. Or copy the skill folder (skills/first-tree-file-bug in first-tree-ai/first-tree) into .claude/skills/first-tree-file-bug in your project. Claude Code loads it when a task matches its description.
Run `npx skills add first-tree-ai/first-tree --skill first-tree-file-bug -a codex`. Or copy the skill folder (skills/first-tree-file-bug in first-tree-ai/first-tree) into .agents/skills/first-tree-file-bug 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 first-tree-ai/first-tree --skill first-tree-file-bug -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/first-tree-file-bug, .gemini/skills/first-tree-file-bug, .github/skills/first-tree-file-bug and .opencode/skills/first-tree-file-bug in your project.
Going by SKILL.md and its folder, First Tree File Bug needs the command-line tools its instructions call (gh, python3, glab and jq). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use gh, which can reach the network depending on how they are called. 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.
First Tree File Bug is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.8k tokens (SKILL.md is roughly 11k 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 First Tree File Bug: Adding Inbox Sources (PostHog/posthog, 40k stars), PR (kdlbs/kandev, 909 stars), Jira (magnus919/agent-skills, 113 stars) and Greploop (onyx-dot-app/onyx, 32k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
first-tree-ai (a GitHub organization) maintains it in first-tree-ai/first-tree, which has 154 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on September 30, 2026.
Source: first-tree-ai/first-tree on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.