跳到正文
cccskills
免费在 GitHub 公开

project-init

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.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(4)

  • SKILL.md4.5 KB
  • modules/language-detection.md1.5 KB
  • modules/metadata-collection.md3.0 KB
  • modules/template-rendering.md4.4 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

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

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Shapes turns action-first: action leads, steps numbered, state restated. Use for ADHD-friendly output. Do not use to trim tokens; use response-compression.

中文简介正在准备中。当前显示原文说明。

athola/claude-night-market3432026年10月17日 更新

Inverts burden of proof for code additions. Use when reviewing PRs, planning refactors, or running unbloat to challenge every addition's necessity.

中文简介正在准备中。当前显示原文说明。

athola/claude-night-market3432026年10月17日 更新

Tracks per-agent token usage and flags waste in parallel dispatch. Use when evaluating parallel agent efficiency or after a multi-agent run.

中文简介正在准备中。当前显示原文说明。

athola/claude-night-market3432026年10月17日 更新

Coordinates Claude agent teams via filesystem protocol. Use when orchestrating parallel agents with task dependencies. Do not use for single-agent tasks.

中文简介正在准备中。当前显示原文说明。

athola/claude-night-market3432026年10月17日 更新

Evaluates API surface design, consistency, and exemplar alignment. Use when reviewing public API changes or before releasing a new API surface.

中文简介正在准备中。当前显示原文说明。

athola/claude-night-market3432026年10月17日 更新

Selects architecture paradigm via research before scaffolding. Use when architecture is undecided and the choice needs justification and documentation.

中文简介正在准备中。当前显示原文说明。

athola/claude-night-market3432026年10月17日 更新

查看 athola 的全部技能

报告此技能的问题