silo-docs-sync
GitHub规范 @silo-code/sdk 公共符号变更时的文档同步流程,涵盖 TSDoc 编写、标签分类、Barrel 导出、手动页面创建及 TypeDoc 生成,确保代码与 API 参考文档一致。
Trigger Scenarios
Install
npx skills add silo-code/silo --skill silo-docs-sync -g -y
SKILL.md
Frontmatter
{
"name": "silo-docs-sync",
"description": "Use when adding or changing any public @silo-code\/sdk symbol — a new ctx method, exported type, or field — or when editing the project positioning \/ Context7 index. Covers the docs-in-sync workflow (TSDoc, @public\/@internal + @category tags, barrel re-export, hand-authored ctx member page, pnpm docs:api, roadmap flip) and how apps\/docs is indexed by Context7."
}
Keep docs in sync AS YOU BUILD
The API reference is generated from the source, so documentation is not a separate chore — it's part of changing the code. Whenever you touch the public extension surface, do the documentation in the same change.
The public surface is the @silo-code/sdk barrel packages/sdk/src/index.ts
and everything it re-exports (types.ts + the *-service.ts type contracts +
context-keys.ts, all under packages/sdk/src/).
The docs site has two layers (see apps/docs/):
- Hand-authored, member-centric pages — the navigable narrative organized by
what you do with
ctx:apps/docs/api/index.md(overview + shape diagram), then one subdirectory perctxdomain (apps/docs/api/registration/,apps/docs/api/editors/,apps/docs/api/state/,apps/docs/api/storage/,apps/docs/api/other/, …), one page perctxmember. TheapiSidebarinapps/docs/.vitepress/config.tsis the source of truth for the current set of domains. - Generated type leaves — TypeDoc renders the SDK types into
apps/docs/api/types/(drill-down targets, linked from the member pages).
When you add or change a public symbol (a new ctx method, a new type, a new
field):
- Write TSDoc on it — a summary plus per-member docs. Use
{@link Other}to cross-reference. Mandatory: every exported public symbol must be documented. - Tag it. Add exactly one of
@public/@internal, and a@category(one of:Extension Contract,Registration,Consumer Services,Core Types).@internalkeeps host-only exports out of the reference. - If it's a genuinely public type, re-export it from
packages/sdk/src/index.ts(the barrel is the declared surface; if it's not in the barrel, it's not public). - If you added a
ctxmember, add its hand-authored page underapps/docs/api/<domain>/<name>.md(copy an existing one for the shape: blurb → signature → example → type links → see-also) and add it to theapiSidebarinapps/docs/.vitepress/config.ts. Link it from the overview table inapps/docs/api/index.md. - Regenerate the type reference:
pnpm docs:api(writesapps/docs/api/types/, committed so growth shows in diffs). - Update the guides in
apps/docs/guide/if the change is user-facing. Guides link to member pages (/api/registration/...) and types (/api/types/...). - Flip its status on the Roadmap from
plannedtostable(the<Badge>). The roadmap is the source of truth for what's real.
Docs-driven development: the public Roadmap (apps/docs/roadmap.md) is the
source of truth for what's real; design decisions live as ADRs (docs/decisions/)
and proposals (docs/proposals/). Design a new primitive by adding it to the
roadmap as planned (with its sketched surface) first, then implement it and
flip it to stable. The roadmap going all-green on core = the inflection point
where new features become extensions, not core changes.
When you expand ExtensionContext (ctx) — the main ongoing work — that is
exactly the moment to do all of the above. A documented ctx surface is both
the invariant #4 burn-down and the docs site growing. They are the same act.
External docs indexing (Context7)
apps/docs is indexed by Context7 (library ID
/silo-code/silo) so coding agents can pull Silo's docs directly. What gets
indexed and how the project is described there is controlled by the root
context7.json — keep its description in sync with README.md /
apps/docs/index.md, and keep AGENTS.md's opening + docs/domain-language.md
aligned with that same positioning (do not reintroduce older taglines). The
context7-refresh job in .github/workflows/docs.yml re-triggers indexing on
every push to main.
Version History
- 95dfc72 Current 2026-08-27 21:32


