‹ 首页

project-init

@athola · 收录于 1 周前

Scaffolds new projects with git, CI/CD workflows, pre-commit hooks, and build config. Use when starting a new Python, Rust, or TypeScript project from scratch.

适合你,如果每次新建项目都要手动配置 Git 和 CI 流程

/ 下载安装
project-init.skill双击,或拖进 Claude 桌面版 / Cowork,即完成安装↓ .skill↓ .zip
用别的 agent?下载 .zip 解压,把文件夹放进它的技能目录
Claude Code~/.claude/skills/(项目级 .claude/skills/)
Codex CLI~/.codex/skills/
Cursor自动读取上面两处目录
其他工具见其文档的「skills」目录;两个下载是同一份文件,只是名字不同
/ 通过 npx 安装 校验哈希
npx oh-my-skill add athola/claude-night-market/project-init
/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- athola/claude-night-market/project-init
/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify athola/claude-night-market/project-init
安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
324GitHub stars
待重算上下文体积
镜像托管

怎么用

技能原文 SKILL.md作者撰写 · MIT · 0980a33
Table of Contents
  • [Use When](#use-when)
  • [Workflow](#workflow)
  • [1. Detect or Select Language](#1-detect-or-select-language)
  • [2. Collect Project Metadata](#2-collect-project-metadata)
  • [3. Review Existing Files](#3-review-existing-files)
  • [4. Render and Apply Templates](#4-render-and-apply-templates)
  • [5. Initialize Git (if needed)](#5-initialize-git-(if-needed))
  • [6. Verify Setup](#6-verify-setup)
  • [7. Next Steps](#7-next-steps)
  • [Error Handling](#error-handling)
  • [Success Criteria](#success-criteria)
  • [Examples](#examples)
  • [Example 1: New Python Project](#example-1:-new-python-project)

Project Initialization Skill

Interactive workflow for initializing new software projects with complete development infrastructure.

Use When
  • Starting a new Python, Rust, or TypeScript project
  • Updating existing project tooling to current standards
  • Need to set up git, GitHub workflows, pre-commit hooks, Makefile
  • Want consistent project structure across team
  • Converting unstructured project to best practices
  • Adding missing configurations to established codebases
Workflow
1. Detect or Select Language

Load modules/language-detection.md

  • Auto-detect from existing files (pyproject.toml, Cargo.toml, package.json)
  • If ambiguous or empty directory, ask user to select
  • Validate language is supported (python, rust, typescript)
2. Collect Project Metadata

Load modules/metadata-collection.md

Gather:

  • Project name (default: directory name)
  • Author name and email
  • Project description
  • Language-specific settings:
  • Python: version (default 3.10)
  • Rust: edition (default 2021)
  • TypeScript: framework (React, Vue, etc.)
  • License type (MIT, Apache, GPL, etc.)
3. Review Existing Files

Check for existing configurations:

ls -la

Verification: Run the command with --help flag to verify availability.

If files exist (Makefile, .gitignore, etc.):

  • Show what would be overwritten
  • Ask for confirmation or selective overwrite
  • Offer merge mode (preserve custom content)
4. Render and Apply Templates

Load modules/template-rendering.md

Run initialization script:

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

Verification: Run the command with --help flag to verify availability.

The script also scaffolds the project decision journal: docs/tradeoffs.md and docs/lessons-learned.md. These are append-only logs that later workflows (brainstorm, specify, plan, execute, review) write to as decisions and lessons arise. Existing journal files are never overwritten. The format follows the leyline:decision-journal contract; init uses leyline's template when present and a vendored copy otherwise, so it works with or without leyline installed.

Verification: Confirm docs/tradeoffs.md and docs/lessons-learned.md exist and each contains an ## Active index and an ## Archive section.

5. Initialize Git (if needed)
# Check if git is initialized
if [ ! -d .git ]; then
  git init
  echo "Git repository initialized"
fi

Verification: Run git status to confirm working tree state.

6. Verify Setup

Validate setup:

# Check Makefile targets
make help

# List created files
git status

Verification: Run git status to confirm working tree state.

7. Next Steps

Advise user to:

# Install dependencies and hooks
make dev-setup

# Run tests to verify setup
make test

# See all available commands
make help

Verification: Run pytest -v to verify tests pass.

Error Handling
  • Language detection fails: Ask user to specify --lang
  • Script not found: Guide to plugin installation location
  • Permission denied: Suggest chmod +x on scripts
  • Git conflicts: Offer to stash or commit existing work
Success Criteria
  • All template files created successfully
  • No overwrites without user confirmation
  • Git repository initialized
  • make help shows available targets
  • make test runs without errors (even if no tests yet)
Exit Criteria
  • [ ] Template files for the selected language are created (or, in dry-run, reported) with no unconfirmed overwrites.
  • [ ] docs/tradeoffs.md and docs/lessons-learned.md exist, each with an ## Active index and an ## Archive section.
  • [ ] A pre-existing journal file is detected and left unmodified.
  • [ ] Git is initialized (unless --no-git) and make help lists targets.
  • [ ] Running with --dry-run writes no files, including the journal.
Examples
Example 1: New Python Project
**Verification:** Run `pytest -v` to verify tests pass.
User: /attune:project-init
按 MIT 许可原样转载,未经改动 · 在 GitHub 查看 →

评论

登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。