Author skill tree
Video-game-like skill trees for tracking real growth - framework-agnostic engine, self-hostable app, and agent playbooks
npx -y skills add saalim-abdulla/skill-tree --skill author-skill-treeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 25 days oldThe repository was created 25 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Create or edit a Skill Tree's Definition — its Skills, structure, colours, and rubrics — by writing the tree's YAML and validating it against the Engine. Use when the user wants to add, rename, remove, or restructure skills in a Skill Tree, write rubrics, or start a new tree.
SKILL.md
2.9 KB, as published. Nobody here has run it
Authoring a Skill Tree
A Skill Tree is defined by one YAML file — the Definition. It describes the tree's shape only (Skills, structure, colours, rubrics), never a Practitioner's progress. This Playbook edits that file and proves it is valid.
In this repo the App's Definition is
examples/starter-template/content/tree.yaml.
Another project points this Playbook at its own Definition file.
The shape
id: my-tree
version: 1
rollup: { defaultStrategy: average } # a parent's Level = average of its children
gating: { defaultStrategy: alwaysUnlocked } # nothing is ever locked
edges: []
nodes:
- { id: trunk, parentId: null, meta: { title: My Tree, color: '#e8b25a' } }
- id: writing
parentId: trunk
meta:
title: Writing
color: '#5ad1c5'
rubric:
3: Writes clearly enough that the point survives a second read.
6: Structures a document so the reader gets the point fast.
9: Anticipates the reader's question and answers it before it is asked.
- Exactly one root:
parentId: null. Every other node'sparentIdmust exist. ids are unique and kebab-case.meta.titleandmeta.color(any CSS colour) are required; give each branch its own colour and let its leaves inherit it.
Rules that keep a tree meaningful
- Every node is a trainable behaviour, not a trait.
- Give each leaf
3 / 6 / 9behavioural anchors underrubric:— what the Practitioner actually does at that Level. Branches carry no rubric (they roll up). - Keep the tree a monitor, not a to-do list: name skills worth watching, not tasks.
Process
- Read the current Definition (when editing). Understand the existing branches and ids before changing them.
- Edit — add, rename, remove, or restructure Skills; write or sharpen rubrics.
Preserve unrelated nodes and their ids (renaming an
idresets that Skill's saved progress). - Validate — a Definition that does not parse will blank the App. Run:
It printsnode playbooks/author-skill-tree/scripts/validate.mjs <path-to-tree.yaml>OK …or lists issues (duplicate ids, dangling parents, cycles, bad shape). Fix every issue and re-run until it passes. - Report back what changed — the Skills added/renamed/removed and the resulting structure — so the user can confirm.
Completion
The Definition validates cleanly and reflects exactly what the user asked for, with
every new leaf carrying 3 / 6 / 9 behavioural anchors.