create-project-arch 1.0.0 โ 1.2.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/CHANGELOG.md +43 -0
- package/LICENSE +21 -0
- package/README.md +536 -43
- package/package.json +27 -3
- package/templates/arch-ui/.arch/edges/decision_to_domain.json +0 -1
- package/templates/arch-ui/.arch/edges/milestone_to_task.json +0 -1
- package/templates/arch-ui/.arch/edges/task_to_decision.json +0 -1
- package/templates/arch-ui/.arch/edges/task_to_module.json +0 -1
- package/templates/arch-ui/.arch/graph.json +0 -1
- package/templates/arch-ui/.arch/nodes/decisions.json +0 -1
- package/templates/arch-ui/.arch/nodes/domains.json +0 -1
- package/templates/arch-ui/.arch/nodes/milestones.json +0 -1
- package/templates/arch-ui/.arch/nodes/modules.json +0 -1
- package/templates/arch-ui/.arch/nodes/tasks.json +0 -1
- package/templates/arch-ui/app/api/health/route.ts +5 -4
- package/templates/arch-ui/app/api/node-files/route.ts +6 -1
- package/templates/arch-ui/app/api/search/route.ts +0 -1
- package/templates/arch-ui/app/work/page.tsx +94 -64
- package/templates/arch-ui/components/app-shell.tsx +1 -7
- package/templates/arch-ui/components/graph/arch-node.tsx +13 -3
- package/templates/arch-ui/components/graph/build-graph-from-dataset.ts +6 -2
- package/templates/arch-ui/components/graph/build-initial-graph.ts +215 -221
- package/templates/arch-ui/components/graph/graph-types.ts +49 -49
- package/templates/arch-ui/components/graph/use-auto-layout.ts +51 -51
- package/templates/arch-ui/components/graph/use-connection-validation.ts +48 -48
- package/templates/arch-ui/components/graph/use-flow-persistence.ts +38 -38
- package/templates/arch-ui/components/graph-canvas.tsx +90 -74
- package/templates/arch-ui/components/inspector.tsx +56 -22
- package/templates/arch-ui/components/sidebar.tsx +18 -8
- package/templates/arch-ui/components/topbar.tsx +8 -11
- package/templates/arch-ui/components/work-table.tsx +1 -5
- package/templates/arch-ui/components/workspace-context.tsx +2 -1
- package/templates/arch-ui/lib/graph-dataset.ts +4 -8
- package/templates/arch-ui/lib/graph-schema.ts +1 -4
- package/templates/arch-ui/package.json +0 -1
- package/templates/arch-ui/tsconfig.json +3 -11
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [1.1.0] - 2026-03-07
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Comprehensive test coverage for scaffolding operations
|
|
13
|
+
- Sandbox development workflow for template iteration
|
|
14
|
+
- `sandbox:init`, `sandbox:dev`, and `sandbox:sync` scripts for template development
|
|
15
|
+
- Enhanced template documentation
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- Improved template structure for `arch-ui` and `ui-package`
|
|
20
|
+
- Better error handling during scaffolding process
|
|
21
|
+
- Enhanced CLI options documentation
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- Template file copying edge cases
|
|
26
|
+
- Directory creation validation
|
|
27
|
+
|
|
28
|
+
## [1.0.0] - 2026-02-15
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
|
|
32
|
+
- Initial public release
|
|
33
|
+
- Interactive scaffolding CLI
|
|
34
|
+
- `arch-ui` template (Next.js with Architecture UI)
|
|
35
|
+
- `ui-package` template (React component library)
|
|
36
|
+
- Integration with `create-turbo` for monorepo setup
|
|
37
|
+
- Automatic `project-arch` initialization
|
|
38
|
+
- Package manager detection and support (pnpm, npm, yarn)
|
|
39
|
+
- Template customization options
|
|
40
|
+
- Force mode for non-empty directories
|
|
41
|
+
|
|
42
|
+
[1.1.0]: https://github.com/project-arch/project-arch-system/compare/v1.0.0...v1.1.0
|
|
43
|
+
[1.0.0]: https://github.com/project-arch/project-arch-system/releases/tag/v1.0.0
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Project Arch Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,58 +1,551 @@
|
|
|
1
1
|
# create-project-arch
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/create-project-arch)
|
|
4
|
+
[](LICENSE)
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
A scaffolding tool designed to bootstrap new projects with `project-arch` integrated natively. Create production-ready monorepos with architecture management built-in from day one.
|
|
7
|
+
|
|
8
|
+
## Features
|
|
9
|
+
|
|
10
|
+
๐ **Quick Setup** - Get started with architecture-first development in minutes
|
|
11
|
+
๐ฆ **Modern Stack** - Next.js, React, TypeScript, and Turborepo
|
|
12
|
+
๐จ **UI Templates** - Pre-built architecture visualization components
|
|
13
|
+
๐๏ธ **Structured Architecture** - Phases, milestones, and tasks from the start
|
|
14
|
+
๐ **ADR Support** - Architecture decision records included
|
|
15
|
+
๐ง **Customizable** - Choose your package manager and template options
|
|
16
|
+
|
|
17
|
+
## Quick Start
|
|
18
|
+
|
|
19
|
+
Create a new project with npx (no installation required):
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npx create-project-arch my-awesome-project
|
|
23
|
+
```
|
|
6
24
|
|
|
7
|
-
|
|
25
|
+
Or with pnpm:
|
|
8
26
|
|
|
9
27
|
```bash
|
|
10
|
-
|
|
28
|
+
pnpm create project-arch my-awesome-project
|
|
11
29
|
```
|
|
12
30
|
|
|
13
|
-
|
|
31
|
+
Or with yarn:
|
|
14
32
|
|
|
15
|
-
|
|
33
|
+
```bash
|
|
34
|
+
yarn create project-arch my-awesome-project
|
|
35
|
+
```
|
|
16
36
|
|
|
17
|
-
|
|
18
|
-
2. Invokes `pa init` to seed an `arch-model/` directory.
|
|
19
|
-
3. Injects architecture applications (`apps/arch` and `packages/ui`) from internal templates.
|
|
20
|
-
4. Auto-wires the `package.json` configurations so `project-arch` commands are available out of the box.
|
|
37
|
+
Then follow the interactive prompts to configure your project!
|
|
21
38
|
|
|
22
|
-
##
|
|
39
|
+
## Usage
|
|
23
40
|
|
|
24
41
|
```bash
|
|
25
42
|
create-project-arch <project-name> [options]
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Options
|
|
46
|
+
|
|
47
|
+
| Option | Description | Default |
|
|
48
|
+
| ------------------- | ---------------------------------------- | --------- |
|
|
49
|
+
| `--template <name>` | Template to use | `arch-ui` |
|
|
50
|
+
| `--pm <name>` | Package manager (pnpm, npm, yarn) | `pnpm` |
|
|
51
|
+
| `--force` | Allow scaffolding in non-empty directory | `false` |
|
|
52
|
+
|
|
53
|
+
### Examples
|
|
54
|
+
|
|
55
|
+
Basic usage:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# Create with default options (pnpm, arch-ui template)
|
|
59
|
+
npx create-project-arch my-project
|
|
60
|
+
|
|
61
|
+
# Specify package manager
|
|
62
|
+
npx create-project-arch my-project --pm npm
|
|
63
|
+
|
|
64
|
+
# Use specific template
|
|
65
|
+
npx create-project-arch my-project --template ui-package
|
|
66
|
+
|
|
67
|
+
# Force creation in existing directory
|
|
68
|
+
npx create-project-arch my-project --force
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## What Gets Created?
|
|
72
|
+
|
|
73
|
+
When you run `create-project-arch`, it:
|
|
74
|
+
|
|
75
|
+
1. **Creates a Turborepo monorepo** with modern tooling
|
|
76
|
+
2. **Initializes project-arch** with `arch-model/` directory
|
|
77
|
+
3. **Scaffolds template applications** based on your selection
|
|
78
|
+
4. **Configures package scripts** for architecture management
|
|
79
|
+
5. **Installs dependencies** using your chosen package manager
|
|
80
|
+
|
|
81
|
+
### Project Structure
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
my-awesome-project/
|
|
85
|
+
โโโ apps/
|
|
86
|
+
โ โโโ arch/ # Architecture UI (Next.js app)
|
|
87
|
+
โ โ โโโ app/
|
|
88
|
+
โ โ โ โโโ page.tsx # Dashboard
|
|
89
|
+
โ โ โ โโโ phases/ # Phase explorer
|
|
90
|
+
โ โ โ โโโ milestones/ # Milestone viewer
|
|
91
|
+
โ โ โ โโโ tasks/ # Task manager
|
|
92
|
+
โ โ โ โโโ decisions/ # ADR browser
|
|
93
|
+
โ โ โโโ components/
|
|
94
|
+
โ โ โโโ PhaseCard.tsx
|
|
95
|
+
โ โ โโโ TaskList.tsx
|
|
96
|
+
โ โ โโโ MilestoneTimeline.tsx
|
|
97
|
+
โ โโโ web/ # Your main application
|
|
98
|
+
โโโ packages/
|
|
99
|
+
โ โโโ ui/ # Shared UI components
|
|
100
|
+
โ โโโ src/
|
|
101
|
+
โ โ โโโ button.tsx
|
|
102
|
+
โ โ โโโ card.tsx
|
|
103
|
+
โ โ โโโ ...
|
|
104
|
+
โ โโโ package.json
|
|
105
|
+
โโโ arch-model/ # Architecture directory
|
|
106
|
+
โ โโโ phases/
|
|
107
|
+
โ โ โโโ phase-1/
|
|
108
|
+
โ โ โโโ milestones/
|
|
109
|
+
โ โโโ decisions/
|
|
110
|
+
โ โโโ docs/
|
|
111
|
+
โโโ package.json
|
|
112
|
+
โโโ turbo.json
|
|
113
|
+
โโโ pnpm-workspace.yaml
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Available Templates
|
|
117
|
+
|
|
118
|
+
### arch-ui (Default)
|
|
119
|
+
|
|
120
|
+
A complete Next.js application for visualizing and managing your project architecture.
|
|
121
|
+
|
|
122
|
+
**Includes:**
|
|
123
|
+
|
|
124
|
+
- ๐ Dashboard with project overview
|
|
125
|
+
- ๐ Phase and milestone explorer
|
|
126
|
+
- โ
Task management interface
|
|
127
|
+
- ๐ ADR browser and editor
|
|
128
|
+
- ๐ Progress tracking and metrics
|
|
129
|
+
- ๐จ Beautiful UI with Tailwind CSS
|
|
130
|
+
|
|
131
|
+
**Perfect for:**
|
|
132
|
+
|
|
133
|
+
- Teams that want visual architecture management
|
|
134
|
+
- Projects with multiple phases and complex dependencies
|
|
135
|
+
- Organizations adopting architecture-first development
|
|
136
|
+
|
|
137
|
+
**Technologies:**
|
|
138
|
+
|
|
139
|
+
- Next.js 14+ (App Router)
|
|
140
|
+
- React 18+
|
|
141
|
+
- TypeScript
|
|
142
|
+
- Tailwind CSS
|
|
143
|
+
- project-arch SDK
|
|
144
|
+
|
|
145
|
+
### ui-package
|
|
146
|
+
|
|
147
|
+
A starter template for building a shared React component library.
|
|
148
|
+
|
|
149
|
+
**Includes:**
|
|
150
|
+
|
|
151
|
+
- ๐จ Basic UI components (Button, Card, Input, etc.)
|
|
152
|
+
- ๐ Component documentation structure
|
|
153
|
+
- ๐ง TypeScript configuration
|
|
154
|
+
- ๐ฆ Optimized for publishing
|
|
155
|
+
|
|
156
|
+
**Perfect for:**
|
|
157
|
+
|
|
158
|
+
- Building design systems
|
|
159
|
+
- Creating shared component libraries
|
|
160
|
+
- Publishing npm packages
|
|
161
|
+
|
|
162
|
+
**Technologies:**
|
|
163
|
+
|
|
164
|
+
- React 18+
|
|
165
|
+
- TypeScript
|
|
166
|
+
- ESLint configuration
|
|
167
|
+
|
|
168
|
+
## Getting Started with Your New Project
|
|
169
|
+
|
|
170
|
+
After scaffolding completes:
|
|
171
|
+
|
|
172
|
+
### 1. Navigate to your project
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
cd my-awesome-project
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### 2. Install dependencies (if not auto-installed)
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
pnpm install
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### 3. Start the development server
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
# Start all apps
|
|
188
|
+
pnpm dev
|
|
189
|
+
|
|
190
|
+
# Or start specific app
|
|
191
|
+
pnpm dev --filter=arch
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
The architecture UI will be available at `http://localhost:3000`
|
|
195
|
+
|
|
196
|
+
### 4. Initialize your architecture
|
|
197
|
+
|
|
198
|
+
The project comes with a sample architecture, but you can customize it:
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
# Create a new phase
|
|
202
|
+
pnpm arch phase new phase-1
|
|
203
|
+
|
|
204
|
+
# Create a milestone
|
|
205
|
+
pnpm arch milestone new phase-1 milestone-1
|
|
206
|
+
|
|
207
|
+
# Create tasks
|
|
208
|
+
pnpm arch task new phase-1 milestone-1
|
|
209
|
+
|
|
210
|
+
# Document a decision
|
|
211
|
+
pnpm arch decision new use-react
|
|
212
|
+
|
|
213
|
+
# Run validations
|
|
214
|
+
pnpm arch check
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### 5. View your architecture
|
|
218
|
+
|
|
219
|
+
Open the architecture UI at `http://localhost:3000` to see:
|
|
220
|
+
|
|
221
|
+
- Visual representation of phases and milestones
|
|
222
|
+
- Task progress and dependencies
|
|
223
|
+
- Architecture decision records
|
|
224
|
+
- Project metrics and reports
|
|
225
|
+
|
|
226
|
+
## Architecture Management Commands
|
|
227
|
+
|
|
228
|
+
Your scaffolded project includes these scripts in `package.json`:
|
|
229
|
+
|
|
230
|
+
```json
|
|
231
|
+
{
|
|
232
|
+
"scripts": {
|
|
233
|
+
"dev": "turbo dev",
|
|
234
|
+
"build": "turbo build",
|
|
235
|
+
"arch": "pa",
|
|
236
|
+
"arch:check": "pa check",
|
|
237
|
+
"arch:report": "pa report",
|
|
238
|
+
"arch:docs": "pa docs"
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### Available Commands
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
# Initialize architecture (already done during scaffolding)
|
|
247
|
+
pnpm arch init
|
|
248
|
+
|
|
249
|
+
# Create and manage phases
|
|
250
|
+
pnpm arch phase new <phase-id>
|
|
251
|
+
pnpm arch phase list
|
|
252
|
+
|
|
253
|
+
# Create and manage milestones
|
|
254
|
+
pnpm arch milestone new <phase> <milestone>
|
|
255
|
+
pnpm arch milestone list <phase>
|
|
256
|
+
|
|
257
|
+
# Create and manage tasks
|
|
258
|
+
pnpm arch task new <phase> <milestone>
|
|
259
|
+
pnpm arch task discover <phase> <milestone> --from <task-id>
|
|
260
|
+
pnpm arch task idea <phase> <milestone>
|
|
261
|
+
pnpm arch task lanes <phase> <milestone>
|
|
262
|
+
|
|
263
|
+
# Document decisions
|
|
264
|
+
pnpm arch decision new <decision-id>
|
|
265
|
+
pnpm arch decision list
|
|
266
|
+
|
|
267
|
+
# Validation and reporting
|
|
268
|
+
pnpm arch check
|
|
269
|
+
pnpm arch report
|
|
270
|
+
pnpm arch docs
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
## Developing Templates (For Contributors)
|
|
274
|
+
|
|
275
|
+
If you want to customize the templates or contribute new ones:
|
|
276
|
+
|
|
277
|
+
### 1. Initialize the Sandbox
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
pnpm run sandbox:init
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
This creates a `testProject/` directory with the scaffolded templates.
|
|
284
|
+
|
|
285
|
+
### 2. Start Development
|
|
286
|
+
|
|
287
|
+
```bash
|
|
288
|
+
pnpm run sandbox:dev
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
This starts the Next.js dev server for the arch-ui template at `http://localhost:4020`.
|
|
292
|
+
|
|
293
|
+
### 3. Make Changes
|
|
294
|
+
|
|
295
|
+
Edit files in `testProject/apps/arch/` and `testProject/packages/ui/`. Changes will hot-reload.
|
|
296
|
+
|
|
297
|
+
### 4. Sync Changes Back
|
|
298
|
+
|
|
299
|
+
When satisfied with your changes:
|
|
300
|
+
|
|
301
|
+
```bash
|
|
302
|
+
pnpm run sandbox:sync
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
This copies your changes back to the `templates/` directory so they're included in the next release.
|
|
306
|
+
|
|
307
|
+
### 5. Test Scaffolding
|
|
26
308
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
309
|
+
```bash
|
|
310
|
+
# Build the CLI
|
|
311
|
+
pnpm build
|
|
312
|
+
|
|
313
|
+
# Test scaffolding
|
|
314
|
+
node dist/cli.js test-output --force
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
## Template Structure
|
|
318
|
+
|
|
319
|
+
Templates are stored in `templates/` directory:
|
|
320
|
+
|
|
321
|
+
```
|
|
322
|
+
templates/
|
|
323
|
+
โโโ arch-ui/
|
|
324
|
+
โ โโโ package.json
|
|
325
|
+
โ โโโ next.config.js
|
|
326
|
+
โ โโโ tailwind.config.ts
|
|
327
|
+
โ โโโ app/
|
|
328
|
+
โ โ โโโ page.tsx
|
|
329
|
+
โ โ โโโ layout.tsx
|
|
330
|
+
โ โ โโโ ...
|
|
331
|
+
โ โโโ components/
|
|
332
|
+
โ โโโ ...
|
|
333
|
+
โโโ ui-package/
|
|
334
|
+
โโโ package.json
|
|
335
|
+
โโโ tsconfig.json
|
|
336
|
+
โโโ src/
|
|
337
|
+
โโโ ...
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
### Creating a New Template
|
|
341
|
+
|
|
342
|
+
1. Create a new directory in `templates/`
|
|
343
|
+
2. Add all necessary files for the template
|
|
344
|
+
3. Use placeholders for project-specific values:
|
|
345
|
+
- `{{PROJECT_NAME}}` - Replaced with the project name
|
|
346
|
+
- `{{PACKAGE_MANAGER}}` - Replaced with pm choice
|
|
347
|
+
4. Update the CLI to recognize the new template
|
|
348
|
+
5. Add documentation
|
|
349
|
+
|
|
350
|
+
## Configuration
|
|
351
|
+
|
|
352
|
+
### Package Manager Detection
|
|
353
|
+
|
|
354
|
+
The tool automatically detects and uses the package manager you invoked it with:
|
|
355
|
+
|
|
356
|
+
```bash
|
|
357
|
+
npx create-project-arch my-app # Uses npm
|
|
358
|
+
pnpm create project-arch my-app # Uses pnpm
|
|
359
|
+
yarn create project-arch my-app # Uses yarn
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
You can override with `--pm`:
|
|
363
|
+
|
|
364
|
+
```bash
|
|
365
|
+
npx create-project-arch my-app --pm pnpm
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
### Template Selection
|
|
369
|
+
|
|
370
|
+
Choose a template with `--template`:
|
|
371
|
+
|
|
372
|
+
```bash
|
|
373
|
+
npx create-project-arch my-app --template ui-package
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
## Troubleshooting
|
|
377
|
+
|
|
378
|
+
### Installation Fails
|
|
379
|
+
|
|
380
|
+
**Issue**: Dependencies fail to install
|
|
381
|
+
|
|
382
|
+
**Solution**:
|
|
383
|
+
|
|
384
|
+
```bash
|
|
385
|
+
# Clear cache and retry
|
|
386
|
+
pnpm store prune
|
|
387
|
+
pnpm install
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
### Port Already in Use
|
|
391
|
+
|
|
392
|
+
**Issue**: Dev server can't start (port 3000 in use)
|
|
393
|
+
|
|
394
|
+
**Solution**:
|
|
395
|
+
|
|
396
|
+
```bash
|
|
397
|
+
# Use a different port
|
|
398
|
+
PORT=3001 pnpm dev
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
### Template Not Found
|
|
402
|
+
|
|
403
|
+
**Issue**: `Template 'xyz' not found`
|
|
404
|
+
|
|
405
|
+
**Solution**: Check available templates:
|
|
406
|
+
|
|
407
|
+
```bash
|
|
408
|
+
npx create-project-arch --help
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
Valid templates: `arch-ui`, `ui-package`
|
|
412
|
+
|
|
413
|
+
### Force Flag Required
|
|
414
|
+
|
|
415
|
+
**Issue**: `Directory not empty`
|
|
416
|
+
|
|
417
|
+
**Solution**: Use `--force` flag to scaffold in existing directory:
|
|
418
|
+
|
|
419
|
+
```bash
|
|
420
|
+
npx create-project-arch my-app --force
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
**Warning**: This will overwrite existing files!
|
|
424
|
+
|
|
425
|
+
## Examples
|
|
426
|
+
|
|
427
|
+
### Create a Team Project
|
|
428
|
+
|
|
429
|
+
```bash
|
|
430
|
+
# Scaffold with architecture UI
|
|
431
|
+
npx create-project-arch team-project
|
|
432
|
+
|
|
433
|
+
# Navigate and start
|
|
434
|
+
cd team-project
|
|
435
|
+
pnpm install
|
|
436
|
+
pnpm dev
|
|
437
|
+
|
|
438
|
+
# Set up initial architecture
|
|
439
|
+
pnpm arch phase new foundation
|
|
440
|
+
pnpm arch milestone new foundation mvp
|
|
441
|
+
pnpm arch task new foundation mvp
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
### Create a Component Library
|
|
445
|
+
|
|
446
|
+
```bash
|
|
447
|
+
# Use ui-package template
|
|
448
|
+
npx create-project-arch my-ui-lib --template ui-package
|
|
449
|
+
|
|
450
|
+
cd my-ui-lib
|
|
451
|
+
pnpm install
|
|
452
|
+
|
|
453
|
+
# Build the library
|
|
454
|
+
pnpm build
|
|
455
|
+
|
|
456
|
+
# Develop with hot reload
|
|
457
|
+
pnpm dev
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
### Quick Prototype
|
|
461
|
+
|
|
462
|
+
```bash
|
|
463
|
+
# Use npm for simplicity
|
|
464
|
+
npx create-project-arch prototype --pm npm
|
|
465
|
+
|
|
466
|
+
cd prototype
|
|
467
|
+
npm install
|
|
468
|
+
npm run dev
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
## Migration from Existing Projects
|
|
472
|
+
|
|
473
|
+
To add project-arch to an existing project:
|
|
474
|
+
|
|
475
|
+
1. Install project-arch:
|
|
476
|
+
|
|
477
|
+
```bash
|
|
478
|
+
pnpm add project-arch -w
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
2. Initialize architecture:
|
|
482
|
+
|
|
483
|
+
```bash
|
|
484
|
+
pnpm exec pa init
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
3. (Optional) Copy template files manually from this repository
|
|
488
|
+
|
|
489
|
+
## API Reference (Programmatic Usage)
|
|
490
|
+
|
|
491
|
+
You can use create-project-arch programmatically:
|
|
492
|
+
|
|
493
|
+
```typescript
|
|
494
|
+
import { scaffold } from "create-project-arch";
|
|
495
|
+
|
|
496
|
+
await scaffold({
|
|
497
|
+
projectName: "my-project",
|
|
498
|
+
template: "arch-ui",
|
|
499
|
+
packageManager: "pnpm",
|
|
500
|
+
targetDir: "/path/to/project",
|
|
501
|
+
force: false,
|
|
502
|
+
});
|
|
503
|
+
```
|
|
504
|
+
|
|
505
|
+
## Contributing
|
|
506
|
+
|
|
507
|
+
We welcome contributions! See [CONTRIBUTING.md](../../CONTRIBUTING.md) for guidelines.
|
|
508
|
+
|
|
509
|
+
### Areas for Contribution
|
|
510
|
+
|
|
511
|
+
- ๐จ New templates
|
|
512
|
+
- ๐ Bug fixes
|
|
513
|
+
- ๐ Documentation improvements
|
|
514
|
+
- โจ Feature enhancements
|
|
515
|
+
- ๐งช Test coverage
|
|
516
|
+
|
|
517
|
+
## Changelog
|
|
518
|
+
|
|
519
|
+
See [CHANGELOG.md](CHANGELOG.md) for version history and updates.
|
|
520
|
+
|
|
521
|
+
## License
|
|
522
|
+
|
|
523
|
+
MIT License - see [LICENSE](LICENSE) for details.
|
|
524
|
+
|
|
525
|
+
## Related Projects
|
|
526
|
+
|
|
527
|
+
- [project-arch](https://www.npmjs.com/package/project-arch) - Core CLI and SDK
|
|
528
|
+
- [Turborepo](https://turbo.build/) - High-performance build system
|
|
529
|
+
- [Next.js](https://nextjs.org/) - React framework
|
|
530
|
+
|
|
531
|
+
## Support
|
|
532
|
+
|
|
533
|
+
- ๐ [Documentation](https://github.com/project-arch/project-arch-system#readme)
|
|
534
|
+
- ๐ [Issue Tracker](https://github.com/project-arch/project-arch-system/issues)
|
|
535
|
+
- ๐ฌ [Discussions](https://github.com/project-arch/project-arch-system/discussions)
|
|
536
|
+
|
|
537
|
+
## Acknowledgments
|
|
538
|
+
|
|
539
|
+
Built with:
|
|
540
|
+
|
|
541
|
+
- [Commander.js](https://github.com/tj/commander.js) - CLI framework
|
|
542
|
+
- [fs-extra](https://github.com/jprichardson/node-fs-extra) - File system utilities
|
|
543
|
+
- [project-arch](https://github.com/project-arch/project-arch-system) - Architecture management
|
|
544
|
+
|
|
545
|
+
---
|
|
546
|
+
|
|
547
|
+
**Ready to build architecture-first?** ๐
|
|
548
|
+
|
|
549
|
+
```bash
|
|
550
|
+
npx create-project-arch my-next-project
|
|
551
|
+
```
|
package/package.json
CHANGED
|
@@ -1,14 +1,38 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-project-arch",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Scaffold
|
|
3
|
+
"version": "1.2.0",
|
|
4
|
+
"description": "Scaffold new projects with Project Arch templates including Next.js apps and component libraries",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"create",
|
|
7
|
+
"scaffold",
|
|
8
|
+
"template",
|
|
9
|
+
"project-arch",
|
|
10
|
+
"nextjs",
|
|
11
|
+
"react",
|
|
12
|
+
"turborepo",
|
|
13
|
+
"monorepo"
|
|
14
|
+
],
|
|
15
|
+
"homepage": "https://github.com/project-arch/project-arch-system#readme",
|
|
16
|
+
"bugs": {
|
|
17
|
+
"url": "https://github.com/project-arch/project-arch-system/issues"
|
|
18
|
+
},
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "git+https://github.com/project-arch/project-arch-system.git",
|
|
22
|
+
"directory": "packages/create-project-arch"
|
|
23
|
+
},
|
|
24
|
+
"license": "MIT",
|
|
25
|
+
"author": "Project Arch Contributors",
|
|
5
26
|
"bin": {
|
|
6
27
|
"create-project-arch": "dist/cli.js"
|
|
7
28
|
},
|
|
8
29
|
"main": "dist/cli.js",
|
|
9
30
|
"files": [
|
|
10
31
|
"dist",
|
|
11
|
-
"templates"
|
|
32
|
+
"templates",
|
|
33
|
+
"README.md",
|
|
34
|
+
"LICENSE",
|
|
35
|
+
"CHANGELOG.md"
|
|
12
36
|
],
|
|
13
37
|
"dependencies": {
|
|
14
38
|
"commander": "^12.1.0",
|