关于 flow-deliver
flow-deliver 是面向 Codex CLI 的技能,用于 Claude Octopus 工作流中的代码或文档验证。它识别审查场景,编排多提供方验证,检查报告并更新项目状态。
主要功能
- 01识别代码或文档审查场景
- 02为代码子类型选择验证标准
- 03运行多提供方验证
- 04验证报告并更新项目状态
- 05可将验证摘要发布到 PR
适用场景
- 01审查实现质量与安全性
- 02检查报告的清晰度与完整性
- 03为拉取请求整理验证结果
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ nyldn/ claude-octopus --skill flow-deliver安装后在 Claude Code 中输入/flow-deliver确认已加载。
附带文件agents/openai.yaml
详细介绍
宿主:Codex CLI — 此技能专为 Claude Code 设计,并已适配 Codex。 交叉引用命令在 Codex 中使用已安装的技能名称,而不是
/octo:*斜杠命令。 使用当前活跃的 Codex shell 和子 Agent 工具。在当前会话明确提供相应能力之前,不要声称某个提供方、模型或宿主子 Agent 可用。 有关宿主工具的对应项,请参阅skills/blocks/codex-host-adapter.md。
{{PREAMBLE}}
交付前:状态检查
开始交付前:
- 阅读
.octo/STATE.md,确认 Develop 阶段已完成 - 更新 STATE.md:
- current_phase: 4
- phase_position: "Delivery"
- status: "in_progress"
# Verify Develop phase is complete
if [[ -f ".octo/STATE.md" ]]; then
develop_status=$("${HOME}/.claude-octopus/plugin/scripts/octo-state.sh" get_phase_status 3)
if [[ "$develop_status" != "complete" ]]; then
echo "⚠️ Warning: Develop phase not marked complete. Consider completing development first."
fi
fi
# Update state for Delivery phase
"${HOME}/.claude-octopus/plugin/scripts/octo-state.sh" update_state \
--phase 4 \
--position "Delivery" \
--status "in_progress"
⚠️ 执行约定(强制 — 不可跳过)
此技能使用强制执行模式。必须严格按照以下顺序操作。
步骤 1:识别工作上下文(强制)
分析用户的提示和项目,以确定上下文:
知识上下文指标:
- 文档相关术语:"report"、"presentation"、"PRD"、"proposal"、"document"、"brief"
- 质量相关术语:"argument"、"evidence"、"clarity"、"completeness"、"narrative"
开发上下文指标:
- 代码相关术语:"code"、"implementation"、"API"、"endpoint"、"function"、"module"
- 质量相关术语:"security"、"performance"、"tests"、"coverage"、"bugs"
还要检查:正在审查什么?代码文件 -> Dev,文档 -> Knowledge
将 context_type 设为 "Dev" 或 "Knowledge"
步骤 1b:识别开发子类型(如果是开发上下文)
当 context_type 为 Dev 时,确定子类型,以便将适合该领域的验证标准注入审查提示。在第 4 步调用 orchestrate.sh 时,将匹配的验证补充内容附加到用户提示之后。
| 子类型 | 触发关键词 | 验证补充内容 |
|---|---|---|
frontend-ui | "page"、"widget"、"component"、"UI"、"HTML"、"CSS"、"form"、"dashboard"、"layout" | 验证:所有引用的文件均存在(脚本、样式表、图像)。检查 ARIA 标签和角色、键盘可导航性、触控目标尺寸(至少 44px)。标记 innerHTML 的使用。确认渐进增强(为 navigator.share、localStorage 等提供回退方案)。测试独立运行能力:在零设置的情况下打开或运行是否可用? |
cli-tool | "CLI"、"command-line"、"terminal"、"script"、"flag"、"argument" | 验证:--help 标志有效,退出码有明确含义(0/1/2),正确使用 stderr 和 stdout,并处理参数边缘情况(缺少参数、无效输入、--unknown-flag)。 |
api-service | "API"、"endpoint"、"REST"、"GraphQL"、"gRPC"、"server"、"route" | 验证:每个端点都进行输入验证,错误响应格式一致,受保护的路由有身份验证,考虑速率限制,并记录架构/契约。 |
infra | "deploy"、"terraform"、"docker"、"CI"、"pipeline"、"Kubernetes"、"helm" | 验证:操作具有幂等性,不硬编码机密信息,存在回滚路径,包含运行状况检查,销毁操作需要确认。 |
data | "ETL"、"pipeline"、"migration"、"schema"、"database"、"SQL" | 验证:迁移可逆,摄取时验证数据,记录备份策略,失败时不会丢失数据。 |
general | 如果没有匹配的子类型,则为默认值 | 无补充内容 — 使用标准审查标准。 |
应用方式: 在第 4 步调用 orchestrate.sh 时,附加验证补充内容:
orchestrate.sh deliver "<user prompt>\n\nDomain-specific validation criteria:\n<supplement text>"
在确定上下文之前,不要继续执行步骤 2。 上下文类型(Dev 或 Knowledge)和开发子类型决定注入哪些验证补充内容——上下文错误会导致审查检查不相关的标准。
STEP 2:显示可视化指示器(强制 - 阻断流程)
强制:你必须使用原生 Shell 命令工具运行此提供方检查,然后才能显示横幅。不得跳过。不得假定提供方可用。
bash "${HOME}/.claude-octopus/plugin/scripts/helpers/check-providers.sh"
使用以下实际结果。禁止:只显示“🔵 Claude:可用 ✓”,却不列出所有提供方。
如果设置了 OCTO_ALLOWED_PROVIDERS,则将其视为可参与工作流的提供方名单。被此允许名单筛除的提供方会被有意报告为不可用;不要在工作流中调用或推荐它们。
在执行 orchestrate.sh 之前显示此横幅:
对于开发上下文:
🐙 **CLAUDE OCTOPUS ACTIVATED** - Multi-provider validation mode
✅ [Dev] Deliver Phase: [Brief description of code review]
Provider Availability:
🔴 Codex CLI: [Available ✓ / Not installed ✗] - Code quality analysis
🟡 Antigravity CLI: [Available ✓ / Not installed ✗] - Security and edge cases
🧭 Antigravity CLI: [Available ✓ / Not installed ✗] - Additional external-model challenge
🔵 Claude: Available ✓ - Synthesis and recommendations
💰 Estimated Cost: 0.02-0.08 USD
⏱️ Estimated Time: 3-7 minutes
对于知识上下文:
🐙 **CLAUDE OCTOPUS ACTIVATED** - Multi-provider validation mode
✅ [Knowledge] Deliver Phase: [Brief description of document review]
Provider Availability:
🔴 Codex CLI: [Available ✓ / Not installed ✗] - Structure and logic analysis
🟡 Antigravity CLI: [Available ✓ / Not installed ✗] - Content quality and completeness
🧭 Antigravity CLI: [Available ✓ / Not installed ✗] - Additional external-model challenge
🔵 Claude: Available ✓ - Synthesis and recommendations
💰 Estimated Cost: 0.02-0.08 USD
⏱️ Estimated Time: 3-7 minutes
在显示横幅之前,不得继续执行步骤 3。 横幅会向用户展示将运行哪些提供方以及会产生哪些费用——在没有此信息的情况下启动 API 调用,违反费用透明原则。
STEP 3:读取先前状态(强制 - 状态管理)
执行工作流之前,读取完整的项目上下文:
# Initialize state if needed
"${HOME}/.claude-octopus/plugin/scripts/state-manager.sh" init_state
# Set current workflow
"${HOME}/.claude-octopus/plugin/scripts/state-manager.sh" set_current_workflow "flow-deliver" "deliver"
# Get all prior decisions (critical for validation)
prior_decisions=$("${HOME}/.claude-octopus/plugin/scripts/state-manager.sh" get_decisions "all")
# Get context from all prior phases
discover_context=$("${HOME}/.claude-octopus/plugin/scripts/state-manager.sh" get_context "discover")
define_context=$("${HOME}/.claude-octopus/plugin/scripts/state-manager.sh" get_context "define")
develop_context=$("${HOME}/.claude-octopus/plugin/scripts/state-manager.sh" get_context "develop")
# Display what you found (validation needs full context)
echo "📋 Validation Context Summary:"
if [[ "$discover_context" != "null" ]]; then
echo " Discovery: $discover_context"
fi
if [[ "$define_context" != "null" ]]; then
echo " Definition: $define_context"
fi
if [[ "$develop_context" != "null" ]]; then
echo " Development: $develop_context"
fi
if [[ "$prior_decisions" != "[]" && "$prior_decisions" != "null" ]]; then
echo " Decisions to validate against:"
echo "$prior_decisions" | jq -r '.[] | " - \(.decision) (\(.phase))"'
fi
这会提供验证所需的完整上下文:
- 需求和范围(来自定义阶段)
- 实施决策(来自开发阶段)
- 研究结果(来自探索阶段)
- 所有需要对照验证的架构决策
- 如果已安装 claude-mem,其 MCP 工具(
search、timeline、get_observations)可用——使用它们检查以往的交付问题或质量模式
在读取状态之前,不得继续执行步骤 4。
STEP 4:执行 orchestrate.sh deliver(强制 - 使用 Bash 工具)
你必须通过原生 Shell 命令工具执行此命令:
${HOME}/.claude-octopus/plugin/scripts/orchestrate.sh deliver "<user's validation request>"
重要:严禁以下行为:
- ❌ 不调用 orchestrate.sh 就直接审查——对抗式多 AI 审查可以发现单个审查者忽略的盲点;Codex 会发现代码质量问题,而 Antigravity 会发现安全问题和边缘情况
- ❌ 以单一视角分析,而不是使用多个提供方
- ❌ 声称你在“模拟”工作流
- ❌ 未运行此命令就继续执行步骤 4
你必须使用原生 Shell 命令工具调用 orchestrate.sh。
执行期间用户会看到什么(v7.16.0+)
如果使用 Claude Code v2.1.16+,用户会在任务旋转指示器中看到实时进度指示器:
阶段 1 - 外部提供方执行(并行):
- 🔴 正在分析代码质量和模式(Codex)...
- 🟡 正在验证安全性和边缘情况(Antigravity)...
阶段 2 - 综合(顺序执行):
- 🔵 正在综合验证结果...
这些旋转指示器的动词更新会自动发生——orchestrate.sh 会在每个 Agent 执行前调用 update_task_progress()。用户可以准确看到哪个提供方正在工作,以及它正在做什么。
如果未使用 Claude Code v2.1.16+: 进度指示器会被静默跳过,不会显示错误。
STEP 5:验证执行结果(强制 - 验证关卡)
orchestrate.sh 完成后,验证其是否成功:
# Find the latest validation file (created within last 10 minutes)
VALIDATION_FILE=$(find ~/.claude-octopus/results -name "ink-validation-*.md" -mmin -10 2>/dev/null | head -n1)
if [[ -z "$VALIDATION_FILE" ]]; then
echo "❌ VALIDATION FAILED: No validation file found"
echo "orchestrate.sh did not execute properly"
exit 1
fi
echo "✅ VALIDATION PASSED: $VALIDATION_FILE"
cat "$VALIDATION_FILE"
如果验证失败:
- 向用户报告错误
- 显示
~/.claude-octopus/logs/中的日志 - 不得继续展示结果
- 不得用直接审查替代——退回到单模型审查会破坏对抗式多提供方验证,而这种验证可以发现盲点
STEP 6:更新状态(强制 - 执行后)
验证完成后,记录最终指标:
# Update deliver phase context with validation summary
validation_summary=$(head -30 "$VALIDATION_FILE" | grep -A 2 "## Summary\|Pass\|Fail" | tail -2 | tr '\n' ' ')
"${HOME}/.claude-octopus/plugin/scripts/state-manager.sh" update_context \
"deliver" \
"$validation_summary"
# Update final metrics (completion of full workflow)
"${HOME}/.claude-octopus/plugin/scripts/state-manager.sh" update_metrics "phases_completed" "1"
# Display final state summary
echo ""
echo "📊 Session Complete - Final Metrics:"
"${HOME}/.claude-octopus/plugin/scripts/state-manager.sh" show_summary
在更新状态之前,不得继续执行步骤 7。
STEP 7:提交验证报告并发布到 PR(仅在完成步骤 1-6 后)
读取验证文件并展示:
- 总体状态(✅ 已通过 / ⚠️ 已通过但有警告 / ❌ 失败)
- 质量评分(XX/100)
- 摘要
- 严重问题(必须修复)
- 警告(应该修复)
- 建议(有助于改进)
- 所有提供方的验证详情
- 质量关卡结果
- 后续步骤
注明来源:
*Multi-AI Validation powered by Claude Octopus*
*Providers: available external providers + 🔵 Claude*
*Full validation report: $VALIDATION_FILE*
发布到 PR(v8.44.0)
呈现报告后,检查当前分支是否有待处理的 PR,并将验证摘要作为 PR 评论发布:
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "")
PR_NUM=""
if [[ -n "$CURRENT_BRANCH" && "$CURRENT_BRANCH" != "main" && "$CURRENT_BRANCH" != "master" ]]; then
if command -v gh &>/dev/null; then
PR_NUM=$(gh pr list --head "$CURRENT_BRANCH" --json number --jq '.[0].number' 2>/dev/null || echo "")
fi
fi
if [[ -n "$PR_NUM" ]]; then
# Extract summary section from validation file for PR comment
REVIEW_SUMMARY=$(head -60 "$VALIDATION_FILE")
REPO_SLUG=$(gh repo view --json nameWithOwner --jq .nameWithOwner)
COMMENT_BODY="## Deliver Phase — Validation Report
${REVIEW_SUMMARY}
___
*Multi-AI validation by Claude Octopus (/octo:deliver)*
*Providers: available external providers + 🔵 Claude*"
if ! "${CLAUDE_PLUGIN_ROOT:-${HOME}/.claude-octopus/plugin}/scripts/safe-gh-comment.sh" \
--repo "$REPO_SLUG" pr-comment "$PR_NUM" - <<< "$COMMENT_BODY"; then
echo "GitHub write state is unknown; check for the validation report before retrying:" >&2
gh pr view "$PR_NUM" --repo "$REPO_SLUG" --comments || true
return 1 2>/dev/null || exit 1
fi
echo "Validation report posted to PR #${PR_NUM}"
# Update agent registry
REGISTRY="${HOME}/.claude-octopus/plugin/scripts/agent-registry.sh"
if [[ -x "$REGISTRY" ]]; then
AGENT_ID="$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "")"
"$REGISTRY" update "$AGENT_ID" --pr "$PR_NUM" 2>/dev/null || true
fi
fi
行为:
- 在
/octo:embrace或/octo:factory中运行时自动发布 - 通过
/octo:deliver独立运行时,先询问用户:"PR #N found. Post validation report as a PR comment?" Options: "Yes, post to PR", "No, terminal only" - 如果没有 PR 或
ghCLI 不可用,则静默跳过
Deliver 工作流 - 交付阶段 ✅
⚠️ 强制要求:上下文检测与视觉指示器
在执行任何工作流操作之前,必须:
步骤 1:检测工作上下文
分析用户的提示词和项目,以确定上下文:
知识上下文指示器(在提示词中):
- 文档相关词语:"报告"、"演示文稿"、"PRD"、"提案"、"文档"、"简报"
- 质量相关词语:"论点"、"证据"、"清晰度"、"完整性"、"叙述"
开发上下文指示器(在提示词中):
- 代码相关词语:"代码"、"实现"、"API"、"端点"、"函数"、"模块"
- 质量相关词语:"安全性"、"性能"、"测试"、"覆盖率"、"错误"
还需检查:正在审查的内容是什么?代码文件 -> 开发,文档 -> 知识
步骤 1b:检测开发子类型 — 请参阅上方执行契约的步骤 1b,查看子类型表和验证补充内容。在调用 orchestrate.sh 之前,将匹配的补充内容附加到提示词中。
步骤 2:输出与上下文相符的横幅
开发上下文:
🐙 **CLAUDE OCTOPUS ACTIVATED** - Multi-provider validation mode
✅ [Dev] Deliver Phase: [Brief description of code review]
📋 Session: ${CLAUDE_SESSION_ID}
Providers:
🔴 Codex CLI - Code quality analysis
🟡 Antigravity CLI - Security and edge cases
🔵 Claude - Synthesis and recommendations
知识上下文:
🐙 **CLAUDE OCTOPUS ACTIVATED** - Multi-provider validation mode
✅ [Knowledge] Deliver Phase: [Brief description of document review]
📋 Session: ${CLAUDE_SESSION_ID}
Providers:
🔴 Codex CLI - Structure and logic analysis
🟡 Antigravity CLI - Content quality and completeness
🔵 Claude - Synthesis and recommendations
{{VISUAL_INDICATORS}}
双钻石模型的一部分:DELIVER(收敛思维)
DELIVER (ink)
\ /
\ /
\ /
\ /
\ /
Converge to
delivery
此工作流的功能
deliver 阶段使用外部 CLI 提供程序验证和审查实现:
- 🔴 Codex CLI - 代码质量、最佳实践、技术正确性
- 🟡 Antigravity CLI - 安全审计、边界情况、用户体验
- 🔵 Claude(你) - 综合分析并生成最终验证报告
这是交付的收敛阶段——确保质量达标后再发布。
何时使用 Deliver
需要以下操作时使用 deliver:
开发上下文示例
- 代码审查:"审查身份验证实现"
- 安全审计:"检查 auth.ts 中的安全漏洞"
- 质量验证:"验证 API 端点是否已达到生产就绪状态"
- 实现验证:"验证缓存层是否正常工作"
- 部署前检查:"确保此功能已准备好发布"
知识上下文示例
- 文档审查:"审查 PRD 的完整性"
- 演示文稿验证:"检查高管演示文稿是否清晰"
- 报告质量检查:"验证市场分析报告"
- 提案审查:"审查业务案例是否已准备好供利益相关者评估"
- 内容审计:"确保策略文档具有可执行性"
以下情况不要使用 deliver:
- 构建实现(使用 develop-workflow)
- 研究和探索(使用 discover-workflow)
- 定义需求(使用 define-workflow)
- 简单地读取代码或文档(使用 Read 工具)
视觉指示器
执行前,你会看到:
🐙 **CLAUDE OCTOPUS ACTIVATED** - Multi-provider validation
✅ Deliver Phase: Reviewing and validating implementation
Providers:
🔴 Codex CLI - Code quality and best practices
🟡 Antigravity CLI - Security and edge cases
🔵 Claude - Synthesis and validation report
工作原理
步骤 1:调用 Ink 阶段
${HOME}/.claude-octopus/plugin/scripts/orchestrate.sh deliver "<user's validation request>"
步骤 2:多提供程序验证
orchestrate.sh 脚本将:
- 调用 Codex CLI 分析代码质量
- 调用 Antigravity CLI 审查安全性和边界情况
- 由你(Claude)综合分析结果并生成验证报告
- 生成质量评分和建议
步骤 3:质量关卡(自动)
ink 阶段通过 PostToolUse hook 自动进行质量验证:
- 代码质量:复杂度、可维护性、文档
- 安全性:OWASP 十大安全风险、身份验证、输入验证
- 最佳实践:错误处理、日志记录、测试
- 完整性:缺失的功能、边界情况
步骤 4:读取结果
结果保存至:
~/.claude-octopus/results/${SESSION_ID}/ink-validation-<timestamp>.md
步骤 5:呈现验证报告
阅读综合分析结果,并向用户呈现调查结果和质量评分。
实施说明
调用此技能时,必须严格遵循上述执行约定。该约定包括:
- 阻塞步骤 1:检测工作上下文(开发或知识)
- 阻塞步骤 2:检查提供方并显示可视化指示
- 阻塞步骤 3:通过原生 shell 命令工具执行 orchestrate.sh deliver
- 阻塞步骤 4:验证文件是否存在
- 步骤 5:呈现格式化的验证报告
每个步骤都必须执行且具有阻塞性——只有当前步骤成功完成后,才能继续下一步。
任务管理集成
创建任务以跟踪执行进度:
// At start of skill execution
TaskCreate({
subject: "Execute deliver workflow with multi-AI providers",
description: "Run orchestrate.sh deliver for validation",
activeForm: "Running multi-AI deliver workflow"
})
// Mark in_progress when calling orchestrate.sh
TaskUpdate({taskId: "...", status: "in_progress"})
// Mark completed ONLY after validation report presented
TaskUpdate({taskId: "...", status: "completed"})
错误处理
如果任何步骤失败:
- 步骤 1(上下文):若无法明确判断,则默认使用开发上下文
- 步骤 2(提供方):如果所有外部提供方都不可用,请建议使用
/octo:setup并停止 - 步骤 3(orchestrate.sh):显示 bash 错误、检查日志并向用户报告
- 步骤 4(验证):如果验证文件缺失,显示 orchestrate.sh 日志,切勿改用直接审查
如果 orchestrate.sh 执行失败,绝不要改用直接审查。请报告失败情况,并由用户决定如何继续。
验证报告格式
成功执行后,按以下格式呈现验证报告:
# Validation Report: <task>
## Overall Status: ✅ PASSED / ⚠️ PASSED WITH WARNINGS / ❌ FAILED
**Quality Score**: XX/100
## Summary
[Brief summary of validation findings]
## Critical Issues (Must Fix)
- [ ] Issue 1: [Description]
- [ ] Issue 2: [Description]
## Warnings (Should Fix)
- [ ] Warning 1: [Description]
- [ ] Warning 2: [Description]
## Recommendations (Nice to Have)
- [ ] Recommendation 1: [Description]
- [ ] Recommendation 2: [Description]
## Validation Details
### Code Quality (Codex Analysis)
**Score**: XX/100
- [Specific findings about code quality]
- [Best practice violations]
- [Improvement suggestions]
### Security Audit (Antigravity Analysis)
**Score**: XX/100
- [Security vulnerabilities found]
- [Authentication/authorization issues]
- [Input validation concerns]
### Final Validation (Claude Synthesis)
**Score**: XX/100
- [Integrated assessment]
- [Risk analysis]
- [Go/no-go recommendation]
## Quality Gates
- [X] Code Quality: XX/100 (PASSED/FAILED)
- [X] Security: XX/100 (PASSED/FAILED)
- [X] Best Practices: XX/100 (PASSED/FAILED)
- [X] Completeness: XX/100 (PASSED/FAILED)
## Next Steps
[Recommended actions based on findings]
Full validation report saved to: <validation file path>
使用示例
示例 1:审查身份验证实现
User: Review the authentication implementation in src/auth/
Claude:
🐙 **CLAUDE OCTOPUS ACTIVATED** - Multi-provider validation
✅ Deliver Phase: Reviewing authentication implementation
[Executes: ${HOME}/.claude-octopus/plugin/scripts/orchestrate.sh deliver "Review authentication implementation in src/auth/"]
[After completion, reads validation and presents:]
# Validation Report: Authentication Implementation
## Overall Status: ⚠️ PASSED WITH WARNINGS
**Quality Score**: 78/100
## Summary
The authentication implementation is functional and follows most best practices, but has security concerns with token storage and missing rate limiting. Code quality is good with TypeScript types and error handling. Recommend addressing security warnings before production deployment.
## Critical Issues (Must Fix)
- [ ] **Security**: JWT secret is hardcoded in auth/config.ts (should use env variable)
- [ ] **Security**: No rate limiting on /login endpoint (vulnerability to brute force)
## Warnings (Should Fix)
- [ ] **Best Practice**: Password validation regex could be stronger (min 12 chars, special chars)
- [ ] **Testing**: Missing unit tests for token refresh logic
- [ ] **Error Handling**: Generic error messages leak whether email exists (account enumeration)
## Recommendations (Nice to Have)
- [ ] **UX**: Add "remember me" functionality for longer sessions
- [ ] **Monitoring**: Add logging for failed login attempts
- [ ] **Documentation**: Add JSDoc comments for public API methods
## Validation Details
### Code Quality (Codex Analysis)
**Score**: 85/100
**Strengths**:
- Clean TypeScript with proper types
- Good separation of concerns (controller/service/middleware)
- Proper async/await error handling
- Express middleware pattern used correctly
**Issues**:
- Missing JSDoc documentation
- Some functions exceed 50 lines (refactor recommended)
- No unit tests for edge cases
**Code Examples**:
\`\`\`typescript
// Good: Proper error handling
try {
const token = jwt.sign(payload, JWT_SECRET, { expiresIn: '15m' });
return token;
} catch (error) {
logger.error('Token generation failed', error);
throw new AuthError('Failed to generate token');
}
// Issue: Hardcoded secret (security risk)
const JWT_SECRET = 'my-secret-key-123'; // Should be process.env.JWT_SECRET
\`\`\`
### Security Audit (Antigravity Analysis)
**Score**: 68/100
**Critical Vulnerabilities**:
- ❌ Hardcoded JWT secret (HIGH severity)
- ❌ No rate limiting on auth endpoints (MEDIUM severity)
- ❌ Account enumeration via error messages (MEDIUM severity)
**Good Security Practices**:
- ✅ bcrypt password hashing with 12 rounds
- ✅ JWT tokens with short expiration (15min)
- ✅ Refresh token rotation implemented
- ✅ HTTPS-only cookies for token storage
**Recommendations**:
- Use environment variables for secrets
- Add express-rate-limit middleware
- Standardize error messages ("Invalid credentials" for all auth failures)
- Consider adding 2FA hooks for future enhancement
### Final Validation (Claude Synthesis)
**Score**: 78/100
**Risk Assessment**:
- **High**: Hardcoded secrets must be fixed before production
- **Medium**: Rate limiting should be added (prevents abuse)
- **Low**: Missing tests and docs can be addressed post-launch
**Go/No-Go Recommendation**:
- ⚠️ **CONDITIONAL GO**: Fix critical security issues, then ready for production
- Timeline: 2-4 hours to address critical issues
- Post-launch: Address warnings and recommendations in next sprint
**Architecture Assessment**:
- Good: Follows Express.js patterns, scalable design
- Good: Proper separation of concerns
- Improve: Add integration tests for full auth flow
## Quality Gates
- [X] Code Quality: 85/100 ✅ PASSED
- [X] Security: 68/100 ⚠️ WARNING (below 75 threshold)
- [X] Best Practices: 80/100 ✅ PASSED
- [X] Completeness: 75/100 ✅ PASSED (minimum viable)
## Next Steps
1. **Immediate (Before Deploy)**:
- Fix hardcoded JWT secret -> use process.env.JWT_SECRET
- Add rate limiting -> npm install express-rate-limit
- Standardize error messages -> update auth/controller.ts
2. **Short Term (Next Sprint)**:
- Add unit tests for auth service
- Improve password validation
- Add JSDoc documentation
3. **Long Term (Future)**:
- Add 2FA support
- Implement "remember me" functionality
- Add comprehensive logging and monitoring
Full validation report saved to: ~/.claude-octopus/results/abc-123/ink-validation-20250118-145600.md
示例 2:验证 API 端点
User: Validate the new API endpoints are ready to ship
Claude:
🐙 **CLAUDE OCTOPUS ACTIVATED** - Multi-provider validation
✅ Deliver Phase: Validating API endpoints
[Executes ink workflow]
[Presents detailed validation with:]
- API contract compliance (OpenAPI/Swagger)
- Error handling coverage
- Security (auth, input validation)
- Performance (query optimization)
- Documentation completeness
[Provides go/no-go decision with quality scores]
质量门集成
ink 阶段会通过 .claude/hooks/quality-gate.sh 自动运行全面的质量检查:
# Triggered after ink execution (PostToolUse hook)
./hooks/quality-gate.sh
v8.49.0:项目专属 lint/typecheck(质量评分前):
运行概念性质量门之前,先检测并运行项目实际使用的 lint/typecheck 命令:
- 检查
package.json中的lint、typecheck、tsc、check脚本 - 检查是否使用
ruff、mypy、cargo clippy、go vet、make lint - 将通过/失败结果与质量门评分一并报告
- 如果发现质量命令但 CLAUDE.md 中未记录,建议将其添加进去
{{QUALITY_GATES}}
与其他工作流的集成
Ink 是双钻模型的最后阶段:
PROBE (Discover) → GRASP (Define) → TANGLE (Develop) → INK (Deliver)
完整工作流示例:
- 探查:“研究身份验证最佳实践” -> 发现选项
- 领会:“定义身份验证需求” -> 聚焦于具体需求
- 构建:“实现 JWT 身份验证” -> 构建解决方案
- 验收:“验证身份验证实现” -> 发布前确保质量
也可以单独使用 ink 验证现有代码。
验证检查清单
标记验证完成前,请确保:
- 所有提供方均已完成分析
- 已计算所有维度的质量评分
- 已识别并记录关键问题
- 已提供警告和建议
- 已明确说明是否通过
- 已记录供用户参考的后续步骤
- 已分享完整验证报告
成本提示
外部 API 使用情况:
- 🔴 Codex CLI 使用你的 OPENAI_API_KEY(会产生费用)
- 🟡 Antigravity CLI 使用你的 AGY_AUTH_TOKEN(会产生费用)
- 🔵 Claude 分析已包含在 Claude Code 中
根据代码库规模和复杂度,Ink 工作流每次验证的费用通常为 0.02-0.08 USD。
验证后:同步文档
验证通过(决定继续)后,运行文档同步,确保项目文档与已交付代码保持一致。作为 /octo:embrace 的一部分运行时,此步骤会自动执行;单独运行时则会提供此选项。
收到明确的交付请求后,加载文档同步源:
Read ${HOME}/.claude-octopus/plugin/.claude/skills/skill-doc-sync/SKILL.md and execute it for "sync docs for the changes on this branch"
文档同步技能将:
- 读取所有
.md文件(最大深度为 2,最多 30 个文件) - 将每个文件与
git diff交叉比对,查找过时内容 - 自动更新事实性修正(路径、数量、版本号)
- 编辑前就有风险的修改或叙述性内容征求意见
- 检查跨文档的一致性和内容的易查找性
- 将文档更改提交到分支
跳过条件: 以下情况跳过文档同步:
- 项目中不存在
.md文件 - 验证结果为“不可继续”(先修复代码)
- 用户明确要求跳过(使用
--no-docs或在询问时拒绝)
交付后:转入发布流程
交付验证和文档同步完成后,根据用户的明确请求转入相应流程:
- 请求发布: 更新
.octo/STATE.md,然后从稳定的插件根目录读取并遵循.claude/skills/skill-ship/SKILL.md。 - 请求结束分支: 从稳定的插件根目录读取并遵循
.claude/skills/skill-finish-branch/SKILL.md。 - 仅审查: 提交综合审查结果并停止。不要将项目更新为可发布状态,也不要显示发布指令。
# Run this block only when the user explicitly requested shipping.
"${HOME}/.claude-octopus/plugin/scripts/octo-state.sh" update_state \
--status "complete" \
--history "All phases complete, ready to ship"
# Display completion message with next steps
echo ""
echo "🎉 **EMBRACE WORKFLOW COMPLETE**"
echo ""
echo "All four phases have been completed:"
echo " ✅ Discover - Research and exploration"
echo " ✅ Define - Requirements and scope"
echo " ✅ Develop - Implementation"
echo " ✅ Deliver - Validation and quality"
echo ""
echo "📦 **Project ready! Run \`/octo:ship\` to finalize and archive.**"
上述代码块成功执行后,立即完成请求的最终处理:
Read ${HOME}/.claude-octopus/plugin/.claude/skills/skill-ship/SKILL.md and execute it for "finalize and archive the validated project"
不要在显示命令后停止。只有在实际执行了明确请求的发布工作流后,请求发布的分支才算完成。
终止状态
只有在综合验证结果并解决或经用户明确接受所有必须修复的问题后,交付阶段才算完成。如果用户要求发布或结束分支,则读取并执行 skill-ship(对于测试、PR 和合并,则执行 skill-finish-branch)。对于仅审查的请求,提交审查结果并停止;未经用户授权,切勿擅自将请求扩展为发布工作。
准备好开始验证! 只有在明确调用后,此技能才会运行。