clevotics-claude-bootstrap 0.0.0-stage → 1.0.0

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/bin/cli.js ADDED
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env node
2
+ // Installs the project-bootstrap skill for Claude Code on macOS, Linux and Windows
3
+ // npx clevotics-claude-bootstrap -> global, all projects (~/.claude/skills)
4
+ // npx clevotics-claude-bootstrap project -> this repo only (./.claude/skills), commit it to share
5
+ const fs = require("fs");
6
+ const os = require("os");
7
+ const path = require("path");
8
+
9
+ const scope = process.argv[2] || "global";
10
+ if (scope !== "global" && scope !== "project") {
11
+ console.error(`Unknown option "${scope}". Use "global" (default) or "project"`);
12
+ process.exit(1);
13
+ }
14
+
15
+ const base = scope === "project" ? process.cwd() : os.homedir();
16
+ const dest = path.join(base, ".claude", "skills", "project-bootstrap");
17
+ const src = path.join(__dirname, "..", "project-bootstrap", "SKILL.md");
18
+
19
+ fs.mkdirSync(dest, { recursive: true });
20
+ fs.copyFileSync(src, path.join(dest, "SKILL.md"));
21
+
22
+ console.log(`Installed project-bootstrap to ${dest}`);
23
+ console.log("Restart Claude Code, then run /project-bootstrap in a folder that has your Project Plan.md");
package/package.json CHANGED
@@ -1,6 +1,18 @@
1
1
  {
2
2
  "name": "clevotics-claude-bootstrap",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "1.0.0",
4
+ "description": "Claude Code skill that splits one Project Plan.md into PRD, ARCHITECTURE, DESIGN, a phased PLAN and a CLAUDE.md",
5
+ "bin": {
6
+ "clevotics-claude-bootstrap": "bin/cli.js"
7
+ },
8
+ "files": [
9
+ "bin",
10
+ "project-bootstrap"
11
+ ],
12
+ "keywords": ["claude", "claude-code", "skill", "project-plan"],
13
+ "author": "Clevotics",
14
+ "license": "MIT",
15
+ "engines": {
16
+ "node": ">=18"
17
+ }
18
+ }
@@ -0,0 +1,171 @@
1
+ ---
2
+ name: project-bootstrap
3
+ description: Turn a single project plan markdown file (e.g. "Project Plan.md") into a structured doc set - PRD.md, ARCHITECTURE.md, DESIGN.md, PLAN.md split into small numbered phases with exit criteria - and finish by writing a short CLAUDE.md that routes to them. Use when a repo has only a plan file and the user asks to bootstrap, split, structure or set up the project docs, or says "start this project from the plan".
4
+ ---
5
+
6
+ # Project Bootstrap
7
+
8
+ Expand one plan file into a doc set Claude can work from phase by phase, then write `CLAUDE.md` last
9
+
10
+ The structure exists for one reason: Claude loads only the doc a task needs, and `PLAN.md` hands it one small, verifiable phase at a time
11
+
12
+ ## Inputs
13
+
14
+ - The source plan: look for `Project Plan.md`, `PLAN.md`, `plan.md` or any single `.md` at repo root or `docs/`. If several exist, ask which one is the source
15
+ - Anything else in the repo (package files, existing code) - read it so the docs describe what is real, not assumed
16
+
17
+ ## Output layout
18
+
19
+ ```
20
+ CLAUDE.md short router + hard rules (written LAST)
21
+ docs/PRD.md product only: what and for whom, no tech
22
+ docs/ARCHITECTURE.md tech only: stack, data model, modules, APIs
23
+ docs/DESIGN.md UI only: tokens, components, copy rules (skip if no UI)
24
+ docs/PLAN.md phases, status, exit criteria, results
25
+ docs/<source file> moved here unchanged as the original record
26
+ ```
27
+
28
+ Add an extra doc only when the source has a large self-contained topic (an external API integration, a deployment runbook). Name it by topic (`docs/whatsapp-api.md`, `docs/DEPLOY.md`), never `notes.md` or `misc.md`
29
+
30
+ ## Process
31
+
32
+ 1. **Read the whole source plan.** Sort every statement into one bucket: product (PRD), technical (ARCHITECTURE), UI (DESIGN), sequencing / tasks (PLAN), or rule (CLAUDE.md). Nothing gets dropped; nothing appears in two docs - other docs link to the owner instead
33
+ 2. **Find the gaps.** List decisions the source leaves open that change the work materially (stack, auth method, hosting, multi-tenant or not). Ask them with the AskUserQuestion tool, max 4 per call, recommended option first. Do not ask about anything you can decide sensibly yourself - pick it and write it down as a decision
34
+ 3. **Write PRD.md, ARCHITECTURE.md, DESIGN.md** using the templates below
35
+ 4. **Write PLAN.md** - the most important file. Follow the phase rules strictly
36
+ 5. **Write CLAUDE.md last**, once the other docs exist, because it routes to them
37
+ 6. **Move the source plan** into `docs/` unchanged (`git mv` if tracked)
38
+ 7. Report: files created, phase count, decisions you made on the user's behalf, open questions left
39
+
40
+ ## Phase rules (PLAN.md)
41
+
42
+ A phase is the unit Claude finishes in one sitting, end to end
43
+
44
+ - **Small:** one module or one screen group per phase. A phase that touches backend + web + mobile is three phases. Aim for something finishable and reviewable in one session
45
+ - **Numbered with a prefix per track:** `B1, B2` backend, `F1, F2` frontend, `M1` mobile, or `F3.1, F3.2` for sub phases of one feature. Numbers never get reused or renumbered
46
+ - **Ordered by dependency:** schema and API before the screens that use them. Foundation (repo, CI, auth) is phase 1
47
+ - **Each phase has:** Goal (one line), Tasks (checklist), Exit criteria (observable, testable - "GET /bookings returns 50 rows under 300 ms", never "bookings work"), Depends on
48
+ - **Status keys:** `TODO` `IN PROGRESS` `PARKED` `DONE`. One phase IN PROGRESS at a time
49
+ - **Production hardening** (security audit, load test, backups, monitoring) is its own final phase, PARKED until all features are DONE
50
+ - When a phase finishes, append a `Result (date)` paragraph: what was built, test results, deferred items with the reason
51
+
52
+ ## Templates
53
+
54
+ ### docs/PRD.md
55
+
56
+ ```markdown
57
+ # <Project> - Product Requirements
58
+
59
+ Product only. No technology decisions here (see [ARCHITECTURE.md](ARCHITECTURE.md))
60
+
61
+ ## 1. What It Is
62
+ ## 2. Who It Is For (table: user | who | main need)
63
+ ## 3. Features (numbered subsections, each with must / should / later)
64
+ ## 4. Out of Scope (explicit list, with decision dates)
65
+ ## 5. Terminology (domain terms the UI must use)
66
+ ```
67
+
68
+ ### docs/ARCHITECTURE.md
69
+
70
+ ```markdown
71
+ # <Project> - Architecture
72
+
73
+ ## 1. Stack (table: layer | choice | why)
74
+ ## 2. Repo Layout
75
+ ## 3. Data Model (tables / entities, key fields, relations)
76
+ ## 4. Modules (one per domain, what it owns, who may call it)
77
+ ## 5. APIs (contract location, auth, error shape, pagination)
78
+ ## 6. Security (authn, authz, secrets, input validation)
79
+ ## 7. Performance Budgets (p95 latency, payload size, query rules)
80
+ ## 8. Decisions Log (date | decision | reason)
81
+ ```
82
+
83
+ ### docs/DESIGN.md (only if the project has a UI)
84
+
85
+ ```markdown
86
+ # <Project> - Design
87
+
88
+ ## 1. Tokens (colors, spacing, radii, type scale)
89
+ ## 2. Components (list, states: loading, empty, error)
90
+ ## 3. Layout and Navigation
91
+ ## 4. Copy Rules (tone, terminology, error messages)
92
+ ## 5. Loading and Errors (skeletons, per-section retry)
93
+ ```
94
+
95
+ ### docs/PLAN.md
96
+
97
+ ```markdown
98
+ # <Project> - Development Plan
99
+
100
+ One phase at a time. A phase starts only when the previous one meets its exit criteria
101
+
102
+ **Status keys:** `TODO` · `IN PROGRESS` · `PARKED` · `DONE`
103
+
104
+ ## Overview
105
+
106
+ | Phase | Name | Status |
107
+ |---|---|---|
108
+ | B1 | Foundation: repo, CI, database, auth | TODO |
109
+ | ... | ... | ... |
110
+ | B99 | Production hardening (last, before go-live) | PARKED |
111
+
112
+ **Every phase exit also requires:** tests green, docs updated in the same change, <project-wide checks>
113
+
114
+ ---
115
+
116
+ ## B1 - Foundation
117
+
118
+ **Goal:** <one line>
119
+ **Depends on:** -
120
+
121
+ **Tasks**
122
+ - [ ] ...
123
+
124
+ **Exit criteria**
125
+ - <observable, testable>
126
+
127
+ **Result:** (filled in when DONE)
128
+ ```
129
+
130
+ ### CLAUDE.md (keep under ~120 lines)
131
+
132
+ ```markdown
133
+ # <Project>
134
+
135
+ <two-line summary>
136
+
137
+ ## Read When Needed (do not load all by default)
138
+
139
+ | Task | Read |
140
+ |---|---|
141
+ | Product scope, features | `docs/PRD.md` |
142
+ | Data model, modules, APIs | `docs/ARCHITECTURE.md` |
143
+ | UI tokens, components, copy | `docs/DESIGN.md` |
144
+ | Current phase, exit criteria | `docs/PLAN.md` |
145
+
146
+ Update the relevant doc in the same change when a decision changes
147
+
148
+ ## Stack
149
+ ## Layout
150
+ ## Commands (only commands that exist; add as they are created)
151
+
152
+ ## Current Phase
153
+
154
+ Status lives only in `docs/PLAN.md` (never log phases here)
155
+
156
+ - Follow `docs/PLAN.md` strictly: one phase at a time, meet exit criteria before the next
157
+ - When a phase passes its exit criteria: review the changes, then mark it DONE in PLAN.md with its Result paragraph before reporting
158
+
159
+ ## Hard Rules
160
+ <architecture / security / performance rules pulled from the source plan - each one checkable in a diff>
161
+
162
+ ## Conventions
163
+ ```
164
+
165
+ ## Rules for the content
166
+
167
+ - Each fact lives in exactly one doc. Others link to it
168
+ - CLAUDE.md never holds phase status or long explanations - it routes and states hard rules
169
+ - Write rules as checkable statements ("every query filters by tenant_id"), never vibes ("write clean code")
170
+ - Keep the user's own words for product intent; tighten, do not reinterpret
171
+ - Never invent requirements the source does not support. If something is needed but missing, list it under open questions in the report
package/README.md DELETED
@@ -1,3 +0,0 @@
1
- # Temporary Holding Version
2
-
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.