Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add yunshu0909/yunshu_skillshub --skill project-map-buildergit clone --depth 1 https://github.com/yunshu0909/yunshu_skillshubWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/yunshu0909/yunshu_skillshub/project-map-builder)<a href="https://agentmods.dev/skills/yunshu0909/yunshu_skillshub/project-map-builder"><img src="https://agentmods.dev/badge/skills/yunshu0909/yunshu_skillshub/project-map-builder/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/yunshu0909/yunshu_skillshub/project-map-builder"><img src="https://agentmods.dev/badge/skills/yunshu0909/yunshu_skillshub/project-map-builder.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00076 | $0.00930 |
| Opus 5 | $0.00038 | $0.00465 |
| Sonnet 5 | $0.00015 | $0.00186 |
| Haiku 4.5 | $0.00008 | $0.00093 |
Grade A, and why
project-map-builder scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
项目目录地图构建器
为指定目录范围生成或增量更新高信噪比的目录说明文档。
核心规则
- 必须让用户指定要扫描的文件夹范围,禁止默认全仓库扫描。
- 若范围过大,提醒上下文风险并让用户确认或缩小范围。
- 输出语言必须与用户当前语言一致。
- 文档文件名固定:PROJECT_MAP.md。
- 若输出位置已存在 PROJECT_MAP.md,进入更新模式(仅增量更新)。
- 若不存在,进入主动引导模式(先确认范围再新建)。
输出位置规则
- 单目录:将 PROJECT_MAP.md 写在该目录根。
- 多目录:
- 先询问:生成一个合并文档,还是每个目录各生成一个。
- 合并:写到项目根目录。
- 分开:各目录根各写一份 PROJECT_MAP.md。
最少需要询问用户的问题
- 要扫描哪些文件夹?
- 如果是多个文件夹:合并成一个文档,还是分别生成多个?
- 若范围大或不明确:是否确认范围?
工作流
A) 主动引导模式(不存在 PROJECT_MAP.md)
- 确认扫描范围与输出策略。
- 快速列出指定目录的文件清单。
- 识别入口与关键文件(如 manifest、主入口、服务线程、UI、配置、存储、测试、文档)。
- 只打开“关键文件”用于解释职责与关系,避免全量读取。
- 按结构模板生成 PROJECT_MAP.md。
- 不确定处必须显式标注(如“假设”“未确认”)。
B) 更新模式(已存在 PROJECT_MAP.md)
- 读取既有 PROJECT_MAP.md。
- 仅重新扫描用户指定的目录范围。
- 结合“当前对话上下文”与文件清单差异,定位需更新的段落。
- 只做增量补丁更新,不进行全量重写。
- 添加“本次更新”小节(日期 + 范围 + 变更点)。
扫描规则
- 优先使用快速文件列表命令(如
rg --files或Get-ChildItem)。 - 不要打开所有文件,只读关键文件。
- 如需更深入的细节,先向用户确认要深入的子目录。
文档结构模板(PROJECT_MAP.md)
可按需调整,但建议包含:
- 项目概览(一句话)
- 作用范围(本次扫描的文件夹列表)
- 入口与运行链路(简化版)
- 关键配置与存储键(如适用)
- 目录与文件说明(按目录层级)
- 关键模块关系/调用链
- 风险/遗留/不确定点
- 本次更新(仅更新模式)
多目录输出规则
- 合并文档:在“作用范围”列出每个目录,并为每个目录写独立小节。
- 分开文档:每个目录只描述自身范围,不做跨目录合并。
更新模式规则(仅增量)
- 尽量保留已有结构与表述。
- 只修改与新增/删除文件或新上下文相关的部分。
- 除非明确错误,否则不删除旧内容。
- “本次更新”记录日期、范围与变更摘要。
安全与清晰性
- 无法确认的行为或规则必须标注为“假设/未确认”。
- 看似遗留的文件应标注为“可能遗留”,除非用户要求,否则不建议删除。
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 88 lines · 76 tokens per session scan A d3097b0ea14e
project-map-builder is a skill published in the GitHub repository yunshu0909/yunshu_skillshub (757 stars, last pushed 1mo ago), licensed MIT. It adds 76 tokens to every session and 930 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
insight-error-page
Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…
next-cache-components-optimizer
Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…
next-partial-prefetching-adoption
Turn on Partial Prefetching in a Next.js app and work through the insights it surfaces. Use when the user wants to enable or adopt Partial Prefetching, flip the partialPrefetching flag, opt routes in with export const prefetch = 'partial', audit Link prefetch={true} behavior, preserve existing prefetched UI with…