关于 project-init
用于初始化新软件项目或更新现有工具配置的交互式开发技能,支持 Python、Rust 和 TypeScript 项目。它通过语言检测、元数据收集和模板脚本生成基础设施,并可选择性处理已有文件及初始化 Git。
主要功能
- 01检测或选择项目语言
- 02收集项目与语言配置元数据
- 03检查现有配置并确认覆盖方式
- 04使用模板脚本生成项目文件
- 05创建决策与经验日志
- 06初始化 Git 并验证设置
适用场景
- 01为新 Python、Rust 或 TypeScript 项目搭建开发基础
- 02为已有项目补充 GitHub 工作流和钩子
- 03将现有代码库调整为一致的项目结构
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ athola/ claude-night-market --skill project-init安装后在 Claude Code 中输入/project-init确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
modules/language-detection.mdmetadata-collection.mdtemplate-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