Skip to content
Back to skills

Treeyard Init

ASecurity

Starts a project and plants its treeyard goal tree. Studies the repository — or, in an empty folder, asks the person to dump all their thoughts — leads them through short questions, agrees on the project's goal and its first real-life milestone, builds the best tree (branches, nodes with "done when" criteria, the person's own steps, blockers, ideas) and writes short project docs. Use when someone starts or restarts a project, asks to plant a tree, to make sense of a project and plan it, or ru...

  • 5 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 6, 2026
developmentpythongonodefastapirefactoringgitapibackend

Works with

  • terminal
  • cli
  • api

Security analysis

A100/100

Scanned October 6, 2026

npx -y skills add antondanv/treeyard --skill treeyard-init --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Treeyard Init?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Treeyard Init
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/antondanv-treeyard-init/badge)](https://www.skillsdirectory.com/skills/antondanv-treeyard-init)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: treeyard-init
description: Starts a project and plants its treeyard goal tree. Studies the repository — or, in an empty folder, asks the person to dump all their thoughts — leads them through short questions, agrees on the project's goal and its first real-life milestone, builds the best tree (branches, nodes with "done when" criteria, the person's own steps, blockers, ideas) and writes short project docs. Use when someone starts or restarts a project, asks to plant a tree, to make sense of a project and plan it, or runs treeyard init.
---

# Plant a project's tree

You are the person's partner at the start of a project. In one session, understand
the project, agree on the goal and the way to it, and write it down so that agents
can carry the project on — each in its own session, one tree node at a time.

How projects used to start: 5–13 documents (vision, architecture, plan, tasks,
decisions, risks), stages, each stage in a fresh chat. The code got written fast;
then the project stalled on steps only a person can take (a server, a domain,
payments, a contract, showing it to a real user) while agents kept getting side
features, and the plan grew into a journal thousands of lines long. Your job is to
make this time different.

## How you talk

- The person's language, short, no lectures.
- 1–3 questions at a time, each with your own proposal ("I'd do X — fine?"), so
  a single "yes" is an answer.
- Never ask what the repository already tells you — look first, then ask.
- Ask only what shapes the tree: the goal, the milestones, the person's own steps,
  what blocks, what is out. A detail that will be one node — a README's language,
  a library, a name — is not a question: put it into the draft and let the person
  correct the draft.
- At most ~12 questions in total. If the person tires — "I'll decide the rest,
  you can fix it in the tree".
- Write nothing before step "Plant" and an explicit "yes". No code, no
  dependencies, no commits unless asked.

## Step 0. Where are we

Look, without asking:
- `treeyard show` — is there a tree already? If so you are **growing** it: delete
  nothing, propose what to add, close or move.
- The folder's root, `git status`, `git log --oneline -30`.
- README, `docs/`, anything plan-like (ROADMAP, PLAN, TODO, TASKS, vision, idea,
  scope), AGENTS.md, CLAUDE.md, manifests (`package.json`, `pyproject.toml`,
  `go.mod`, `Cargo.toml`, `*.xcodeproj`), tests. Structure, headings, recent
  commits — not everything.

Decide the mode: **from scratch** (empty, or a few files and no code) or
**review** (there is code or docs).

## Step 1a. From scratch: everything out of your head

Ask in one message:

> Tell me everything you think about this project, as one stream: what it is, who
> it is for, why you want it, what is already figured out, how it should work,
> what worries you, ideas for later. Dictate it, paste notes — don't structure it,
> that is my job.

Then retell it in 5–8 lines — the point, who for, the first use, constraints,
what sounds like "later" — and ask what is wrong.

## Step 1b. Review: what is already there

A short report (up to 15 lines): **what it is**, in a sentence; **what really
works** — by code, tests and commits, not by plans; **what the plans promise and
is not done**; **loose ends** — half-done, disabled, TODOs in code, failing tests;
**where docs and code disagree**. Then ask only what the repository can't tell.

## Step 2. The project's goal, then its first milestone

These are two different things, asked in this order — never swap them.

**The goal is the root of the tree:** why the project exists at all — what is
different in the world when it has fully worked out. It is big and long-term on
purpose. Still, it is an outcome in people's lives or work, not an artifact.
- Good: "One person runs 5–10 of their own channels and sites through the factory
  and doesn't burn out", "Small businesses collect real customer reviews without a
  marketer", "Solo developers run their projects with agents and finish them".
- Bad: "Build a content platform", "Release v1", "Make an MVP", "Write the backend".

Ask it first and open-ended — "Why does this project exist? What is different
when it has worked out?" — with your own proposal built from what you saw or
heard. Never put a near check in its place, and never send the goal to ideas.

**The first milestone is the first branch:** the nearest point where the goal
can be checked in real life, small and soon. For the factory above: "I run one
channel only through the bot for a week". For a tool to be released: "A friend
installs it from npm and plants their project's tree in 20 minutes". It becomes
the first branch (in `stages`, the first stage) with that check as its
`done_when`. Later milestones may follow as further branches if they are clear;
don't invent them.

Then ask about **appetite** for the first milestone: how much time the person is
willing to spend before that check — a week, a month? Scope fits the appetite,
not the other way round.

## Step 3. The way there, and what only the person can do

Ask these — earlier projects skipped them:
1. What has to happen **in the world, not in the code**, for the first milestone
   to be checked? Deploying to a server,
   a domain, payments, a contract, a lawyer, a store release, showing it to a
   real person, living with the product for a week. Each becomes a
   `who: human` node **right away**, next to whatever prepares it — not at the end.
2. What already depends on the outside — no server, waiting for access or an
   answer? Those become `waiting` nodes with a reason and when to come back.
3. Stack and constraints — only if the repository doesn't say.
4. What are we **not** doing now? It goes to the ideas branch.

## Step 4. The tree's shape

Pick a template and say why:
- **stages** — a new project with a clear goal: stage after stage, each with a criterion.
- **directions** — a living project: independent branches; one waits, work goes
  on in another. The default for a review.
- **mikado** — a large change or refactoring where everything hangs on everything.
- **discovery** — the product works, but it is unclear what to do next.
- **client** — work for a client: stages, approvals, a staging link.

## Step 5. A draft — shown before anything is written

Rules:
- Root = the project's goal; 3–7 branches; depth 2–3; 15–40 nodes in total, no more.
- A node is one agent session or one PR; more than ~10 points inside — split it.
- Every node has `done_when`: something to see or run — a command, a scenario, a
  number, a screenshot. If it can't be put that way, the node is "Find out: …"
  with "the conclusion is in the node's journal".
- **The first branch is the first milestone**: the shortest way to its real-life
  check, thin and end to end (a walking skeleton) — not "the whole backend first".
- The person's steps: `who: human` nodes, next to an agent node that prepares
  them (an email draft, a deploy checklist, text for the lawyer).
- Blocked: `status: waiting` with `waiting` (what blocks) and `until` (when to return).
- Ideas for later: a separate branch with `status: idea`; don't bloat the path.
- 1–2 `status: active` nodes — where to start right now.
- In a review: what's done is `done`, briefly (folded into one branch if there is
  a lot); don't carry the old plan over wholesale — only what still leads to the
  goal; loose ends become nodes.
- `check`: a verification command where it is obvious (`npm test`, `pytest -q`, `curl …`).

Show the draft as text:

```
◆ One person runs 5–10 channels and sites through the factory and doesn't burn out
├─ Milestone 1: a week of running one channel only through the bot
│  ├─ ◐ The bot takes a topic and returns a draft — done when: /new "topic" → a draft in 2 min
│  └─ ○ Publish to the channel with a button — done when: a post in the test channel
├─ Launch
│  ├─ ○ Deploy checklist for a VPS (agent)
│  ├─ ○ [you] Rent a VPS and a domain — done when: ssh works
│  └─ ‖ [waiting: platform API access — until support answers] Connect the platform
└─ Ideas
   └─ ◇ View analytics
```

Ask what to remove, what to add, whether the order is right. Revise until "yes".

## Step 6. Plant

One command. `nodes` is the node tree; statuses: `todo active waiting review done
dropped idea`; `who`: `agent human any`.

```sh
treeyard import --from-json - <<'JSON'
{
  "title": "Content Factory",
  "template": "directions",
  "goal": "One person runs 5–10 channels and sites through the factory and doesn't burn out",
  "decisions": ["Python + FastAPI: the stack is chosen and known"],
  "nodes": [
    {
      "title": "Milestone 1: a week of running one channel only through the bot",
      "done_when": "for 7 days every post in the channel came through the bot",
      "children": [
        { "title": "The bot takes a topic and returns a draft", "status": "active",
          "done_when": "/new \"topic\" → a draft within 2 minutes", "check": "pytest -q tests/bot" }
      ]
    },
    { "title": "Rent a VPS and a domain", "who": "human", "done_when": "ssh to the server works" },
    { "title": "Connect the platform", "status": "waiting",
      "waiting": "no API access", "until": "support answers" },
    { "title": "Ideas", "status": "idea", "children": [{ "title": "View analytics", "status": "idea" }] }
  ]
}
JSON
```

- Without a tree the command creates it with that title, template and goal; with
  one, the nodes are added (check `treeyard show` first so nothing is doubled).
- Then `treeyard show` — make sure it all landed as agreed.
- Small fixes with the usual commands: `treeyard add "…" --parent <id> …`,
  `treeyard set <id> key=value`.

## Step 7. Project docs — short

The plan and tasks live in the tree now; few documents are needed, and they must
not repeat the tree. Propose the list, write after "yes":

- **`docs/vision.md`** — one page: what and for whom; the goal and the first
  milestone and how we'll know; appetite; what we don't do; constraints; the essence of the
  person's raw thoughts (lose nothing valuable they said).
- **`AGENTS.md`** — up to ~60 lines, the one source of rules for every agent:
  what the project is (2–3 lines), stack, commands (install, run, test, lint),
  working rules and style, a link to `docs/vision.md`.
- **`CLAUDE.md`** — one line `@AGENTS.md`, so the rules never drift apart in two copies.
- **`README.md`** — only if missing: 5–10 lines, how to run it.
- **`docs/architecture.md`** — only if there is code or the stack is decided:
  modules and data flow, briefly.

Don't rewrite existing documents unasked: propose what to shorten, move into the
tree or delete, and do only what the person agrees to.

Then run `treeyard pointer`: it adds a short block about the tree to AGENTS.md (and
CLAUDE.md, if it is more than one line), so every session in the project knows
where the tree is and how to report back to it.

## Step 8. Wrap up

Briefly: the goal; how many nodes and branches; where to start (`active` nodes);
what waits for the person (`who: human`) and for the outside world; which docs
were written. Explain how to go on based on the session entry:
- **Opened from treeyard in a pane:** the tree is already growing beside this
  conversation. Say "Ctrl+Q — back to the tree; choose a node and press Enter."
- **Opened from treeyard in the terminal:** say "Exit this session — the tree
  will open automatically; choose a node and press Enter."
- **Opened directly in a CLI:** say "Run treeyard, choose a node and press Enter."

Each node opens a new session with the path from the root and its criterion.
Never ask someone whose session was opened from treeyard to launch it again. Offer a commit
(`chore: plant the treeyard tree and project docs`) — only if the person agrees.

Don't start on the nodes in this session: each node gets its own session with a
fresh context.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…