claudeforge-cli 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  > Forge production-ready AI agent projects — agents, slash commands, memory, CI/CD, and devcontainers in one command.
4
4
 
5
- [![npm version](https://img.shields.io/npm/v/claudeforge)](https://www.npmjs.com/package/claudeforge)
5
+ [![npm version](https://img.shields.io/npm/v/claudeforge-cli)](https://www.npmjs.com/package/claudeforge-cli)
6
6
  [![PyPI version](https://img.shields.io/pypi/v/claudeforge)](https://pypi.org/project/claudeforge)
7
7
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
8
8
  [![Node.js 18+](https://img.shields.io/badge/node-%3E%3D18-brightgreen)](https://nodejs.org)
@@ -12,6 +12,42 @@
12
12
 
13
13
  ---
14
14
 
15
+ ## Requirements
16
+
17
+ > **Node.js 18+ is required regardless of how you install claudeforge.**
18
+ > The CLI is built on Node.js — the pip package is a thin wrapper that delegates to it automatically.
19
+
20
+ | Requirement | Version | Notes |
21
+ |-------------|---------|-------|
22
+ | Node.js | 18+ | Required for the CLI — install first |
23
+ | npm | any | Included with Node.js |
24
+ | Python | 3.8+ | Only needed if installing via pip |
25
+ | Claude Code | latest | IDE extension for slash commands |
26
+
27
+ ### Install Node.js (if you don't have it)
28
+
29
+ ```bash
30
+ # macOS
31
+ brew install node
32
+
33
+ # macOS / Linux — via nvm (recommended)
34
+ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
35
+ nvm install 20
36
+
37
+ # Ubuntu / Debian
38
+ curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
39
+ sudo apt-get install -y nodejs
40
+
41
+ # Windows — download installer from https://nodejs.org
42
+ ```
43
+
44
+ Verify:
45
+ ```bash
46
+ node --version # should print v18 or higher
47
+ ```
48
+
49
+ ---
50
+
15
51
  ## Table of Contents
16
52
 
17
53
  - [What It Does](#what-it-does)
@@ -50,19 +86,23 @@
50
86
 
51
87
  ### via npm (recommended)
52
88
 
89
+ Best if you already have Node.js installed.
90
+
53
91
  ```bash
54
- npm install -g claudeforge
92
+ npm install -g claudeforge-cli
55
93
  ```
56
94
 
57
95
  ### via pip
58
96
 
97
+ Best if you primarily work in Python environments. Node.js 18+ must still be installed on your system (see [Requirements](#requirements) above).
98
+
59
99
  ```bash
60
100
  pip install claudeforge
61
101
  ```
62
102
 
63
- > **pip users:** Node.js 18+ must be on your PATH. The pip package delegates to the Node.js CLI automatically.
103
+ > The pip package is a thin wrapper — when you run `claudeforge`, it locates Node.js on your PATH and delegates all commands to the Node.js CLI automatically. No manual Node.js setup is required beyond having it installed.
64
104
 
65
- Verify installation:
105
+ ### Verify installation
66
106
 
67
107
  ```bash
68
108
  claudeforge --version
@@ -376,24 +416,39 @@ The CLI handles file scaffolding. The AI work happens inside the IDE where Claud
376
416
 
377
417
  ## Troubleshooting
378
418
 
379
- **`claudeforge: command not found`**
419
+ **`claudeforge: command not found` after npm install**
380
420
  ```bash
381
- # npm
382
- npm install -g claudeforge
383
- # pip (ensure ~/.local/bin is on PATH)
384
- pip install claudeforge
421
+ # Ensure npm global bin is on PATH
422
+ export PATH="$(npm prefix -g)/bin:$PATH"
423
+ # Add to ~/.zshrc or ~/.bashrc to persist
424
+ ```
425
+
426
+ **`claudeforge: command not found` after pip install**
427
+ ```bash
428
+ # Ensure pip user bin is on PATH
385
429
  export PATH="$HOME/.local/bin:$PATH"
430
+ # Add to ~/.zshrc or ~/.bashrc to persist
386
431
  ```
387
432
 
388
- **pip install: `Node.js is required`**
433
+ **`Node.js is required but was not found on PATH`**
434
+
435
+ This happens when installing via pip — Node.js must be installed separately.
436
+
389
437
  ```bash
390
438
  # macOS
391
439
  brew install node
392
- # Ubuntu/Debian
440
+
441
+ # macOS / Linux — via nvm
442
+ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
443
+ nvm install 20
444
+
445
+ # Ubuntu / Debian
393
446
  curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
394
447
  sudo apt-get install -y nodejs
395
448
  ```
396
449
 
450
+ After installing Node.js, open a new terminal and retry.
451
+
397
452
  **`/setup-project` didn't generate anything**
398
453
  Make sure you ran `claudeforge init` first — the `.claude/commands/` directory must exist for slash commands to work.
399
454
 
@@ -415,17 +470,6 @@ Confirm you're running Claude Code (not just Copilot Chat). The `.claude/command
415
470
 
416
471
  ---
417
472
 
418
- ## Requirements
419
-
420
- | Requirement | Version | Notes |
421
- |-------------|---------|-------|
422
- | Node.js | 18+ | Required for the CLI |
423
- | npm | any | Included with Node.js |
424
- | Python | 3.8+ | Only if installing via pip |
425
- | Claude Code | latest | IDE extension for slash commands |
426
-
427
- ---
428
-
429
473
  ## License
430
474
 
431
475
  MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claudeforge-cli",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Forge production-ready AI agent projects — agents, slash commands, memory, CI/CD, and devcontainers in one command",
5
5
  "bin": {
6
6
  "claudeforge": "bin/cli.js"
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: AI-fill the complete Claude Code project configuration. Run after `claudeforge project "description"` — or run it directly with your project description as the argument. Generates CLAUDE.md, settings, agents, commands, memory, and more.
2
+ description: AI-fill the complete Claude Code project configuration. Run after `claudeforge project "description"` — or run it directly with your project description as the argument. Generates CLAUDE.md, settings, skills, agents, commands, memory, and more.
3
3
  allowed-tools: Read, Write, Edit, MultiEdit, Bash(git status:*), Bash(git log:*), Bash(ls:*), Bash(find:*), Bash(cat:*), Bash(rm:*)
4
4
  ---
5
5
 
@@ -46,7 +46,7 @@ Write a complete `CLAUDE.md` that includes:
46
46
 
47
47
  **Gotchas**: 3–5 non-obvious things about this stack (e.g., "FastAPI route order matters — more specific routes must be declared before generic ones").
48
48
 
49
- **Workflow**: How to use `/commit`, `/review-pr`, and project-specific agents.
49
+ **Workflow**: How to use `/commit`, `/review-pr`, and which skills and agents apply to this project.
50
50
 
51
51
  ### 2b. Update `.claude/settings.json`
52
52
 
@@ -84,37 +84,114 @@ Always keep `context7`. Add servers based on the stack:
84
84
  ### 2e. Rewrite `memory/project_ai_workflow.md`
85
85
 
86
86
  Write a complete, project-specific workflow document:
87
- - Which agents to use and when (be explicit: "use `api-reviewer` whenever adding a new endpoint")
87
+ - Which skills load automatically and when (be explicit: "the `prisma` skill loads whenever writing database queries")
88
+ - Which agents to use and when (be explicit: "use `security-auditor` whenever adding auth or payment logic")
88
89
  - Which slash commands map to which tasks
89
90
  - MCP servers available and how to invoke them
90
91
  - Project-specific AI conventions (e.g., "always read `src/db/schema.py` before writing queries")
91
92
  - Any architectural decisions that Claude should know and respect
92
93
 
93
- ### 2f. Create 2–4 Specialized Agents
94
+ ---
95
+
96
+ ### 2f. Infer and Create Skills — Domain Specialists
97
+
98
+ **Skills** live in `.claude/skills/` and are loaded as context *before* Claude writes code. They encode how to write code correctly for a specific domain in this project — like a senior developer's internal style guide baked into Claude's context.
99
+
100
+ #### Step 1 — Identify the distinct technical domains in this project
101
+
102
+ Read the project description and detected files. Extract every distinct technical concern that has its own patterns, conventions, or APIs. Each is a candidate for a skill. Think domain-by-domain:
103
+
104
+ - "Next.js SaaS with Stripe, Prisma, and Clerk auth"
105
+ → domains: Next.js components/pages, Stripe payments, Prisma queries, Clerk authentication
106
+ - "Go gRPC microservice with PostgreSQL and Redis"
107
+ → domains: gRPC service definitions, PostgreSQL queries, Redis caching
108
+ - "React Native app with Firebase and Expo"
109
+ → domains: React Native screens/navigation, Firebase Firestore, Firebase Auth, Expo config
110
+ - "Django REST API with Celery and S3"
111
+ → domains: Django REST endpoints, Celery tasks, S3 file handling
112
+ - "Rust CLI tool for CSV parsing"
113
+ → domains: CLI argument parsing, CSV parsing/transformation, Rust error handling
114
+
115
+ There is no fixed number — create as many skills as there are meaningful, distinct domains with non-obvious conventions. A simple project may need 2. A complex one may need 6.
116
+
117
+ #### Step 2 — Create a SKILL.md for each domain
118
+
119
+ Each skill lives at `.claude/skills/<domain-name>/SKILL.md`.
120
+
121
+ Every skill file must have:
122
+
123
+ ```
124
+ ---
125
+ description: "<precise trigger condition — when should Claude load this skill>"
126
+ ---
127
+ ```
128
+
129
+ The `description` is the most important field. Write it as a specific trigger condition so Claude loads it at exactly the right moment:
130
+ - Good: `"Load when writing or modifying any Stripe payment intent, webhook handler, or subscription logic"`
131
+ - Bad: `"Stripe knowledge"`
132
+
133
+ The skill body must read like a senior developer's internal guide for this domain in this specific project. Include:
134
+
135
+ 1. **Overview** — what this domain does in this project, which files/folders it lives in
136
+ 2. **Conventions** — naming patterns, file structure, how new files should be organized
137
+ 3. **Key patterns** — the specific way this project does things (e.g., "all Prisma queries go through `src/lib/db.ts`, never import PrismaClient directly")
138
+ 4. **Integration points** — how this domain connects to others (e.g., "Stripe webhooks call the same service layer as the REST API")
139
+ 5. **Common mistakes** — non-obvious pitfalls specific to this stack/version
140
+ 6. **Examples** — 1–2 short, concrete code snippets showing the right pattern for this project
141
+
142
+ #### Step 3 — Always create the base `project-conventions` skill
143
+
144
+ Update `.claude/skills/project-conventions/SKILL.md` with project-specific conventions:
145
+ - Commit message format
146
+ - PR conventions
147
+ - General code style rules that apply across all domains
148
+ - How to name files, variables, functions in this project
149
+
150
+ ---
151
+
152
+ ### 2g. Infer and Create Agents — Reviewers and Auditors
153
+
154
+ **Agents** live in `.claude/agents/` and are invoked as focused subagents to *review, audit, or run a workflow* independently. They have tool access. Do not create agents for writing code — that is what skills are for.
155
+
156
+ #### Step 1 — Identify domains that have non-obvious review risks
157
+
158
+ Not every domain needs a reviewer agent. Only create one when a focused checklist genuinely adds value — e.g., database migrations (irreversible), payment flows (financial risk), auth logic (security risk), caching strategies (correctness risk).
159
+
160
+ Examples by project type:
161
+ - "Next.js SaaS with Stripe, Prisma, and Clerk" → `stripe-reviewer` (payment correctness), `db-reviewer` (migration safety)
162
+ - "Go gRPC microservice with PostgreSQL and Redis" → `db-reviewer` (query performance), `api-reviewer` (gRPC contract safety)
163
+ - "React Native app with Firebase" → `security-auditor` (Firebase rules, auth), `performance-reviewer` (React Native render performance)
164
+ - "Django REST API with Celery" → `api-reviewer` (REST conventions), `db-reviewer` (ORM query safety)
165
+
166
+ #### Step 2 — Create a reviewer agent for each high-risk domain
94
167
 
95
- Create agent files in `.claude/agents/`. Choose agents appropriate to the project type:
168
+ Each agent file at `.claude/agents/<name>.md` must have:
96
169
 
97
- **For API/Backend projects:**
98
- - `api-reviewer.md` — Reviews new endpoints: checks REST conventions, input validation, auth, error responses, OpenAPI compliance
99
- - `db-reviewer.md` — Reviews database changes: checks query performance, migration safety, index coverage, N+1 risks
170
+ ```
171
+ ---
172
+ description: "<precise trigger when Claude should invoke this agent>"
173
+ ---
174
+ ```
100
175
 
101
- **For Frontend projects:**
102
- - `component-reviewer.md` Reviews UI components: checks accessibility, responsive design, prop types, performance (memo, useMemo)
103
- - `ux-checker.md` Reviews user-facing copy, loading states, error states, empty states
176
+ The agent body must include:
177
+ 1. A focused role statement what this agent reviews and why it matters
178
+ 2. A numbered checklist specific to this stack and domain
179
+ 3. A clear output format: severity rating per issue, actionable fix suggestion
104
180
 
105
- **For Data/ML projects:**
106
- - `data-validator.md` — Validates data pipelines: schema consistency, null handling, statistical reasonableness
107
- - `ml-reviewer.md` — Reviews model code: data leakage, correct train/val/test splits, metric definitions
181
+ #### Step 3 — Always create these two agents regardless of project type
108
182
 
109
- **For all projects:**
110
- - `security-auditor.md` — Deep security review: focuses on auth flows, input sanitization, secrets management, dependency CVEs
183
+ - `code-reviewer.md` — General code review across correctness, error handling, style, test coverage, and documentation. Invoked before every PR.
184
+ - `security-auditor.md` — Reviews any code touching auth, secrets, input validation, or external APIs. No tool access restrictions.
111
185
 
112
- Each agent must have:
113
- - Accurate `description` frontmatter (this determines when Claude invokes it automatically)
114
- - A detailed system prompt with a numbered checklist specific to the project
115
- - A clear output format
186
+ #### Rules for all agents
187
+
188
+ - `description` must be a specific trigger condition, not a job title
189
+ - Reviewer checklists must be tailored to the actual stack — not generic
190
+ - Every agent must have a clear output format with severity levels
191
+
192
+ ---
116
193
 
117
- ### 2g. Create 2–4 Slash Commands
194
+ ### 2h. Create 2–4 Slash Commands
118
195
 
119
196
  Create command files in `.claude/commands/` specific to this workflow:
120
197
 
@@ -126,7 +203,7 @@ Create command files in `.claude/commands/` specific to this workflow:
126
203
 
127
204
  Each command must use `!` dynamic context (e.g., `!git diff`, `!npm test 2>&1`) and have a clear `## Task` section.
128
205
 
129
- ### 2h. Append `.gitignore` Tech-Stack Patterns
206
+ ### 2i. Append `.gitignore` Tech-Stack Patterns
130
207
 
131
208
  Append a labeled section with patterns for this stack. Examples:
132
209
  - Python: `__pycache__/`, `*.pyc`, `.pytest_cache/`, `.mypy_cache/`, `.ruff_cache/`, `dist/`, `*.egg-info/`
@@ -150,25 +227,30 @@ rm -f SETUP_CONTEXT.md
150
227
 
151
228
  After all files are written, go back and add a documentation header to each one so users know what they're looking at and what to customize.
152
229
 
153
- For each file written, prepend (or add at an appropriate location):
154
-
155
230
  **CLAUDE.md** — add at the top after the title:
156
231
  ```
157
232
  > **Setup status**: Generated by claudeforge. Update the Commands table with your actual
158
233
  > project commands after verifying them. Fill in the Gotchas section as you discover them.
159
234
  ```
160
235
 
161
- **`.claude/settings.json`** — add a `_readme` key (JSON doesn't support comments, use this):
236
+ **`.claude/settings.json`** — add a `_readme` key:
162
237
  ```json
163
- "_readme": "Team-shared Claude Code settings. Personal overrides go in settings.local.json (gitignored). See .claude/README.md for the full reference."
238
+ "_readme": "Team-shared Claude Code settings. Personal overrides go in settings.local.json (gitignored)."
239
+ ```
240
+
241
+ **Each skill file** — after the frontmatter, add:
242
+ ```
243
+ <!-- WHAT THIS IS: A skill that loads as context when Claude works in this domain.
244
+ HOW IT WORKS: Claude reads this automatically before writing code that matches the description.
245
+ HOW TO CUSTOMIZE: Update the patterns and examples below as your project evolves.
246
+ THINGS TO ADD: New conventions, discovered gotchas, team-specific patterns. -->
164
247
  ```
165
248
 
166
249
  **Each agent file** — after the frontmatter, add:
167
250
  ```
168
- <!-- WHAT THIS IS: A Claude sub-agent that specializes in [specific task].
251
+ <!-- WHAT THIS IS: A reviewer agent Claude invokes to audit this domain.
169
252
  HOW TO INVOKE: Claude uses this automatically when the task matches the description.
170
- HOW TO CUSTOMIZE: Edit the checklist items below to match your project's specific patterns.
171
- THINGS TO ADD: Project-specific anti-patterns, naming conventions, architectural rules. -->
253
+ HOW TO CUSTOMIZE: Edit the checklist items to match your project's specific patterns. -->
172
254
  ```
173
255
 
174
256
  **Each command file** — after the frontmatter, add:
@@ -205,9 +287,29 @@ Generated by `/setup-project` on [today's date].
205
287
  | `.env.example` | Documents required env vars | Update with any new vars; never commit real values |
206
288
  | `.mcp.json` | MCP servers your team shares | Add connection strings to .env for any DB servers |
207
289
  | `memory/project_ai_workflow.md` | AI conventions for this project | Update as your workflow evolves; Claude reads this every session |
208
- | [agent files] | Specialized review agents | Customize checklists to add project-specific patterns |
290
+ | [skill files] | Domain expertise loaded before writing code | Update conventions as the project evolves |
291
+ | [agent files] | Specialized reviewer agents | Customize checklists to add project-specific patterns |
209
292
  | [command files] | Slash commands for your workflow | Edit the ## Task section to match your exact needs |
210
293
 
294
+ ## Skills Available
295
+
296
+ Claude loads these automatically before writing code in each domain:
297
+
298
+ | Skill | Loaded When |
299
+ |-------|------------|
300
+ | `project-conventions` | Always — applies to all code |
301
+ | *(project-specific skills)* | See `.claude/skills/` for the full list |
302
+
303
+ ## Agents Available
304
+
305
+ Claude invokes these automatically to review and audit:
306
+
307
+ | Agent | Invoked When |
308
+ |-------|-------------|
309
+ | `code-reviewer` | After writing code, before PR |
310
+ | `security-auditor` | Any auth, secrets, or input-handling code |
311
+ | *(project-specific reviewers)* | See `.claude/agents/` for the full list |
312
+
211
313
  ## Slash Commands Available
212
314
 
213
315
  Run these in the Claude Code chat window:
@@ -223,15 +325,6 @@ Run these in the Claude Code chat window:
223
325
  | `/scaffold-structure` | Once — creates the src/, tests/, etc. directory structure |
224
326
  | [project commands] | See .claude/commands/ for project-specific commands |
225
327
 
226
- ## Agents Available
227
-
228
- Claude uses these automatically based on what you're doing:
229
-
230
- | Agent | Invoked When |
231
- |-------|-------------|
232
- | `code-reviewer` | After writing code, before PR |
233
- | [project agents] | See .claude/agents/ for project-specific agents |
234
-
235
328
  ## Next Steps
236
329
 
237
330
  1. **Verify commands** in `CLAUDE.md` — run each one and confirm they work
@@ -247,7 +340,7 @@ Claude uses these automatically based on what you're doing:
247
340
 
248
341
  Print a clear summary of everything that was done:
249
342
 
250
- 1. List every file written
343
+ 1. List every skill created with its trigger description
251
344
  2. List every agent created with its trigger description
252
345
  3. List every slash command created with its use case
253
346
  4. State the exact next step: "Run `/scaffold-structure` in Claude Code to create your project's directory structure"