first-tree
Health Gecti
- License — License: Apache-2.0
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 16 GitHub stars
Code Gecti
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions — No dangerous permissions requested
This tool provides a Git-native knowledge layer for development teams. It offers a suite of CLI commands and local daemons that help humans and AI agents collaboratively maintain project context, manage source repositories, and automate GitHub notification workflows.
Security Assessment
The tool carries a Medium overall risk. It explicitly includes a "breeze" daemon that takes over your `gh` (GitHub) login to automatically triage and reply to notifications, which inherently requires and accesses highly sensitive authentication tokens. Additionally, the "gardener" daemon actively watches local source repositories and opens or assigns GitHub issues. While the automated rule-based scan found no hardcoded secrets, dangerous permissions, or malicious code patterns across its 12 audited TypeScript files, granting an automated agent the ability to read local codebases and interact with GitHub on your behalf represents significant system access.
Quality Assessment
The project appears to be actively maintained, with its last repository push occurring today. It is legally safe to integrate, covered under the permissive Apache-2.0 license. The repository features a thorough description and detailed documentation. Community trust is currently minimal but present, marked by 16 GitHub stars, which is typical for an early-stage or niche open-source utility.
Verdict
Use with caution — the code is clean and licensed, but granting it control over your GitHub account and local repositories requires careful consideration of access scopes.
A Git-native knowledge layer for your team — and a set of tool suite that keeps it alive.
first-tree
A Git-native knowledge layer for your team — and a three-tool suite that keeps it alive.
first-tree publishes the first-tree CLI and its bundled agent skills. A
Context Tree is the living source of truth for decisions, ownership, and
cross-domain relationships that humans and agents maintain together —first-tree is the toolkit that lets agents build, tend, and react to it.
The Three Tools
┌──────────────────────────────────────────────────────────────────────┐
│ first-tree (umbrella CLI) │
├──────────────┬───────────────────────────┬───────────────────────────┤
│ tree │ gardener │ breeze │
│ toolkit │ local daemon │ local daemon │
├──────────────┼───────────────────────────┼───────────────────────────┤
│ init, bind, │ watches source repos → │ watches gh notifications │
│ sync, │ opens issues on the tree │ → labels / routes / drafts│
│ publish, │ repo & assigns owners; │ replies for PRs, issues, │
│ verify, ... │ responds to sync-PR │ discussions, reviews. │
│ │ review feedback. │ │
└──────────────┴───────────────────────────┴───────────────────────────┘
│
┌───────┴────────┐
│ first-tree │ ← umbrella skill:
│ skill │ methodology, references,
│ │ routing into the product skills
└────────────────┘
| Tool | What it is | When to reach for it |
|---|---|---|
| tree | CLI toolkit for first-tree tree init/bind/sync/publish/verify/upgrade/workspace/review/generate-codeowners/inject-context/bootstrap |
You want an agent to create, maintain, or bind a Context Tree repo. |
| gardener | Local maintenance daemon that watches source repos, opens/assigns tree issues, and responds to sync-PR review feedback | You want the tree to stay coherent as code changes without asking a human to drive it. |
| breeze | Local inbox daemon that takes over your gh login and turns GitHub notifications into a triaged, optionally auto-handled queue |
You want an agent sitting on your GitHub notifications so you don't have to. |
Every product ships:
- an operational handbook at
skills/<name>/SKILL.md(loaded into agents), - a lazy CLI dispatcher at
src/products/<name>/cli.ts, - its own semver'd
VERSIONfile, independent from the npm package version.
The umbrella first-tree skill at skills/first-tree/
is the single entry point an agent reads first — it teaches the Context Tree
methodology and routes to the three product skills above. The CLI also exposes
one maintenance namespace — first-tree skill ... — for skill
installation, diagnosis, and repair. It is not a fourth product.
Install And Run
The npm package and installed CLI command are both first-tree.
One-off use without installing globally:
npx first-tree tree inspect --json npx first-tree tree initFor automation, hooks, or CI templates, prefer the more explicit form:
npx -p first-tree first-tree tree inspect --jsonGlobal install:
npm install -g first-tree first-tree tree initShow the installed CLI version:
first-tree --versionShow the command list:
first-tree --help
Quick Start For Agents
Paste one of these into Claude Code, Codex, or any agent — from the root you
want to onboard:
First person on the team:
Use the latest first-tree CLI (https://github.com/agent-team-foundation/first-tree).
Run `first-tree tree inspect --json` to classify the current folder, then install
the skill and onboard this repo or workspace by creating a new Context Tree.
Joining an existing tree:
Use the latest first-tree CLI (https://github.com/agent-team-foundation/first-tree).
Run `first-tree tree inspect --json`, install the skill, and bind this repo or
workspace to the existing shared tree at
https://github.com/<your-org>/<your-tree-repo>.
Onboarding Modes
first-tree models onboarding with three explicit concepts:
- source / workspace root — the repo or folder that gets local agent integration
- tree repo — the Git repo that stores
NODE.md, domains, members, decisions - binding — metadata that links a source to a tree
Four first-class paths:
| Scenario | Command |
|---|---|
| Single repo + new dedicated tree | first-tree tree init |
| Bind to existing shared tree | first-tree tree bind --tree-path ../org-context --tree-mode shared |
| Workspace root + shared tree | first-tree tree init --scope workspace --sync-members (then first-tree tree workspace sync) |
| You're inside the tree repo itself | first-tree tree bootstrap --here |
When the current root is a workspace, the workspace root gets local integration
plus .first-tree/source.json (with workspace members), and discovered child
repos become workspace-members bound to the same shared tree.
See skills/first-tree/references/onboarding.md
for the full guide, and run first-tree tree help onboarding to print it.
What Lives Where
<source-repo-or-workspace>/
.agents/skills/first-tree/
.claude/skills/first-tree
WHITEPAPER.md
AGENTS.md
CLAUDE.md
.first-tree/
source.json # includes workspace members for workspace roots
… your code …
<tree-repo>/
.agents/skills/first-tree/
.claude/skills/first-tree
.first-tree/
VERSION
progress.md
tree.json
bindings/<source-id>.json
bootstrap.json
source-repos.md
NODE.md
AGENTS.md
CLAUDE.md
members/NODE.md
… tree domains …
The source/workspace root is never a tree — it never contains NODE.md,members/, or tree-scoped AGENTS.md / CLAUDE.md. Source-side state lives
under .first-tree/source.json; tree-side state lives under.first-tree/tree.json and .first-tree/bindings/<source-id>.json. The
default dedicated tree repo name is <repo>-tree, while shared tree setups
continue to work cleanly for multi-repo workspaces.
Commands
| Command | What it does |
|---|---|
first-tree tree inspect |
Classify the current folder and report existing bindings / child repos |
first-tree tree init |
High-level onboarding wrapper for single repos, shared trees, and workspace roots |
first-tree tree bootstrap |
Canonical low-level tree bootstrap for an explicit tree checkout |
first-tree tree bind |
Bind the current repo/workspace root to an existing tree repo |
first-tree tree workspace sync |
Bind discovered child repos to the same shared tree |
first-tree tree publish |
Publish a dedicated tree repo or shared tree repo to GitHub and refresh locally bound source/workspace repos |
first-tree tree sync |
Detect drift between a tree repo and its bound source repos; supports --propose and --apply |
first-tree tree verify |
Run verification checks against a tree repo |
first-tree tree upgrade |
Refresh installed source/workspace integration or tree metadata from the current package |
first-tree tree generate-codeowners |
Generate .github/CODEOWNERS from tree ownership frontmatter |
first-tree tree review |
Run the Claude Code PR review helper for a tree repo in CI |
first-tree tree invite |
Invite a new member to the Context Tree (human, personal_assistant, or autonomous_agent) |
first-tree tree join |
Accept an invite and join a Context Tree |
first-tree tree inject-context |
Output a Claude Code SessionStart hook payload from the root NODE.md |
first-tree tree help onboarding |
Print the full onboarding guide |
first-tree skill install |
Install the four shipped skills under .agents/skills/* and .claude/skills/* |
first-tree skill upgrade |
Wipe and reinstall the four shipped skills from the current package |
first-tree skill list |
Print the four shipped skills with their installed status and version |
first-tree skill doctor |
Diagnose whether the four shipped skills are installed and healthy |
first-tree skill link |
Idempotently repair the .claude/skills/* alias symlinks |
Package And Command
- The npm package is
first-tree. - The installed CLI command is also
first-tree. - The CLI dispatches into three products:
tree,breeze,gardener. - The CLI also exposes one maintenance namespace:
skill.
Runfirst-tree --helpfor the routing. - The published package ships four skill payloads, each with the same
name in the package and when installed into a user repo:skills/first-tree/— the umbrella entry-pointfirst-treeskill (methodology, references, routing).skills/tree/,skills/breeze/,skills/gardener/— one operational handbook per product CLI.
- In this source repo,
.agents/skills/first-tree/and.claude/skills/first-tree/
(plus the three product equivalents) are tracked symlink aliases back to the
fourskills/<name>/payloads, so local agents resolve the same skills the
package ships. npx first-tree <namespace> <command>is the recommended human-facing
one-off entrypoint.- For automation, hooks, and CI templates, prefer the more explicit
npx -p first-tree first-tree <namespace> <command>form.
Canonical Documentation
User-facing references ship under skills/first-tree/references/ and get
copied into user repos by first-tree tree init / first-tree tree bind:
- Methodology overview:
skills/first-tree/references/whitepaper.md - Onboarding guide:
skills/first-tree/references/onboarding.md - Source/workspace install contract:
skills/first-tree/references/source-workspace-installation.md - Upgrade and layout contract:
skills/first-tree/references/upgrade-contract.md
Decision-grade design knowledge for this project lives in the bound Context Tree
under first-tree-skill-cli/, not in this repo:
- Canonical architecture:
first-tree-skill-cli/repo-architecture.md - Canonical sync design:
first-tree-skill-cli/sync.md
Repo-local maintainer notes live in:
docs/source-map.mddocs/architecture/overview.mddocs/architecture/thin-cli.mddocs/architecture/versioning.mddocs/build/distribution.mddocs/testing/overview.mddocs/design/sync.md
These are implementation-only and never ship.
Repository Layout (For Contributors)
src/
cli.ts # umbrella dispatcher
products/
manifest.ts # single source of truth for product/meta registration
tree/ # tree product (CLI + engine)
breeze/ # breeze product (CLI + engine + daemon)
gardener/ # gardener product (CLI + engine)
meta/
skill-tools/ # `first-tree skill ...` maintenance commands
shared/
version.ts # shared VERSION/package readers
assets/
tree/ # runtime assets installed into user repos
breeze/ # breeze dashboard HTML
skills/
first-tree/ # umbrella skill (methodology + routing)
tree/ breeze/ gardener/ # per-product operational handbooks
tests/
tree/ breeze/ gardener/ meta/ e2e/ # grouped by product
docs/ # maintainer-only implementation notes
evals/ # maintainer-only evaluation harness
See AGENTS.md (== CLAUDE.md) for maintainer rules, anddocs/source-map.md for the annotated file map.
Developing
pnpm install --frozen-lockfile
pnpm validate:skill
pnpm typecheck
pnpm test
pnpm build
pnpm pack # when package contents change
Evals live in evals/ — see evals/README.md.
Contributing And Security
- GitHub issue forms for bugs and feature requests.
CONTRIBUTING.mdfor local setup and validation expectations.CODE_OF_CONDUCT.mdfor community expectations.SECURITY.mdfor vulnerability reporting.
License
Apache 2.0
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi