mcpField
P
project-init

project-init

github.com/athola开发343100 次安装1 天前更新
代码仓库

关于 project-init

用于初始化新软件项目或更新现有工具配置的交互式开发技能,支持 Python、Rust 和 TypeScript 项目。它通过语言检测、元数据收集和模板脚本生成基础设施,并可选择性处理已有文件及初始化 Git。

主要功能

  1. 01检测或选择项目语言
  2. 02收集项目与语言配置元数据
  3. 03检查现有配置并确认覆盖方式
  4. 04使用模板脚本生成项目文件
  5. 05创建决策与经验日志
  6. 06初始化 Git 并验证设置

适用场景

  1. 01为新 Python、Rust 或 TypeScript 项目搭建开发基础
  2. 02为已有项目补充 GitHub 工作流和钩子
  3. 03将现有代码库调整为一致的项目结构

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/athola/claude-night-market --skill project-init

安装后在 Claude Code 中输入/project-init确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

modules/
language-detection.md
metadata-collection.md
template-rendering.md

详细介绍

项目初始化技能

用于初始化新软件项目并配备完整开发基础设施的交互式工作流。

适用场景

  • 启动新的 Python、Rust 或 TypeScript 项目
  • 将现有项目工具更新到当前标准
  • 需要设置 git、GitHub 工作流、pre-commit 钩子、Makefile
  • 希望团队使用统一的项目结构
  • 将结构混乱的项目改造为符合最佳实践的项目
  • 为成熟代码库添加缺失的配置

工作流

1. 检测或选择语言

加载 modules/language-detection.md

  • 根据现有文件自动检测(pyproject.toml、Cargo.toml、package.json)
  • 如果无法明确判断或目录为空,请用户选择
  • 验证语言是否受支持(python、rust、typescript)
2. 收集项目元数据

加载 modules/metadata-collection.md

收集:

  • 项目名称(默认值:目录名称)
  • 作者姓名和电子邮件
  • 项目描述
  • 语言专属设置:
    • Python:版本(默认值为 3.10)
    • Rust:edition(默认值为 2021)
    • TypeScript:框架(React、Vue 等)
  • 许可证类型(MIT、Apache、GPL 等)
3. 检查现有文件

检查是否存在现有配置:

ls -la

验证: 使用 --help 标志运行命令,以确认其可用。

如果存在文件(Makefile、.gitignore 等):

  • 显示将被覆盖的内容
  • 询问是否确认覆盖或选择性覆盖
  • 提供合并模式(保留自定义内容)
4. 渲染并应用模板

加载 modules/template-rendering.md

运行初始化脚本:

python3 plugins/attune/scripts/attune_init.py \
  --lang {{LANGUAGE}} \
  --name {{PROJECT_NAME}} \
  --author {{AUTHOR}} \
  --email {{EMAIL}} \
  --python-version {{PYTHON_VERSION}} \
  --description {{DESCRIPTION}} \
  --path .

验证: 使用 --help 标志运行命令,以确认其可用。

该脚本还会为项目创建决策日志:docs/tradeoffs.md 和 docs/lessons-learned.md。这些日志仅追加内容,后续工作流 (头脑风暴、规格制定、规划、执行、评审)会随着决策和经验教训的产生 将其写入日志。已有日志文件绝不会被覆盖。格式遵循 leyline:decision-journal 合约;如果存在 leyline,init 会使用 leyline 的模板, 否则会使用随附副本,因此无论是否安装 leyline 都能正常工作。

验证: 确认 docs/tradeoffs.md 和 docs/lessons-learned.md 均存在,且各自包含 ## Active index 和 ## Archive 部分。

5. 初始化 Git(如有需要)
# Check if git is initialized
if [ ! -d .git ]; then
  git init
  echo "Git repository initialized"
fi

验证: 运行 git status 以确认工作树状态。

6. 验证设置

验证设置:

# Check Makefile targets
make help

# List created files
git status

验证: 运行 git status 以确认工作树状态。

7. 后续步骤

建议用户:

# Install dependencies and hooks
make dev-setup

# Run tests to verify setup
make test

# See all available commands
make help

验证: 运行 pytest -v 以确认测试通过。

错误处理

  • 语言检测失败:请用户指定 --lang
  • 未找到脚本:引导用户前往插件安装位置
  • 权限被拒绝:建议对脚本运行 chmod +x
  • Git 冲突:提供暂存或提交现有工作的选项

成功标准

  • 所有模板文件均已成功创建
  • 未经用户确认,不覆盖任何文件
  • Git 仓库已初始化
  • make help 会显示可用目标
  • make test 运行无错误(即使尚无测试)

退出标准

  • 已为所选语言创建模板文件(或在 dry-run 中报告),且未发生未经确认的覆盖。
  • docs/tradeoffs.md 和 docs/lessons-learned.md 均存在,且各自包含 ## Active index 和 ## Archive 部分。
  • 已检测到预先存在的日志文件,并且未对其进行修改。
  • Git 已初始化(除非指定 --no-git),且 make help 会列出目标。
  • 使用 --dry-run 运行时不会写入任何文件,包括日志文件。

示例

示例 1:新建 Python 项目
**Verification:** Run `pytest -v` to verify tests pass.
User: /attune:project-init

评论

支持 Markdown