Agent skill

First Tree File Bug

by first-tree-ai in 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…

Apache-2.0Auto-check passedProductivity & Automation

Install First Tree File Bug

skills CLI
$ npx skills add first-tree-ai/first-tree --skill first-tree-file-bug -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install first-tree-ai/first-tree first-tree-file-bug --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
first-tree-file-bug
GitHub stars
154
Token cost
~2.8k tokens
SKILL.md length
1,260 words
Files
3
Skills in repo
9
Repo updated
First seen
Licence
Apache-2.0

At a glance

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…

  • Works in 7 steps: Confirm the scope → Gather the bug context → Check for an existing issue → …
  • Reports that First Tree the platform is broken
  • SKILL.md covers Purpose, When to use, When NOT to use and Workflow, plus 2 more sections
  • Calls gh, python3 and glab

What it does

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.

When your agent uses it

  • Reports that First Tree the platform is broken
  • Misbehaving and wants it reported (e.g

Example prompts

  • “First Tree has a bug”
  • “chat send keeps failing”
  • “the CLI crashed”
  • “/first-tree-file-bug”

Requirements

  • Python 3

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Confirm the scope
  2. Gather the bug context
  3. Check for an existing issue
  4. Draft the issue
  5. Confirm before filing
  6. File the issue
  7. Open a tracking chat and follow the issue

What it can do on your machine

Read from SKILL.md and the folder at commit 13f2a38. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • gh
    • python3
    • glab
    • jq

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    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.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~235
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k

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.

Safety

Auto-check passed

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.

SKILL.md

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.

Download SKILL.mdSave it as .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.
name
first-tree-file-bug
description
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 steps, the First Tree client/CLI version, the chat ID, the reporting user's ID, OS, and error output, then opens the issue with the user's `gh` CLI. NOT for filing an issue into the user's own or bound source repo — that is an ordinary source-repo issue using the target forge CLI (`gh` for GitHub, `glab` for GitLab), not this skill — and not for bugs in the user's project code or third-party tools.

First Tree File Bug

Purpose

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).

When to use

  • The defect is in First Tree — the CLI (first-tree …), the agent runtime / client, chat delivery, the web app, notifications, GitHub integration, GitLab integration, or Context Tree tooling.
  • The user wants it reported / filed / logged, not just diagnosed.

When NOT to use

  • The bug is in the user's own project code, a dependency, or a third-party tool — that is normal debugging, not a First Tree issue.
  • The user only wants help understanding or working around the problem and has not asked to file anything. Fix or explain first; offer to file only if it is a genuine First Tree defect.
  • It is a security vulnerability — do not open a public issue; point the user to the repo's SECURITY.md reporting path instead.

Workflow

1. Confirm the scope

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.

2. Gather the bug context

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.

FieldHow to get it
What happenedFrom the user: what they were doing, the expected result, and the actual result. Turn this into numbered reproduction steps.
Error output / logsPaste from the user's message or from recent command output in this session. Scrub secrets first (see Guardrails).
Client / CLI versionRun the First Tree CLI with --version (e.g. first-tree --version — substitute your channel binary; see CLI binary below).
Runtime / providerYour agent runtime kind (e.g. claude-code, codex), if relevant to the bug.
Chat IDFrom 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 IDThe 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 systemuname -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.

3. Check for an existing issue

Do a quick duplicate scan so you do not file a repeat:

bash
gh issue list --repo agent-team-foundation/first-tree --search "<key error phrase>" --state all --limit 10

If a clear match exists, show it to the user and ask whether to comment on it instead of opening a new one.

4. Draft the issue

Follow the repo's bug-report template. Title as [Bug] <concise summary>. Body:

markdown
## 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.

5. Confirm before filing

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.

6. File the issue

Write the body to a file so markdown reaches GitHub verbatim, then create:

bash
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.

Show full SKILL.md (526 more words)Show less
7. Open a tracking chat and follow the issue

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:

bash
# 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.
  • Take the chat id from the 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.
  • Set an explicit stable --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.
  • Fallback (the example's 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.
  • Write the first message and description in the session's working language (the examples above are English).

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.

Guardrails

  • Never publish secrets. Scrub tokens, API keys, cookies, passwords, auth headers, and private URLs from any logs or error output before it goes into a public issue. When unsure, redact.
  • Public repo. Chat ID and user ID are opaque identifiers that help triage; they are safe to include, but the confirmation step (5) is where the user gets to veto anything they would rather not post.
  • Security issues do not go here — route to SECURITY.md, not a public issue.
  • If 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.

CLI binary

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

Files

SKILL.md and 2 other files in skills/first-tree-file-bug of first-tree-ai/first-tree.

  • SKILL.md
  • VERSION
  • agents/openai.yaml

Open the folder on GitHubat commit 13f2a38

Compare with similar skills

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.

First Tree File Bug compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
First Tree File Bug this skillfirst-tree-ai/first-tree154—~2.8kAutomated safety check: PassApache-2.0
Adding Inbox SourcesPostHog/posthog40k—~5.3kAutomated safety check: PassCustom licence
PRkdlbs/kandev909—~6.3kAutomated safety check: PassAGPL-3.0
Jiramagnus919/agent-skills113—~3.3kAutomated safety check: PassMIT
Greplooponyx-dot-app/onyx32k4 repos~3.3kAutomated safety check: PassMIT
Check PRonyx-dot-app/onyx32k2 repos~2.3kAutomated safety check: PassMIT

Similar skills

  • Adding Inbox Sources

    PostHog/posthog

    Official

    Add a new warehouse-backed source to the PostHog Desktop Self-driving Inbox (the feature that ships GitHub, Linear, Zendesk, pganalyze, Jira).

    40k GitHub stars~5.3k tokensUpdated today
    Productivity & AutomationAuto-check passed
  • PR

    kdlbs/kandev

    Create a PR from a committed and pushed branch after task-defined checks pass.

    909 GitHub stars~6.3k tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Jira

    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…

    113 GitHub stars~3.3k tokensUpdated 2 days ago
    Productivity & AutomationAuto-check passed
  • Greploop

    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.

    32k GitHub starsUsed in 4 repos~3.3k tokens
    DevelopmentAuto-check passed
  • Check PR

    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.

    32k GitHub starsUsed in 2 repos~2.3k tokens
    DevelopmentAuto-check passed
  • Visual Review

    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…

    8.2k GitHub stars~4.5k tokensUpdated today
    DevelopmentAuto-check passed

More from first-tree-ai/first-tree

All 9 skills in this repo
  • Context Tree Review

    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.

    154 GitHub stars~8k tokensUpdated 8 days ago
    Auto-check passed
  • First Tree Welcome

    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…

    154 GitHub stars~11k tokensUpdated 8 days ago
    Auto-check passed
  • Context Tree Audit

    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…

    154 GitHub stars~1.9k tokensUpdated 8 days ago
    Auto-check passed
  • First Tree Read

    first-tree-ai/first-tree

    Read the applicable Context Tree before acting. An agent skill from first-tree-ai/first-tree.

    154 GitHub stars~6.1k tokensUpdated 8 days ago
    Auto-check: warnings
  • First Tree QA

    first-tree-ai/first-tree

    Act as an independent QA engineer for a software repository.

    154 GitHub stars~2.1k tokensUpdated 8 days ago
    Auto-check passed
  • First Tree Seed

    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…

    154 GitHub stars~17k tokensUpdated 8 days ago
    Auto-check passed

Works with

Questions about First Tree File Bug

What does First Tree File Bug do?

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).

When should I use First Tree File Bug?

First Tree File Bug fits situations like: reports that First Tree the platform is broken; misbehaving and wants it reported (e.g.

How do I install First Tree File Bug in Claude Code?

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.

How do I install First Tree File Bug in Codex?

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.

Can I use First Tree File Bug in Cursor, Gemini CLI or GitHub Copilot?

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.

What does First Tree File Bug need to run?

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.

Does First Tree File Bug access the network?

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.

Is First Tree File Bug safe to install?

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.

What licence does First Tree File Bug use?

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.

How many tokens does First Tree File Bug use?

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.

What are the alternatives to First Tree File Bug?

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.

Who maintains First Tree File Bug?

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.