Communitygithub.com

bbulman/sitemaps

用于在需要确定网站、应用或文档集结构时使用,包括站点地图、站点树、页面层级或章节列表的制定。

sitemaps 是什么?

该技能主要用于网站或应用的信息架构决策阶段,帮助确定内容的结构、层级关系和页面归属。它基于一套明确的方法论,从分析现有结构、评估内容规模、确认用户任务开始,逐步生成建议的站点树。该技能支持多种平台(如Claude Code、Coder、Codex),并强调通过`tree-check.mjs`脚本自动验证站点树的深度、广度、重复标签等指标。最终产出为`sitemap-tree.txt`和`sitemap.md`,其中包含推荐方案、选项对比、假设条件和验证建议。它特别指出站点地图只是装饰,需要与URL规则、导航规范、内容模型和重定向计划配合才能真正可用。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/bbulman/information-architecture-skill/tree/HEAD/skills/sitemaps

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

站点地图(Sitemaps)

站点地图决定了哪些内容存在、每个内容位于何处,以及用户与内容之间有多少决策步骤。菜单、URL、模板和重定向都源于这一决策,因此错误的树结构会拖累所有下游环节。

首先需要什么

输入来源若缺失如何处理
当前结构在代码库中,首先阅读路由、导航组件、sitemap.xml、CMS模式和分类表。永远不要仅从首页开始重新设计。请求提供URL列表或导出。若无可读内容,将树标记为“空白草案”。
内容规模(当前及两年后)统计每个章节的项目数量。空的或超载的章节视为发现项。请求提供粗略数字。若无法获取,则展示每种可能规模对应的形状。
受众与核心任务用户、分析工具、搜索日志、支持团队频繁回答的问题询问,或在其交付物顶部写明假设。
组织发展方向用户询问。模糊的简报会产生模糊的树结构。

若具有内容文件夹:先全面调查整个集合,再进行分组,然后反馈内容是什么、似乎为谁服务,以便用户纠正。若为数据库或动态CMS:先导出标题、类型、标签和日期。若为PDF等二进制文件:转换为文本并说明转换质量。若为非常大的集合:按类型调查,每种类型内抽样,并说明抽样内容。

若以上信息均无法获取,说明需要什么,并在references/tree-format.md中提供树格式,同时为该类站点建议节点类型。

方法

  1. 绘制现有结构。 当前树、每个章节的项目数及其问题:重叠、空章节、孤立项、按部门归档的内容。

  2. 评估规模。 使用两年后的总量,而非当前量。

    项目数结构
    50以下扁平,1至2级
    50至5002至3级
    500至50003至4级,加上分面
    5000以上浏览、搜索和分面结合
  3. 根据内容选择形状,绝不要根据组织架构图。

    内容形状代价
    少数几个不同的产品/服务,约50页以下中心辐射型: 几个宽而浅的章节,每个从首页点击一次即可到达。营销站点默认选择。首页负责所有路由。增长空间小,后续需重新裁剪。
    真正分类性的,如大型目录或按行业划分深层层级每级增加一次点击并降低一点线索。一个错误的早期猜测会让人迷失方向。
    大多扁平,但有1-2个密集区域(如文档或资料库)混合型: 上层为中心辐射型,这些章节内采用较窄的层级。大型站点的常见答案。需要构建并解释两种导航模型。
    用户可多角度切分的项,或即将超出单一列表的类别分面型: 独立的维度组合为过滤器每个项目需要干净的元数据,且有人维护。
  4. 起草两到三个备选方案,沿不同轴线切分(按任务、按受众、按内容类型),而非同一想法的三个版本。对每个方案说明为谁服务、代价是什么以及何处会吃力。推荐一个并说明理由。单一答案会掩盖决策过程。

  5. 给每个项目一个规范归宿。 它可以从别处链接,但只能位于一个地方,即人们预期的位置。两个归宿会分散搜索结果、链接和维护。

    项目似乎属于两个位置决策
    少量真正跨切分的项一个归宿,从其他位置交叉链接
    许多项目属于多个位置树切分错了轴。使用分面。
    无法判断用户会去哪里找选择最可能的归宿,并标记为待树测试
  6. 注释每个节点。 每个节点都有一个模板类型;没有模板的节点通常意味着想法未完成。标记新建、移动和废弃节点。对重复页面使用模式节点如/guides/<slug>,并在有分面和项目的节点上放置facets:和items:。

  7. 施加压力测试。 内容增加十倍后,某个章节是否会变成无人能扫描的列表?现在立即设计子章节或分面。树是否服务于更大的上下文(产品或业务)?是否任何章节映射到部门而非任务?每层级超过9项或深度超过4层需要理由,而“三击规则如此说”不是理由,因为该规则是神话:只要每一步都清晰指向用户目标,用户会继续点击。当深度和广度存在争议,或审查他人树时,阅读references/depth-and-shape.md。

交付物

编写sitemap-tree.txt,仅包含提议的树结构,因为检查脚本会读取它:

/                          home
├── /guides                section-hub   items: 40
│   └── /guides/<slug>     guide
├── /products              listing       items: 120  facets: use, price
│   └── /products/<slug>   product
├── /pricing               marketing     (new)
└── /about                 marketing     (moved from /company)

然后编写sitemap.md,按以下顺序:

  1. 推荐: 两到三句话及主要原因。
  2. 现有结构: 当前树及其问题,附带统计。
  3. 选项: 每个结构一行,列包括:组织依据、服务对象、代价、何时吃力。
  4. 提议树: 在代码块中提供sitemap-tree.txt的精确文本。
  5. 放置: 项目、归宿、备注。仅在询问具体放置时提供。
  6. 假设与待定问题: 所有猜测的内容,尤其是受众和方向。
  7. 验证方法: 风险最高的放置项,交给树测试。

适度缩放。对于一个12页的网站,只需推荐、树和三行选项表。更长的文档并不代表更详尽。如果要求放置每个项目,则每个项目都要有归宿:为不合适的项提供最不坏的归宿,标记它,并单独论证应移动、合并或废弃。

检查

node "${CLAUDE_SKILL_DIR}/scripts/tree-check.mjs" sitemap-tree.txt

它将报告每个分支的深度和广度、出现两次的标签、没有模板的节点、Other或Misc节点以及每个章节的项目数。使用其结果,而非个人对树的判断。退出码1表示警告:修复每个警告,或在sitemap.md中写一行说明为何该例外成立。当树没有计数时,传入--items N。

然后手动:重新核对放置项与总数是否一致,追踪任何关于路径长度的声明在树中的实际路径,确认sitemap.md中的代码块与文件匹配。

Claude在此处不能做的事情

  • 除非被告知,否则无法知道组织的战略或政治。树是一个供反馈的草案,决策权属于人类。
  • 不能编造流量、使用量或研究。包括以事实陈述的频率词,如“每天使用”。应写上“可能”并列为假设。
  • 不能对真实用户进行树测试或卡片分类。可以设计它们,并分析用户带回的结果。
  • 不能承诺CMS能做到什么。只能说明预期功能,如嵌套路由或分面过滤,并请用户确认,因为平台支持情况各异。

交接点

仅站点地图本身只是装饰:没有URL规则、导航规范、内容模型以及重建时的重定向计划,任何人都无法据此进行构建。

  • information-architecture:当任务涉及多个此类功能时的总入口。
  • content-inventory:当没人知道现有内容时。card-sort:当分组应来自用户时。
  • taxonomies:当树需要设计分面或标签时。labeling:用于命名节点。
  • navigation、url-structure和content-models:将节点转化为菜单、地址和模板。
  • redirect-maps:当任何内容移动时。
  • tree-tests:在构建前验证树。findability:构建后测量可发现性。
  • design-os:create-sitemap:将确定的树编写为后续设计阶段读取的链接文件。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

bbulman/findability

Use when people can't find something, when site search returns nothing or the wrong thing, when someone wants a search log analysed, best bets or synonyms set up, a no-results page designed or findability measured, or when a chatbot is proposed because "nobody can find anything". Not for redrawing the whole page tree, renaming a menu on its own, or running a tree test.

bbulman/information-architecture

Use when someone wants to organize, restructure or review how a site, app, docs set, knowledge base or content library is grouped and found, and the job spans several pieces or it isn't yet clear which piece is needed, even if they never say "information architecture" or "IA". Not for a job that is clearly one piece, such as only a tree test or only a redirect map, and not for visual design.

bbulman/labeling

Use when someone needs to name or rename a section, menu item, tab, category, feature or link, when labels feel vague or read like internal jargon, or when they ask "what should we call this", "is this label clear", "nobody knows what Resources means" or "people don't understand this menu". Not for deciding the structure behind the labels, building a tag vocabulary, or writing body copy and microcopy.

bbulman/navigation

Use when someone wants a navigation or menu designed, audited or cut down, including a main menu, nav bar, sidebar, app switcher, mega-menu, footer, breadcrumbs, tab bar or mobile menu, or says "there are too many items in the menu", "rethink the sidebar", "our nav is a mess" or "where should settings go". Not for deciding which pages exist, for wording a single label, for fixing site search, or for running a tree test.

相关技能