Style Playbook Skills
Style Playbook Skills 是 Ivan style playbook 的 source-of-truth 仓库:它保存人工维护的 project snapshots、Topic packages、六个 global group Skills,以及用于浏览、筛选和触发生成任务的本地 library site。
- Rust web service
- React app
- TypeScript web
- System design docs
- Quality gates
- SQLite
- Markdown style
- Manual version release delivery
目录
技术栈
运行与交付
- CI 工作流
- pages.yml
- 能力标记
- cargo_toml
- github_actions
配置与质量
- 配置文件
- .gitignore
- Cargo.toml
其他信息
- Cargo
- Deps main
- anyhow
- axum
- base64
- chacha20poly1305
{
"cargo": {
"deps_main": [
"anyhow",
"axum",
"base64",
"chacha20poly1305",
"chrono",
"clap",
"ipnet",
"regex",
"reqwest",
"serde",
"serde_json",
"sqlx",
"thiserror",
"tokio",
"tower",
"tower-http",
"tracing",
"tracing-subscriber",
"uuid",
"walkdir"
]
},
"ci_workflows": [
"pages.yml"
],
"configs_root": [
".gitignore",
"Cargo.toml"
],
"markers_present": [
"cargo_toml",
"github_actions"
]
}Purpose
Style Playbook Skills 是 Ivan style playbook 的 source-of-truth 仓库:它保存人工维护的 project snapshots、Topic packages、六个 global group Skills,以及用于浏览、筛选和触发生成任务的本地 library site。这个仓库不是普通文档站,而是“项目记忆 + Topic taxonomy + 机器索引 + Agent 分发面”的组合系统。README.md、config/style-playbook-groups.yaml 与 skills/style-playbook-write/SKILL.md 共同定义了写入 contract。
Taxonomy
- Tags: Rust web service, React app, TypeScript web, System design docs, Quality gates, SQLite, Markdown style, Manual version release delivery
- Why / evidence: 这些 tags 来自 checked-out repo 和 catalog record。主要证据包括
README.md、Cargo.toml、migrations/、src/read_model.rs、src/codex.rs、src/db.rs、web/、skills/style-playbook-write/SKILL.md。Topic token 的大小写以对应技术/工作流的官方写法为准;slug 只作为稳定 ID,不直接充当项目标题。
Repository map
skills/style-playbook/references/projects/是人工 project memory;每个 snapshot 要能让后续 Agent 恢复项目目的、边界、运行方式、质量门禁和可复用决策。skills/style-playbook/references/topics/<slug>/是 Topic package 真相源,package-localassets/与TOPIC.md一起维护;tools/topic_skill_manager.py根据 typed routing metadata 编译六个 global group Skills。skills/style-playbook-write/scripts/catalog.py维护references/data/**、候选报告、topic reports 和 audit;脚本只维护机器索引,不应替代人工 Markdown。src/是 Rust/Axum 读模型和本地站点后端;web/是 React/Vite UI;migrations/保存 SQLite schema,用于 generation run 与站点状态。
Runtime and delivery
本地站点由 Rust binary 承载,Cargo.toml 依赖 axum、sqlx、tokio、tower-http、walkdir 等服务层组件;migrations/ 与 src/db.rs 说明 generation history 和站点状态使用 SQLite。前端属于嵌入式管理 UI,web/ 提供 React/TypeScript surface,最终由服务端读模型消费 skills/style-playbook/references/**。公开/内部读模型由 .github/workflows/ci-pr.yml 与 .github/workflows/ci-main.yml 构建检查,.github/workflows/release.yml 只通过单一 target dispatch 负责发布资产;字段变化必须考虑站点、skill 和 data JSON 三个消费面。
Architecture notes
核心边界是“人工 Markdown 是知识、JSON 是索引、group Skill 是分发”。src/read_model.rs 解析 project snapshot 与 Topic package 的 typed frontmatter/sections,处理 display name、visibility、categories 和 routing。src/codex.rs 只生成 Codex launch prompt,并在成功后触发 sync-insights / rebuild-topics,不能把生成后的文本当作不可审查产物。catalog.py discover-topic-candidates 用 deterministic signals 补漏,但候选只能作为复核入口,不能替代 Topic package 本体。
Workflow and quality gates
基础门禁包括 catalog.py sync-insights、catalog.py rebuild-topics、catalog.py discover-topic-candidates --fail、catalog.py audit --fail、tools/topic_skill_manager.py build-fingerprints、static Release Contract Gate、Python tests、Rust tests、TypeScript typecheck 和 web build。Release 另外验证 trusted final baseline、固定 source、tag/Release/artifact identity、镜像 digest、实际 public export 和 manifest v1;本项目不创建 GitHub ref reservation 或 completion record。因为这个仓库本身决定后续 Agent 如何命名 Project/Topic,生成 prompt 与 audit 规则要一起验证。
Markdown 使用原生 dprint 与官方插件,通过 dprint.json 指定自然段单行与中文软换行合并。tools/markdown.py 提供 setup/check/fix/staged;lefthook.yml 在提交前只修复暂存 Markdown,并使用原生部分暂存恢复机制。PR/main CI 使用同一工具清单与配置执行检查;生成模板保持合规,格式基线独立于功能改动(skills/policies/markdown-style/、.github/workflows/ci-pr.yml、.github/workflows/ci-main.yml)。
Reusable decisions
- Project title 使用人类 display name,slug 只做稳定 ID;
blog-26这类仓库不能直接显示成@owner/repo。 - Topic token 命名复用工程模式,并保留对应生态的官方大小写。
- Topic package 使用
<slug>/TOPIC.md,路由只允许配置文件登记的六个 global group;普通 Topic 不生成 leaf Skill。 - 候选发现只给证据驱动建议;真正提升为 Topic 仍要写
Definition、When to use和Habits / defaults。 - Markdown 样式规则由自包含 Policy 分发;提供方直接复用源包,其他项目明确安装与接入。正文自然段一行,代码/语法结构保留,hook 自动修复与 CI 只读检查使用同一固定工具清单。
- 发布入口采用一个
target字段:常规值是主人选择的下一版意图patch、minor或major,完整版本只作为主人明确指定的例外;版本数字由执行端 policy 依据 trusted final baseline 解析,不由 PR label、文件名或主人每次手填。 - Release unit 由最后一个已完成 final source(不含)到 dispatch 固定
github.sha(含)组成;tag、GitHub Release、镜像 digest 和公开资产必须绑定同一 source identity,项目不创建 reservation/completion refs,也不持久化 per-PR release evidence。 - SemVer compatibility classification 是可选的独立治理,不参与本项目的 target selection、release eligibility 或 durable release state;本项目不安装或调用 per-PR impact record / aggregation route。
Risks and open questions
- 最大风险是“索引刷新”被误认为“知识刷新”;Project/Topic Markdown 没有变时,站点只是换了数据壳。
- UI、Docker、SQLite 这类信号必须区分强弱,否则会把候选 Topic 变成噪音。
- 私有仓库 visibility 与公开导出要保持 fail-closed,不能因为 display metadata 暴露 checkout path。
- 真实 GitHub branch protection/ruleset API 不属于本项目 release identity 的额外存储合同;发布仍必须通过既有 branch、CI、签名和公开面门禁。
Evidence index
README.mdCargo.tomlmigrations/src/read_model.rssrc/codex.rssrc/db.rsweb/skills/style-playbook-write/SKILL.mdtools/topic_skill_manager.py.github/workflows/ci-pr.yml.github/workflows/ci-main.yml.github/workflows/release.yml.github/release-contract.jsontools/manual_release.pydocs/adr/0007-manual-release-intent.mddocs/specs/manual-version-release-delivery/SPEC.mddprint.jsonlefthook.ymltools/markdown.py
相关内容
Dockerized dev
主题Dockerized dev 标记 Dockerfile、Compose 或 container build 是本地开发、集成验证或部署交付的一等路径。它不表示“仓库里偶然有 Dockerfile”,而是 Docker 影响运行环境、数据卷、端口、build args、嵌入式前端产物或 release artifact。
Manual version release delivery
主题Manual version release delivery 是一种可复用的发布交付合同:维护者显式选择或确认一次 release target,系统再用可插拔的 Version Policy 校验版本、绑定 source identity、完成 reservation、经过 PR 与质量门禁、创建显式 Release,并让部署与 recovery 复用该 identity 下对应的不可变产物。
Markdown style
主题Markdown style 定义 Markdown 源文件的正文排版、格式化和 Git 自动修复惯例。默认每个自然段保持一行,使用 Markdown 语法表达必要的结构;软换行由官方 formatter 合并,显式硬换行保留语义。它提供可重复的源文件样式,而不是要求作者按固定字符数拆分内容(dprint.json、docs/specs/markdown-style/SPEC.md)。
Persistent-state migrations
主题Persistent-state migrations 是主人确认的 house policy,管理 durable state 在程序版本之间的迁移、兼容性、rollout、验证与恢复。durable state 是程序写入后会被同一程序或后续程序版本继续读取的状态,不限于关系数据库:文件、对象、消息、设备配置、嵌入式存储或其他跨版本数据都在范围内。
Quality gates
主题Quality gates 表示仓库把“什么叫可以合并、什么叫可以发布”写成了显式、可审计的契约,并通过本地脚本、CI workflows、review/signature policy、GitHub required checks 或同类机制把它执行出来。它关注的是 gate contract,而不是某一门具体技术。 这个 Topic 用来回答“仓库怎样防止低质量或不完整的改动穿过默认分支”。
React app
主题React app 标记 React 是主要用户界面、管理台、控制台或嵌入式操作面 runtime。这里关心的是 route、component tree、client state、表单流、dashboard 交互和前端构建后的真实运行边界,而不是“项目依赖里有 React”。 这个 Topic 用来回答“用户实际操作的是不是一个 React runtime,以及它在系统里承担什么职责”。
README content contract
主题README content contract 是面向项目入口文档的可审查规范:README 先让目标读者理解产品、边界和下一步,再提供可复现的 Quick Start、集成 contract、交付语义、文档真相源、许可证入口、有限产品 preview,以及有来源的 Logo 和 Badge 入口。
Rust web service
主题Rust web service 表示 Rust binary 承担长期运行的服务职责:提供 HTTP API、proxy、SSE、docs/data service、admin backend 或 ops daemon,并对外暴露稳定的网络、存储和部署边界。这里的关键词不是“Rust”,而是“服务进程”。 这个 Topic 不只是“语言是 Rust”。
SQLite
主题SQLite 表示项目把 SQLite 作为默认持久层、ledger、audit log、content/settings store 或低运维 embedded database,并围绕它建立路径、schema、迁移、volume、备份和运行时 ownership 约定。它不是“依赖树里有 sqlite”这么宽,而是数据库文件本身已经成为系统 contract 的一部分。
Storybook component QA
主题Storybook component QA 表示仓库把 Storybook 当作组件级文档、状态枚举、视觉检查或 interaction smoke 的稳定入口。它不等同于 Storybook accessibility:只有项目明确引入 a11y addon 或等价 Axe sweep 时,才同时打 accessibility Topic。这个拆分用于避免“只要有 Storybook 就叫 a11y”的误判。
System design docs
主题System design docs 指仓库把系统级设计文档本身当成长期真相源,而不是把关键决策散落在 PR 讨论、Issue 评论或脑内记忆里。这里的“系统设计”不只指架构图,也包括硬件行为文档、质量门禁、控制面边界、设计取舍和后续实现必须服从的 current truth(projects/mains-aegis.md、projects/style-playbook-skills.md)。
TypeScript web
主题TypeScript web 表示项目把 TypeScript 作为一个或多个 Web surface 的主语言,并围绕它建立 workspace scripts、typecheck、bundler、lint/format、env contract 和前端构建门禁。这里的主语不是“仓库里出现了 .ts 文件”,而是 TypeScript 已经决定了维护者怎样启动、构建、校验和交付实际 Web surface。