{"id":50429974,"url":"https://github.com/agent-team-foundation/first-tree-legacy","last_synced_at":"2026-05-31T13:30:45.446Z","repository":{"id":349096989,"uuid":"1192001161","full_name":"agent-team-foundation/first-tree-legacy","owner":"agent-team-foundation","description":"A Git-native knowledge layer for your team — and a set of tool suite that keeps it alive.","archived":false,"fork":false,"pushed_at":"2026-05-21T10:36:50.000Z","size":3473,"stargazers_count":45,"open_issues_count":30,"forks_count":10,"subscribers_count":0,"default_branch":"dev","last_synced_at":"2026-05-27T08:00:28.586Z","etag":null,"topics":["ai-agents","claude-code","cli","codex","context-engineering","context-tree","context-wiki","harness-engineering"],"latest_commit_sha":null,"homepage":"https://first-tree.ai/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/agent-team-foundation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":"SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-03-25T19:48:16.000Z","updated_at":"2026-05-24T05:34:08.000Z","dependencies_parsed_at":"2026-04-14T00:00:45.951Z","dependency_job_id":null,"html_url":"https://github.com/agent-team-foundation/first-tree-legacy","commit_stats":null,"previous_names":["agent-team-foundation/first-tree"],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/agent-team-foundation/first-tree-legacy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agent-team-foundation%2Ffirst-tree-legacy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agent-team-foundation%2Ffirst-tree-legacy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agent-team-foundation%2Ffirst-tree-legacy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agent-team-foundation%2Ffirst-tree-legacy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agent-team-foundation","download_url":"https://codeload.github.com/agent-team-foundation/first-tree-legacy/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agent-team-foundation%2Ffirst-tree-legacy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33733754,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agents","claude-code","cli","codex","context-engineering","context-tree","context-wiki","harness-engineering"],"created_at":"2026-05-31T13:30:45.376Z","updated_at":"2026-05-31T13:30:45.440Z","avatar_url":"https://github.com/agent-team-foundation.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"assets/banner-dark.png\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"assets/banner-light.png\"\u003e\n    \u003cimg src=\"assets/banner-light.png\" alt=\"first-tree\" width=\"100%\"\u003e\n  \u003c/picture\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#quickstart\"\u003e\u003cstrong\u003eQuickstart\u003c/strong\u003e\u003c/a\u003e \u0026middot;\n  \u003ca href=\"#commands\"\u003e\u003cstrong\u003eCommands\u003c/strong\u003e\u003c/a\u003e \u0026middot;\n  \u003ca href=\"#migration-notes\"\u003e\u003cstrong\u003eMigration\u003c/strong\u003e\u003c/a\u003e \u0026middot;\n  \u003ca href=\"./docs/onboarding.md\"\u003e\u003cstrong\u003eOnboarding\u003c/strong\u003e\u003c/a\u003e \u0026middot;\n  \u003ca href=\"https://github.com/agent-team-foundation/first-tree/discussions\"\u003e\u003cstrong\u003eDiscussions\u003c/strong\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/first-tree\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/first-tree?style=for-the-badge\u0026color=FFD700\u0026label=npm\" alt=\"npm version\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/agent-team-foundation/first-tree/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/agent-team-foundation/first-tree/ci.yml?style=for-the-badge\u0026label=CI\" alt=\"CI\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/agent-team-foundation/first-tree/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-Apache%202.0-green?style=for-the-badge\" alt=\"License: Apache 2.0\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/agent-team-foundation/first-tree/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/agent-team-foundation/first-tree?style=for-the-badge\u0026color=blueviolet\" alt=\"GitHub stars\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# first-tree\n\n**Shared Context for Agent Teams.** A Git-native knowledge layer your team and\nyour agents both read from and write to, shaped around durable decisions,\nownership, and cross-repo context.\n\nHumans and agents need the _same_ level of context to ship together.\n`CLAUDE.md` per repo drifts quickly. Search tools help, but they do not become\nthe source of truth. `first-tree` is the missing layer: a tree of markdown\nnodes in Git where every node has an owner, agents can propose updates after\ntasks, and your team can review those updates like normal code changes.\n\n\u003cdiv align=\"center\"\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003cstrong\u003eWorks\u003cbr/\u003ewith\u003c/strong\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cpicture\u003e\u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"assets/logos/claude-code-dark.svg\"\u003e\u003cimg src=\"assets/logos/claude-code-light.svg\" width=\"32\" alt=\"Claude Code\" /\u003e\u003c/picture\u003e\u003cbr/\u003e\u003csub\u003eClaude Code\u003c/sub\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"assets/logos/openclaw.png\" width=\"32\" alt=\"OpenClaw\" /\u003e\u003cbr/\u003e\u003csub\u003eOpenClaw\u003c/sub\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cpicture\u003e\u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"assets/logos/codex-dark.svg\"\u003e\u003cimg src=\"assets/logos/codex-light.svg\" width=\"32\" alt=\"Codex\" /\u003e\u003c/picture\u003e\u003cbr/\u003e\u003csub\u003eCodex\u003c/sub\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cpicture\u003e\u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"assets/logos/cursor-dark.svg\"\u003e\u003cimg src=\"assets/logos/cursor-light.svg\" width=\"32\" alt=\"Cursor\" /\u003e\u003c/picture\u003e\u003cbr/\u003e\u003csub\u003eCursor\u003c/sub\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cpicture\u003e\u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"assets/logos/gemini-dark.svg\"\u003e\u003cimg src=\"assets/logos/gemini-light.svg\" width=\"32\" alt=\"Gemini CLI\" /\u003e\u003c/picture\u003e\u003cbr/\u003e\u003csub\u003eGemini CLI\u003c/sub\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cpicture\u003e\u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"assets/logos/github-dark.svg\"\u003e\u003cimg src=\"assets/logos/github-light.svg\" width=\"32\" alt=\"GitHub\" /\u003e\u003c/picture\u003e\u003cbr/\u003e\u003csub\u003eGitHub\u003c/sub\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cpicture\u003e\u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"assets/logos/mcp-dark.svg\"\u003e\u003cimg src=\"assets/logos/mcp-light.svg\" width=\"32\" alt=\"MCP\" /\u003e\u003c/picture\u003e\u003cbr/\u003e\u003csub\u003eMCP\u003c/sub\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n---\n\n## The Current Surface\n\n```text\n┌──────────────────────────────────────────────────────────┐\n│                  first-tree (umbrella CLI)               │\n├───────────────────────────┬──────────────────────────────┤\n│           tree            │         github scan          │\n│      context layer        │    GitHub chief of staff     │\n├───────────────────────────┼──────────────────────────────┤\n│ inspect / init / bind /   │ install / start / watch /    │\n│ workspace / verify /      │ poll / run / cleanup /       │\n│ publish / tree skill ...  │ statusline / doctor          │\n└───────────────────────────┴──────────────────────────────┘\n\nCanonical shipped skills in the current proposal:\n\n  skills/first-tree\n  skills/first-tree-onboarding\n  skills/first-tree-sync\n  skills/first-tree-write\n  skills/first-tree-github-scan\n```\n\n| Surface                      | What it is                                                                                                        | Current workspace status                                                                                                                                                                                            |\n| ---------------------------- | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **`first-tree tree`**        | The Context Tree layer. This is where onboarding, inspection, validation, publishing, and skill maintenance live. | The tree lifecycle surface is implemented in this workspace: `inspect`, `status`, `init`, `bootstrap`, `bind`, `integrate`, `workspace sync`, `verify`, `publish`, `upgrade`, and the maintenance helpers are live. |\n| **`first-tree github scan`** | The GitHub inbox runtime. This is the new public home for the old `breeze` behavior.                              | Fully wired to [`packages/github-scan/`](./packages/github-scan/README.md), with fail-closed tree binding checks at the CLI entry and the tree repo handed through to the runtime.                                  |\n| **`skills/`**                | Canonical skill payload source for the proposal's five shipped skills.                                            | Present in this repo and copied into the built package. `first-tree tree skill ...` now installs, upgrades, lists, diagnoses, and repairs these canonical payloads.                                                 |\n\n## Why first-tree\n\n|                                               | CLAUDE.md per repo | Search / wiki tools | **first-tree** |\n| --------------------------------------------- | ------------------ | ------------------- | -------------- |\n| Humans can read it                            | yes                | yes                 | yes            |\n| Agents can read it deterministically          | partial            | partial             | yes            |\n| Agents can propose updates                    | rare               | rare                | yes            |\n| Works across repos                            | weak               | strong              | strong         |\n| Ownership is attached to nodes                | rare               | inconsistent        | yes            |\n| Can drive GitHub automation with tree context | no                 | no                  | yes            |\n\n## Current Workspace Note\n\nThis repository is already on the latest fetched `agent-team-foundation/first-tree`\n`main`, and it now carries the proposal-aligned pnpm workspace plus the\n`2026-05-01` CLI and skill restructure surface.\n\nThat means:\n\n- the public command names now follow the proposal\n- `packages/github-scan` is the most complete runtime today and is exposed as\n  `first-tree github scan`\n- the canonical five-skill payloads now live under `skills/`\n- the tree lifecycle surface now has real `init`, `bootstrap`, `bind`,\n  `integrate`, `workspace sync`, `verify`, `publish`, `codeowners`,\n  `claude-hook`, `inject`, `upgrade`, `review`, and\n  `tree skill ...` commands\n- new trees scaffold default agent-template files and an org-config placeholder\n- `github scan` now routes agents through the shipped First Tree skill set,\n  while deeper sync/write orchestration remains an area for future refinement\n\n## Quickstart\n\nFrom this repository:\n\n```bash\npnpm install\npnpm --filter first-tree build\nnode apps/cli/dist/index.js tree inspect --json\nnode apps/cli/dist/index.js tree help onboarding\nnode apps/cli/dist/index.js github scan --help\n```\n\nFrom the published package:\n\n```bash\nnpx -p first-tree first-tree tree inspect --json\nnpx -p first-tree first-tree github scan --help\n```\n\n## Quick Start For Agents\n\nPaste one of these into Codex, Claude Code, or another coding agent.\n\n**First repo / first tree:**\n\n```text\nUse the latest first-tree CLI.\nRun `first-tree tree inspect --json` to classify the current folder, then\nwalk me through the proposal-aligned onboarding flow for this repo.\n```\n\n**Joining an existing shared tree:**\n\n```text\nUse the latest first-tree CLI.\nRun `first-tree tree inspect --json`, then help me connect this repo to an\nexisting shared Context Tree and explain any missing port-back behavior.\n```\n\n**Checking the GitHub automation runtime:**\n\n```text\nUse the latest first-tree CLI.\nRun `first-tree github scan --help`, then explain which commands are ready to\nuse today and which ones require an existing tree binding.\n```\n\n## Commands\n\n### `first-tree tree`\n\n| Command                              | What it does                                                  | Status                                                   |\n| ------------------------------------ | ------------------------------------------------------------- | -------------------------------------------------------- |\n| `first-tree tree inspect`            | Classify the current folder and report first-tree metadata    | implemented                                              |\n| `first-tree tree status`             | Human-friendly alias for `inspect`                            | implemented                                              |\n| `first-tree tree help onboarding`    | Print the current onboarding narrative                        | implemented                                              |\n| `first-tree tree init`               | Proposal-aligned onboarding entrypoint                        | implemented                                              |\n| `first-tree tree bootstrap`          | Low-level tree bootstrap for an explicit tree checkout        | implemented                                              |\n| `first-tree tree bind`               | Bind a source repo or workspace to an existing tree repo      | implemented                                              |\n| `first-tree tree integrate`          | Install local tree integration without mutating the tree repo | implemented                                              |\n| `first-tree tree workspace sync`     | Bind newly added child repos to the shared tree               | implemented                                              |\n| `first-tree tree verify`             | Validate a tree repo                                          | implemented                                              |\n| `first-tree tree upgrade`            | Refresh integration and tree metadata                         | implemented                                              |\n| `first-tree tree publish`            | Publish a tree repo and refresh bound repos                   | implemented                                              |\n| `first-tree tree codeowners`         | Generate `.github/CODEOWNERS` from ownership data             | implemented                                              |\n| `first-tree tree claude-hook`        | Install the Claude Code hook wiring                           | implemented                                              |\n| `first-tree tree inject`             | Emit the SessionStart payload from `NODE.md`                  | implemented                                              |\n| `first-tree tree review`             | Run the tree PR review helper                                 | implemented                                              |\n| `first-tree tree skill \u003csubcommand\u003e` | Proposal replacement for the old top-level `skill` namespace  | implemented for install, upgrade, list, doctor, and link |\n\n### `first-tree github scan`\n\n| Command group                                                                                                                                         | What it does                                                          | Status      |\n| ----------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | ----------- |\n| `install`, `start`, `stop`, `status`, `doctor`, `watch`, `poll`, `run`, `daemon`, `run-once`, `cleanup`, `statusline`, `status-manager`, `poll-inbox` | Proposal-aligned GitHub scan surface backed by `packages/github-scan` | implemented |\n\nFail-closed binding behavior:\n\n- `install`, `start`, `run`, `daemon`, `run-once`, and `poll` require a bound\n  tree repo from `.first-tree/source.json`, or an explicit\n  `--tree-repo \u003cowner/repo\u003e` override.\n- `status`, `doctor`, `stop`, `cleanup`, `watch`, and hook/internal entrypoints\n  can still run without a tree binding so diagnosis is not blocked.\n\n## Migration Notes\n\nThe public command path changes introduced by the proposal are:\n\n| Old path                           | New path                                                                                                                                                     |\n| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| `first-tree breeze \u003csubcommand\u003e`   | `first-tree github scan \u003csubcommand\u003e`                                                                                                                        |\n| `first-tree skill \u003csubcommand\u003e`    | `first-tree tree skill \u003csubcommand\u003e`                                                                                                                         |\n| `first-tree gardener \u003csubcommand\u003e` | retired; the old gardener logic is split across `first-tree-sync` and `first-tree-write`, with `github scan` only routing notifications into those workflows |\n\nFor deeper notes, port-back status, and contributor guidance, see\n[docs/cli-restructure-migration.md](./docs/cli-restructure-migration.md).\n\n## Repository Layout\n\n```text\nassets/               banner and README visual assets\napps/\n  cli/                published `first-tree` CLI package\npackages/\n  github-scan/        internal implementation for `first-tree github scan`\nskills/               canonical shipped skill payloads\ndocs/\n  cli-restructure-migration.md\n  skill-topology.md\n  onboarding.md\n  source-map.md\n```\n\n## Open Source Docs\n\n- [CONTRIBUTING.md](./CONTRIBUTING.md)\n- [SUPPORT.md](./SUPPORT.md)\n- [SECURITY.md](./SECURITY.md)\n- [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagent-team-foundation%2Ffirst-tree-legacy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagent-team-foundation%2Ffirst-tree-legacy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagent-team-foundation%2Ffirst-tree-legacy/lists"}