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 fr…
它会碰到什么
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
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 +xon 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 helpshows available targetsmake testruns 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.mdanddocs/lessons-learned.mdexist, 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) andmake helplists targets. - [ ] Running with
--dry-runwrites no files, including the journal.
Examples
Example 1: New Python Project
**Verification:** Run `pytest -v` to verify tests pass.
User: /attune:project-init
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。
它属于哪个仓库
同一个仓库里的其他技能
- claude-code-plugin-reference
- night-market-architecture-contract
- night-market-build-and-env
- night-market-change-control
- night-market-collective-memory
- night-market-completion-integrity-campaign
- night-market-config-catalog
- night-market-debugging-playbook
- night-market-diagnostics-toolkit
- night-market-docs-and-writing
- night-market-failure-archaeology
- night-market-model-and-harness-updates