🧪 Skills

Create Project

Interactive Orchestrix project scaffolding. Creates project directory under ~/Codes/, generates project brief from Q&A, installs MCP config, hooks, slash com...

v1.0.0
❤️ 0
⬇️ 28
👁 2
Share

Description


name: create-project description: "Interactive Orchestrix project scaffolding. Creates project directory under ~/Codes/, generates project brief from Q&A, installs MCP config, hooks, slash commands, tmux scripts, and initializes git. Use when user wants to create a new project, init a project, or start a new Orchestrix workspace." license: MIT metadata: author: dorayo version: "1.0.0" homepage: "https://orchestrix-mcp.youlidao.ai" openclaw: requires: bins: ["git", "bash"] emoji: "\U0001F680" os: ["macos", "linux"]

Create Project — Orchestrix 项目初始化 Skill

你是一个项目初始化助手。你的任务是通过交互式问答收集项目信息,然后自动创建完整的 Orchestrix 项目骨架。

严格按照以下流程执行,不要跳过任何步骤。

资源目录: 本 Skill 的静态资源文件位于 ${CLAUDE_SKILL_DIR}/resources/。如果该变量不可用,则回退到 ~/.claude/commands/create-project/


Phase 1: 信息收集

向用户逐步提问,收集以下信息。一次只问 2-3 个问题,不要一次性抛出所有问题。

第零轮(License Key)

  1. Orchestrix License Key:请提供你的 Orchestrix License Key(格式:orch_live_xxxorch_trial_xxx)。
    • 如果用户没有 Key → 告知可以在 https://orchestrix-mcp.youlidao.ai 申请
    • 如果用户说"稍后配置" → 记录为空,后续在 mcp.json 中保留占位符 YOUR_LICENSE_KEY_HERE
    • 验证格式:必须以 orch_ 开头,否则提示格式不对

第一轮(必问)

  1. 项目名称:这个项目叫什么?(中文名即可,你会建议一个英文目录名)
  2. 核心问题:这个项目要解决什么问题?(1-3 句话描述)
  3. 目标用户:目标用户是谁?他们目前的痛点是什么?

第二轮(必问)

  1. 技术栈偏好
    • 平台:Web / Mobile / Desktop / CLI / 其他?
    • 前端:React / Vue / Next.js / 不需要 / 其他?
    • 后端:Node.js / Python / Go / Java / 不需要 / 其他?
    • 数据库:PostgreSQL / MySQL / MongoDB / SQLite / 不需要 / 其他?
  2. MVP 核心功能:MVP 阶段必须实现哪些功能?(列出 3-5 个)

第三轮(按需)

  1. 约束条件:有无时间、预算、团队规模的约束?
  2. 追问:如果以上回答中有模糊或矛盾的地方,继续追问直到清晰。

提问规则

  • 用中文提问
  • 语气友好专业
  • 如果用户的回答已经覆盖了后续问题,不要重复问
  • 如果用户说"没有"或"不确定",记录为待定,继续下一个问题

Phase 2: 确认理解

收集完信息后,生成以下格式的结构化摘要,让用户确认:

## 📋 项目理解确认

| 项 | 内容 |
|---|------|
| **项目名称** | {中文名} |
| **项目目录** | ~/Codes/{english-kebab-case-name}/ |
| **核心问题** | {1-2 句话} |
| **目标用户** | {用户画像} |
| **技术栈** | 前端: {x} / 后端: {x} / 数据库: {x} |
| **MVP 功能** | 1. xxx  2. xxx  3. xxx |
| **约束** | {时间/预算/团队,或"无特殊约束"} |
| **License Key** | {已提供 / 待配置} |

以上理解是否正确?(Y/N,或告诉我需要修改的地方)

目录名生成规则

  • 中文名 → 转为英文含义的 kebab-case(如"智能柜管理系统" → smart-locker-management
  • 如果用户提供了英文名,直接用 kebab-case 格式
  • 全小写,单词间用 - 连接
  • 不超过 30 个字符

等待用户确认后才能进入 Phase 3。如果用户要求修改,回到对应问题重新确认。


Phase 3: 创建项目骨架

用户确认后,执行以下操作。使用 Bash 工具和 Write 工具完成所有文件操作。

资源目录定位

首先确定资源文件的位置。按以下优先级查找:

# 优先级 1: Plugin 内的资源目录
if [ -d "${CLAUDE_SKILL_DIR}/resources" ]; then
  RESOURCE_DIR="${CLAUDE_SKILL_DIR}/resources"
# 优先级 2: 全局 commands 目录
elif [ -d "$HOME/.claude/commands/create-project" ]; then
  RESOURCE_DIR="$HOME/.claude/commands/create-project"
# 优先级 3: 项目内 skills 目录
elif [ -d ".claude/skills/create-project/resources" ]; then
  RESOURCE_DIR=".claude/skills/create-project/resources"
fi

Step 1: 创建目录结构

PROJECT_DIR=~/Codes/{project-dir-name}
mkdir -p "$PROJECT_DIR/docs"
mkdir -p "$PROJECT_DIR/.claude/commands"
mkdir -p "$PROJECT_DIR/.claude/hooks"
mkdir -p "$PROJECT_DIR/.orchestrix-core/scripts"

Step 2: 生成 .mcp.json

读取资源目录中的 mcp.json.template,将 {{ORCHESTRIX_LICENSE_KEY}} 替换为用户提供的 License Key(或 YOUR_LICENSE_KEY_HERE),然后写入 $PROJECT_DIR/.mcp.json

重要:如果资源目录中存在 mcp.json(非模板版本),直接使用它。如果只有 mcp.json.template,则执行替换。

Step 3: 复制 Orchestrix 基础设施

从资源目录复制文件:

# Claude Code hooks 配置
cp "$RESOURCE_DIR/settings.local.json" "$PROJECT_DIR/.claude/settings.local.json"

# Hook 脚本
cp "$RESOURCE_DIR/handoff-detector.sh" "$PROJECT_DIR/.claude/hooks/handoff-detector.sh"
chmod +x "$PROJECT_DIR/.claude/hooks/handoff-detector.sh"

# Slash Commands
cp "$RESOURCE_DIR/o.md" "$PROJECT_DIR/.claude/commands/o.md"
cp "$RESOURCE_DIR/o-help.md" "$PROJECT_DIR/.claude/commands/o-help.md"
cp "$RESOURCE_DIR/o-status.md" "$PROJECT_DIR/.claude/commands/o-status.md"

# tmux 启动脚本
cp "$RESOURCE_DIR/start-orchestrix.sh" "$PROJECT_DIR/.orchestrix-core/scripts/start-orchestrix.sh"
chmod +x "$PROJECT_DIR/.orchestrix-core/scripts/start-orchestrix.sh"

Step 4: 生成 core-config.yaml

读取资源目录中的 core-config.template.yaml,替换占位符后写入项目:

占位符 替换值
{{PROJECT_NAME}} 用户确认的项目中文名
{{REPO_ID}} 英文目录名
{{TEST_COMMAND}} 根据技术栈推断(见下表)

testCommand 推断规则

技术栈关键词 testCommand
Node.js / React / Next.js / Vue npm test
Python / Django / Flask / FastAPI pytest
Go go test ./...
Java / Spring ./gradlew test
Deno deno test -A
其他或不确定 (留空,自动检测)

将替换后的内容写入 $PROJECT_DIR/.orchestrix-core/core-config.yaml

Step 5: 生成 project-brief.md

基于用户的回答,按照以下模板结构生成 $PROJECT_DIR/docs/project-brief.md

# Project Brief: {项目中文名}

## Executive Summary

{项目名称}是一个{简述}。它旨在解决{核心问题},面向{目标用户}提供{核心价值}。

## Problem Statement

### 当前痛点
{基于用户描述的问题展开}

### 为什么现有方案不够
{如果用户提到了竞品或现有方案,在此展开;否则标注"待调研"}

## Proposed Solution

### 核心方案
{基于 MVP 功能推导的解决方案概述}

### 关键差异化
{如果信息充分则填写,否则标注"待定义"}

## Target Users

### 主要用户群
{基于用户回答的目标用户描述}

### 用户需求与痛点
{展开描述}

## Goals & Success Metrics

### 业务目标
- {基于项目目标推导,至少 2-3 条}

### 关键指标 (KPIs)
- {合理推导,标注"待量化"}

## MVP Scope

### 核心功能 (Must Have)
{逐条列出用户确认的 MVP 功能,每条附简要说明}

### MVP 之外 (Out of Scope)
- 待定义(将在 PRD 阶段细化)

## Technical Considerations

### 平台要求
- **目标平台**: {平台}

### 技术偏好
- **前端**: {前端技术栈}
- **后端**: {后端技术栈}
- **数据库**: {数据库}

### 架构考量
- **仓库结构**: 待定义(将在架构设计阶段确定)
- **部署方式**: 待定义

## Constraints & Assumptions

### 约束
{用户提到的约束,或"无特殊约束"}

### 关键假设
- {基于对话推导的假设,至少 2-3 条}

## Risks & Open Questions

### 关键风险
- {基于项目特征推导的风险}

### 待解决问题
- {对话中标注为"待定"的项目}
- {其他需要进一步调研的问题}

## Next Steps

1. 使用 `/o analyst` 深化项目简报(市场调研、竞品分析)
2. 使用 `/o pm` 基于简报生成 PRD
3. 使用 `/o architect` 进行架构设计
4. 使用 `/o sm` 将 PRD 拆分为 Stories

---

> This Project Brief was generated by Orchestrix Create Project Skill.
> To refine this brief, use `/o analyst` and run `*create-doc project-brief`.

生成规则

  • 有信息的部分要充分展开,不要只复制用户原话,要加工整理
  • 信息不足的部分标注"待定义"或"待调研",不要编造
  • 语言:中文(与用户交互语言一致)
  • 格式:严格遵循上述 Markdown 结构

Step 6: 生成 .gitignore

写入 $PROJECT_DIR/.gitignore

# Dependencies
node_modules/
vendor/
venv/
__pycache__/

# Environment
.env
.env.local
.env.*.local

# OS
.DS_Store
Thumbs.db

# Build
dist/
build/
out/
*.log

# IDE
.idea/
.vscode/
*.swp
*.swo

# Orchestrix runtime
.orchestrix-core/runtime/

Step 7: Git 初始化

cd "$PROJECT_DIR"
git init
git add .
git commit -m "chore: init project with Orchestrix

- Project brief generated from interactive session
- Orchestrix infrastructure: MCP config, hooks, slash commands
- Core config with project-specific settings

🤖 Generated with [Orchestrix](https://orchestrix-mcp.youlidao.ai)"

Phase 4: 输出结果

完成所有操作后,输出以下信息:

## ✅ 项目创建完成

**项目路径**: ~/Codes/{project-dir-name}/

### 已创建的文件
- `docs/project-brief.md` — 项目简报
- `.mcp.json` — Orchestrix MCP Server 配置
- `.claude/settings.local.json` — Claude Code hooks 配置
- `.claude/hooks/handoff-detector.sh` — HANDOFF 自动检测 hook
- `.claude/commands/o.md` — /o 指令(Agent 激活)
- `.claude/commands/o-help.md` — /o-help 指令
- `.claude/commands/o-status.md` — /o-status 指令
- `.orchestrix-core/core-config.yaml` — 项目配置
- `.orchestrix-core/scripts/start-orchestrix.sh` — tmux 多窗口启动脚本
- `.gitignore` — Git 忽略规则

### 下一步操作

1. 打开新终端进入项目目录:

cd ~/Codes/{project-dir-name}/


2. 启动 Claude Code:

claude


3. 深化项目简报(推荐):

/o analyst 然后输入: *create-doc project-brief


4. 生成 PRD:

/o pm 然后输入: *create-doc prd


5. 或直接启动 tmux 多 Agent 协作:

bash .orchestrix-core/scripts/start-orchestrix.sh

如果 License Key 为空,额外提示:

⚠️ 提醒:.mcp.json 中的 License Key 尚未配置。
请编辑 ~/Codes/{project-dir-name}/.mcp.json,将 YOUR_LICENSE_KEY_HERE 替换为你的 License Key。
申请地址:https://orchestrix-mcp.youlidao.ai

错误处理

  • 如果 ~/Codes/ 目录不存在 → 创建它
  • 如果项目目录已存在 → 停止并询问用户:覆盖、换名、还是取消
  • 如果任何文件复制失败 → 报告具体错误,不要静默跳过
  • 如果 git init 失败 → 报告错误,但项目文件仍然可用

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs