Wayfinder
bestofjs/bestofjs
Plan a huge chunk of work — more than one agent session can hold — as a shared map of decision tickets on your issue tracker, and resolve them one at a time until the way to the destination is clear.
把单个 agent session 装不下的一大块工作规划成 issue tracker 上的 decision tickets shared map,并逐一解决,直到通往 destination 的路清晰。
$ npx skills add vinvcn/mattpocock-skills-zh-CN --skill wayfinder -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install vinvcn/mattpocock-skills-zh-CN wayfinder --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/vinvcn/mattpocock-skills-zh-CN.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/engineering/wayfinder .claude/skills/wayfinder && rm -rf skills-srcUse ~/.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/
Install the "wayfinder" agent skill from https://github.com/vinvcn/mattpocock-skills-zh-CN/tree/main/skills/engineering/wayfinder into .claude/skills/wayfinder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wayfinder", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/vinvcn/mattpocock-skills-zh-CN/tree/main/skills/engineering/wayfinderType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add vinvcn/mattpocock-skills-zh-CN --skill wayfinder -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install vinvcn/mattpocock-skills-zh-CN wayfinder --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vinvcn/mattpocock-skills-zh-CN.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/engineering/wayfinder .agents/skills/wayfinder && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "wayfinder" agent skill from https://github.com/vinvcn/mattpocock-skills-zh-CN/tree/main/skills/engineering/wayfinder into .agents/skills/wayfinder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wayfinder", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add vinvcn/mattpocock-skills-zh-CN --skill wayfinder -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install vinvcn/mattpocock-skills-zh-CN wayfinder --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vinvcn/mattpocock-skills-zh-CN.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/engineering/wayfinder .cursor/skills/wayfinder && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "wayfinder" agent skill from https://github.com/vinvcn/mattpocock-skills-zh-CN/tree/main/skills/engineering/wayfinder into .cursor/skills/wayfinder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wayfinder", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/vinvcn/mattpocock-skills-zh-CN.git --path skills/engineering/wayfinder--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add vinvcn/mattpocock-skills-zh-CN --skill wayfinder -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install vinvcn/mattpocock-skills-zh-CN wayfinder --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vinvcn/mattpocock-skills-zh-CN.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/engineering/wayfinder .gemini/skills/wayfinder && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "wayfinder" agent skill from https://github.com/vinvcn/mattpocock-skills-zh-CN/tree/main/skills/engineering/wayfinder into .gemini/skills/wayfinder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wayfinder", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install vinvcn/mattpocock-skills-zh-CN wayfinderInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add vinvcn/mattpocock-skills-zh-CN --skill wayfinder -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/vinvcn/mattpocock-skills-zh-CN.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/engineering/wayfinder .github/skills/wayfinder && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "wayfinder" agent skill from https://github.com/vinvcn/mattpocock-skills-zh-CN/tree/main/skills/engineering/wayfinder into .github/skills/wayfinder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wayfinder", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add vinvcn/mattpocock-skills-zh-CN --skill wayfinder -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install vinvcn/mattpocock-skills-zh-CN wayfinder --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vinvcn/mattpocock-skills-zh-CN.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/engineering/wayfinder .opencode/skills/wayfinder && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "wayfinder" agent skill from https://github.com/vinvcn/mattpocock-skills-zh-CN/tree/main/skills/engineering/wayfinder into .opencode/skills/wayfinder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wayfinder", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
wayfinder把单个 agent session 装不下的一大块工作规划成 issue tracker 上的 decision tickets shared map,并逐一解决,直到通往 destination 的路清晰。
Wayfinder is an agent skill from vinvcn/mattpocock-skills-zh-CN. 把单个 agent session 装不下的一大块工作规划成 issue tracker 上的 decision tickets shared map,并逐一解决,直到通往 destination 的路清晰。
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).
It sits in Development, covering Issue triage. The repository describes itself as: 这是 mattpocock/skills 的简体中文本地化版本。 The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit bf98e53. It shows what the files ask for, not the result of running them.
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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Wayfinder loads about 1.8k tokens when it runs. Until then it costs about 29 tokens; SKILL.md has 697 words of instructions outside code blocks.
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.
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); files beside SKILL.md are not scanned.
The full file from vinvcn/mattpocock-skills-zh-CN at commit bf98e53, republished under its MIT licence (© vinvcn). 697 words, ~1,843 tokens.
.claude/skills/wayfinder/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.一个松散想法出现了:它太大,单个 agent session 装不下,而且被 fog 包围;从这里到 destination 的路还看不见。Wayfinding 的目标是找到这条路,而不是朝 destination 猛冲。这个 skill 会把路径绘制成 repo issue tracker 上的 shared map,然后逐个处理 decision tickets(它们承载需要决策才能解决的问题,而不是要执行的 build slices),直到路线清晰。
不同 effort 的 destination 不同,而为它命名是 charting 的第一个动作;它塑造每个 ticket。它可能是一份要 hand off 并迭代的 spec、一个必须在 planning 前确定的 decision,或 data-structure migration 之类原地完成的 change。Map 与领域无关:engineering work、course content,或任何符合这个形状的事项都可以。
Wayfinder 默认用于 planning:每个 ticket 解决一个 decision;当别人动手前已经没有任何事情需要决定、路径完全清晰时,map 才算完成。想直接做工作的冲动通常表示你已经到达 map 边缘,该 hand off 了。Effort 可以在 Notes 中覆盖这个默认值,把 execution 纳入 map;否则只产出 decisions,不产出 deliverables。
每张 map 和每个 ticket 都是 issue,因此都有一个 name:它的 title。在所有给人看的内容里,包括叙述和 map 的 Decisions-so-far,都用 name 引用它,不要只写裸 id、number 或 slug。一堵 #42, #43, #44 很难读;name 一眼就能看懂。Id 和 URL 不会消失,它们被包在 name 的 link 里面,但不单独替代 name。
Map 是这个 repo issue tracker 上一个带 wayfinder:map label 的单独 issue,是 canonical artifact。它的 tickets 是 map 的 child issues。
Map 是 index,不是 store。它列出已经做出的 decisions,并指向保存细节的 tickets;一个 decision 只存在一个地方,也就是它的 ticket。因此 map 不复述细节,只给 gist 和 link。
Map、child tickets、blocking 和 frontier queries 的物理表达方式取决于 tracker。 Issue tracker 应该已经提供;如果没有,请让用户运行 /setup-matt-pocock-skills。查阅 tracker doc 的「Wayfinding 操作」小节,了解这个 repo 如何表达它们。如果没有 tracker,默认使用 local-markdown tracker。
Map 是低分辨率的全局视图,每个 session 加载一次。Open tickets 不列在里面;它们是 open child issues,通过 query 找到。
## Destination
<what reaching the end of this map looks like: the spec, decision, or change this effort is finding its way to. One or two lines; every session orients to it before choosing a ticket.>
## Notes
<domain; skills every session should consult; standing preferences for this effort>
## Decisions so far
<!-- the index: one line per closed ticket, enough to judge relevance, then zoom the link for the detail the ticket holds -->
- [<closed ticket title>](link): <one-line gist of the answer>
## Not yet specified
<!-- see "Fog of war": in-scope fog you can't ticket yet; graduates as the frontier advances -->
## Out of scope
<!-- see "Out of scope": work ruled beyond the destination; closed, never graduates -->每个 ticket 都是 map 的 child issue;tracker 的 issue id 是它的 identity。Body 是一个问题,大小控制在一个 100K token agent session 内:
## Question
<the decision or investigation this ticket resolves>每个 ticket 带一个 wayfinder:<type> label,取值为 research、prototype、grilling、task(见 Ticket Types)。
Session claim ticket 的方式,是在任何工作开始前先把 ticket assign 给 driving map 的 dev,这样并发的 sessions 就会跳过它。这个 assignee 就是 claim:open 且 unassigned 的 ticket 才是 unclaimed。
Blocking 使用 tracker 的 native dependency relationship;这很重要,因为 tracker UI 会可视化 frontier,人类不用打开 map 也能看到哪些 ticket 可拿。只有 tracker 没有 native blocking 时,才退回 body convention。一个 ticket 的所有 blockers 都关闭后,它就是 unblocked;frontier 是 open、unblocked、unclaimed 的 children,也就是已知世界的边缘。
答案不写进 body,而是在 resolution 时记录(见 Work through the map)。解决 ticket 时产生的 assets 从 issue 链接出去,不粘贴进 body。
每个 ticket 都是 HITL(human in the loop,与能代表自己发言的人类一起处理)或 AFK(agent 独立驱动)。HITL ticket 只能通过 live exchange 解决;agent 绝不能替人类回答。一旦 grilling agent 自问自答,它就已经坏了。
research 的 subagent 解决。当需要当前 working directory 外的知识时使用。prototype 写 UI/logic code。Prototype 作为 asset 链接。当核心问题是 "how should it look" 或 "how should it behave" 时使用。grilling 和 domain-modeling。Map 是 有意 不完整的:不要描绘你还看不见的东西。Tickets 之外是 fog:那些你能感觉到以后会来的 decisions 和 investigations,但它们悬在仍未解决的问题之上,暂时还无法钉住。解决一个 ticket 会清掉它前方的一片 fog,把现在已经能说明的问题升级成新的 tickets;一次一个,直到通向目标的路清楚且没有 tickets 剩下。
Map 的 Not yet specified section 用来记录这种朦胧视野:怀疑中的问题、之后要回访的区域。这里是通往 destination、尚未探索的 frontier;所有内容都在 scope 内,只是还不够清晰,无法成为 ticket。可以按视野允许的粗细来写;它也是协作者阅读这个 effort 走向时的路标。
Fog or ticket? 测试标准是你现在能不能把问题说清楚,而不是现在能不能回答它。
Not yet specified 排除已经决定的内容(Decisions so far)、已经是 live ticket 的内容,以及 out of scope 的内容(下一节)。
Fog 只会聚集在通往 destination 的方向。Destination 固定 scope,因此超出它的工作是 out of scope,不是 fog,也不属于 Not yet specified。它写进 map 单独的 Out of scope section:你有意识地排除在这个 effort 之外的工作。决定它属于这里的是 scope,而不是 sharpness。
Out-of-scope work 永远不会 graduate;frontier 会停在 destination。只有重画 destination 时它才会回来,而且应成为新的 effort,不是 resumption。
把某事排除出 scope 是 scoping act,不是 route 上的一步。如果已有 ticket 被发现位于 destination 之外(charting 时被错误地划入 scope,或被某次 resolution 暴露),应 close it(closed ticket 明确不在 frontier 上),并在 Out of scope section 中留一行:gist 加上它为何 out of scope,并链接到 closed ticket。不要把它放进 Decisions so far;后者只记录真正走过的路线,scope 边界不是路线上的一步。
两种模式。无论哪种,每个 session 绝不要 resolve 超过一个 ticket,research tickets 除外。
用户带着松散想法调用。
grilling 和 domain-modeling,确定 map 要找到的 spec、decision 或 change。Destination 固定 scope,所以先解决它。wayfinder:map):填好 Destination 和 Notes,Decisions-so-far 为空,把 fog 勾勒进 Not yet specified。research ticket,并行启动一个调用 Skill 工具并指定 research 的 subagent 解决它;findings 保存在一次性的 research/<name> branch,并从 ticket 留下 context pointer。用户用 map(URL 或 number)调用。Ticket 是 optional;没有 ticket 时,你选择下一个 decision,而不是用户选择。
## Notes block 提到的 skills。不确定时调用两次 Skill 工具,分别指定 grilling 和 domain-modeling。用户可能并行运行 unblocked tickets,所以要预期其他 sessions 同时编辑 tracker。
© vinvcn, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/engineering/wayfinder of vinvcn/mattpocock-skills-zh-CN.
Open the folder on GitHubat commit bf98e53
Wayfinder 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Wayfinder this skillvinvcn/mattpocock-skills-zh-CN | 4.7k | — | ~1.8k | Automated safety check: Pass | MIT | |
| Wayfinderbestofjs/bestofjs | 3.1k | 21 repos | ~2.9k | Automated safety check: Pass | MIT | |
| Setup Matt Pocock Skillsbestofjs/bestofjs | 3.1k | 20 repos | ~1.7k | Automated safety check: Pass | MIT | |
| Windows App SDK Issue Triage Reportmicrosoft/WindowsAppSDK | 4.7k | — | ~3.4k | Automated safety check: Pass | Apache-2.0 | |
| Exposed Bug Fix WorkflowJetBrains/Exposed | 9.3k | — | ~3.8k | Automated safety check: Pass | Apache-2.0 | |
| Archify Reviewtt-a1i/archify | 82k | — | ~415 | Automated safety check: Pass | MIT |
bestofjs/bestofjs
Plan a huge chunk of work — more than one agent session can hold — as a shared map of decision tickets on your issue tracker, and resolve them one at a time until the way to the destination is clear.
bestofjs/bestofjs
Configure this repo for the engineering skills — set up its issue tracker, triage label vocabulary, and domain doc layout.
microsoft/WindowsAppSDK
Generates GitHub Feature Area Status reports for the Windows App SDK repository, scoring issues so teams can see what needs attention in each area.
JetBrains/Exposed
Takes a GitHub or YouTrack issue for the Exposed project through reproduction, a failing test, a fix, validation and a pull request.
tt-a1i/archify
Review Archify issues, PRs, or code through value, cost, and impact to support evidence-based maintenance decisions. Use for issue triage, change reviews, and…
symfony/symfony
Decide whether open Bug PRs target the correct branch. An agent skill from symfony/symfony.
vinvcn/mattpocock-skills-zh-CN
设置 Claude Code hooks,在危险 git commands(push、reset --hard、clean、branch -D 等)执行前阻止它们。适用于用户想防止破坏性 git 操作、添加 git safety hooks,或在 Claude Code 中阻止 git push/reset 时。
vinvcn/mattpocock-skills-zh-CN
用于设计深模块的共享词汇。适用于用户想设计或改进模块接口、寻找深化机会、决定 seam 放在哪里、让代码更容易测试或更适合 AI 导航,或其他技能需要深模块词汇时。
vinvcn/mattpocock-skills-zh-CN
面向棘手缺陷和性能回退的诊断循环。适用于用户说 “diagnose” / “debug this”,或报告某些东西 broken、throwing、failing、slow 时。
vinvcn/mattpocock-skills-zh-CN
构建并打磨项目的领域模型。适用于讨论 codebase 术语、编写或编辑 GLOSSARY.md,或记录或编辑 ADR。
vinvcn/mattpocock-skills-zh-CN
将测试文件从 as 类型断言迁移到 @total-typescript/shoehorn。适用于用户提到 shoehorn、想替换测试中的 as,或需要局部测试数据时。
vinvcn/mattpocock-skills-zh-CN
用于撰写 PR 正文。适用于用户要求起草、改写或改进 PR 正文,或希望 PR 更便于审阅时. An agent skill from vinvcn/mattpocock-skills-zh-CN.
Categories
把单个 agent session 装不下的一大块工作规划成 issue tracker 上的 decision tickets shared map,并逐一解决,直到通往 destination 的路清晰。. Wayfinder is an agent skill from vinvcn/mattpocock-skills-zh-CN.
Wayfinder fits situations like: tasks that involve Issue triage.
Run `npx skills add vinvcn/mattpocock-skills-zh-CN --skill wayfinder -a claude-code`. Or copy the skill folder (skills/engineering/wayfinder in vinvcn/mattpocock-skills-zh-CN) into .claude/skills/wayfinder in your project. Claude Code loads it when a task matches its description.
Run `npx skills add vinvcn/mattpocock-skills-zh-CN --skill wayfinder -a codex`. Or copy the skill folder (skills/engineering/wayfinder in vinvcn/mattpocock-skills-zh-CN) into .agents/skills/wayfinder in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add vinvcn/mattpocock-skills-zh-CN --skill wayfinder -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/wayfinder, .gemini/skills/wayfinder, .github/skills/wayfinder and .opencode/skills/wayfinder in your project.
SKILL.md names no scripts, command-line tools or credentials: Wayfinder is instructions for the agent only.
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.
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. Review the folder before installing.
Wayfinder is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Wayfinder: Wayfinder (bestofjs/bestofjs, 3.1k stars), Setup Matt Pocock Skills (bestofjs/bestofjs, 3.1k stars), Windows App SDK Issue Triage Report (microsoft/WindowsAppSDK, 4.7k stars) and Exposed Bug Fix Workflow (JetBrains/Exposed, 9.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
vinvcn (a GitHub user) maintains it in vinvcn/mattpocock-skills-zh-CN, which has 4,712 GitHub stars. The repository holds 32 skills in this directory. The repository was last updated on October 8, 2026.
Source: vinvcn/mattpocock-skills-zh-CN on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.