Reproduce Chat States
different-ai/openwork
Fires known chat states in the running OpenWork desktop app, such as provider errors, retries and tool steps, so you can check how each renders.
Act as an independent QA engineer for a software repository.
$ npx skills add first-tree-ai/first-tree --skill first-tree-qa -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install first-tree-ai/first-tree first-tree-qa --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-qa .claude/skills/first-tree-qa && 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-qa" agent skill from https://github.com/first-tree-ai/first-tree/tree/main/skills/first-tree-qa into .claude/skills/first-tree-qa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "first-tree-qa", 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-qaType 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-qa -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install first-tree-ai/first-tree first-tree-qa --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-qa .agents/skills/first-tree-qa && 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-qa" agent skill from https://github.com/first-tree-ai/first-tree/tree/main/skills/first-tree-qa into .agents/skills/first-tree-qa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "first-tree-qa", 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-qa -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install first-tree-ai/first-tree first-tree-qa --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-qa .cursor/skills/first-tree-qa && 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-qa" agent skill from https://github.com/first-tree-ai/first-tree/tree/main/skills/first-tree-qa into .cursor/skills/first-tree-qa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "first-tree-qa", 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-qa--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-qa -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install first-tree-ai/first-tree first-tree-qa --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-qa .gemini/skills/first-tree-qa && 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-qa" agent skill from https://github.com/first-tree-ai/first-tree/tree/main/skills/first-tree-qa into .gemini/skills/first-tree-qa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "first-tree-qa", 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-qaInstalls 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-qa -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-qa .github/skills/first-tree-qa && 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-qa" agent skill from https://github.com/first-tree-ai/first-tree/tree/main/skills/first-tree-qa into .github/skills/first-tree-qa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "first-tree-qa", 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-qa -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-qa --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-qa .opencode/skills/first-tree-qa && 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-qa" agent skill from https://github.com/first-tree-ai/first-tree/tree/main/skills/first-tree-qa into .opencode/skills/first-tree-qa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "first-tree-qa", 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-qaAct as an independent QA engineer for a software repository.
First Tree QA is an agent skill from first-tree-ai/first-tree. Act as an independent QA engineer for a software repository. Use when asked to test, validate, reproduce, release-qualify, or assess the performance of a repository, change, build, or product behavior, or to maintain reusable QA cases. Select the lowest-cost tier that can answer the question, validate evidence honestly, and do not modify the product under test.
Its SKILL.md is about 2.1k 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 Testing & QA, covering QA and bug reports. 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.
5 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:
pnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pnpm, 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 QA loads about 2.1k tokens when it runs. Until then it costs about 94 tokens; SKILL.md has 1,079 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,079 words, ~2,054 tokens.
.claude/skills/first-tree-qa/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Answer the user's quality question as an independent QA engineer. Classify the work before preparing an environment, use the least expensive tier that can support the requested conclusion, and report only what the evidence proves.
test-onlyUse this tier when deterministic automated coverage can answer the request or the user asks only to run tests. Run the
smallest documented package, named-suite, or repository command that covers the affected contract. In the First Tree
repository, use a matching package or named suite for a localized change and pnpm test when the request or changed
shared inputs make repository-wide coverage necessary. Record the exact target, command, exit result, and material
failures.
This tier does not start product surfaces, establish a Build/Run/Drive/Observe/Measure/Reset matrix, or claim live
product or release qualification. PASS means only that the reported automated checks passed.
focused-localUse this tier by default for ordinary feature validation, regression checks, defect reproduction, and focused performance questions that need real product behavior but are not release or major-feature qualification. Scope the question first, then start only the relevant surfaces locally. Docker and a fully isolated cell are optional.
Prefer an exact-target worktree and the QA-owned warm environment. Reuse the same task slot rather than rebuilding it for each retry; before reuse, record its identity, target, health, and mutable state, then reset only task-owned state. Establish Build, Run, Drive, Observe, Measure, and Reset only for the affected surfaces and the nearest boundary needed by the claim. Record non-isolation as a limitation. Never borrow an operator's logged-in browser/provider session or expose writable credentials merely to save setup time.
full-isolatedUse this tier only for release preflight or qualification, a clearly major or high-risk feature, or an explicit request
for isolated QA. full-isolated describes isolation strength, not automatic whole-product breadth. Select the affected
surfaces and critical adjacent boundaries before setup, then take an exclusive task slot in the QA-owned warm Docker
environment with clean task data, namespaces, and an exact-target worktree. Use explicit native, device, or provider
bridges only where the product cannot run credibly in Docker.
Establish Build, Run, Drive, Observe, Measure, and Reset for the selected isolated scope. Declare QA READY only for
that recorded scope; it is release-wide only when the request explicitly requires release-wide qualification. Preserve
compatible infrastructure after the report, reset task-owned mutable state, and report retained environment state.
Start with the lowest tier and narrowest scope that can honestly answer the question. A localized deterministic change
normally selects targeted tests; an ordinary single-surface change adds only that surface and a credible adjacent
boundary; a large, cross-surface, security-, auth-, persistence-, provider-, boot-, or release-sensitive change may
select isolated validation. An unscoped request does not authorize full-isolated or whole-product coverage. Recommend
or request escalation when a smaller scope cannot support the desired conclusion, but do not silently widen resource
use or weaken a committed QA case's prerequisites.
Resolve the exact target and requested conclusion. Read the diff or requirement, repository instructions, relevant source/release context, existing tests, QA cases, observability, and environment guidance needed to choose the tier and affected scope. Do not scan or start unrelated surfaces merely because they exist.
For test-only, prepare the selected test command and capture path. For live tiers, inspect the QA-owned warm
environment first and reuse the current task slot when compatible; otherwise reset or repair only the incompatible
part. Establish capabilities and safe reset paths only for the selected scope, and for full-isolated reach scoped
QA READY. Record environment identity, reuse decision, target, health, and capability gaps before execution.
Record the validation question, exact commands or product paths, evidence needed, credible adjacent risk, performance
work, limits, and stop conditions. A test-only run needs only a concise command scope; a focused-local plan begins
after its in-scope capabilities are ready; a full-isolated plan begins after the selected isolated scope is QA READY.
Exercise the selected boundary, verify meaningful preconditions, retain evidence, and investigate failures far enough to classify them. Adapt when live facts contradict the plan, but keep the conclusion inside the selected tier and actual scope. Measure deeply only when the request, contract, tier, or observed risk warrants it.
Return exactly one status: PASS, FAIL, BLOCKED, or INCONCLUSIVE. State the tier, exact target, validated scope,
environment, evidence, findings, proportional performance observations, limitations, artifact paths, and cleanup or
retained warm-environment state.
A PASS never extends beyond what ran: test-only proves checks, focused-local proves the observed paths under its local
conditions, and full-isolated proves only the completed selected isolated scope unless release-wide coverage was
explicitly requested and completed.
Put one case disposition in every final report: no-change, candidate-new-case, candidate-case-update,
move-to-product-test, move-to-skill-eval, or merge-or-retire. Do not edit the committed case library during a run.
For FAIL, produce a bug artifact with reproduction and evidence, but no implementation plan.
Maintain QA cases only as an explicit, separate task. Keep live, cross-surface, provider, release, exploratory, or
judgment-dependent risks as QA cases; move stable deterministic behavior to product tests and recurring agent behavior
to evals. A case may require full-isolated; lower tiers must not claim the case ran when its prerequisites were skipped.
© 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-qa of first-tree-ai/first-tree.
Open the folder on GitHubat commit 13f2a38
First Tree QA 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 QA this skillfirst-tree-ai/first-tree | 154 | — | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| Reproduce Chat Statesdifferent-ai/openwork | 24k | — | ~673 | Automated safety check: Pass | Custom licence | |
| Dynamo Jira TicketDynamoDS/Dynamo | 2k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Minimal Run And Auditlllllllama/RigorPilot-Skills | 497 | 2 repos | ~691 | Automated safety check: Pass | MIT | |
| Moav E2EMotherofallVPNs/MoaV | 448 | — | ~1.9k | Automated safety check: Notes | MIT | |
| Anchor Reprolynxlangya/techne | 105 | 1 repos | ~1.2k | Automated safety check: Pass | MIT |
different-ai/openwork
Fires known chat states in the running OpenWork desktop app, such as provider errors, retries and tool steps, so you can check how each renders.
DynamoDS/Dynamo
Create structured Jira tickets for Dynamo from bug reports, failing tests, or feature requests.
lllllllama/RigorPilot-Skills
Rigor Run skill for README-first deep learning repo reproduction.
MotherofallVPNs/MoaV
Run and debug MoaV's end-to-end tests — real protocol connectivity (client-test.sh) and the moav CLI smoke test — against a LIVE server, via the self-hosted e2e workflow or a local test VPS.
lynxlangya/techne
Reproduce a behavioral bug before fixing it, record the failing probe, and verify the fix with the same probe.
Human-Agent-Society/CORAL
Author a new CORAL task — the three pieces that must line up (task.yaml, seed/, a packaged grader/), the coral init → coral validate → smoke-test loop, and how to pick a grader pattern (stdout…
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…
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
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
Act as an independent QA engineer for a software repository. First Tree QA is an agent skill from first-tree-ai/first-tree. Act as an independent QA engineer for a software repository.
First Tree QA fits situations like: release-qualify; assess the performance of a repository; product behavior; maintain reusable QA cases.
Run `npx skills add first-tree-ai/first-tree --skill first-tree-qa -a claude-code`. Or copy the skill folder (skills/first-tree-qa in first-tree-ai/first-tree) into .claude/skills/first-tree-qa 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-qa -a codex`. Or copy the skill folder (skills/first-tree-qa in first-tree-ai/first-tree) into .agents/skills/first-tree-qa 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-qa -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-qa, .gemini/skills/first-tree-qa, .github/skills/first-tree-qa and .opencode/skills/first-tree-qa in your project.
Going by SKILL.md and its folder, First Tree QA needs the command-line tools its instructions call (pnpm). Our summary lists: Docker.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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 QA 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.1k tokens (SKILL.md is roughly 8.2k 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 QA: Reproduce Chat States (different-ai/openwork, 24k stars), Dynamo Jira Ticket (DynamoDS/Dynamo, 2k stars), Minimal Run And Audit (lllllllama/RigorPilot-Skills, 497 stars) and Moav E2E (MotherofallVPNs/MoaV, 448 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.