重要前提
安装AI Skills的关键前提是:必须科学上网,且开启TUN模式,这一点至关重要,直接决定安装能否顺利完成,在此郑重提醒三遍:科学上网,科学上网,科学上网。查看完整安装教程 →
swain-status by cristoslc/swain
npx skills add https://github.com/cristoslc/swain --skill swain-status跨领域项目状态仪表板。聚合来自制品生命周期(swain chart)、任务跟踪(tk)、git、GitHub 问题以及会话状态的数据,形成以活动为导向的视图。
状态脚本包含一个陈旧性检查,如果 ROADMAP.md 文件缺失或比任何文档制品更旧,则会重新生成它。此检查会自动运行——无需单独调用。
如需完全刷新路线图(无条件重新生成),请改用 swain-roadmap。
从 skills/swain-status/scripts/swain-status.sh 定位并运行状态脚本:
# 从项目根目录或已安装的技能目录中查找脚本
SKILL_DIR="$(find . .claude .agents -path '*/swain-status/scripts/swain-status.sh' -print -quit 2>/dev/null)"
bash "$SKILL_DIR" --refresh
如果路径搜索失败,请使用通配符 **/swain-status/scripts/swain-status.sh 进行查找。
脚本的终端输出使用 OSC 8 超链接来实现可点击的制品链接。让终端输出滚动——这是参考数据,不是主要输出。
脚本运行后,请按照 references/agent-summary-template.md 中的模板呈现结构化的代理摘要。代理摘要是用户用于决策的阅读材料。它必须首先包含“建议”部分(见下文),然后是“需要决策的事项”,接着是“准备开始的工作”,最后是参考数据——遵循 中的模板。
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
references/agent-summary-template.md脚本从五个数据源收集信息:
swain chart 基于愿景的层次结构(史诗进度、就绪/受阻项、依赖信息)。使用 bash "$(find "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" -path '*/swain-design/scripts/chart.sh' -print -quit 2>/dev/null)" recommend 获取排序的制品视图;自动尊重聚焦通道。脚本支持 --compact 参数,供 swain-stage 的 MOTD 面板使用:
REPO_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
STATUS_SCRIPT="$(find "$REPO_ROOT" -path '*/swain-status/scripts/swain-status.sh' -print -quit 2>/dev/null)"
[ -n "$STATUS_SCRIPT" ] && bash "$STATUS_SCRIPT" --compact || echo "swain-status.sh not found"
这将输出 4-5 行适合 MOTD 框的内容:分支、活跃史诗进度、当前任务、就绪项数量、分配的问题数量。
脚本将 JSON 缓存写入项目本地的代理目录:
.agents/status-cache.json
status.cacheTTL 配置)--refresh 标志绕过 TTL--json 标志输出原始缓存供程序化使用MOTD 可以在完整刷新之间廉价地读取此缓存。
迁移: 如果 .agents/status-cache.json 不存在但 ~/.claude/projects/<project-path-slug>/memory/status-cache.json 存在,则读取旧位置一次,之后写入新位置。
建议使用一个评分公式:
score = unblock_count × vision_weight
其中 vision_weight 继承自制品的愿景祖先(高=3,中=2,低=1,默认=中)。从 JSON 缓存中读取 .priority.recommendations[0] 获取排名最高的项。
平局决胜规则(按顺序应用):
当设置了聚焦通道时,建议范围将限定在该愿景/计划内。外围愿景将单独汇总(参见“外围感知”部分)。
如果检测到对建议项所属愿景的注意力漂移,请将其作为上下文包含在建议中。
swain-status 根据上下文推断操作模式(首次匹配获胜):
一旦操作员回答,swain 会通过 swain-session 书签记住本次会话。
操作员可以通过 swain-session 设置一个聚焦通道,将建议范围限定在单个愿景或计划内:
bash "$(find . .claude .agents -path '*/swain-session/scripts/swain-focus.sh' -print -quit 2>/dev/null)" set VISION-001
设置后,.priority.recommendations 仅包含该愿景下的项。非聚焦愿景将出现在“外围感知”部分。
当设置了聚焦通道时,有待定决策的非聚焦愿景将被汇总:“同时:[愿景] 有 N 个待定决策(权重:W)”
这是一个镜像,不是建议——操作员决定何时积累的决策足以需要重新定向。
当一个活跃史诗的 progress.done == progress.total 时:
在现有的状态输出部分之后,展示路线图中的首要决策项。此部分使用来自 chart.sh roadmap --json 的艾森豪威尔分类法。
bash "$(find . -path '*/swain-design/scripts/chart.sh' -print -quit)" roadmap --json
children_total == 0——需要分解为子规格说明
* children_complete == children_total 且 children_total > 0——准备完成/关闭EPIC-038 PR-Only Agent Guardrails — **需要分解** (0 个规格说明,高优先级)EPIC-024 GitHub Issue Polling — **激活还是放弃?** (已提议,高优先级)EPIC-012 Session Atomization — **准备完成** (4/4 个规格说明完成)如果 chart.sh roadmap --json 失败或返回空数据,则静默跳过“需要决策的事项”部分,继续输出其余状态信息。
从 swain.settings.json(项目)和 ~/.config/swain/settings.json(用户覆盖)读取。
| 键 | 类型 | 默认值 | 描述 |
|---|---|---|---|
status.cacheTTL | 数字 | 120 | 缓存生存时间(秒) |
呈现状态后,用最具操作性的亮点更新书签:bash "$(find . .claude .agents -path '*/swain-session/scripts/swain-bookmark.sh' -print -quit 2>/dev/null)" "已检查状态 — {关键亮点}"
.agents/session.json 不存在:跳过书签每周安装量
53
仓库
GitHub 星标数
2
首次出现
14 天前
安全审计
安装于
opencode53
codex53
gemini-cli52
claude-code51
github-copilot49
goose45
Cross-cutting project status dashboard. Aggregates data from artifact lifecycle (swain chart), task tracking (tk), git, GitHub issues, and session state into an activity-oriented view.
The status script includes a staleness check that regenerates ROADMAP.md if it is missing or older than any doc artifact. This runs automatically — no separate invocation needed.
For a full roadmap refresh (unconditional regeneration), use swain-roadmap instead.
Locate and run the status script from skills/swain-status/scripts/swain-status.sh:
# Find the script from the project root or installed skills directories
SKILL_DIR="$(find . .claude .agents -path '*/swain-status/scripts/swain-status.sh' -print -quit 2>/dev/null)"
bash "$SKILL_DIR" --refresh
If the path search fails, glob for **/swain-status/scripts/swain-status.sh.
The script's terminal output uses OSC 8 hyperlinks for clickable artifact links. Let the terminal output scroll by — it is reference data, not the primary output.
After the script runs, present a structured agent summary following the template in references/agent-summary-template.md. The agent summary is what the user reads for decision-making. It must lead with a Recommendation section (see below), then Decisions Needed, then Work Ready to Start, then reference data — following the template in references/agent-summary-template.md.
The script collects from five data sources:
swain chart vision-rooted hierarchy (epic progress, ready/blocked items, dependency info). Use bash "$(find "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" -path '*/swain-design/scripts/chart.sh' -print -quit 2>/dev/null)" recommend for ranked artifact view; respects focus lane automatically.The script supports --compact for consumption by swain-stage's MOTD panel:
REPO_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
STATUS_SCRIPT="$(find "$REPO_ROOT" -path '*/swain-status/scripts/swain-status.sh' -print -quit 2>/dev/null)"
[ -n "$STATUS_SCRIPT" ] && bash "$STATUS_SCRIPT" --compact || echo "swain-status.sh not found"
This outputs 4-5 lines suitable for the MOTD box: branch, active epic progress, current task, ready count, assigned issue count.
The script writes a JSON cache to the project-local agents directory:
.agents/status-cache.json
status.cacheTTL in settings)--refresh flag bypasses TTL--json flag outputs raw cache for programmatic useThe MOTD can read this cache cheaply between full refreshes.
Migration: If .agents/status-cache.json does not exist but ~/.claude/projects/<project-path-slug>/memory/status-cache.json does, read the old location once and write to the new location going forward.
The recommendation uses a scoring formula:
score = unblock_count × vision_weight
Where vision_weight is inherited from the artifact's Vision ancestor (high=3, medium=2, low=1, default=medium). Read .priority.recommendations[0] from the JSON cache for the top-ranked item.
Tiebreakers (applied in order):
When a focus lane is set, recommendations are scoped to that vision/initiative. Peripheral visions are summarized separately (see Peripheral Awareness).
If attention drift is detected for the recommended item's vision, include it as context in the recommendation.
swain-status infers the operating mode from context (first match wins):
Once the operator answers, swain remembers for the session via swain-session bookmark.
The operator can set a focus lane via swain-session to scope recommendations to a single vision or initiative:
bash "$(find . .claude .agents -path '*/swain-session/scripts/swain-focus.sh' -print -quit 2>/dev/null)" set VISION-001
When set, .priority.recommendations only includes items under that vision. Non-focus visions appear in the Peripheral Awareness section.
When a focus lane is set, non-focus visions with pending decisions are summarized: "Meanwhile: [Vision] has N pending decisions (weight: W)"
This is a mirror, not a recommendation — the operator decides when accumulation warrants redirection.
When an Active epic has progress.done == progress.total:
After the existing status output sections, surface top decision items from the roadmap. This section uses the Eisenhower classification from chart.sh roadmap --json.
bash "$(find . -path '*/swain-design/scripts/chart.sh' -print -quit)" roadmap --json
children_total == 0 — needs decomposition into child specschildren_complete == children_total and children_total > 0 — ready to complete/closeEPIC-038 PR-Only Agent Guardrails — **needs decomposition** (0 specs, high priority)EPIC-024 GitHub Issue Polling — **activate or drop?** (Proposed, high priority)EPIC-012 Session Atomization — **ready to complete** (4/4 specs done)If chart.sh roadmap --json fails or returns empty data, skip the Decisions Needed section silently and continue with the rest of the status output.
Read from swain.settings.json (project) and ~/.config/swain/settings.json (user override).
| Key | Type | Default | Description |
|---|---|---|---|
status.cacheTTL | number | 120 | Cache time-to-live in seconds |
After presenting status, update the bookmark with the most actionable highlight: bash "$(find . .claude .agents -path '*/swain-session/scripts/swain-bookmark.sh' -print -quit 2>/dev/null)" "Checked status — {key highlight}"
.agents/session.json doesn't exist: skip bookmarkWeekly Installs
53
Repository
GitHub Stars
2
First Seen
14 days ago
Security Audits
Gen Agent Trust HubWarnSocketPassSnykWarn
Installed on
opencode53
codex53
gemini-cli52
claude-code51
github-copilot49
goose45
Apify 潜在客户挖掘工具:从 Google、Instagram、Facebook、TikTok 等平台自动抓取客户信息
2,800 周安装
Next.js 迁移到 vinext 完整指南 | 无需改代码,快速切换至 Vite
2,800 周安装
CLAUDE.md 改进工具 - 自动审核优化代码库文档,提升AI开发效率
2,800 周安装
n8n MCP 工具专家指南:节点搜索、工作流管理与2700+模板部署
2,800 周安装
Clerk 组织管理技能:B2B SaaS 多租户身份验证与角色权限控制
2,900 周安装
小红书AI写作助手 | 智能生成爆款笔记 | 数据分析与SEO优化
2,800 周安装