Not in the top 1,000 by GitHub stars
ToRvaLDz/trailhead
Chart a project from a loose idea, then navigate it ticket by ticket on GitHub Issues.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
plugins/trailhead/skills/trailhead/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
b5162162ff75 → 732fba710c13
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → b5162162ff75
No earlier version was observed for comparison.
plugins/trailhead/skills/trailhead-capture/SKILL.md
Week of Nov 2, 2026 · +2 / −4 lines
Before Not checked yet → After Network or broad shell
b5162162ff75 → 732fba710c13
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → b5162162ff75
No earlier version was observed for comparison.
plugins/trailhead/skills/trailhead-chart/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
b5162162ff75 → 732fba710c13
A local comparison is unavailable. You can inspect the recorded versions on GitHub.
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → b5162162ff75
No earlier version was observed for comparison.
plugins/trailhead/skills/trailhead-manage/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
b5162162ff75 → 732fba710c13
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → b5162162ff75
No earlier version was observed for comparison.
plugins/trailhead/skills/trailhead-view/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
b5162162ff75 → 732fba710c13
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → b5162162ff75
No earlier version was observed for comparison.
plugins/trailhead/skills/trailhead-work/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
b5162162ff75 → 732fba710c13
A local comparison is unavailable. You can inspect the recorded versions on GitHub.
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → b5162162ff75
No earlier version was observed for comparison.
Verified commit 732fba710c131260fc27d93e67e2b788826fdff7
git clone --filter=blob:none --no-checkout https://github.com/ToRvaLDz/trailhead.git .hotskills/torvaldz-trailhead && git -C .hotskills/torvaldz-trailhead checkout --detach 732fba710c131260fc27d93e67e2b788826fdff7
# Copy each selected skill directory from .hotskills/torvaldz-trailhead into .claude/skills/<skill-name>/Heat
1.6- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- trailhead
plugins/trailhead/skills/trailhead - trailhead-capture
plugins/trailhead/skills/trailhead-capture - trailhead-chart
plugins/trailhead/skills/trailhead-chart - trailhead-manage
plugins/trailhead/skills/trailhead-manage - trailhead-view
plugins/trailhead/skills/trailhead-view - trailhead-work
plugins/trailhead/skills/trailhead-work
How it works
trailhead
When your agent uses it
Start and drive a large project (more than one agent session can hold) as a map of decision tickets on GitHub Issues, resolving one at a time until the way to the destination is clear. Self-contained (zero external-plugin dependencies: trailhead ships its own `trailhead-*` engine agents and needs only an authenticated gh CLI): map-based onboarding and a discuss→plan→execute→verify engine with atomic commits, with everything (map, discussion, plan, verification) living on the Issues. Invoke only when the user explicitly runs `/trailhead` (or a `/trailhead:<verb>` command) or asks to chart, adopt, or work a trailhead map, and do not auto-invoke for generic planning, project, or task-tracking requests.
What it loads into context
Frontmatter
226 tokensAlways available to the agent
SKILL.md
1,876 tokensWhen the skill is activated
Reference documents
72,794 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Load first, in order
- Routing: verb to engine
- Smart entry (bare `/trailhead`)
Scripts executed separately
../../types/index.d.ts
Files
../../../../.claude-plugin/marketplace.jsonasset785 bytes../../.claude-plugin/plugin.jsonasset988 bytes../../hooks/hooks.jsonasset1,227 bytes../../hooks/hooks.jsonasset1,227 bytes../../hooks/hooks.jsonasset1,227 bytes../../hooks/hooks.jsonasset1,227 bytes../../hooks/hooks.jsonasset1,227 bytes../../hooks/hooks.jsonasset1,227 bytes../_shared/load-first.mddoc4,631 bytes../_shared/substrate-commands.mddoc31,677 bytes../_shared/substrate.mddoc21,060 bytes../trailhead-capture/SKILL.mddoc2,360 bytes../trailhead-capture/references/capture.mddoc14,196 bytes../trailhead-chart/SKILL.mddoc9,103 bytes../trailhead-chart/references/charting.mddoc16,393 bytes../trailhead-chart/references/inbox.mddoc7,234 bytes../trailhead-manage/SKILL.mddoc4,423 bytes../trailhead-manage/references/auditing.mddoc28,098 bytes../trailhead-manage/references/pruning.mddoc5,844 bytes../trailhead-manage/references/updating.mddoc5,506 bytes../trailhead-view/SKILL.mddoc19,338 bytes../trailhead-work/SKILL.mddoc38,313 bytes../trailhead-work/references/auto.mddoc43,907 bytes../trailhead-work/references/executor-brief.mddoc3,661 bytes../trailhead-work/references/ticket-engines.mddoc43,572 bytesSKILL.mdcore7,501 bytes../../types/index.d.tsruns6,340 bytes
Read SKILL.md
`trailhead` charts a large project as a **shared map on GitHub Issues**, then works its **tickets** one at a time until the way to the destination is clear. This skill is the **entry point**: bare `/trailhead` runs **smart entry** (detect the repo state and propose the next move); a verb runs that verb's engine. Everything lives on the Issues; the repo holds code only.
## Load first, in order
Before doing anything, load `<skill base>/../_shared/load-first.md` and follow it: the shared-core load contract (the six core files, in order, then the effective config). `<skill base>` is this skill's **base directory** (Claude Code prints it as `Base directory for this skill:` when the skill loads; on another host, the directory holding this `SKILL.md`): resolve the path to an **absolute path** and open it with the **Read tool** on that absolute path. Never `cd` into a skills directory and never read a relative path from the shell (a `cd` compound followed by a read is denied by the search guard). The same rule covers every later `../_shared/...` or `references/...` path in this skill: resolve it against the base directory to an absolute path before reading. `_shared/` is a **sibling** of this cluster's own directory (at `../_shared/`), never a child of it; its absence from a listing of the cluster dir is expected, not a missing core.
## Routing: verb to engine
The **first word** of the arguments is the verb; the rest is the text or a ticket number. `/trailhead <verb>` and `/trailhead:<verb>` are equivalent.
- **No verb** to **smart entry** (below): this skill handles it directly.
- **A verb** to hand off to the skill that owns it, passing the whole argument string. **The skill-split migration ([map #53](https://github.com/ToRvaLDz/trailhead/issues/53)) lands the cluster skills one at a time.** The **chart cluster is built (#59)**: `new`, `adopt`, `ticket`, `inbox`, and `grill` route to the **`trailhead-chart`** skill (call the Skill tool with skill name `trailhead-chart` and arguments `<verb> <rest>`). The **work cluster is built (#60)**: `work`, `quick`, `pause`, `resume`, `split`, and `auto` route to the **`trailhead-work`** skill (call the Skill tool with skill name `trailhead-work` and arguments `<verb> <rest>`). The **view cluster is built (#61)**: `map`, `dashboard`, and `whiteboard` route to the **`trailhead-view`** skill (call the Skill tool with skill name `trailhead-view` and arguments `<verb> <rest>`). The **capture cluster is built (#62)**: `bug`, `todo`, `idea`, `seed`, and `note` route to the **`trailhead-capture`** skill (call the Skill tool with skill name `trailhead-capture` and arguments `<verb> <rest>`). The **manage cluster is built (#63)**: `config`, `update`, `prune`, and `audit` route to the **`trailhead-manage`** skill (call the Skill tool with skill name `trailhead-manage` and arguments `<verb> <rest>`). The **`panel`** verb routes to no skill: it is answered by the trailhead mod on Claude Code 2.1.287+ (`/trailhead:panel` opens or closes the live map panel), and where no mod answers, say in one line that the panel is not available in this session. Then carry out the target skill's instructions.
- **Unrecognised verb** to treat the whole string as `idea` (route to `trailhead-capture` as `idea <text>`).
View the complete source on GitHubtrailhead-capture
When your agent uses it
trailhead capture cluster: the zero-friction captures that record work without breaking flow. Capture a bug ticket (bug), a small build ticket you will do now (todo), a fog idea (idea), a trigger-gated seed (seed), a verbatim note (note). A cohesion cluster of the trailhead skill split, loading the shared `_shared/` core; reached through the `/trailhead:<verb>` command wrappers and the bare `/trailhead` dispatcher. Not auto-invoked: it runs only when one of these verbs is dispatched.
What it loads into context
Frontmatter
153 tokensAlways available to the agent
SKILL.md
598 tokensWhen the skill is activated
Reference documents
6,215 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Load first, in order
- Routing: verb to engine
Files
../_shared/capture-core.mddoc10,011 bytesSKILL.mdcore2,360 bytesreferences/capture.mddoc14,196 bytes
Read SKILL.md
`trailhead-capture` is the **capture cluster** of the trailhead skill: the zero-friction captures that record work without breaking flow. `bug` captures a bug ticket; `todo` captures a small build ticket you will do now; `idea` captures a fog idea; `seed` captures a trigger-gated seed; `note` captures a verbatim note. Everything lives on the GitHub Issues; the repo holds code only.
## Load first, in order
Before doing anything, read two files, in order, and nothing else from `_shared/`: `<skill base>/../_shared/capture-core.md` (the compact capture reference: the standing rules, one lookup, the labels and create commands, the ticket body), then `<skill base>/references/capture.md`. `<skill base>` is this skill's **base directory** (Claude Code prints it as `Base directory for this skill:` when the skill loads; on another host, the directory holding this `SKILL.md`): resolve each path to an **absolute path** and open it with the **Read tool** on that absolute path. Never `cd` into a skills directory and never read a relative path from the shell (a `cd` compound followed by a read is denied by the search guard). `_shared/` is a **sibling** of this cluster's own directory (at `../_shared/`), never a child of it; its absence from a listing of the cluster dir is expected, not a missing core.
A capture writes at most one issue; no isolation workspace is set up.
## Routing: verb to engine
The **first word** of the arguments is the verb (`bug`, `todo`, `idea`, `seed`, or `note`); the rest is the text (or `--of <ticket> <text>` for `bug`).
- **`bug`** / **`todo`** / **`idea`** / **`seed`** / **`note`** to **`references/capture.md`**: the full per-verb protocol and the note/idea/seed/todo spectrum. Follow it.View the complete source on GitHubtrailhead-chart
When your agent uses it
trailhead chart cluster: the verbs that give a map its start or bring outside work into it. Chart a new map from a loose idea (new), adopt an existing codebase into a map (adopt), open a ticket of any type on the fly (ticket), triage issues opened by others into the map (inbox), and run a standalone grilling session (grill). A cohesion cluster of the trailhead skill split, loading the shared `_shared/` core; reached through the `/trailhead:<verb>` command wrappers and the bare `/trailhead` dispatcher. Not auto-invoked: it runs only when one of these verbs is dispatched.
What it loads into context
Frontmatter
182 tokensAlways available to the agent
SKILL.md
2,229 tokensWhen the skill is activated
Reference documents
37,560 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Load first, in order
- Routing: verb to engine
- Chart a new map / adopt a project: `new`, `adopt`
- Open a ticket on the fly: `ticket <type> <title>`
- Triage the inbox: `inbox [issue]`
- Standalone grill: `grill [topic|ticket]`
- First-time config offer (end of chart / adopt)
Files
../_shared/load-first.mddoc4,631 bytes../_shared/substrate-commands.mddoc31,677 bytes../_shared/substrate.mddoc21,060 bytes../_shared/techniques/domain-vocabulary.mddoc2,225 bytes../_shared/techniques/grilling.mddoc13,373 bytes../trailhead-capture/references/capture.mddoc14,196 bytesSKILL.mdcore9,103 bytesreferences/charting.mddoc16,393 bytesreferences/inbox.mddoc7,234 bytes../trailhead-work/references/ticket-engines.mddoc43,572 bytes
Read SKILL.md
`trailhead-chart` is the **chart cluster** of the trailhead skill: the verbs that give a map its start or bring outside work into it. `new` charts a new map from a loose idea; `adopt` maps an existing codebase into a map; `ticket` opens a ticket of any type on the fly; `inbox` triages issues opened by others; `grill` runs a standalone grilling session. Everything lives on the GitHub Issues; the repo holds code only.
## Load first, in order
Before doing anything, load `<skill base>/../_shared/load-first.md` and follow it: the shared-core load contract (the six core files, in order, then the effective config). `<skill base>` is this skill's **base directory** (Claude Code prints it as `Base directory for this skill:` when the skill loads; on another host, the directory holding this `SKILL.md`): resolve the path to an **absolute path** and open it with the **Read tool** on that absolute path. Never `cd` into a skills directory and never read a relative path from the shell (a `cd` compound followed by a read is denied by the search guard). The same rule covers every later `../_shared/...` or `references/...` path in this skill: resolve it against the base directory to an absolute path before reading. `_shared/` is a **sibling** of this cluster's own directory (at `../_shared/`), never a child of it; its absence from a listing of the cluster dir is expected, not a missing core.
## Routing: verb to engine
The **first word** of the arguments is the verb; the rest is the text (a loose idea, a `<type> <title>`, an issue number, or a topic).
- **`new`** / **`adopt`** to **`references/charting.md`**: how a map is born (Mode 1 and Mode 1-bis). Read that file.
- **`ticket <type> <title>`** to the **Open a ticket on the fly** engine below.
- **`inbox [issue]`** to **`references/inbox.md`**: the triage protocol. Read that file.
- **`grill [topic|ticket]`** to the **Standalone grill** engine below.View the complete source on GitHubtrailhead-manage
When your agent uses it
trailhead manage cluster: the admin verbs that keep a trailhead install healthy. Show the effective config or change it through a guided menu (config); check for a newer trailhead and install it where that is safe (update), prune a map's sub-issue edges to reclaim slots under GitHub's 100-cap (prune), and audit closed tickets for regressions against the code and the open ones for duplicates (audit). A cohesion cluster of the trailhead skill split, loading the shared `_shared/` core; reached through the `/trailhead:<verb>` command wrappers and the bare `/trailhead` dispatcher. Not auto-invoked: it runs only when one of these verbs is dispatched.
What it loads into context
Frontmatter
185 tokensAlways available to the agent
SKILL.md
1,056 tokensWhen the skill is activated
Reference documents
22,578 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Load first, in order
- Routing: verb to engine
Files
../_shared/configuration-reference.mddoc47,588 bytes../_shared/load-first.mddoc4,631 bytesSKILL.mdcore4,423 bytesSKILL.mdcore4,423 bytesreferences/auditing.mddoc28,098 bytesreferences/pruning.mddoc5,844 bytesreferences/updating.mddoc5,506 bytes
Read SKILL.md
`trailhead-manage` is the **manage cluster** of the trailhead skill: the admin verbs that keep a trailhead install healthy. `config` shows the effective config or changes it (a guided menu, or `get` / `set <key> <value>`); `update` checks for a newer trailhead and installs it where that is safe; `prune` reclaims a map's native sub-issue slots under GitHub's 100-cap; `audit` checks closed tickets for regressions against today's code and finds duplicate or groupable open ones. Everything lives on the GitHub Issues; the repo holds code only.
## Load first, in order
Before doing anything, load `<skill base>/../_shared/load-first.md` and follow it: the shared-core load contract (the six core files, in order, then the effective config). `<skill base>` is this skill's **base directory** (Claude Code prints it as `Base directory for this skill:` when the skill loads; on another host, the directory holding this `SKILL.md`): resolve the path to an **absolute path** and open it with the **Read tool** on that absolute path. Never `cd` into a skills directory and never read a relative path from the shell (a `cd` compound followed by a read is denied by the search guard). The same rule covers every later `../_shared/...` or `references/...` path in this skill: resolve it against the base directory to an absolute path before reading. `_shared/` is a **sibling** of this cluster's own directory (at `../_shared/`), never a child of it; its absence from a listing of the cluster dir is expected, not a missing core.
These admin verbs resolve no ticket and set up no isolation workspace.
## Routing: verb to engine
The **first word** of the arguments is the verb (`config`, `update`, `prune`, or `audit`); the rest is that verb's argument (`get`, `set <key> <value>`, a map, `--all`, or empty).
- **`config [get|set …]`** to **`../_shared/configuration-reference.md`**: the config keys, their semantics, and the guided menu setup. With no argument it runs the guided setup; `config get` prints the merged config read-only (project `.trailhead/config.json` over global over defaults, showing which source wins each key); `config set <key> <value>` writes one key directly (to the project `.trailhead/config.json`, or to `~/.claude/trailhead/config.json` with `--global`). Read that file and follow it.
- **`update`** to **`references/updating.md`**: the update protocol (detect the install channel, compare the installed version with the latest from the matching source, install the newer one where it is safe). Read that file and follow it.View the complete source on GitHubtrailhead-view
When your agent uses it
trailhead view cluster: the read-only renders of the trailhead surface. Show the low-res map: destination, decisions, frontier, fog (map); regenerate and show the pinned per-repo dashboard indexing every open map plus the whiteboard (dashboard); show the whiteboard of loose map-less tickets (whiteboard). A cohesion cluster of the trailhead skill split, loading the shared `_shared/` core; reached through the `/trailhead:<verb>` command wrappers. Not auto-invoked: it runs only when one of these verbs is dispatched.
What it loads into context
Frontmatter
143 tokensAlways available to the agent
SKILL.md
4,643 tokensWhen the skill is activated
Reference documents
28,438 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Load first, in order
- Routing: verb to engine
- Render the map: `map [map]`
- Render the dashboard: `dashboard`
- Render the whiteboard: `whiteboard`
Files
../_shared/load-first.mddoc4,631 bytes../_shared/multi-map.mddoc4,396 bytes../_shared/out-of-scope.mddoc5,166 bytes../_shared/substrate-commands.mddoc31,677 bytes../_shared/substrate.mddoc21,060 bytes../_shared/teamwork.mddoc49,426 bytesSKILL.mdcore19,338 bytesSKILL.mdcore19,338 bytes
Read SKILL.md
`trailhead-view` is the **view cluster** of the trailhead skill: the read-only renders of the trailhead surface. `map` renders the low-res map (destination, decisions, frontier, fog); `dashboard` regenerates and shows the pinned per-repo index of every open map plus the whiteboard; `whiteboard` renders the loose, map-less tickets. These verbs present state; they change nothing on the tracker, except: the dashboard's create-and-pin self-heal, and a user-confirmed map close (the `map` render's exhaustion check for the map it renders, and the dashboard render / self-heal advisory's offer to close any other exhausted-but-open map). Everything lives on the GitHub Issues; the repo holds code only.
## Load first, in order
Before doing anything, load `<skill base>/../_shared/load-first.md` and follow it: the shared-core load contract (the six core files, in order, then the effective config). `<skill base>` is this skill's **base directory** (Claude Code prints it as `Base directory for this skill:` when the skill loads; on another host, the directory holding this `SKILL.md`): resolve the path to an **absolute path** and open it with the **Read tool** on that absolute path. Never `cd` into a skills directory and never read a relative path from the shell (a `cd` compound followed by a read is denied by the search guard). The same rule covers every later `../_shared/...` or `references/...` path in this skill: resolve it against the base directory to an absolute path before reading. `_shared/` is a **sibling** of this cluster's own directory (at `../_shared/`), never a child of it; its absence from a listing of the cluster dir is expected, not a missing core.
These are read-only renders: no isolation workspace is set up.
## Routing: verb to engine
The **first word** of the arguments is the verb; the rest is an optional map selector.
- **`map [map]`** to the **Render the map** engine below.
- **`dashboard`** to the **Render the dashboard** engine below.View the complete source on GitHubtrailhead-work
When your agent uses it
trailhead work cluster: the verbs that resolve tickets on the map and manage a ticket's lifecycle. Work the next frontier ticket or the one you name (work), work one ticket whole without splitting, a new whiteboard ticket or an existing one (quick), checkpoint the ticket in play (pause), resume it from its checkpoint (resume), split an oversized ticket into children (split), and run a chosen scope (one map, the whiteboard, or everything) autonomously until a stop condition or exhaustion (auto). A cohesion cluster of the trailhead skill split, loading the shared `_shared/` core; reached through the `/trailhead:<verb>` command wrappers. Not auto-invoked: it runs only when one of these verbs is dispatched.
What it loads into context
Frontmatter
194 tokensAlways available to the agent
SKILL.md
9,311 tokensWhen the skill is activated
Reference documents
76,696 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Move into the handed checkout (`--in=`)
- Load first, in order
- Routing: verb to engine
- Preflight: reject a closed or missing named ticket (before anything else)
- Work the map: `work`
- Work one ticket whole, without splitting: `quick`
- Pause, resume, split
Files
../_shared/choices.mddoc13,488 bytes../_shared/configuration-reference.mddoc47,588 bytes../_shared/load-first.mddoc4,631 bytes../_shared/multi-map.mddoc4,396 bytes../_shared/out-of-scope.mddoc5,166 bytes../_shared/session-handoff.mddoc14,787 bytes../_shared/substrate-commands.mddoc31,677 bytes../_shared/substrate.mddoc21,060 bytes../_shared/surfaced-scope.mddoc3,526 bytes../_shared/teamwork.mddoc49,426 bytes../_shared/techniques/grilling.mddoc13,373 bytes../trailhead-chart/references/charting.mddoc16,393 bytesSKILL.mdcore38,313 bytesSKILL.mdcore38,313 bytesSKILL.mdcore38,313 bytesSKILL.mdcore38,313 bytesreferences/auto.mddoc43,907 bytesreferences/executor-brief.mddoc3,661 bytesreferences/ticket-engines.mddoc43,572 bytes
Read SKILL.md
`trailhead-work` is the **work cluster** of the trailhead skill: the verbs that resolve tickets and manage a ticket's lifecycle. `work` takes the next frontier ticket (or the one you name) and resolves it with its type's engine; `quick` works one ticket whole without splitting (a new whiteboard ticket from text, or an existing ticket, which stays where it is); `pause` checkpoints the ticket in play; `resume` picks it back up; `split` breaks an oversized ticket into children; `auto` runs a chosen run scope autonomously, ticket by ticket, suspending the one-ticket-per-session rule until a stop condition or exhaustion. Everything lives on the GitHub Issues; the repo holds code only.
## Move into the handed checkout (`--in=`)
The panel starts `work` and `resume` from wherever the session stands and cannot move it, so it appends the pinned checkout to the args as a last word `--in=<token>` (base64url of the checkout root, plus the repo identity when the panel knows it). When the args of `work` or `resume` end with such a word, this section runs first, before the load, the Preflight and anything else; with no such word it does not apply. `quick` never gets one.
1. Drop the `--in=<token>` word from the args: the verb, and its ticket number if any, are what is left.
2. Run `node <templates>/trailhead-checkout-in.js --in <token> --cwd "$PWD"`. `<templates>` is the first of `${CLAUDE_PLUGIN_ROOT}/templates/`, `${CLAUDE_CONFIG_DIR:-~/.claude}/trailhead/templates/`, `~/.codex/skills/trailhead/templates/` that contains the script (the same lookup as `trailhead-work-state.js`: try all three in order, skipping the first when `CLAUDE_PLUGIN_ROOT` is unset or empty). It prints one JSON line with a `status`. If the script is missing (none of the three has it: an outdated install), stop and report that the checkout could not be reached and the install needs an update: nothing is claimed, and never move by hand.
3. `invalid` -> stop and report its `reason` in one line; never move, never look for another checkout by hand.
4. `here` -> the session is already in the checkout: no move, carry on with the args from step 1.
5. `move` -> run the helper's `cd` field verbatim as its own Bash call (a lone `cd` is what moves the session; never join it to a read or another command, and never edit the quoting). A failed `cd` stops the verb with a report. Then re-run the helper with the new `$PWD` and require `here`; anything else means the session could not move: stop and report that, with nothing claimed.
6. `choose` -> the handed path is gone and several checkouts of the repo match its remote (`candidates`, each with a `kind` of `main` or `linked`). Ask with AskUserQuestion, one option per candidate path (say which is a linked worktree), never pick one by hand. Then run `cd -- '<chosen path>'` (single-quote-escaped like the helper's own `cd` field) as its own Bash call and re-run the helper with the new `$PWD` and the original `--in` token; if it does not answer `here`, stop and report that the session could not move. A failed `cd` stops the verb.
7. When the result carries `relocatedFrom` (the checkout was found again by its remote after it moved), say in one result-oriented line that the checkout moved and which one the session now works in; that line replaces the generic one of step 8.
8. After a move, say in one result-oriented line which checkout the session is now working in, then continue with **Load first** and, for an explicit ticket number, the Preflight.View the complete source on GitHubSkills included
- trailhead
- trailhead-capture
- trailhead-chart
- trailhead-manage
- trailhead-view
- trailhead-work
Repository facts
- License
- MIT
- Created
- Aug 18, 2026
- Last pushed
- Nov 5, 2026
- Forks
- 3
- Open issues
- 9
- Project activity
- Active
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 6, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 71 notes
plugins/trailhead/hooks/hooks.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/trailhead/hooks/hooks.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/trailhead/hooks/hooks.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/trailhead/hooks/hooks.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/trailhead/hooks/hooks.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/trailhead/skills/_shared/substrate.md:12Analysis incomplete: physical or joined line exceeds character limitplugins/trailhead/skills/_shared/substrate.md:13Analysis incomplete: physical or joined line exceeds character limitplugins/trailhead/skills/trailhead-chart/references/charting.md:9Analysis incomplete: physical or joined line exceeds character limitplugins/trailhead/skills/trailhead-chart/references/charting.md:10Analysis incomplete: physical or joined line exceeds character limitplugins/trailhead/skills/trailhead-chart/references/charting.md:11Analysis incomplete: physical or joined line exceeds character limitplugins/trailhead/skills/trailhead-work/SKILL.md:53Analysis incomplete: physical or joined line exceeds character limitplugins/trailhead/skills/trailhead-work/SKILL.md:54Analysis incomplete: physical or joined line exceeds character limitplugins/trailhead/skills/trailhead-work/SKILL.md:58Analysis incomplete: physical or joined line exceeds character limitplugins/trailhead/skills/trailhead-work/SKILL.md:59Analysis incomplete: physical or joined line exceeds character limitplugins/trailhead/skills/trailhead-work/SKILL.md:60Analysis incomplete: physical or joined line exceeds character limitplugins/trailhead/skills/trailhead-work/SKILL.md:65Analysis incomplete: physical or joined line exceeds character limitplugins/trailhead/skills/trailhead-work/references/auto.md:21Analysis incomplete: physical or joined line exceeds character limitplugins/trailhead/skills/trailhead-work/references/auto.md:19Analysis incomplete: physical or joined line exceeds character limitplugins/trailhead/skills/trailhead-work/references/auto.md:20Analysis incomplete: physical or joined line exceeds character limitplugins/trailhead/skills/trailhead-work/references/ticket-engines.md:34Analysis incomplete: physical or joined line exceeds character limit
- No broad tool permissions
- 4 dangerous shell commandsin 2 files: plugins/trailhead/skills/trailhead-manage/references/updating.md:13 plugins/trailhead/skills/trailhead-work/references/auto.md:29
- 21 network referencesin 4 files: .claude-plugin/marketplace.json:3 plugins/trailhead/.claude-plugin/plugin.json:5 plugins/trailhead/skills/_shared/configuration-reference.md:8 and 1 more
- No hidden or obfuscated text
- No instruction overrides
- 1 executable scriptin 1 file: plugins/trailhead/types/index.d.ts:1
- No requests to vote in Hot
Show all 35 signals by file
.claude-plugin/marketplace.json
- Network accessline 3
"owner": { "name": "Marco Migozzi", "url": "https://github.com/ToRvaLDz" - Network accessline 4
"name": "Marco Migozzi", "url": "https://github.com/ToRvaLDz" }, - Network accessline 5
"url": "https://github.com/ToRvaLDz" - Network accessline 17
"name": "Marco Migozzi" }, "homepage": "https://github.com/ToRvaLDz/trailhead", - Network accessline 18
}, "homepage": "https://github.com/ToRvaLDz/trailhead", "repository": "https://github.com/ToRvaLDz/trailhead", - Network accessline 19
"homepage": "https://github.com/ToRvaLDz/trailhead", - Network accessline 20
"repository": "https://github.com/ToRvaLDz/trailhead",
plugins/trailhead/.claude-plugin/plugin.json
- Network accessline 5
"author": { "name": "Marco Migozzi", "url": "https://github.com/ToRvaLDz" - Network accessline 6
"name": "Marco Migozzi", "url": "https://github.com/ToRvaLDz" }, - Network accessline 7
"url": "https://github.com/ToRvaLDz" - Network accessline 8
}, "homepage": "https://github.com/ToRvaLDz/trailhead", "repository": "https://github.com/ToRvaLDz/trailhead", - Network accessline 9
"homepage": "https://github.com/ToRvaLDz/trailhead", - Network accessline 10
"repository": "https://github.com/ToRvaLDz/trailhead",
plugins/trailhead/skills/_shared/configuration-reference.md
- Network accessline 8
| `models.codex.{plan,execute,research,review,debug,verify,codebase-map,grill}` | an OpenAI model id (**inherit session**) | per-activity subagent model on **Codex** (OpenAI ids), the honoured namespace there; independent of `models.*` (Cla - Network accessline 8
| `models.codex.{plan,execute,research,review,debug,verify,codebase-map,grill}` | an OpenAI model id (**inherit session**) | per-activity subagent model on **Codex** (OpenAI ids), the honoured namespace there; independent of `models.*` (Cla - Network accessline 9
| `ticket.language` | an ISO 639-1 code (**`en`**) | the language trailhead **writes** its GitHub prose in (ticket titles/bodies, engine comments, map body & commit descriptions), see note. Independent of the language the agent converses in - Network accessline 9
| `ticket.language` | an ISO 639-1 code (**`en`**) | the language trailhead **writes** its GitHub prose in (ticket titles/bodies, engine comments, map body & commit descriptions), see note. Independent of the language the agent converses in - Network accessline 10
| `design` | **`disk`** \| `artifacts` \| `stitch` | mode for UI mockups (**Prototype**). `disk` = throwaway local HTML (any host); `artifacts` = build the mockup as a **Design canvas Artifact** on claude.ai through Claude Code's built-in ` - Network accessline 10
| `design` | **`disk`** \| `artifacts` \| `stitch` | mode for UI mockups (**Prototype**). `disk` = throwaway local HTML (any host); `artifacts` = build the mockup as a **Design canvas Artifact** on claude.ai through Claude Code's built-in ` - Access to secretsline 28
[Credential-related source omitted] - Access to secretsline 28
[Credential-related source omitted]
plugins/trailhead/skills/_shared/substrate.md
plugins/trailhead/skills/trailhead-capture/references/capture.md
plugins/trailhead/skills/trailhead-manage/references/updating.md
plugins/trailhead/skills/trailhead-work/references/auto.md
plugins/trailhead/skills/trailhead/SKILL.md
- Network accessline 17
- **No verb** to **smart entry** (below): this skill handles it directly. - **A verb** to hand off to the skill that owns it, passing the whole argument string. **The skill-split migration ([map #53](https://github.com/ToRvaLDz/trailhead/is - Network accessline 18
- **A verb** to hand off to the skill that owns it, passing the whole argument string. **The skill-split migration ([map #53](https://github.com/ToRvaLDz/trailhead/issues/53)) lands the cluster skills one at a time.** The **chart cluster is
plugins/trailhead/types/index.d.ts
- Executable scriptline 1
Executable file
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 22 facts
- Network access in prose of documentationplugins/trailhead/skills/_shared/configuration-reference.md:8Low confidence
- Network access in prose of documentationplugins/trailhead/skills/_shared/configuration-reference.md:8Low confidence
- Network access in prose of documentationplugins/trailhead/skills/_shared/configuration-reference.md:9Low confidence
- Network access in prose of documentationplugins/trailhead/skills/_shared/configuration-reference.md:9Low confidence
- Network access in prose of documentationplugins/trailhead/skills/_shared/configuration-reference.md:10Low confidence
- Network access in prose of documentationplugins/trailhead/skills/_shared/configuration-reference.md:10Low confidence
- Access to secrets in prose of documentation: reads a credential storeplugins/trailhead/skills/_shared/configuration-reference.md:28Low confidence
- Access to secrets in prose of documentation: reads a credential storeplugins/trailhead/skills/_shared/configuration-reference.md:28Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueplugins/trailhead/skills/_shared/substrate.md:3Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueplugins/trailhead/skills/_shared/substrate.md:3Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueplugins/trailhead/skills/_shared/substrate.md:3Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueplugins/trailhead/skills/_shared/substrate.md:3Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueplugins/trailhead/skills/trailhead-capture/references/capture.md:41Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valuetrailhead-capture/references/capture.md:41Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueplugins/trailhead/skills/trailhead-capture/references/capture.md:41Low confidence
- Dangerous shell operation in code of documentationplugins/trailhead/skills/trailhead-manage/references/updating.md:13Low confidence
- Dangerous shell operation in code of documentationtrailhead-manage/references/updating.md:13Low confidence
- Dangerous shell operation in prose of documentationplugins/trailhead/skills/trailhead-work/references/auto.md:29Low confidence
- Dangerous shell operation in prose of documentationtrailhead-work/references/auto.md:29Low confidence
- Network access in prose of the SKILL.mdtrailhead/SKILL.md:17Low confidence
- Network access in prose of the SKILL.mdtrailhead/SKILL.md:18Low confidence
- Executable script in a comment of a file that runsplugins/trailhead/types/index.d.ts:1Low confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md plugins/trailhead/skills/trailhead/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md plugins/trailhead/skills/trailhead/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md plugins/trailhead/skills/trailhead/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md plugins/trailhead/skills/trailhead/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md plugins/trailhead/skills/trailhead/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.