mcpField
S
skill-ship

skill-ship

github.com/nyldn开发4.3k47 次安装今天更新
代码仓库

关于 skill-ship

skill-ship 是用于完成项目交付的 Claude Octopus 技能。它检查项目状态、要求进行多 AI 安全审计、记录经验、归档状态文件,并创建已交付检查点。

主要功能

  1. 01项目就绪状态检查
  2. 02强制多 AI 安全审计
  3. 03记录经验教训
  4. 04归档状态文件
  5. 05更新已交付状态并创建 Git 标签

适用场景

  1. 01交付前验证项目状态
  2. 02记录经验并归档项目状态
  3. 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确认已准备好发布
2orchestrate.sh inkMulti-AI 安全审计
3询问用户收集经验教训
4mkdir + cp归档状态文件
5更新 STATE.md标记为已发布
6git tag创建已发布检查点

总结

Ship → Ready + Audit passed + Lessons captured + Archived + Checkpoint created
Otherwise → Not shipped

确认就绪。运行 Multi-AI 审计。收集经验教训。归档状态。创建检查点。发布。

评论

支持 Markdown