用途
start-session 是一个用于工作会话开始的技能,目的是在会话起点上帮助用户和 AI 快速定位项目状态。触发条件包括用户说“let's get started”“where are we”,或处于一次会话的开始阶段。技能明确指出应直接执行这些步骤,而不是生成子代理,因为子代理不具备当前会话的上下文。
主要能力
技能以检查清单形式执行以下步骤:
0a. 检测是否处于 Herdr
首先运行命令 test "${HERDR_ENV:-}" = 1 && echo "IN HERDR" || echo "not in herdr"。如果报告处于 Herdr 中,则需先调用 herdr 技能,再运行任何 herdr 命令。技能说明中提到,大多数会话现在运行在 Herdr 内。
在 Herdr 中,用 herdr agent list 检查其他活跃代理及其所在目录。如果另一个代理共享同一工作树,则不要在其中创建分支,因为 Git 分支、HEAD 和索引是按工作树而非按会话隔离的。应改为创建专用工作树:
herdr worktree create --cwd <repo> --branch <name> --base origin/main \
--path <repo>-<purpose> --label <purpose> --no-focus
随后每条 git 命令都要以 git -C <path> 形式执行。技能还提示,被 gitignore 的文件(如 .env)不会带入新工作树,需要时可用符号链接。文档提到有一个 SessionStart 钩子(~/.claude/hooks/herdr-session-reminder.sh)也会注入这些内容,但钩子上下文可能在会话中途被压缩掉,因此仍应在此处运行检查。
0b. 读取项目指令
检查 CLAUDE.md 中的 ## Session Wrap-up、## Deployment、同步命令或类似段落,记录同步/拉取命令,供第 1 步使用。
1. 从远端同步
如果 CLAUDE.md 记录了同步或拉取命令(rsync、git pull 等),现在就运行。如果没有记录,跳过此步。
2. 检测仓库类型
CLAUDE.md 已加载进会话上下文,不必重读。根据 CLAUDE.md 中的 type 声明检测,或从内容推断(package.json 表示代码仓库,多为 .md 表示研究仓库)。仅当 CLAUDE.md 缺失或缺少项目上下文时,才读取 agents.md 或 README.md。
3. 检查 git 状态
运行以下命令:
git fetch --prune 2>/dev/null
git status --short
git branch --show-current
git log --oneline -5
获取后检查当前分支是否落后于远端:
git rev-list --count HEAD..@{u} 2>/dev/null
如果落后,在摘要中注明,交由用户决定是否拉取。同时列出仅存在于远端的非 main/master 分支:
git branch -r --no-merged HEAD 2>/dev/null | grep -v HEAD | grep -v 'main$' | grep -v 'master$' | head -5
检查上一会话遗留的 stash:
git stash list 2>/dev/null | head -5
如果存在 stash,在摘要中列出,交由用户决定 pop 或 drop。
3b. 检查工作树
如果仓库使用 git worktree:
git worktree list 2>/dev/null
如果存在多个工作树,在摘要中列出,便于发现用户可能同时在做的并行实验或功能分支。
4. 检查已有计划
查看 .claude/plans/ 中的文件。如果有,列出一行摘要。这些可能代表上一次会话遗留的进行中工作。
5. 检查运行中的后台进程
标记相关后台进程(pm2、nohup 任务、screen 会话、drip campaigns 等),它们可能是上一会话遗留或正在运行的。
5b. 检查 agent-inbox 中待处理的交接任务
某些项目使用 _agent-inbox/ 交接模式,让沙箱/容器代理把主机 Claude Code 会话才能执行的任务(部署、接触主机、运行 pm2、编辑 .env 等)放入其中。
找到收件箱:检查当前仓库的 _agent-inbox/,也检查 CLAUDE.md 引用的相关仓库路径(例如 ## Related Repository 段中的 Local path: 行)。自动记忆也可能记录收件箱路径。列出前先拉取以保持最新:cd <inbox-repo> && git pull。
列出待处理条目:_agent-inbox/ 直接目录下、不在 done/ 子目录中的 .md 文件,排除 README.md。在定位摘要中显示每个待处理项的文件名和一行摘要(首个标题或首行非空内容)。这些是等待执行的任务。
不要自动执行,交由用户决定本次会话是否处理——有些可能已过时、被取代或优先级低于当前目标。
完成约定(当用户选择处理时):用 git mv 把文件移到 done/ 并提交该移动,然后运行指令中记录的部署命令。
5c. 检查未关闭的 GitHub issue 与 PR
如果仓库有 GitHub 远端且 gh 可用,显示未关闭 issue 与 PR。命令示例:
git remote get-url origin 2>/dev/null | grep -q github.com && gh auth status >/dev/null 2>&1 && {
echo "=== OPEN ISSUES ==="; gh issue list --state open --limit 30
echo "=== OPEN PRs ==="; gh pr list --state open --limit 30
}
在摘要中显示:等待评审的 PR(注明作者与分支,来自协作者的 PR 通常是最高优先级);未关闭 issue,尤其是分配给他人或与某开放 PR 关联(Closes #N)的;把上一次会话日志的“Next”项与 issue 状态交叉核对。如果没有 GitHub 远端或 gh 未认证,则静默跳过。
6. 解析 roadmap 段落
从 CLAUDE.md 中提取(不存在的跳过):## Current Focus(本次会话建议起点)、## Roadmap(统计总数与已完成数,列出接下来 2-3 个未完成项)、## Session Log(最近一条记录:完成了什么、接下来是什么)。
6b. 标记陈旧的会话日志条目
如果有会话日志条目超过 30 天,标记以便归档。建议用户把旧条目移到单独文件(如 docs/session-archive.md)或删除,以保持 CLAUDE.md 简洁。
7. 输出定位摘要
提供结构化摘要,包含:项目目的、当前分支、未提交改动、上游状态、最近提交、当前焦点、路线图进度、上次会话摘要、已有计划、运行中的后台进程。并根据仓库类型调整:代码仓库关注 git 状态、计划、运行中的服务;研究仓库关注文档结构、最近编辑文件、写作中断处;混合仓库两者结合。
结构检查
定位摘要之后,把缺失的基础设施作为建议提出(不阻塞流程):无 CLAUDE.md 时,可提议创建一个,包含项目描述、路线图段落和当前焦点占位,并询问“这个项目是做什么的?(一句话)”;CLAUDE.md 存在但缺少路线图段落时,建议添加 ## Current Focus、## Roadmap 和 ## Session Log,以支持进度跟踪和 /wrap-up-session 集成。
注意事项
该技能与 /wrap-up-session 配对,后者写入的正是本技能读取的 roadmap 段落。技能是一份检查清单,具体项目细节(同步命令、部署目标、分支策略)以项目 CLAUDE.md 为准。如果 .claude/plans/ 中存在计划,标记超过 30 天的陈旧计划以便清理。
限制
材料未提供该技能的收费、价格、支持平台、效果数据或安装方式等信息,这些内容暂未提供。