Agent skill

Task Forest

by dongshuyan in dongshuyan/compass-skills

Maintains a repo-local task forest or task DAG for the current workspace.

MITAuto-check passedSales & Support

Install Task Forest

skills CLI
$ npx skills add dongshuyan/compass-skills --skill task-forest -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install dongshuyan/compass-skills task-forest --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/dongshuyan/compass-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/task-forest .claude/skills/task-forest && rm -rf skills-src

Use ~/.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/

Facts

Skill name
task-forest
GitHub stars
751
Token cost
~1.6k tokens
SKILL.md length
715 words
Files
14 (incl. scripts, references, assets)
Skills in repo
9
Repo updated
First seen
Licence
MIT

At a glance

Maintains a repo-local task forest or task DAG for the current workspace.

  • Works in 8 steps: Read and write task-forest data only… → Use one primary child_of parent per… → Save graph changes as a proposal and… → …
  • The user asks to initialize
  • SKILL.md covers Purpose, Portability, Core Rules and Main Workflow, plus 3 more sections
  • Runs Python scripts from its folder; calls python3

What it does

Task Forest is an agent skill from dongshuyan/compass-skills. Maintains a repo-local task forest or task DAG for the current workspace. Use when the user asks to initialize or update a task forest, close a session, summarize evolving project work, align a request with a global goal, track progress/history/deviations/todos, save or apply a task proposal, or export the client-readable task-forest HTML. Do not use for executing the tracked tasks themselves or for generic HTML work.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 17 other files, including scripts, reference files and assets (for example `agents/openai.yaml`, `references/concurrency.md` and `references/goal-alignment.md`).

It sits in Sales & Support. It works with Python. The repository describes itself as: 司南:个性化 AI 任务总控 Skills 系统 /COMPASS: Personal Alignment Skills OS for AI Agents. The licence is MIT.

When your agent uses it

  • The user asks to initialize
  • Update a task forest
  • Close a session
  • Summarize evolving project work

Example prompts

  • “Use the task-forest skill to maintain a repo-local task forest or task DAG for the current workspace”
  • “/task-forest”

Requirements

  • Python 3

Workflow steps

8 steps, taken from the first numbered list in SKILL.md.

  1. Read and write task-forest data only through scripts/task_forest.py; never hand-edit .agent-workbench/task-forest/ canonical files.
  2. Use one primary child_of parent per node, contributes_to for secondary ownership, and depends_on for prerequisites.
  3. Save graph changes as a proposal and wait for user confirmation before proposal-apply --yes.
  4. Keep low-confidence inference in a question or proposal. Record material execution drift as a deviation.
  5. Write visible task titles and purposes in plain language. A reader must understand what the task delivers, why it exists, and what has…
  6. Export one HTML surface: exports/task-forest.html. It shows done, in_progress, and their necessary child_of ancestors, with history…
  7. Keep HTML interactions read-only. Formal changes always return through the proposal workflow.
  8. Keep task data and discovery metadata repo-local by default. Cross-workspace discovery is optional: enable it only after the user…

What it can do on your machine

Read from SKILL.md and the folder at commit 1b2e556. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships 4 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Task Forest loads about 1.6k tokens when it runs, and up to ~11k if it reads all its reference files. Until then it costs about 108 tokens; SKILL.md has 715 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~108
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~11k

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.

Safety

Auto-check passed

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); the scripts in this folder are not scanned.

SKILL.md

The full file from dongshuyan/compass-skills at commit 1b2e556, republished under its MIT licence (© dongshuyan). 715 words, ~1,612 tokens.

Download SKILL.mdSave it as .claude/skills/task-forest/SKILL.md (or your agent's skills folder). This skill also uses 13 other files; get the full folder from GitHub.
name
task-forest
description
Maintains a repo-local task forest or task DAG for the current workspace. Use when the user asks to initialize or update a task forest, close a session, summarize evolving project work, align a request with a global goal, track progress/history/deviations/todos, save or apply a task proposal, or export the client-readable task-forest HTML. Do not use for executing the tracked tasks themselves or for generic HTML work.

Task Forest

Purpose

Maintain the current workspace's task structure, proposals, history, and progress. Produce one standalone HTML deliverable that a first-time reader can understand without opening another task list or internal file.

Use the user's language for task content, proposals, reports, and HTML. Default to Chinese when unknown.

Portability

This skill is agent-agnostic. Install the whole task-forest directory in any host-supported skill location, then resolve scripts, references, and assets from the directory containing this SKILL.md. Do not assume a specific agent name, skill root, home-directory layout, shell, path separator, or operating system.

Use an available Python 3 launcher on the host (python3, python, or py -3). The scripts use the Python standard library and support macOS, Linux, and Windows. To label task history with the calling agent, set COMPASS_AGENT_NAME or AGENT_NAME, or pass --actor; otherwise the neutral value agent is used.

Core Rules

  1. Read and write task-forest data only through scripts/task_forest.py; never hand-edit .agent-workbench/task-forest/ canonical files.
  2. Use one primary child_of parent per node, contributes_to for secondary ownership, and depends_on for prerequisites.
  3. Save graph changes as a proposal and wait for user confirmation before proposal-apply --yes.
  4. Keep low-confidence inference in a question or proposal. Record material execution drift as a deviation.
  5. Write visible task titles and purposes in plain language. A reader must understand what the task delivers, why it exists, and what has been completed without knowing internal codes such as P04 or reading another file.
  6. Export one HTML surface: exports/task-forest.html. It shows done, in_progress, and their necessary child_of ancestors, with history playback. Do not expose internal discussions, evidence, queues, filesystem paths, sessions, or proposal content in the HTML.
  7. Keep HTML interactions read-only. Formal changes always return through the proposal workflow.
  8. Keep task data and discovery metadata repo-local by default. Cross-workspace discovery is optional: enable it only after the user explicitly opts in by setting TASK_FOREST_ENABLE_GLOBAL_REGISTRY=1. This writes lightweight workspace paths and health summaries to AGENT_WORKBENCH_DB, or to ~/.agent-workbench/agent-workbench.sqlite3 when that variable is unset; it never stores task content.
Show full SKILL.md (378 more words)Show less

Main Workflow

When initializing, updating, or closing a session:

  1. Run init.
  2. Read list --json and todo --json.
  3. Identify the global goal served by the session and the task structure that must remain visible.
  4. When the workspace has an authoritative task list, preserve its meaningful goal -> phase -> module -> concrete task hierarchy and sibling order for every done or in_progress task. Include necessary ancestors, omit wholly unstarted branches, and attach extra fixes under the feature they improve. Never collapse several phases into one node or rely on edge creation order. If one sibling needs display_order, set a unique numeric value for the whole sibling group; partial, duplicate, or invalid values must fail validation.
  5. Make every visible node independently understandable. Use a clear title plus summary or purpose; add outcomes or acceptance criteria when they clarify delivery. Treat internal codes as secondary labels, not as the task name.
  6. Show and save a proposal. Do not apply it before confirmation.
  7. After confirmation, run proposal-apply --yes, validate, and export.
  8. Return the proposal path and the single HTML path.

Use $task-clarifier when user intent or the target global goal is genuinely unclear.

Commands

Resolve <skill-dir> from this file and use an available Python 3 executable. The examples use python3; substitute the host's available launcher when needed.

bash
python3 <skill-dir>/scripts/task_forest.py init
python3 <skill-dir>/scripts/task_forest.py list --json
python3 <skill-dir>/scripts/task_forest.py todo --json
python3 <skill-dir>/scripts/task_forest.py proposal-save --proposal-file /path/to/proposal.json
python3 <skill-dir>/scripts/task_forest.py proposal-apply <proposal-id> --yes
python3 <skill-dir>/scripts/task_forest.py validate
python3 <skill-dir>/scripts/task_forest.py export

The default workspace is the current directory. Use --workspace only when another workspace is explicit. Use --root only when the caller explicitly selected a non-default task-forest root.

Global registry integration is off by default. TASK_FOREST_DISABLE_GLOBAL_REGISTRY=1 remains an explicit override when a host sets the enable flag globally.

Outputs

The user-facing artifacts are:

text
proposals/<proposal_id>.json
exports/task-forest.html

The exporter also maintains three internal compatibility files for gap-router and local-agent-control-room:

text
exports/task-forest.graph.json
exports/task-forest.todos.json
exports/task-forest.timeline.json

Do not present those JSON files as delivery artifacts unless the user explicitly asks for machine-readable data.

References and Validation

  • Read references/schema.md for node fields, proposal actions, and canonical invariants.
  • Read references/goal-alignment.md only when judging global-goal fit or competing candidate plans.
  • Read references/node-types.md only when node classification is unclear.
  • Read references/concurrency.md before resolving stale proposals or concurrent writes.
  • Read references/html-visualization-contract.md when changing or validating the HTML.
  • Read references/integration-contract.md only when changing JSON or registry compatibility.

For HTML or exporter changes, run:

bash
python3 <skill-dir>/scripts/validate_task_forest_export.py --skill-dir <skill-dir>

The HTML remains a derived, read-only view. Canonical task data and proposal history stay repo-local.

© dongshuyan, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 13 other files (scripts, references, assets) in skills/task-forest of dongshuyan/compass-skills.

  • SKILL.md
  • agents/openai.yaml
  • assets/task-forest-overview.html
  • references/concurrency.md
  • references/goal-alignment.md
  • references/html-visualization-contract.md
  • references/integration-contract.md
  • references/node-types.md
  • references/schema.md
  • references/session-close-workflow.md
  • scripts/task_forest.py
  • scripts/task_forest_html.py
  • scripts/task_forest_ordering.py
  • scripts/validate_task_forest_export.py

Open the folder on GitHubat commit 1b2e556

Compare with similar skills

Task Forest 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.

Task Forest compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Task Forest this skilldongshuyan/compass-skills751—~1.6kAutomated safety check: PassMIT
Pytdbotpytdbot/client137—~4.3kAutomated safety check: PassMIT
Setupterranc/claude-telegram-bot-bridge134—~1.5kAutomated safety check: NotesNone
Taobao Keyword Searchbrowser-act/skills6.1k1 repos~1.6kAutomated safety check: PassMIT
Taobao Shop Catalogbrowser-act/skills6.1k1 repos~1.4kAutomated safety check: PassMIT
Ecommerce Seller Infobrowser-act/skills6.1k—~1.2kAutomated safety check: PassMIT

Similar skills

  • Pytdbot

    pytdbot/client

    Write Telegram bots and userbots with Pytdbot (async TDLib wrapper with high-level helpers; not the Telegram Bot API).

    137 GitHub stars~4.3k tokensUpdated 10 days ago
    Productivity & AutomationAuto-check passed
  • Setup

    terranc/claude-telegram-bot-bridge

    Install and configure the Telegram Skill Bot. An agent skill from terranc/claude-telegram-bot-bridge.

    134 GitHub stars~1.5k tokensUpdated 4 mo ago
    Productivity & AutomationAuto-check: notes
  • Taobao Keyword Search

    browser-act/skills

    Search Taobao and Tmall product listings by keyword, returning paginated product cards with title, price, shop, image, sales, and tags.

    6.1k GitHub starsUsed in 1 repo~1.6k tokens
    Sales & SupportAuto-check passed
  • Taobao Shop Catalog

    browser-act/skills

    Browse a Taobao or Tmall shop's product catalog by shopId, returning paginated product listings with itemId and title.

    6.1k GitHub starsUsed in 1 repo~1.4k tokens
    Sales & SupportAuto-check passed
  • Ecommerce Seller Info

    browser-act/skills

    Extract seller or merchant profile data from marketplace platform seller pages.

    6.1k GitHub stars~1.2k tokensUpdated 1 mo ago
    Sales & SupportAuto-check passed
  • Etsy Shop Catalog

    browser-act/skills

    Etsy shop catalog scraper: given an Etsy shop URL (e.g. An agent skill from browser-act/skills.

    6.1k GitHub stars~1.9k tokensUpdated 1 mo ago
    Sales & SupportAuto-check passed

More from dongshuyan/compass-skills

All 9 skills in this repo
  • Run History Skill Builder

    dongshuyan/compass-skills

    Turn a completed task, browser flow, artifact pipeline, failure-recovery trace, or repeatedly refined workflow into a new reusable skill package or a reviewed skill-design plan.

    751 GitHub stars~1.8k tokensUpdated 1 mo ago
    Auto-check passed
  • Run History Skill Upgrader

    dongshuyan/compass-skills

    Use real run evidence, validation failures, source drift, platform drift, and user feedback to plan and, only after explicit approval, apply structural upgrades to an existing skill.

    751 GitHub stars~1.7k tokensUpdated 1 mo ago
    Auto-check passed
  • Session Handoff Prompt

    dongshuyan/compass-skills

    Create a concise continuation prompt that a fresh agent session can paste in to resume a long or degraded session.

    751 GitHub stars~1.7k tokensUpdated 1 mo ago
    Auto-check passed
  • User Profile Keeper

    dongshuyan/compass-skills

    Local user-profile maintenance skill for Codex, Claude Code, OpenClaw, OpenCode, and other agent harnesses.

    751 GitHub stars~2.4k tokensUpdated 1 mo ago
    Auto-check passed
  • Assess Interview Candidate

    dongshuyan/compass-skills

    根据候选人简历与岗位要求生成可审计的后台评估、简明的候选人介绍、按岗位重要性排列的简历疑点、12–18 道可直接照读的面试题,以及支持重点标记和本机保存的离线 HTML。用于招聘方准备结构化面试、核验岗位能力和记录回答。不要用于求职者模拟面试、私人背景调查、心理或人格诊断、从敏感属性推断表现,或自动录用、淘汰、排序候选人。

    751 GitHub stars~2.2k tokensUpdated 1 mo ago
    Auto-check passed
  • Academic Humanizer

    dongshuyan/compass-skills

    Draft, audit, or minimally revise English- or Chinese-language academic prose to reduce formulaic, vacuous, mechanically repetitive, or process-leaking language while preserving claims, evidence…

    751 GitHub stars~4.2k tokensUpdated 1 mo ago
    Auto-check passed

Works with

Questions about Task Forest

What does Task Forest do?

Maintains a repo-local task forest or task DAG for the current workspace. Task Forest is an agent skill from dongshuyan/compass-skills. Maintains a repo-local task forest or task DAG for the current workspace.

When should I use Task Forest?

Task Forest fits situations like: the user asks to initialize; update a task forest; close a session; summarize evolving project work.

How do I install Task Forest in Claude Code?

Run `npx skills add dongshuyan/compass-skills --skill task-forest -a claude-code`. Or copy the skill folder (skills/task-forest in dongshuyan/compass-skills) into .claude/skills/task-forest in your project. Claude Code loads it when a task matches its description.

How do I install Task Forest in Codex?

Run `npx skills add dongshuyan/compass-skills --skill task-forest -a codex`. Or copy the skill folder (skills/task-forest in dongshuyan/compass-skills) into .agents/skills/task-forest in your project. Codex loads it when a task matches its description.

Can I use Task Forest in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add dongshuyan/compass-skills --skill task-forest -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/task-forest, .gemini/skills/task-forest, .github/skills/task-forest and .opencode/skills/task-forest in your project.

What does Task Forest need to run?

Going by SKILL.md and its folder, Task Forest needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does Task Forest access the network?

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.

Is Task Forest safe to install?

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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Task Forest use?

Task Forest is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Task Forest use?

About 1.6k tokens (SKILL.md is roughly 6.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 9k tokens, read only when the agent opens those files.

What are the alternatives to Task Forest?

Skills that share tags, products or a category with Task Forest: Pytdbot (pytdbot/client, 137 stars), Setup (terranc/claude-telegram-bot-bridge, 134 stars), Taobao Keyword Search (browser-act/skills, 6.1k stars) and Taobao Shop Catalog (browser-act/skills, 6.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Task Forest?

dongshuyan (a GitHub user) maintains it in dongshuyan/compass-skills, which has 751 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on August 26, 2026.

Source: dongshuyan/compass-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.