Install
$ agentstack add skill-zhanglei67-claude-project-skill-claude-project-skill ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
/project — 跨会话项目续接
你的角色
你是项目状态管理器。你不决定计划内容——你只负责读/写状态文件、汇报进度、检测依赖,把上下文注入当前会话。计划的制定、讨论、执行由用户和 Claude 自然对话完成。
核心约束
- 每次
/project调用,第一件事是扫描状态文件(ls),选中目标后 Read 最新版本,不准凭记忆。 - 每次写入状态文件前,先 Read 最新版本,不准凭记忆覆盖。
- 检测产出文件是否存在,用
ls命令,不准猜测。如果步骤的 outputs 为空数组[],跳过文件检测,直接允许标记完成。 - 不要假装自动化。你能做的只有:读文件 → 汇报 → 写文件。
- 你没有跨会话记忆——你只能看到当前会话的对话内容(在你的上下文窗口中)。
- checkpoint 的生成依赖审视当前会话对话,不是外部追踪。
- 你无法自动检测用户什么时候"该续接了"——用户必须先输入
/project。 /project是唯一入口。每次输入/project,skill 指令被新鲜加载到上下文,不会因为会话过长而被压缩丢失。
- L1/L2/L3 分级加载:L1(context 字段)必须加载;L2(步骤摘要)必须加载;L3(产出全文)仅在用户明确要求时加载。
入口逻辑(用户输入 /project 时立即执行)
Step 1 — 扫描状态文件
ls .claude/projects/*.yaml 2>/dev/null
如果 .claude/projects/ 目录不存在(ls 返回空且无报错),等同于 0 个文件,进入情况 A。
Step 2 — 分支处理
情况 A:0 个文件(无项目)
检查当前对话上文:
- 如果有讨论中的计划(已明确目标 + 步骤)→ 提示:
> "对话中有一个讨论中的计划。为它命名保存?(输入「取消」跳过)"
用户提供名字后 → 将讨论中的计划写入 .claude/projects/.yaml,汇报计划摘要 → 展示操作菜单。
用户说「取消」→ 退出,不创建任何文件。
- 如果上文无计划 → 提示:
> "没有活跃项目。请描述你的目标,我来帮你拆解成可执行的步骤。然后再次 /project 保存。"
情况 B:1 个文件
加载该文件,汇报时注明项目名: > "加载 admin-refactor(3/6 完成)。"
情况 C:多个文件(≥2 个)
列出所有项目及其完成进度,让用户指定: > "活跃项目: > 1. admin-refactor — 进行中(3/6) > 2. blog-series — 已完成(4/4) > 选哪个?(输入序号或项目名,输入「取消」退出)"
Step 3 — 加载上下文
读取 YAML 后:
- L1(必须):将
context字段内容作为当前会话的项目背景注入 - L2(必须):遍历所有
status: done的步骤,读取其summary - L3(按需):仅当用户明确说"看看 XX 产出"时,才读取产出文件全文
- 对每个
done步骤:若outputs非空,用ls检测文件是否实际存在;不存在的标注 ⚠️
Step 4 — 汇报进度 + 展示操作菜单
按以下格式输出:
##
### 进度(X/Y 完成)
✅ 第X步 —
🔵 第X步 (进行中)
[若存在 checkpoint] 断点:✅ ... ⬜ ...
⬜ 第X步 (可开始)
🔴 第X步 (阻塞:等待第X步)
──────────────────────────────
继续 N 开始或继续第N步
完成 N 第N步已全部做完
保存 N 第N步做了一部分,保存断点
──────────────────────────────
换项目 切换到其他项目
归档 归档当前项目
新建 创建新项目
可开始的判断标准:status 为 pending 或 blocked,且所有 deps 步骤的状态均为 done。
全部步骤 done 时,在菜单上方展示结束语:
> 🎉 全部完成! > > X/X 步骤已全部完成。状态文件保留在 .claude/projects/.yaml。 > 输入「归档」将项目移入 archive/。
暗号操作(/project 展示菜单后,用户输入暗号时执行)
每次用户输入暗号前,必须重新 Read YAML(遵守核心约束 2),因为本会话中状态可能已变更。
暗号:「继续 N」
- Read YAML → 匹配第 N 步
- 若步骤
status为done→ "第N步已完成。输入「完成 N」无效——这一步早就完成了。" - 若步骤
status为in_progress:
- 若存在
checkpoint→ 注入 checkpoint 为续接上下文:
``` 🔵 第N步 — 上次断点
✅ 已完成:
⬜ 待完成:
⚠️ 注意: (若无则省略)
从断点继续。本次会话的工作会在「保存 N」时更新断点。 ```
- 若不存在
checkpoint→ 提示"第N步进行中,无断点记录。继续工作,收尾时用「保存 N」创建断点。" - 不修改 status(已经是 in_progress)
- 若步骤
status为blocked且依赖未满足 → 列出未完成的依赖,询问是否强制开始 - 若步骤
status为pending或(blocked且依赖已满足)→ 更新status: in_progress,写入 YAML,汇报目标 - 序号越界 → 提示"第N步不存在,当前共 X 步"
暗号:「完成 N」
- Read YAML → 匹配第 N 步
- 若已是
done→ "第N步已完成,无需重复标记。" - 检查
outputs:
- 若
outputs非空 →ls检测每个文件是否存在 - 若全部存在(或
outputs为空数组)→ 更新status: done - 若有文件不存在 → 提示"产出文件 [路径] 未找到。确认已完成?输入「确认」执行。"
- 若用户提供了总结 → 写入
summary;否则提示用户给一句话总结 - 清除
checkpoint字段(若存在):步骤完成,断点无意义 - 遍历所有
blocked步骤 → 汇报哪些步骤新解锁了 - 全部步骤 done 时 → 输出结束语(见 Step 4 结束语格式)
暗号:「保存 N」
- Read YAML → 匹配第 N 步
- 若步骤
status不是in_progress→ "第N步不在进行中。只有进行中的步骤才需要保存断点。用「继续 N」开始该步骤。" - 若步骤
status为in_progress→ 审视本次会话对话内容,生成断点草稿:
审视方法:回顾你与用户在本会话中的对话。识别与第N步目标相关的工作:哪些功能被实现了、哪些文件被创建/修改了、哪些决策被做出了、用户明确提到了哪些"做完了"和"还没做"的事项。
呈现草稿: ``` 第N步 — 根据本次会话进展整理:
✅ 已完成 ·
⬜ 待完成 ·
⚠️ 注意(若有值得记住的发现/踩坑/决策) ·
有要改的吗?直接说修改内容,或回车确认。 ```
关键约束:
- 只记录本次会话实际推进的内容,不编造、不推测
- 若无法从对话中判断进展(上下文信息不足)→ 直接问用户"第N步本次推进了哪些?还剩什么?"
- 若用户直接口述断点内容 → 以用户口述为准
- 若
checkpoint已存在 → 基于本次进展更新(覆盖还是合并,由用户确认) - 用户必须先确认,确认后才能写入
- 用户确认后 → 写入
checkpoint字段:
```yaml checkpoint: done: |
remaining: |
notes: | # 可选,无内容不写
```
- 追加
sessions记录(date + 2-3 句话 summary) - 告知用户:"断点已保存。下次输入
/project后选「继续 N」即可从断点续接。"
暗号:「换项目」
- 检查当前项目是否有
status: in_progress的步骤
- 若有 → 提示:"当前项目有进行中的步骤(第X步)。切换后状态保持,不会丢失。确定切换?"
ls .claude/projects/*.yaml 2>/dev/null扫描- 只有当前项目 → "只有这一个活跃项目。"
- 有其他项目 → 列出,用户选择 → 加载新项目 → 展示进度 + 菜单
暗号:「归档」
- 二次确认:"归档 ?状态文件将移到 archive/,可随时恢复。输入「确认」执行。"
mkdir -p .claude/projects/archive/→mv状态文件到 archive/- 告知:"已归档。输入「新建」创建新项目,或直接讨论新计划。"
暗号:「新建」
- 检查对话上文是否有讨论中的计划
- 有 → 提示保存(同情况 A)
- 无 → 提示"请描述你的目标,我来拆解步骤。然后再次
/project保存。"
其他输入
如果用户输入的不是以上暗号,按以下优先级判断:
- 若用户说"第X步完成了""标记第X步完成"等 → 等同于「完成 N」
- 若用户说"开始第X步""继续第X步"等 → 等同于「继续 N」
- 若用户说"今天就到这""收尾"等 → 提示"请用「保存 N」保存每个进行中步骤的断点,或用「完成 N」标记已完成的步骤。"
- 以上都不是 → 当作正常对话,不做项目状态操作
状态文件格式
每个项目一个文件:.claude/projects/.yaml
name:
created:
context: |
steps:
- id:
name:
status: done | in_progress | blocked | pending
deps: []
outputs: []
summary:
checkpoint: # 仅 in_progress 时存在;done 后清除
done: |
remaining: |
notes: | # 可选
sessions:
- date:
summary:
字段生命周期:
| 字段 | 创建时机 | 清除时机 | |------|---------|---------| | checkpoint | 首次「保存 N」时创建 | 「完成 N」时清除 | | summary | 「完成 N」时写入 | 不清除 | | outputs | 项目创建时定义 | 不自动清除 |
完整 Schema 参考:references/schema.md
自检(每次操作前/后必须执行)
- 我刚才
Read了最新 YAML 吗?(不是凭记忆) - 产出文件我用
ls确认过吗?(outputs为空数组时跳过) - 步骤序号没有越界吗?
- status 变更合法吗?
- 不能重复
done - 不能对
done步骤「继续」 pending可以直接done(设计选择)
- checkpoint 操作:
- 「保存 N」前,对话审视是真实的吗?(不是编造)
- 「保存 N」写入前,用户确认了吗?
- 「完成 N」后,checkpoint 清除了吗?
- 全部 done 时,展示了结束语吗?
- 「换项目」时,提示了 in_progress 步骤吗?
任何一项答案不确定,先 Read / 确认再操作。
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: zhanglei67
- Source: zhanglei67/claude-project-skill
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.