关于 project-init
用于将 ML 研究项目初始化为控制根目录的工作流技能,管理彼此独立的论文、代码及可选幻灯片仓库。它指导研究团队和 Agent 规划项目结构、记忆、工作树与协作策略。
主要功能
- 01创建研究控制根目录
- 02组织独立的组件仓库
- 03初始化项目记忆
- 04定义工作树与 Git 策略
- 05配置 Agent 指引和工具链门禁
适用场景
- 01启动新的 ML 研究项目
- 02连接现有论文与代码仓库
- 03建立共享项目记忆
- 04协调跨组件实验
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ a-green-hand-jack/ ml-research-skills --skill project-init安装后在 Claude Code 中输入/project-init确认已加载。
附带文件templates/PROJECT.md
详细介绍
项目初始化工作流
将研究项目初始化为控制根目录,而不只是两个并列的仓库。
当用户想要创建一个新的机器学习研究项目,并希望 Agent 从 <ProjectName>/ 开始工作,同时让 paper/、code/ 和可选的 slides/ 保持为相互独立的组件仓库时,使用此技能。
将此技能与以下技能配合使用:
- 使用
research-project-memory初始化跨组件记忆 - 使用
init-latex-project创建论文仓库 - 使用
init-python-project创建代码仓库 - 使用
research-slide-deck-builder,通过外部progress-slides模板创建或维护可选的幻灯片仓库 - 使用
new-workspace创建代码实验工作树或论文版本工作树 - 当代码在 SSH/HPC 服务上运行时,使用
remote-project-control - 涉及 GitHub CLI、仓库远程地址或 GitHub Project API 操作时,使用
remote-project-control或safe-git-ops - 执行非简单的 Git 操作前,使用
safe-git-ops
预期项目结构
默认结构:
<ProjectName>/
├── PROJECT.md
├── AGENTS.md
├── CLAUDE.md
├── memory/
│ ├── project.yaml
│ ├── component-index.yaml
│ ├── current-status.md
│ ├── decision-log.md
│ ├── claim-board.md
│ ├── evidence-board.md
│ ├── provenance-board.md
│ ├── risk-board.md
│ ├── action-board.md
│ ├── handoff-board.md
│ ├── phase-dashboard.md
│ └── source-visibility-board.md
├── paper/ # independent LaTeX git repo
├── code/ # independent Python/ML git repo
├── code-worktrees/ # sibling worktree root for code repo branches
├── paper-worktrees/ # sibling worktree root for paper venue/arXiv/camera-ready versions
├── .uv-envs/ # ignored shared uv environments for code repo/worktrees
├── reference/ # project-local sources, cards, processing state, and project-use notes
├── slides/ # optional independent git repo
├── reviewer/ # reviewer simulation state
├── rebuttal/ # real review and response state
├── artifact/ # artifact-evaluation and release handoff state
└── docs/
├── overview.md
├── designs/
├── experiments/
├── updates/
├── audits/
└── timelines/
此结构是项目结构示意图的文本权威来源,该示意图维护在仓库 README 和 asset/project-anatomy.png 中。如果布局发生变化,请同步更新技能文本和可视化文档。
默认不要创建顶层 experiments/ 目录。实验执行、运行摘要、结果报告和原始产物指针应放在 code/ 或相关代码工作树中。
根目录下的 docs/ 仍然很有用,但它用于存放项目级文档,不能替代代码侧证据。可用它存放分阶段的方法设计、跨组件实验计划、项目概述、审计、时间线,以及用于协调 paper/、code/、slides/、评审、rebuttal 和产物工作的交接文档。
推荐的代码侧证据路径:
code/docs/results/ # stable result summaries, table notes, figure notes
code/docs/reports/ # experiment-report-writer outputs
code/docs/runs/ # run registry, job pointers, config and commit pointers
核心原则
<ProjectName>/是 Agent 控制根目录。paper/、code/和slides/是组件仓库,而非普通文件夹。code组件负责算法实现、实验执行、运行记录、结果报告、服务器执行状态和代码工作树。- 默认情况下,代码工作树不应嵌套在
code/中。请使用同级根目录code-worktrees/,以免 Git、IDE、搜索工具和 Agent 将工作树误认为普通源文件。 - 默认情况下,同一项目下的代码工作树应共用一个代码 uv 环境,例如
<ProjectName>/.uv-envs/code,通过绝对路径设置UV_PROJECT_ENVIRONMENT,并在当前活动工作树中调用uv run。只有在依赖、Python/CUDA 技术栈、破坏性软件包测试或实际并发同步风险需要时,才创建独立的阶段环境。 paper组件负责论文源文件、会议模板、投稿模式、arXiv/公开源清理、终稿修订和论文工作树。- reference 组件负责项目本地资料(论文、合作者文档、笔记、规格说明、脚本、资料包)、来源卡片、处理状态、项目使用说明和资料到项目的交接。
- 默认情况下,论文工作树不应嵌套在
paper/中。请使用同级根目录paper-worktrees/,用于会议改投、arXiv 发布、rebuttal 论文修改和终稿分支。 - 论文源文件的可见性独立于会议。如果
paper/main与 Overleaf 关联或对合作者可见,请将其视为author-visible,而非私有;不要将 Agent 私有文件放入该分支。 - 项目记忆用于存储跨组件的持久状态;根目录
docs/用于存放项目级设计和规划资料;代码文档用于存放代码侧的实现、运行和结果详情。 - 根 Git 仓库是可选的。如果启用,除非用户明确希望使用子模块,否则不要误将嵌套的组件仓库提交进去。
- GitHub Project 是可选的云端协作工具。它用于跨组件仓库跟踪面向合作者的问题、PR、阻碍事项和路线图视图;不能取代根目录
memory/、组件.agent/或仓库原生的证据文档。 - 工具链检查门槛是明确的项目策略。代码、论文、Git/GitHub、远程执行、发布和制品工作流应记录其检查命令、修改规则和时效预期,而非依赖临时的 Agent 记忆。
步骤 1 - 收集项目信息
在一条消息中询问以下信息:
- 项目名称和父目录。
- 研究摘要:方法构想、目标问题、数据集、基线、指标和当前成熟度。
- 已知的目标会议或里程碑。
- 组件选择:
- 论文仓库:新建、连接现有仓库,或暂时跳过
- 代码仓库:新建、连接现有仓库,或暂时跳过
- 幻灯片仓库:新建、连接现有仓库,或跳过
- 参考文献库:创建
reference/、连接现有 PDF/源文件目录、连接初始资料包,或跳过 - 审稿人/回复审稿意见/制品状态目录:现在创建或稍后创建
- Git 策略:
- 根控制平面 Git 仓库:是/否
- 论文/代码/幻灯片的组件远程仓库(如有)
- 组件仓库应作为子模块,还是由根 Git 忽略
- 是否现在创建 GitHub/GitLab 仓库;如果是,
gh auth status是否有效 - 是否为此研究项目创建或关联一个 GitHub Project 看板
- 是否启用默认工具链门禁:
- 代码:
uv、ruff、mypy、pytest、pre-commit - 论文:
tex-fmt、submit-paper、Overleaf/GitHub 编译证据 - 协调:
git、gh、GitHub Project/PR 检查 - 可选的规范检查:
gitleaks、shellcheck、shfmt、actionlint、nbstripout、taplo、yamllint、lychee
- 代码:
- Worktree 策略:
- 默认同级根目录:
<ProjectName>/code-worktrees/ - 默认论文同级根目录:
<ProjectName>/paper-worktrees/ - 共享代码 uv 环境路径:默认为
<ProjectName>/.uv-envs/code - 服务端 worktree 根目录(如有不同)
- 分支命名约定(如有)
- 论文源文件可见性策略:
paper/main是否链接到 Overleaf/GitHubpaper/main是author-visible还是agent-private.agent/、AGENTS/CLAUDE 指引、原始 CSV、绘图脚本和内部结果文档应放在哪里
- 默认同级根目录:
在收到用户答复之前,请勿创建文件。
步骤 2 - 创建控制根目录
创建:
<parent-dir>/<ProjectName>/
├── memory/
├── docs/overview.md
├── docs/designs/
├── docs/experiments/
├── docs/updates/
├── docs/audits/
├── docs/timelines/
├── reference/.agent/runs/
├── reference/sources/
├── reference/cards/
├── reference/project-use/
├── reference/notes/
├── reference/summaries/
├── reviewer/.agent/
├── rebuttal/.agent/
├── artifact/.agent/
├── .uv-envs/
├── code-worktrees/
└── paper-worktrees/
仅当用户希望现在添加幻灯片组件时,才创建可选的 slides/。
如果启用了根 Git,请在 <ProjectName>/ 初始化 Git,并添加根 .gitignore,忽略组件仓库和 worktree,除非用户明确要求使用子模块:
/paper/
/code/
/slides/
/.uv-envs/
/code-worktrees/
/paper-worktrees/
如果用户希望使用子模块,请有意使用子模块命令,不要依赖意外的嵌套 Git 行为。
如果用户希望在设置期间创建 GitHub/GitLab 仓库,请先检查托管平台 CLI 的身份验证状态,例如运行 gh auth status。如果身份验证失败,请完成本地工作区设置,并将创建 Git 远程仓库记录为阻塞项;不要让仓库创建失败掩盖项目初始化结果。
如果用户希望使用 GitHub Project 看板:
- 将该看板视为一个研究项目跨多个仓库进行云端协调的可选工具。
- 执行
gh project ...命令前,检查gh auth status;如果令牌缺少project权限范围,请让用户批准,或运行gh auth refresh -s project。 - 如果 Agent 运行环境无法从沙盒访问 macOS 钥匙串或 GitHub API,请将 GitHub Project 设置记录为阻塞项,而不要反复要求用户登录。
- 只有在所有者明确后,才创建或关联项目:用户账户(例如
@me/a-green-hand-jack)或组织。 - 适当时将组件仓库关联到看板,但保持根仓库和组件仓库的远程仓库相互独立。
实用 CLI 模式:
gh project create --owner <owner> --title "<ProjectName>"
gh project view <number> --owner <owner>
gh project link <number> --owner <owner> --repo <owner>/<repo>
建议字段:
Component:root、code、paper、slides、reviewer、rebuttal、artifactWorkstream:method、experiment、writing、review、release、infraStatus:Backlog、Ready、In Progress、Blocked、Review、Done、ParkedPriority:P0、P1、P2、P3Target:venue、milestone、deadline、arXiv、camera-readyClaim ID、Evidence ID、Worktree、Blocker
建议视图:Roadmap、Board、Experiments、Paper、Risks 和 Worktrees。
步骤 3 - 初始化项目记忆
使用 research-project-memory 模板或同等文件来创建:
memory/project.yamlmemory/component-index.yamlmemory/current-status.mdmemory/decision-log.mdmemory/claim-board.mdmemory/evidence-board.mdmemory/provenance-board.mdmemory/risk-board.mdmemory/action-board.mdmemory/handoff-board.mdmemory/phase-dashboard.mdmemory/source-visibility-board.md
组件索引应记录:
components:
code:
path: code
worktree_root: code-worktrees
worktree_index_path: code/.agent/worktree-index.md
shared_uv_environment: .uv-envs/code
owns:
- algorithm implementation
- experiment execution
- code-side result reports
- server execution state
paper:
path: paper
worktree_root: paper-worktrees
worktree_index_path: paper/.agent/worktree-index.md
default_visibility_tier: author-visible
source_visibility_board: memory/source-visibility-board.md
owns:
- paper claims and narrative
- figures and tables selected for submission
- venue/arXiv/camera-ready versions
- source visibility and cleanup policy
slides:
path: slides
status: optional
reviewer:
path: reviewer
rebuttal:
path: rebuttal
artifact:
path: artifact
根目录记忆应存储指向代码侧证据的引用,而不是重复详细的运行日志。
在 memory/project.yaml 中记录默认工具链门禁:
toolchain_gates:
policy: check-before-mutate
code:
environment_check: "UV_PROJECT_ENVIRONMENT=<absolute-project-root>/.uv-envs/code uv sync"
format_check: "UV_PROJECT_ENVIRONMENT=<absolute-project-root>/.uv-envs/code uv run ruff format --check src tests experiments scripts"
lint_check: "UV_PROJECT_ENVIRONMENT=<absolute-project-root>/.uv-envs/code uv run ruff check src tests experiments scripts"
type_check: "UV_PROJECT_ENVIRONMENT=<absolute-project-root>/.uv-envs/code uv run mypy src"
test_check: "UV_PROJECT_ENVIRONMENT=<absolute-project-root>/.uv-envs/code uv run pytest tests -v"
local_gate_runner: "UV_PROJECT_ENVIRONMENT=<absolute-project-root>/.uv-envs/code uv run pre-commit run --all-files"
mutate_only_when_requested:
- "UV_PROJECT_ENVIRONMENT=<absolute-project-root>/.uv-envs/code uv run ruff format src tests experiments scripts"
- "UV_PROJECT_ENVIRONMENT=<absolute-project-root>/.uv-envs/code uv run ruff check --fix src tests experiments scripts"
optional_hygiene:
secret_scan: "gitleaks dir --no-banner --redact ."
shell_lint: "shellcheck jobs/*.sh scripts/*.sh"
shell_format_check: "shfmt -d jobs scripts"
notebook_output_check: "nbstripout --dry-run notebooks/*.ipynb"
github_actions_lint: "actionlint .github/workflows/*.yml"
toml_format_check: "taplo fmt --check pyproject.toml"
yaml_lint: "yamllint ."
link_check: "lychee --no-progress README.md docs/**/*.md"
paper:
source_format_check: "tex-fmt --check --nowrap --recursive ."
submission_check: "bash <submit-paper-skill-dir>/scripts/check.sh \"$PAPER_DIR\""
compile_truth: "Overleaf/GitHub or local LaTeX compile log"
mutate_only_when_requested:
- "tex-fmt --nowrap --recursive ."
coordination:
git_status_check: "git status --short --branch"
whitespace_check: "git diff --check"
github_auth_check: "gh auth status"
github_pr_check: "gh pr checks"
连接现有代码仓库时,保留现有的组件专用工具。例如,如果代码仓库已使用 black、isort、pyright、pre-commit、gitleaks、shellcheck、shfmt、actionlint、nbstripout 或 CI 专用命令,请记录这些实际命令,而不是强制采用默认脚手架策略。对于非 ML 仓库,如果 experiments 或 scripts 等默认路径不存在,则将其省略。
如果存在 GitHub Project 看板,请在 memory/project.yaml 中记录:
github_project:
enabled: true
owner: <github-user-or-org>
title: <ProjectName>
number: <project-number>
url: <project-url>
sync_policy: issue-pr-links
scope_required: project
如果看板存在,但 Agent 不应管理它,请使用 sync_policy: none。除非用户明确希望这些内容在 GitHub 中可见,否则不要将私有研究理由或未公开的论文审查风险同步到 GitHub 字段中。
第 4 步 - 创建根目录级 Agent 指南
编写两个根目录 Agent 入口文件:
<ProjectName>/AGENTS.md,供 Codex 和通用 Agent 指南使用<ProjectName>/CLAUDE.md,用于兼容 Claude Code
两者在语义上应保持一致。建议使用镜像内容,或在简短的 CLAUDE.md 中告知 Claude Code 遵循 AGENTS.md,将其作为规范的项目控制根策略。
根目录指南必须说明:
- 除非任务明确限定在某个组件内,否则 Agent 应从
<ProjectName>/开始工作 - 检查组件仓库和执行仓库本地命令时,使用
git -C code ...、git -C paper ...和git -C slides ... - 完成预检后,例行推送最终分支时,使用
project-push <repo> <remote> <branch>,而不是原始的git push、git -C <repo> push、cd <repo> && git push或 shell 包装的推送命令 - 默认将代码工作树放在
code-worktrees/下 - 对于不同投稿场合、arXiv 和最终出版版本,默认将论文工作树放在
paper-worktrees/下 - 论文源文件的可见性级别为
agent-private、author-visible、anonymous-submission、public-preprint、camera-ready-public和publisher-artifact - 如果
paper/main通过 GitHub 与 Overleaf 同步,则其可见性级别为author-visible;不要将.agent/、AGENTS.md、CLAUDE.md、原始 CSV、内部结果文档、绘图脚本、审稿策略或私有路径放入此可见源文件中 - 如果已安装
tex-fmt,论文格式检查使用tex-fmt --check --nowrap --recursive .;仅在明确要求格式化时才运行tex-fmt --nowrap --recursive .,并在推送或投稿前检查差异 - 代码检查使用
uv sync、uv run ruff format --check、uv run ruff check、uv run mypy src、uv run pytest tests -v和uv run pre-commit run --all-files,并将UV_PROJECT_ENVIRONMENT指向共享的项目代码环境,除非代码仓库说明了其他现有方案 - 如果存在相关文件和工具,可选的卫生检查包括
gitleaks、shellcheck、shfmt、actionlint、nbstripout、taplo、yamllint和lychee ruff format、ruff check --fix、shfmt -w、不带--dry-run的nbstripout以及tex-fmt格式化模式等会修改内容的格式化或修复命令,必须获得明确请求或符合已记录的项目策略,并在之后检查差异- 根目录
docs/用于存放项目级概览、分阶段方法设计、跨组件实验计划、审计、时间线和交接文档 code/docs/用于存放代码侧结果摘要、运行记录、实现报告和服务端执行说明- 实验结果存放在
code/docs/results/、code/docs/reports/、code/docs/runs/,或代码工作树中的相同路径下 - 原始输出、日志、检查点以及 wandb/tensorboard 缓存不属于项目根目录内容
- 论文版本说明存放在相应论文工作树的
.agent/worktree-status.md中;需要长期保留的决策存放在根目录memory/中 - 跨工作树汇总记录存放在
code/.agent/worktree-index.md、paper/.agent/worktree-index.md和根目录memory/component-index.yaml中 - 配置了 GitHub Project 时,将其用作面向协作者的看板,展示问题、PR、阻塞项、目标和路线图视图;根目录
memory/仍用于存放长期研究记忆 - 发布 arXiv 或公开源文件的论文工作树必须在发布源文件前移除 TODO、内部注释、隐藏的图表描述、审稿回复备注和作者注释宏
- 即使论文尚未公开,面向作者的 Overleaf 分支也不得包含仅供 Agent 使用的私有文件
- 匿名会议论文工作树必须遵守投稿场合的匿名和格式要求
- 项目记忆中应保存长期有效的主张、证据、来源信息、风险、行动和交接摘要
- 项目记忆应跟踪主张生命周期、证据来源信息、跨模块交接和阶段仪表盘状态
- 在代码变更期间使用
update-docs,不要只在发布时使用 - 对稳定的代码、论文、制品或根目录里程碑使用
add-git-tag
第 5 步 - 初始化或连接组件仓库
论文
如果要创建新的论文仓库,请在以下位置使用 init-latex-project:
<ProjectName>/paper/
如果要连接现有论文仓库,请克隆仓库或记录其路径和远程地址。然后,在创建或跟踪 Agent 私有文件之前,检查该仓库是否已关联 Overleaf,或是否对合作者可见。
如果 Agent 将编辑论文,请确保论文工作区同时包含 paper/AGENTS.md 和 paper/CLAUDE.md,但默认将其视为 Agent 私有指南。如果当前分支为 author-visible、anonymous-submission、public-preprint 或 camera-ready-public,请将这些文件保持为未跟踪、忽略状态,或放在 agent-private 工作树中,而不要推送到可见源。确保这些文件遵循相同的论文本地编译、投稿 venue、源文件卫生、图表和记忆规则。
如果有 tex-fmt,请在论文本地指南中将其记录为源格式检查工具。格式状态应与论文工作树/源文件可见性状态一并记录;它不能替代 Overleaf 编译证据。
代码
如果要创建新的代码仓库,请在以下位置使用 init-python-project:
<ProjectName>/code/
对于 ML 项目,请确保代码仓库包含:
code/AGENTS.md
code/CLAUDE.md
code/docs/results/
code/docs/reports/
code/docs/runs/
初始化或连接代码仓库时,请在 code/AGENTS.md、code/CLAUDE.md 和 memory/project.yaml 中记录其工具链门禁。在项目控制根目录布局中,新的代码门禁默认应通过 UV_PROJECT_ENVIRONMENT=<absolute-project-root>/.uv-envs/code 运行,以便 code/ 和 code-worktrees/* 共用同一个依赖环境。只有独立代码仓库或明确选择按工作树使用环境的仓库,才适合直接运行 uv sync。如果现有仓库已配置 CI、pre-commit、black、isort、pyright、gitleaks、shellcheck、shfmt、actionlint、nbstripout 或自定义命令,请保留并记录这些命令。
如果要连接现有代码仓库,不要强行套用完整脚手架。只有在报告缺失项后,才补充缺失的高价值记忆/文档路径。
如果代码仓库克隆自上游项目,不要假设 origin 可写入。请记录 origin 是上游仓库、派生仓库还是新建的项目仓库,并将其与根控制平面仓库的远程地址分开。
幻灯片
如有需要,请创建或连接:
<ProjectName>/slides/
幻灯片可以使用单独的 git 仓库。优先将外部 progress-slides 模板用作幻灯片组件,而不是自行设计本地脚手架:
git clone https://github.com/a-green-hand-jack/progress-slides.git <ProjectName>/slides
克隆后,请先检查 slides/README.md、slides/package.json 和现有幻灯片源文件,再进行编辑。使用 research-slide-deck-builder 处理演示文稿结构、兼容模板的源文件编写、预览/构建命令,以及 slides/.agent/ 中的故事线、受众、源证据和过时证据说明。
将 slides/ 视为多演示文稿工作区。根目录和幻灯片本地的 Agent 指南都应说明,稳定版本的演示文稿存放在 slides/decks/<YYYY-MM-DD>-<audience-or-purpose>-<slug>.md 下;slides/slides.md 仅用于活动/默认演示文稿、暂存文件或模板示例。在 slides/.agent/deck-index.md 中记录演示文稿历史,可在 slides/.agent/decks/<deck-id>.md 中保留可选的单份演示文稿说明,并针对目标演示文稿文件运行 Slidev,例如 npx slidev decks/2026-05-02-advisor-plan.md。
步骤 6 - 确立工作树策略
默认代码策略:
main code repo: <ProjectName>/code/
code worktree root: <ProjectName>/code-worktrees/
worktree path: <ProjectName>/code-worktrees/<branch-type>-<branch-name>/
默认论文策略:
main paper repo: <ProjectName>/paper/
paper worktree root: <ProjectName>/paper-worktrees/
worktree path: <ProjectName>/paper-worktrees/<version-type>-<venue-or-name>/
以下情况使用论文工作树:
- 面向不同会议,且使用不同模板或样式文件
- 主分支位于 Overleaf 或对合作者可见时,进行 Agent 私有起草
- 发布 arXiv 预印本时,LaTeX 源文件可能公开
- 录用后的最终定稿版本
- 仅涉及论文的 rebuttal 编辑,且不应影响主投稿分支
论文版本管理规范:
- Agent 私有版本:可以包含
.agent/、AGENTS.md、CLAUDE.md、写作记忆、来源记录、内部结果文档、CSV 和绘图脚本;不应同步到可见的远程仓库 - 作者可见 / Overleaf 版本:排除
.agent/、AGENTS.md、CLAUDE.md、原始 CSV、内部结果文档、绘图脚本、审稿人策略、私有路径和仅供 Agent 使用的备注 - arXiv / 公开源文件:移除 TODO、TeX 注释中的内部图表说明、审稿人备注、隐藏注释、作者注释宏以及匿名处理遗留内容
- 匿名会议版本:确保匿名、会议模式和格式要求;如果源文件会上传,不要假定源文件注释是安全的
- 最终定稿版本:取消匿名、添加致谢 / 资金来源、履行 rebuttal 承诺,并移除仅供草稿使用的备注
将此记录在:
memory/project.yamlmemory/component-index.yamlmemory/source-visibility-board.md<ProjectName>/AGENTS.md<ProjectName>/CLAUDE.md- 涉及服务器执行时,记录在
code/docs/ops/current-status.md
如果执行服务器上只有代码仓库,请在 code/infra/remote-projects.yaml 或 code/docs/ops/current-status.md 中记录服务器专用的工作树根目录。不要假定服务器上有 paper/ 或根项目记忆文件。
步骤 7 - 编写 PROJECT.md
根据 templates/PROJECT.md 创建 <ProjectName>/PROJECT.md。填写 <ProjectName> 和一句话描述,并将 GitHub Project Board 状态设为 none、linked 或 planned。其他所有章节都是稳定的默认内容——仅当项目的组件布局、可见性策略或记忆结构与默认设置不同时才编辑。
步骤 8 - 最终总结
报告:
Project initialized: <ProjectName>
Control root: <path>
Components:
paper: <created|connected|skipped>
code: <created|connected|skipped>
slides: <created|connected|skipped>
reviewer/rebuttal/artifact state: <created|deferred>
GitHub Project: <created|linked|deferred|not requested>
Toolchain gates: <configured|deferred|inherited from existing repos>
Code worktree root:
<ProjectName>/code-worktrees/
Paper worktree root:
<ProjectName>/paper-worktrees/
Next skills:
research-project-memory -> inspect or update project state
new-workspace -> create a code branch/worktree or paper version worktree
remote-project-control -> configure SSH/HPC execution for code
experiment-design-planner -> plan first experiment matrix
research-slide-deck-builder -> create progress/advisor/lab slides with progress-slides
最终检查
完成前:
AGENTS.md和CLAUDE.md中均存在根目录 Agent 指引- Agent 会编辑的组件仓库均包含配对的
AGENTS.md和CLAUDE.md - 根目录记忆文件均已创建,或已明确延期
paper/、code/和slides/的 Git 边界清晰- 涉及 GitHub / GitLab 设置时,已分别检查根目录和组件的 Git 远程仓库
- 尝试创建仓库前,已检查
gh auth status或等效托管平台 CLI 的认证状态 - GitHub Project 设置已记录在
memory/project.yaml和PROJECT.md中,或已明确延期并记录为待办事项 / 阻塞项 - 工具链门禁默认设置已记录在
memory/project.yaml中,或已记录现有组件专用门禁作为继承设置 - 尝试执行
gh project ...命令前,gh令牌已具备project范围 - 已记录
code-worktrees/策略 - 已记录
paper-worktrees/策略 - 已记录论文源文件可见性策略,尤其是
paper/main是否通过 Overleaf / GitHub 对作者可见 - 除非用户明确要求,否则不存在顶层
experiments/目录 - 根目录
docs/的项目级作用明确,不会与code/docs/混淆 - 代码侧证据路径位于
code/docs/中 - 组件远程仓库和根目录 Git 策略不存在歧义