RoJLD/repo-template

GitHub: RoJLD/repo-template

一套基于 Tier 分级与 Addon 插件包组合模式的实战型项目仓库骨架模板,让不同规模和类型的项目按需生成恰到好处的目录结构与治理文件。

Stars: 0 | Forks: 0

# 仓库模板 — Robin 的独断项目骨架 一套从真实的 Robin Denis 项目中提取的、经过实战检验的项目结构 (`Tools/hmm_studio`,`Experiment.Crypto.2026S1.RobinDenis`,`gitnexus`, `plane`)。这不是“Gemini 最佳实践清单”——这是在 2024 年到 2026 年间的多个独立/协作项目中真正奏效的经验。 ## 理念 **组合,而不是照搬。** 一个原型不应该背负 CODEOWNERS + SECURITY.md 的繁文缛节;而一个发布的开源(OSS)库则需要它们。一个 web 服务需要 Docker + 启动脚本;而一个纯库则不需要。该模板提供了两个正交的调节维度: - **Tier (1 / 2 / 3)** — 线性的规范度成熟度(包含多少流程/治理/文档记录)。 - **Addons** — 你可以自由搭配的正交能力包 (`ml`、`web`、`academic`、`devcontainer`、`supply-chain`、`infra`)。 一个真实的项目会选择一个 tier,**以及**零个或多个 addons。为了使操作 更加便捷,最常见的组合已被预配置为命名的 **recipes**。 ``` project = tier (1|2|3) + addons[*] ``` ## Tiers — 规范度维度 | Tier | 适用场景 | 增加的内容 | |---|---|---| | **1 — Prototype** | 一次性的实验,生命周期 < 1 周 | README、.gitignore、src/、tests/、LICENSE — 无 CHANGELOG、ADR、spec、validation、notes | | **2 — Tool**(默认) | 可能会扩展的个人项目,私有仓库 | + CHANGELOG、ADR、spec、roadmap、`validation/`、`notes/`、CONTRIBUTING | | **3 — OSS** | 公开面向用户,多名贡献者 | + CODE_OF_CONDUCT、SECURITY、CODEOWNERS、CITATION.cff | Tiers 是**单调递增的**:tier 3 ⊃ tier 2 ⊃ tier 1。 ## Addons — 能力维度 | Addon | 添加场景 | 增加的内容 | |---|---|---| | **`ml`** | Notebook、gallery、可复现的实验 | `notebooks/`、`examples/`、`binder/`(mybinder.org 配置)、`pyproject.toml [dev]` 中的 Jupyter 依赖 | | **`web`** | 包含 UI / API / DB 的服务 | `Dockerfile`、`docker-compose.yml`、`start.ps1` / `start.bat`、`stop.ps1` / `stop.bat`、`.dockerignore` | | **`academic`** | 文档网站 + 论文引用 | `mkdocs.yml`(material 主题)、`docs/papers/`、`CITATION.cff`、用于部署到 gh-pages 的 GH Action | | **`devcontainer`** | 零摩擦的协作者上手(Codespaces / VS Code Remote) | `.devcontainer/devcontainer.json` + Dockerfile + postCreate 脚本 | | **`supply-chain`** | OSS 规范管理:SBOM + 依赖更新 + scorecard | SBOM 工作流(CycloneDX)、Dependabot 配置、OpenSSF Scorecard 工作流 | | **`infra`** | 项目包含 Terraform / k8s / CloudFormation | Checkov IaC 扫描工作流、`infra/` 目录布局、`.gitignore.infra` | | **`code-intel`** | 与 Claude / Cursor 结对编程的项目,需要 code graph | GitNexus MCP 配置:ADR、`AGENTS.md` + `CLAUDE.md` 块、`make reindex` 目标、被忽略的 `.gitnexus/`、domain + policy 模板 | Addons 是**相互独立的** — 添加 `web` 不会强制要求 `devcontainer`, 添加 `ml` 不会强制要求 `academic`。它们会以非破坏性的方式合并到 tier 骨架中。 ## Recipes — 预先配置的组合 8 种最常见的项目配置已在 `recipes/*.json` 中预先命名,因此 你不必记住组合方式: | Recipe | Tier | Addons | 示例 | |---|---|---|---| | `prototype` | 1 | — | 一次性的实验 | | `private-tool` | 2 | — | 默认的个人工具 | | `ai-pair-programming` | 2 | `code-intel`、`devcontainer` | 为 Claude 结对编程优化的个人项目 | | `ml-research` | 2 | `ml`、`academic`、`code-intel` | hmm_studio 核心,加密实验 | | `web-service` | 2 | `web`、`devcontainer` | gitnexus,hmm_studio web 层 | | `oss-library` | 3 | `supply-chain` | 类似于 plane 的公开库 | | `academic-library` | 3 | `academic`、`supply-chain` | 可引用的 Python 包 | | `full-stack-research` | 3 | `ml`、`academic`、`web`、`devcontainer`、`supply-chain`、`code-intel` | hmm_studio(代表作) | | `cloud-deployment` | 2 | `web`、`devcontainer`、`infra`、`supply-chain` | 使用 Terraform 部署的 SaaS | 完整表格请参见 [recipes/README.md](recipes/README.md)。 ## 决策树 ``` Is this a one-shot script / experiment ? ├── YES → recipe: prototype └── NO ↓ Will external people see this code ? ├── NO ↓ │ ├── notebooks / models / experiments → ml-research │ ├── web service / UI / API → web-service │ ├── cloud-hosted with IaC → cloud-deployment │ └── everything else → private-tool │ └── YES ↓ ├── library on PyPI → oss-library ├── citable academic library → academic-library └── full research project (notebooks + UI) → full-stack-research ``` 如果有疑问:从 `private-tool` 开始,然后根据出现的需求添加 addons。 ## 如何使用 ``` # 发现可用内容 .\bootstrap.ps1 -List # 使用 recipe 进行 One-shot(简单路径) .\bootstrap.ps1 ` -Name "my-engine" -Title "My Engine" ` -Description "HMM toolkit." ` -Recipe "ml-research" # 或者手动 compose .\bootstrap.ps1 ` -Name "my-lib" -Title "My Lib" ` -Description "Public lib." ` -Tier 3 -Addons "supply-chain,academic" # 根据现有项目的声明对其进行 Audit .\validate.ps1 -Path "..\my-engine" # (自动加载 .repo-template-answers.json —— 无需重新声明 recipe) # 稍后为现有项目添加 capability .\add-addon.ps1 -Path "..\my-tool" -Addons "code-intel" ``` 手动操作步骤和占位符速查表请参见 [BOOTSTRAP.md](BOOTSTRAP.md)。 ## 三个脚本,一个工作流 | 脚本 | 作用 | 灵感来源于 | |---|---|---| | `bootstrap.ps1` | 从 recipe 或 tier+addons 创建新项目 | cookiecutter / copier | | `validate.ps1` | 审计现有项目;带编号的检查(RT001 / ML002 / ...) | scientific-python 的 sp-repo-review | | `add-addon.ps1` | 向已初始化的项目添加能力包 | Nx 生成器 | Bootstrap 会向每个项目写入 `.repo-template-answers.json`(copier 惯例)。`validate.ps1` 读取该文件以确定要检查的内容;`add-addon.ps1` 则会读取并更新它。 ## 开箱即用的内容 ``` repo-template/ ├── README.md # This file — philosophy + tiers + addons + recipes ├── BOOTSTRAP.md # Concrete "create new project" guide ├── PATTERNS.md # Field guide — when to apply each pattern ├── bootstrap.ps1 # Create a new project ├── validate.ps1 # Audit an existing project (numbered checks) ├── add-addon.ps1 # Add a capability pack to an existing project ├── template/ # Tier-1+2 base skeleton (incl. AGENTS.md / CLAUDE.md / GEMINI.md / CODEX.md) ├── tier-3-additions/ # Layered on top when -Tier 3 ├── addons/ │ ├── ml/ # Notebooks + Binder gallery │ ├── web/ # Docker compose + start/stop scripts │ ├── academic/ # mkdocs + papers + GH Pages deploy │ ├── devcontainer/ # VS Code / Codespaces dev environment │ ├── supply-chain/ # SBOM + Dependabot + OpenSSF Scorecard │ ├── infra/ # Checkov IaC scanning + infra/ layout │ └── code-intel/ # GitNexus MCP wiring (ADR + AGENTS/CLAUDE blocks + reindex) ├── recipes/ # Pre-baked tier+addon JSON profiles └── .github/workflows/ # CI : matrix bootstrap test for every recipe ``` ## 沿革 — 塑造该模板的来源 | 源项目 | 贡献的模式 | |---|---| | `Tools/hmm_studio` | 带有 revisit-if 的 ADR、标有日期的 spec(`YYYY-MM-DD-phase-X-name`)、作为活战略文档的 roadmap、独立于 `tests/` 的 `validation/`、Keep-a-Changelog 风格的 CHANGELOG、CITATION.cff、ml + academic addons | | `Experiment.Crypto.2026S1.RobinDenis` | 被 gitignore 的 `notes/` 实验记录本(cahier de laboratoire)、`experiments/`、`configs/`、Makefile 单行命令、ml addon | | `gitnexus` | INVENTORY.md(供 AI agent 阅读的代码库概述)、位于根目录的 ROADMAP.md、web addon(Docker compose + 启动脚本) | | `plane` | Tier-3 OSS 补充内容:CODEOWNERS、CODE_OF_CONDUCT、SECURITY、CONTRIBUTING | | **以上四个项目** | `AGENTS.md` + `CLAUDE.md` AI agent 上下文 | ## 为什么这比扁平的清单更好 最初的 Gemini“最佳实践”清单把所有东西都倒进了一堆里: SBOM、IaC 扫描、DevContainers、CODE_OF_CONDUCT、ADR、 spec、CITATION、validation、notes... 如果一开始就全做完, 在写下第一行真正的代码之前,就会面临 20 个文件的繁文缛节 — 而且其中大部分并不适用于*你的*项目。 可组合的模型是这样的:tier 处理流程成熟度(1/2/3), addon 处理特定领域(web / ml / academic / IaC)。选择适合你情况的部分。
标签:AI合规, Libemu, SOC Prime, 开发工具, 开发规范, 版权保护, 脚手架, 请求拦截, 项目模板, 项目结构