Initialization
Run phases in order because later phases depend on saved choices from earlier phases.
Phase 1: Environment Discovery
Goal: detect installed languages, tools, and package managers.
Actions:
- Detect installed languages (Node.js, Python, Rust, Go, Java, Docker, and others).
- Detect package manager options for selected ecosystems.
- Store detection results for Phase 4 option generation.
Phase 2: Developer Profile
Goal: detect or collect developer identity for personalization.
Actions:
- Run
git config user.name and git config user.email to detect developer info.
- If both are detected, store as
developer_name and developer_email for renderer arguments and proceed to Phase 3.
- If either is missing, ask the user directly through conversation:
- If name is missing: "I couldn't detect your name from git config. What name would you like to use? (or reply 'skip' to omit)"
- If email is missing: "I couldn't detect your email from git config. What email would you like to use? (or reply 'skip' to omit)"
- Store the user's responses (or empty values if skipped) as
developer_name and developer_email for renderer arguments.
Phase 3: Testing Methodology
Goal: choose the testing approach.
Actions:
Ask with header Testing Methodology:
BDD first, then TDD (Recommended) -> BDD-driven TDD with Red-Green-Refactor
BDD only -> Gherkin scenarios without TDD cycle
TDD only -> Test-driven development without BDD scenarios
None -> No specific testing methodology
Store the choice as testing_mode (bdd-tdd | bdd | tdd | none) for Phase 7 renderer arguments.
Phase 3.5: Memory Management (Optional)
Goal: decide whether to add CLAUDE.md memory instructions.
Actions:
Ask with header Memory:
Skip (Recommended)
Include memory rules
Store boolean include_memory for renderer arguments. Do not append memory text manually.
Phase 4: Technology Stack & Package Manager Selection
Goal: choose languages and package managers.
Actions:
- Use AskUserQuestion (
multiSelect: true) for technology stacks.
- Generate options from detected technologies and mark detected ones as recommended.
- For selected languages with multiple managers, ask preference:
- Node.js: npm, pnpm (Recommended), yarn, bun.
- Python: pip, uv (Recommended), poetry.
- Only show managers detected on the machine.
- Store ordered stack selections as
language:::package_manager for renderer arguments.
Phase 5: Renderer Input Preparation
Goal: prepare deterministic renderer inputs from user selections.
Actions:
- Normalize each selected stack into ordered renderer input format
language:::package_manager.
- Keep selection order unchanged.
- For languages without explicit package manager choice, use
language::: (empty manager).
- Keep language keys exact (
Node.js, Python, Rust, Swift, Go, Java) when available; do not invent aliases.
- Never call online search in this phase.
Phase 6: Style Preference
Goal: choose emoji usage policy in generated CLAUDE.md.
Actions:
Ask with header Style:
No Emojis (Recommended)
Use Emojis
Store boolean use_emojis for renderer arguments that control emoji policy text in output.
Phase 7: Assembly & Generation
Goal: generate final content through one renderer script.
Actions:
- Run
${CLAUDE_PLUGIN_ROOT}/scripts/render-claude-config.sh with:
--target-file $HOME/.claude/CLAUDE.md
--testing-mode <bdd-tdd|bdd|tdd|none> (from Phase 3)
--include-memory <true|false>
--use-emojis <true|false>
- Optional
--developer-name and --developer-email
- Repeated
--stack "language:::package_manager" entries from Phase 5
- Let the renderer handle all assembly concerns: fragment assembly, testing content injection, developer profile, technology stack section, optional memory section, and final write.
- Do not manually post-edit renderer output; if output shape is wrong, fix inputs or renderer behavior.
Phase 8: Write CLAUDE.md
Goal: report write and backup results from renderer.
Actions:
- Use renderer output to confirm:
- Target path written.
- Backup path created when an existing target file was present.
- Report:
- File and backup locations.
- Developer info and testing mode.
- Selected technology stacks and package managers.
- Renderer rule-application summary: which stacks received local rule lines and which did not.
Best Practices
- Keep workflow progressive and deterministic.
- Prefer local references over generated prose for stack guidance.
- Keep generated constraints concise and enforceable.
- Always back up existing files before overwrite.
1---2name: init-config3description: Generates a CLAUDE.md file with AI-driven environment detection and advanced configuration options. This skill should be used when the user asks to "initialize config", "setup claude config", "create CLAUDE.md", or needs help configuring project instructions.4---56## Initialization7Run phases in order because later phases depend on saved choices from earlier phases.89## Phase 1: Environment Discovery10**Goal**: detect installed languages, tools, and package managers.1112**Actions**:131. Detect installed languages (Node.js, Python, Rust, Go, Java, Docker, and others).142. Detect package manager options for selected ecosystems.153. Store detection results for Phase 4 option generation.1617## Phase 2: Developer Profile18**Goal**: detect or collect developer identity for personalization.1920**Actions**:211. Run `git config user.name` and `git config user.email` to detect developer info.222. If both are detected, store as `developer_name` and `developer_email` for renderer arguments and proceed to Phase 3.233. If either is missing, ask the user directly through conversation:24 - If name is missing: "I couldn't detect your name from git config. What name would you like to use? (or reply 'skip' to omit)"25 - If email is missing: "I couldn't detect your email from git config. What email would you like to use? (or reply 'skip' to omit)"264. Store the user's responses (or empty values if skipped) as `developer_name` and `developer_email` for renderer arguments.2728## Phase 3: Testing Methodology29**Goal**: choose the testing approach.3031**Actions**:32Ask with header `Testing Methodology`:33- `BDD first, then TDD (Recommended)` -> BDD-driven TDD with Red-Green-Refactor34- `BDD only` -> Gherkin scenarios without TDD cycle35- `TDD only` -> Test-driven development without BDD scenarios36- `None` -> No specific testing methodology37Store the choice as `testing_mode` (bdd-tdd | bdd | tdd | none) for Phase 7 renderer arguments.3839## Phase 3.5: Memory Management (Optional)40**Goal**: decide whether to add CLAUDE.md memory instructions.4142**Actions**:43Ask with header `Memory`:44- `Skip (Recommended)`45- `Include memory rules`46Store boolean `include_memory` for renderer arguments. Do not append memory text manually.4748## Phase 4: Technology Stack & Package Manager Selection49**Goal**: choose languages and package managers.5051**Actions**:521. Use **AskUserQuestion** (`multiSelect: true`) for technology stacks.532. Generate options from detected technologies and mark detected ones as recommended.543. For selected languages with multiple managers, ask preference:55- Node.js: npm, pnpm (Recommended), yarn, bun.56- Python: pip, uv (Recommended), poetry.57- Only show managers detected on the machine.584. Store ordered stack selections as `language:::package_manager` for renderer arguments.5960## Phase 5: Renderer Input Preparation61**Goal**: prepare deterministic renderer inputs from user selections.6263**Actions**:641. Normalize each selected stack into ordered renderer input format `language:::package_manager`.65- Keep selection order unchanged.662. For languages without explicit package manager choice, use `language:::` (empty manager).673. Keep language keys exact (`Node.js`, `Python`, `Rust`, `Swift`, `Go`, `Java`) when available; do not invent aliases.684. Never call online search in this phase.6970## Phase 6: Style Preference71**Goal**: choose emoji usage policy in generated CLAUDE.md.7273**Actions**:74Ask with header `Style`:75- `No Emojis (Recommended)`76- `Use Emojis`77Store boolean `use_emojis` for renderer arguments that control emoji policy text in output.78798081## Phase 7: Assembly & Generation82**Goal**: generate final content through one renderer script.8384**Actions**:851. Run `${CLAUDE_PLUGIN_ROOT}/scripts/render-claude-config.sh` with:86- `--target-file $HOME/.claude/CLAUDE.md`87- `--testing-mode <bdd-tdd|bdd|tdd|none>` (from Phase 3)88- `--include-memory <true|false>`89- `--use-emojis <true|false>`90- Optional `--developer-name` and `--developer-email`91- Repeated `--stack "language:::package_manager"` entries from Phase 5922. Let the renderer handle all assembly concerns: fragment assembly, testing content injection, developer profile, technology stack section, optional memory section, and final write.933. Do not manually post-edit renderer output; if output shape is wrong, fix inputs or renderer behavior.94959697## Phase 8: Write CLAUDE.md98**Goal**: report write and backup results from renderer.99100**Actions**:1011. Use renderer output to confirm:102- Target path written.103- Backup path created when an existing target file was present.1042. Report:105- File and backup locations.106- Developer info and testing mode.107- Selected technology stacks and package managers.108- Renderer rule-application summary: which stacks received local rule lines and which did not.109110## Best Practices111- Keep workflow progressive and deterministic.112- Prefer local references over generated prose for stack guidance.113- Keep generated constraints concise and enforceable.114- Always back up existing files before overwrite.