| name | init-agent-project |
| description | 使用用户的项目制管理规则初始化 Agent 项目工作区。当用户要求初始化项目、创建项目、创建新项目、scaffold/register Agent project、创建 README.md、STATUS.md、AGENTS.md、.gitignore、docs、tasks、archive、初始化 Git,或登记到 GLOBAL/PROJECTS.md 时使用。项目本地 Skill/agent 内容遵循 Agent 管理的 `.agents` 机制。 |
初始化 Agent 项目
使用这个 skill 初始化真实的 Agent 项目工作区,并把项目登记进 GLOBAL。
核心规则
项目进入初始化阶段时,就应该登记进 GLOBAL/PROJECTS.md,不需要等项目成熟。
标准结构要提前创建,即使某些目录暂时为空。目录本身承载语义信息,可以让未来的 Agent 任务稳定地知道资料应该放在哪里。
当项目名、项目根目录、项目目标都明确时,默认完成完整初始化,包括 git init。不要自动 git add、commit 或设置 remote。
项目内部 Skill 或 agent 相关内容遵循 Agent 自动生成和管理的 .agents/ 机制。GLOBAL/.agents/skills/ 是个人全局 Skill 源稿目录,语义不同。
信息完整性
初始化前确认三项信息:
如果项目目标、当前阶段或背景不明确,不要马上问用户。先按顺序只读查找:
- 当前项目目录已有文件,例如
README.md、STATUS.md、AGENTS.md、docs/、tasks/。
- 当前 Agent 可用的长期记忆中,与该项目有关的最新阶段、用户决策、交接信息和偏好。
{{AGENT_ROOT}}\GLOBAL\PROJECTS.md 中的项目登记。
GLOBAL 中相关规则和索引。
- 如果项目明显依赖长期知识,再只读搜索 Obsidian 或关联知识库。
信息来源的优先级:当前用户明确说明 > 当前项目文档 > 当前 Agent 可用的长期记忆 > GLOBAL 索引/规则 > Obsidian 或关联知识库。
如果长期记忆与 Obsidian 冲突,不要静默采用旧资料。阶段、当前状态和近期工作优先采用用户最新说明、当前项目文档和当前 Agent 可用的长期记忆;Obsidian 更适合作为历史规划、素材和背景来源。冲突会影响项目定位或下一步时,报告冲突并询问用户。
如果资料中的工程状态、代码状态、发布状态可能已经变化,先到对应仓库或文件实时确认,再写入 README、STATUS 或 AGENTS。不能实时确认时,明确标注“根据现有资料推断,可能需要刷新”。
能从资料中合理判断时,使用该判断初始化,并在结果里说明依据。仍无法确认时,只问必要问题,优先问:“这个项目的一句话目标是什么?”
不要在项目目标不清楚时写死项目定位;可以在 README.md 和 STATUS.md 中暂写“待明确”。
标准结构
创建或保留以下结构:
项目名/
README.md
STATUS.md
AGENTS.md
.gitignore
docs/
.gitkeep
tasks/
.gitkeep
archive/
.gitkeep
目录和文件语义:
README.md:项目身份、目标、目录入口和使用方式。
STATUS.md:项目当前阶段、近期目标、下一步、阻塞和必要的阶段记录;避免长期堆积流水账。
AGENTS.md:给未来 Agent 的项目内工作规则;必须说明 GLOBAL 是上层治理入口,且上层规则默认适用于项目工作。
.gitignore:基础忽略规则,避免缓存、日志和临时文件入库。
docs/:长期有效的项目文档和规划资料。
tasks/:任务计划、交接、检查清单和当前工作记录。
archive/:已完成、过时或历史性的项目资料。
.agents/:如 Agent 自动生成,用于项目内 Skill/agent 运行或安装内容。
.gitkeep:只用于让 Git 跟踪空语义目录;目录中有实际内容后应移除。
AGENTS.md 最小规则
AGENTS.md 必须包含 GLOBAL 规则,简明说明:
GLOBAL 路径:{{AGENT_ROOT}}\GLOBAL。
GLOBAL 是上层治理入口,不是项目工作区;其中的上层规则默认适用于项目工作。
- 项目内
README.md、STATUS.md、AGENTS.md 是持续工作入口;相关任务文件按当前任务需要读取。
GLOBAL\README.md 和 GLOBAL_CONTEXT.md 是默认全局入口,应持续关注。
- 涉及跨项目规则、项目索引、全局 Skill、账号/工具约定、长期上下文或 Obsidian 时,按范围回看
GLOBAL 中的对应文件以获得细节。
- 项目原则上独立维护 Git 和版本历史;阶段性成果按项目规则创建聚焦提交,提交前检查 diff、相关验证和敏感信息,不跨项目暂存、不混入无关改动,也不把 commit 等同于 push。
- 项目需要远程备份时,专属 GitHub 账号或项目路由优先;没有专属规则时使用 GLOBAL 记录的全局默认账号。首次创建远程仓库、确定仓库名与可见性、配置 remote 和首次 push 前必须获得用户明确授权,不自动上传。
- 默认创建
## 项目组织 模块并设立“项目总经理”职责,负责整体判断、任务拆分、长期岗位任命、结果验收和跨项目汇报。
- 用户明确任命其他长期岗位后,在“项目组织”模块记录岗位名称、稳定职责及协作边界;不要为了结构完整虚构岗位。
- 写入按需岗位规则:首次持续创建或维护飞书任务时,
feishu-task 若未发现等价岗位,补充“项目任务协调员”;{{GENERAL_ASSISTANT_PROJECT}}首次承担跨项目个人排程时,personal-schedule-planner 若未发现等价岗位,补充“个人时间管理员”。已有等价岗位时复用,不重复设置;新项目初始化时只写规则,不预先虚构尚未启用的岗位。
- “项目组织”模块只记录项目总经理、用户已明确任命或按需规则实际补充的其他长期岗位及通用协作规则;不记录任务窗口 ID、临时忙闲、单次派工或组织变更流水账。
- 明确长期任务窗口与当前任务临时子智能体的区别;临时子智能体不自动成为项目长期岗位,同一人或任务窗口可以兼任多个职责。
- 明确按需岗位补充不是只改
AGENTS.md:当规则要求新增或复用长期岗位时,完成条件必须同时包含项目 AGENTS.md 已登记、对应长期会话/任务窗口已创建或复用、岗位启动指令和当前上下文已交给该窗口、该窗口已回报接单或阻塞。宿主暂不支持创建/定位长期窗口时,必须把“执行窗口待创建/待用户接管”作为待办或阻塞边界,不得宣称岗位已完整落地。
- 明确每个长期岗位默认有权按任务需要自行创建和使用会话内临时子智能体,无需逐次申请;临时子智能体只能承接该岗位本来可以执行的工作,不扩大任务范围或操作权限,长期岗位仍负责委派判断、结果验收和最终回报。
- 明确长期岗位完成派发任务后必须主动向项目总经理回报结果、验证、提交或外部操作、遗留问题和建议下一步,不得只在自己的任务窗口中结束。
工作流程
- 从用户请求、当前工作区和已有资料确认项目名、项目根目录、项目目标。
- 写入前先检查目标路径当前状态。
- 除非用户明确确认具体路径,否则不要在
GLOBAL、Obsidian、运行缓存或 Junction 目标中初始化项目。
- 缺失时创建全部标准目录和文件;已有内容必须保留,谨慎补充,不要覆盖。
- 如果缺少
README.md,创建最小版本,包含:项目名、项目目标、目录说明、当前入口或使用方式。
- 如果缺少
STATUS.md,创建最小版本,包含:当前阶段、近期目标、下一步、阻塞,以及必要时才保留的阶段记录。
- 如果缺少
AGENTS.md,创建最小版本,包含:项目边界、GLOBAL 规则、目录放置规则、安全注意事项、Agent 工作规则,以及含项目总经理、已任命长期岗位和通用协作规则的“项目组织”模块。
- 如果缺少
.gitignore,创建通用轻量版本,至少忽略系统文件、编辑器缓存、日志、临时文件和环境变量文件。
- 确保
docs/、tasks/、archive/ 存在。
- 对仍为空的语义目录创建
.gitkeep;如果目录中已有实际内容,移除对应 .gitkeep。
- 在
{{AGENT_ROOT}}\GLOBAL\PROJECTS.md 的 活跃项目 下新增或更新项目条目。
- 处理 Git:
- 如果目标目录不是 Git 仓库,且项目名、根目录、目标都明确,默认执行
git init。
- 如果已经是有效 Git 仓库,跳过。
- 如果存在
.git 但无效或不完整,不要删除或覆盖,报告异常并询问是否修复。
- 不自动
git add、commit 或设置 remote。
- 用户要求建立远程备份时,先读取 GLOBAL 的 GitHub 账号路由;项目专属账号优先,没有专属规则时使用全局默认账号。创建仓库前明确确认仓库名、可见性和首次 push,不能把本地 commit 视为上传授权。
- 结束时报告创建了什么、保留了什么、登记了什么、Git 处于什么状态。
GLOBAL 登记规则
项目条目保持简短、事实化:
- 项目名:`{{AGENT_ROOT}}\项目名`
只有在有助于路由时,才添加简短目标或状态:
- 项目名:`{{AGENT_ROOT}}\项目名` - 简短目标或状态
不要把普通对话、临时任务上下文、Obsidian、运行缓存、插件缓存、Agent 用户级安装目录登记为项目。
安全边界
不要递归复制、移动或删除 Junction / symlink 指向的内容。
除非用户明确要求某个具体操作,否则以下位置视为受保护:
- 用户在
GLOBAL\OBSIDIAN_LINK.md 中确认的外部 Obsidian Vault 真实目录
{{AGENT_ROOT}}\GLOBAL\obsidian-resource
- 当前 Agent 的用户级配置、Skill 安装和运行时资产目录
- 插件缓存目录
- 系统 skill 目录
如果目标路径位于 {{AGENT_ROOT}} 之外,先说明风险并请求确认,再创建项目结构。
已有内容处理
如果文件已经存在:
- 先读取。
- 保留用户内容。
- 只有明确有用时才补充缺失章节。
- 除非用户要求,不要用通用模板替换项目已有约定。
如果目录已经存在但为空或只初始化了一部分,就补齐标准结构并登记项目。
输出要求
结束时说明:
- 项目根目录
- 项目信息来自用户、当前项目、长期记忆、GLOBAL 还是只读知识库
- 如果来源之间存在冲突,说明采用了哪个来源以及原因
- 创建了哪些文件和目录
- 保留或更新了哪些文件
- 是否更新了
GLOBAL/PROJECTS.md
.gitkeep 创建或移除了哪些
- 是否发现或保留了 Agent 自动管理的
.agents/
- Git 是已初始化、已存在、已跳过,还是检测到异常并等待确认