关于 skill-ship
skill-ship 是用于完成项目交付的 Claude Octopus 技能。它检查项目状态、要求进行多 AI 安全审计、记录经验、归档状态文件,并创建已交付检查点。
主要功能
- 01项目就绪状态检查
- 02强制多 AI 安全审计
- 03记录经验教训
- 04归档状态文件
- 05更新已交付状态并创建 Git 标签
适用场景
- 01交付前验证项目状态
- 02记录经验并归档项目状态
- 03为已交付项目创建检查点
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ nyldn/ claude-octopus --skill skill-ship安装后在 Claude Code 中输入/skill-ship确认已加载。
附带文件agents/openai.yaml
详细介绍
宿主:Codex CLI — 此技能专为 Claude Code 设计,并已适配 Codex。 交叉引用命令在 Codex 中使用已安装的技能名称,而不是
/octo:*斜杠命令。 使用当前激活的 Codex shell 和子 Agent 工具。除非当前会话中已提供相关功能,否则不要声称可以使用某个提供商、模型或宿主子 Agent。 有关宿主工具的对应关系,请参阅skills/blocks/codex-host-adapter.md。
交付项目 - 多 AI 交付验证
通过多 AI 安全审计、经验总结和归档,完成并交付已完成的工作。
核心原则: 确认就绪 -> 多 AI 审计 -> 总结经验 -> 归档 -> 交付。
何时使用
用户提出以下要求时使用此技能:
- “交付项目”或“我们完成了”
- “完成最终处理”或“交付吧”
- “完成项目”或“可以交付了”
- “标记为已交付”或“该交付了”
以下情况不要使用:
- 代码审查(使用 /octo:review 或 flow-deliver)
- 实现(使用 /octo:develop)
- 研究(使用 /octo:research)
流程
阶段 1:确认项目已准备好交付
步骤 1:检查 .octo/ 是否存在
if [[ ! -d ".octo" ]]; then
echo "No project initialized"
exit 1
fi
如果 .octo/ 不存在:
## Cannot Ship
**Status:** No project initialized
No Claude Octopus project found in this directory.
Run `/octo:embrace [description]` to start a new project.
停止。不要继续。
步骤 2:读取 STATE.md 状态
# Check if STATE.md exists and read status
if [[ -f ".octo/STATE.md" ]]; then
# Read current status
STATUS=$(grep -E "^status:" .octo/STATE.md | cut -d':' -f2 | xargs || echo "unknown")
CURRENT_PHASE=$(grep -E "^current_phase:" .octo/STATE.md | cut -d':' -f2 | xargs || echo "unknown")
else
STATUS="unknown"
CURRENT_PHASE="unknown"
fi
echo "Status: $STATUS"
echo "Current Phase: $CURRENT_PHASE"
步骤 3:验证就绪状态
满足以下任一条件时允许交付:
status= "complete",或current_phase= "4"(交付阶段),或- STATE.md 历史记录中包含全部四个阶段的条目
如果尚未就绪:
## Project Not Ready to Ship
**Current Status:** {status}
**Current Phase:** {current_phase}
### To prepare for shipping:
1. Complete remaining phases:
- [ ] Phase 1: Discover - Use `/octo:discover`
- [ ] Phase 2: Define - Use `/octo:define`
- [ ] Phase 3: Develop - Use `/octo:develop`
- [ ] Phase 4: Deliver - Use `/octo:deliver`
2. Or override with: "ship anyway" (not recommended)
除非用户说“无论如何都要交付”,否则停止。
阶段 2:多 AI 安全审计
步骤 1:显示可视化指示器
# Check provider availability
command -v codex &> /dev/null && codex_status="Available" || codex_status="Not installed"
command -v agy &> /dev/null && agy_status="Available" || agy_status="Not installed"
输出:
## Multi-AI Security Audit
**Providers:**
- Codex CLI: ${codex_status} - Code security analysis
- Antigravity CLI: ${agy_status} - Additional external-model challenge
- Claude: Available - Synthesis and final validation
**Estimated Time:** 3-5 minutes
**Estimated Cost:** 0.02-0.08 USD
步骤 2:执行 orchestrate.sh 安全审计
必须通过原生命令行工具执行此操作:
# Run Multi-AI security audit for delivery
"${HOME}/.claude-octopus/plugin/scripts/orchestrate.sh" ink "Security audit for delivery - comprehensive review of all code changes for production readiness"
必须遵守的要求
重要:严禁:
- 跳过多 AI 验证
- 改为执行单一提供商分析
- 声称自己在“模拟”审计
- 未运行 orchestrate.sh 就继续
步骤 3:验证审计已完成
# Find the latest validation file
VALIDATION_FILE=$(find ~/.claude-octopus/results -name "ink-validation-*.md" -mmin -10 2>/dev/null | head -n1)
if [[ -z "$VALIDATION_FILE" ]]; then
echo "AUDIT FAILED: No validation file found"
exit 1
fi
echo "AUDIT COMPLETE: $VALIDATION_FILE"
步骤 4:显示审计摘要
读取验证文件并展示:
- 总体状态(通过 / 有警告但通过 / 未通过)
- 质量评分
- 严重问题(交付前必须修复)
- 警告(建议修复)
如果审计未通过且存在严重问题:
## Audit Failed - Cannot Ship
Critical issues must be resolved before shipping:
1. [Issue 1 from validation]
2. [Issue 2 from validation]
Resolve issues and run `/octo:ship` again.
如果发现严重问题,停止。
阶段 3:总结经验教训
步骤 1:向用户询问经验教训
## Lessons Learned
Before finalizing, let's capture what we learned from this project.
**Please answer the following:**
1. **What went well?** (What worked better than expected?)
2. **What could improve?** (What would you do differently?)
3. **Key learnings?** (What insights will you carry forward?)
*Reply with your answers, or type "skip" to proceed without capturing lessons.*
等待用户回复。
步骤 2:追加到 LESSONS.md
如果用户提供了经验教训(而不是“跳过”):
# Generate timestamp
TIMESTAMP=$(date '+%Y-%m-%d')
# Ensure LESSONS.md exists
touch .octo/LESSONS.md
# Append lessons
cat >> .octo/LESSONS.md << EOF
## ${TIMESTAMP} - Project Delivery
### What Went Well
- ${USER_WHAT_WENT_WELL}
### What Could Improve
- ${USER_WHAT_COULD_IMPROVE}
### Key Learnings
- ${USER_KEY_LEARNINGS}
EOF
统计经验教训总数:
LESSON_COUNT=$(grep -c "^## " .octo/LESSONS.md 2>/dev/null || echo "0")
echo "Total lessons captured: $LESSON_COUNT"
阶段 4:归档项目状态
步骤 1:创建归档目录
# Generate timestamp for archive
ARCHIVE_TIMESTAMP=$(date +%Y%m%d-%H%M%S)
ARCHIVE_DIR=".octo/archive/${ARCHIVE_TIMESTAMP}"
# Create archive directory
mkdir -p "$ARCHIVE_DIR"
步骤 2:将状态文件复制到归档目录
# Archive STATE.md if exists
if [[ -f ".octo/STATE.md" ]]; then
cp .octo/STATE.md "$ARCHIVE_DIR/"
fi
# Archive PROJECT.md if exists
if [[ -f ".octo/PROJECT.md" ]]; then
cp .octo/PROJECT.md "$ARCHIVE_DIR/"
fi
# Archive ROADMAP.md if exists
if [[ -f ".octo/ROADMAP.md" ]]; then
cp .octo/ROADMAP.md "$ARCHIVE_DIR/"
fi
# Archive ISSUES.md if exists
if [[ -f ".octo/ISSUES.md" ]]; then
cp .octo/ISSUES.md "$ARCHIVE_DIR/"
fi
echo "Archived to: $ARCHIVE_DIR"
重要:绝不归档 LESSONS.md——经验教训会在不同项目间保留。
步骤 3:验证归档
# List archived files
ls -la "$ARCHIVE_DIR"
阶段 5:创建交付摘要
步骤 1:更新 STATE.md
# Update status to shipped
sed -i '' 's/^status:.*/status: shipped/' .octo/STATE.md 2>/dev/null || \
sed -i 's/^status:.*/status: shipped/' .octo/STATE.md
# Append history entry
cat >> .octo/STATE.md << EOF
## History - $(date '+%Y-%m-%d %H:%M')
- **Event:** Project shipped
- **Archive:** .octo/archive/${ARCHIVE_TIMESTAMP}/
- **Validation:** ${VALIDATION_FILE}
EOF
步骤 2:创建已交付检查点
# Create git checkpoint tag
CHECKPOINT_TAG="octo-checkpoint-shipped-${ARCHIVE_TIMESTAMP}"
git tag -a "$CHECKPOINT_TAG" -m "Project shipped - $(date '+%Y-%m-%d %H:%M:%S')"
echo "Checkpoint created: $CHECKPOINT_TAG"
步骤 3:统计指标
# Count resolved issues
ISSUES_RESOLVED=$(grep -c "^\- \[x\]" .octo/ISSUES.md 2>/dev/null || echo "0")
# Count total lessons
LESSONS_COUNT=$(grep -c "^## " .octo/LESSONS.md 2>/dev/null || echo "0")
echo "Issues resolved: $ISSUES_RESOLVED"
echo "Lessons captured: $LESSONS_COUNT"
阶段 6:显示完成信息
展示最终摘要:
## Project Shipped!
**Delivered:** {timestamp}
**Phases Completed:** 4/4
**Issues Resolved:** {ISSUES_RESOLVED}
**Lessons Captured:** {LESSONS_COUNT}
### Multi-AI Audit Summary
- **Security Score:** {score}/100
- **Quality Score:** {score}/100
- **Providers Used:** Claude plus available external providers
### Archive
Location: `.octo/archive/{ARCHIVE_TIMESTAMP}/`
Contents:
- STATE.md
- PROJECT.md
- ROADMAP.md
- ISSUES.md
### Checkpoint
Tag: `{CHECKPOINT_TAG}`
Restore with: `/octo:rollback {CHECKPOINT_TAG}`
**To start a new project:** `/octo:embrace`
*Multi-AI validation powered by Claude Octopus*
*Providers: Codex | Antigravity | Claude*
错误处理
| 错误 | 解决方案 |
|---|---|
| 没有 .octo/ 目录 | 建议使用 /octo:embrace |
| 项目尚未就绪 | 显示尚未完成的阶段 |
| orchestrate.sh 执行失败 | 显示错误日志,建议重试 |
| 审计发现严重问题 | 阻止交付并显示问题 |
| Git 标签创建失败 | 发出警告但继续(非阻塞) |
安全措施
| 措施 | 实施方式 |
|---|---|
| 交付前审计 | 必须通过 orchestrate.sh 多 AI 验证 |
| 保留经验教训 | 绝不归档 LESSONS.md,始终予以保留 |
| 交付前归档 | 将状态文件复制到归档目录 |
| Git 检查点 | 创建标签以便回滚 |
| 不删除文件 | 只复制到归档,不删除源文件 |
与其他技能的集成
与 /octo:deliver 集成
User runs /octo:deliver to validate
→ Deliver phase complete
→ User runs /octo:ship to finalize
与 /octo:rollback 集成
User ships project
→ Checkpoint created
→ Later: /octo:rollback octo-checkpoint-shipped-*
与 /octo:status 集成
After ship: status shows "shipped"
→ Suggests /octo:embrace for new project
危险信号 - 切勿执行
| 操作 | 错误原因 |
|---|---|
| 跳过 Multi-AI 审计 | 未能发现安全漏洞 |
| 归档 LESSONS.md | 丢失积累的项目知识 |
| 删除源文件 | 应复制,而非移动 |
| 未进行就绪检查就发布 | 发布不完整的工作 |
| 跳过创建检查点 | 没有回滚恢复途径 |
快速参考
| 步骤 | 命令 | 用途 |
|---|---|---|
| 1 | 检查 .octo/STATE.md | 确认已准备好发布 |
| 2 | orchestrate.sh ink | Multi-AI 安全审计 |
| 3 | 询问用户 | 收集经验教训 |
| 4 | mkdir + cp | 归档状态文件 |
| 5 | 更新 STATE.md | 标记为已发布 |
| 6 | git tag | 创建已发布检查点 |
总结
Ship → Ready + Audit passed + Lessons captured + Archived + Checkpoint created
Otherwise → Not shipped
确认就绪。运行 Multi-AI 审计。收集经验教训。归档状态。创建检查点。发布。
评论
支持 Markdown