create-koppajs 1.0.1 → 1.1.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.
Files changed (57) hide show
  1. package/CHANGELOG.md +105 -0
  2. package/README.md +169 -131
  3. package/bin/create-koppajs.js +201 -175
  4. package/package.json +54 -34
  5. package/template/AI_CONSTITUTION.md +50 -0
  6. package/template/ARCHITECTURE.md +86 -0
  7. package/template/CHANGELOG.md +34 -0
  8. package/template/CONTRIBUTING.md +92 -0
  9. package/template/DECISION_HIERARCHY.md +32 -0
  10. package/template/DEVELOPMENT_RULES.md +57 -0
  11. package/template/LICENSE +1 -1
  12. package/template/README.md +241 -49
  13. package/template/RELEASE.md +230 -0
  14. package/template/ROADMAP.md +34 -0
  15. package/template/TESTING_STRATEGY.md +93 -0
  16. package/template/_editorconfig +12 -0
  17. package/template/_gitattributes +1 -0
  18. package/template/_github/instructions/ai-workflow.md +33 -0
  19. package/template/_github/workflows/ci.yml +38 -0
  20. package/template/_github/workflows/release.yml +58 -0
  21. package/template/_gitignore +5 -0
  22. package/template/_husky/commit-msg +8 -0
  23. package/template/_husky/pre-commit +1 -0
  24. package/template/_npmrc +1 -0
  25. package/template/_prettierignore +7 -0
  26. package/template/commitlint.config.mjs +6 -0
  27. package/template/docs/adr/0001-keep-the-starter-minimal.md +32 -0
  28. package/template/docs/adr/0002-adopt-a-living-meta-layer.md +30 -0
  29. package/template/docs/adr/0003-normalize-kpa-plugin-output.md +24 -0
  30. package/template/docs/adr/0004-adopt-an-automated-quality-baseline.md +31 -0
  31. package/template/docs/adr/0005-adopt-a-tag-driven-release-baseline.md +45 -0
  32. package/template/docs/adr/0006-adopt-commit-message-conventions.md +39 -0
  33. package/template/docs/adr/README.md +37 -0
  34. package/template/docs/adr/TEMPLATE.md +18 -0
  35. package/template/docs/architecture/module-boundaries.md +48 -0
  36. package/template/docs/meta/maintenance.md +40 -0
  37. package/template/docs/quality/quality-gates.md +39 -0
  38. package/template/docs/specs/README.md +36 -0
  39. package/template/docs/specs/TEMPLATE.md +34 -0
  40. package/template/docs/specs/app-bootstrap.md +46 -0
  41. package/template/docs/specs/counter-component.md +48 -0
  42. package/template/docs/specs/quality-workflow.md +62 -0
  43. package/template/eslint.config.mjs +54 -0
  44. package/template/package.json +57 -6
  45. package/template/playwright.config.ts +31 -0
  46. package/template/pnpm-lock.yaml +3784 -0
  47. package/template/prettier.config.mjs +6 -0
  48. package/template/src/app-view.kpa +35 -36
  49. package/template/src/counter-component.kpa +87 -87
  50. package/template/src/style.css +5 -5
  51. package/template/tests/e2e/app.spec.ts +18 -0
  52. package/template/tests/integration/main-bootstrap.test.ts +33 -0
  53. package/template/tests/unit/normalize-kpa-module-export.test.ts +46 -0
  54. package/template/tsconfig.json +13 -2
  55. package/template/vite.config.d.mts +7 -0
  56. package/template/vite.config.mjs +39 -4
  57. package/template/vitest.config.mjs +19 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,105 @@
1
+ # Change Log
2
+
3
+ All notable changes to **create-koppajs** are documented in this file.
4
+
5
+ This project uses a **manual, tag-driven release process**.
6
+ Only tagged versions represent official releases.
7
+
8
+ This changelog documents **intentional milestones and guarantees**,
9
+ not every internal refactor.
10
+
11
+ ---
12
+
13
+ ## [Unreleased]
14
+
15
+ _No unreleased changes yet._
16
+
17
+ ---
18
+
19
+ ## [1.1.0] — Starter & Release Baseline Upgrade
20
+
21
+ **2026-03-17**
22
+
23
+ ### Added
24
+
25
+ - Added a repository meta layer covering architecture, decision hierarchy,
26
+ testing strategy, specs, ADRs, quality gates, and AI collaboration rules
27
+ - Added a repository-specific `RELEASE.md` aligned with the `koppajs-core`
28
+ release model and this package's npm publish path
29
+ - Added Conventional Commit enforcement with `commitlint`, Husky, and
30
+ `lint-staged`
31
+ - Added repository-level quality scripts for meta checks, syntax checks,
32
+ formatting hygiene, cleanup, and package dry-run validation
33
+ - Added generated-template build verification and wired it into CI and releases
34
+
35
+ ### Changed
36
+
37
+ - Updated contributing guidance to match the actual scripts, workflows, and
38
+ repository responsibilities
39
+ - Expanded smoke coverage for README patching, invalid project names, and
40
+ scaffolding into an existing empty directory
41
+ - Documented the CI meta-layer presence guard in the quality and architecture
42
+ docs
43
+ - Added importable CLI helper coverage with the Node.js built-in test runner
44
+ - Synced the bundled starter template to the current `koppajs-example`
45
+ technical baseline, including quality tooling, meta docs, tests, and release
46
+ files
47
+ - Switched root CI and release workflows to pnpm-based dependency installation
48
+ so the new hook and commit tooling actually runs in automation
49
+ - Isolated the root pre-commit `lint-staged` config from the generated
50
+ starter's own hook tooling so root commits stay reliable
51
+ - Clarified the starter's supported Node.js lines and added an explicit
52
+ validation guard for unsupported runtimes such as Node 23
53
+
54
+ ---
55
+
56
+ ## [1.0.1] — License & Metadata Fix
57
+
58
+ **2026-03-01**
59
+
60
+ Patch release to align license with the rest of the KoppaJS ecosystem.
61
+ No CLI or template changes.
62
+
63
+ ### Changed
64
+
65
+ - License changed from MIT to Apache License 2.0 (consistent with all KoppaJS projects)
66
+ - Static license badge updated in README
67
+ - Copyright year updated to 2026
68
+
69
+ ---
70
+
71
+ ## [1.0.0] — Initial Stable Release
72
+
73
+ **2026-03-01**
74
+
75
+ First stable release of the official KoppaJS project scaffolder.
76
+
77
+ ### Features
78
+
79
+ - CLI scaffolder: `pnpm create koppajs my-app`
80
+ - Interactive project name prompt when omitted
81
+ - Complete starter template with Vite, TypeScript, and sample `.kpa` components
82
+ - Supports `pnpm`, `npm`, and `npx`
83
+ - Smoke test suite for generated project validation
84
+
85
+ ### Tooling
86
+
87
+ - CI workflow for syntax check and smoke test
88
+ - Tag-driven release workflow for npm publication
89
+ - Code of Conduct and Contributing guidelines
90
+
91
+ ---
92
+
93
+ ## Versioning Policy
94
+
95
+ - Semantic Versioning (SemVer) is followed pragmatically
96
+ - **Breaking changes** include:
97
+ - CLI behavior changes
98
+ - template structure changes
99
+ - Internal refactors without observable behavior change
100
+ do **not** require a major version bump
101
+
102
+ ---
103
+
104
+ _This changelog documents intent.
105
+ If something is not written here, it is not guaranteed._
package/README.md CHANGED
@@ -1,131 +1,169 @@
1
- <a id="readme-top"></a>
2
-
3
- <div align="center">
4
- <img src="https://public-assets-1b57ca06-687a-4142-a525-0635f7649a5c.s3.eu-central-1.amazonaws.com/koppajs/koppajs-logo-text-900x226.png" width="500" alt="KoppaJS Logo">
5
- </div>
6
-
7
- <br>
8
-
9
- <div align="center">
10
- <a href="https://www.npmjs.com/package/create-koppajs"><img src="https://img.shields.io/npm/v/create-koppajs?style=flat-square" alt="npm version"></a>
11
- <a href="./LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue?style=flat-square" alt="License"></a>
12
- </div>
13
-
14
- <br>
15
-
16
- <div align="center">
17
- <h1 align="center">create-koppajs</h1>
18
- <h3 align="center">Scaffold a new KoppaJS project in seconds</h3>
19
- <p align="center">
20
- <i>The fastest way to start building with KoppaJS.</i>
21
- </p>
22
- </div>
23
-
24
- <br>
25
-
26
- <div align="center">
27
- <p align="center">
28
- <a href="https://github.com/koppajs/koppajs-documentation">Documentation</a>
29
- &middot;
30
- <a href="https://github.com/koppajs/koppajs-core">KoppaJS Core</a>
31
- &middot;
32
- <a href="https://github.com/koppajs/koppajs-vite-plugin">Vite Plugin</a>
33
- &middot;
34
- <a href="https://github.com/koppajs/create-koppajs/issues">Issues</a>
35
- </p>
36
- </div>
37
-
38
- <br>
39
-
40
- <details>
41
- <summary>Table of Contents</summary>
42
- <ol>
43
- <li><a href="#what-is-this">What is this?</a></li>
44
- <li><a href="#usage">Usage</a></li>
45
- <li><a href="#what-gets-generated">What gets generated</a></li>
46
- <li><a href="#requirements">Requirements</a></li>
47
- <li><a href="#community--contribution">Community & Contribution</a></li>
48
- <li><a href="#license">License</a></li>
49
- </ol>
50
- </details>
51
-
52
- ---
53
-
54
- ## What is this?
55
-
56
- `create-koppajs` is the **official project scaffolder** for KoppaJS.
57
-
58
- It creates a ready-to-run starter project with a single command — no configuration, no dependencies to install first, no boilerplate to write by hand.
59
-
60
- ---
61
-
62
- ## Usage
63
-
64
- ```bash
65
- pnpm create koppajs my-app
66
- ```
67
-
68
- ```bash
69
- npm create koppajs my-app
70
- ```
71
-
72
- ```bash
73
- npx create-koppajs my-app
74
- ```
75
-
76
- Then:
77
-
78
- ```bash
79
- cd my-app
80
- pnpm install
81
- pnpm dev
82
- ```
83
-
84
- If you omit the project name, the CLI will prompt you for one.
85
-
86
- ---
87
-
88
- ## What gets generated
89
-
90
- ```
91
- my-app/
92
- ├── index.html
93
- ├── package.json
94
- ├── tsconfig.json
95
- ├── vite.config.mjs
96
- ├── .gitignore
97
- ├── LICENSE
98
- ├── README.md
99
- ├── public/
100
- │ └── favicon.svg
101
- └── src/
102
- ├── main.ts
103
- ├── style.css
104
- ├── app-view.kpa
105
- └── counter-component.kpa
106
- ```
107
-
108
- - **Vite** as dev server and bundler
109
- - **TypeScript** support out of the box
110
- - **Two sample components** (app view + counter) to get started
111
- - **Zero unnecessary dependencies**
112
-
113
- ---
114
-
115
- ## Requirements
116
-
117
- - Node.js >= 20
118
-
119
- ---
120
-
121
- ## Community & Contribution
122
-
123
- Issues and pull requests are welcome:
124
-
125
- https://github.com/koppajs/create-koppajs/issues
126
-
127
- ---
128
-
129
- ## License
130
-
131
- Apache-2.0 © 2026 KoppaJS, Bastian Bensch
1
+ <a id="readme-top"></a>
2
+
3
+ <div align="center">
4
+ <img src="https://public-assets-1b57ca06-687a-4142-a525-0635f7649a5c.s3.eu-central-1.amazonaws.com/koppajs/koppajs-logo-text-900x226.png" width="500" alt="KoppaJS Logo">
5
+ </div>
6
+
7
+ <br>
8
+
9
+ <div align="center">
10
+ <a href="https://www.npmjs.com/package/create-koppajs"><img src="https://img.shields.io/npm/v/create-koppajs?style=flat-square" alt="npm version"></a>
11
+ <a href="./LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue?style=flat-square" alt="License"></a>
12
+ </div>
13
+
14
+ <br>
15
+
16
+ <div align="center">
17
+ <h1 align="center">create-koppajs</h1>
18
+ <h3 align="center">Scaffold a new KoppaJS project in seconds</h3>
19
+ <p align="center">
20
+ <i>The fastest way to start building with KoppaJS.</i>
21
+ </p>
22
+ </div>
23
+
24
+ <br>
25
+
26
+ <div align="center">
27
+ <p align="center">
28
+ <a href="https://github.com/koppajs/koppajs-documentation">Documentation</a>
29
+ &middot;
30
+ <a href="https://github.com/koppajs/koppajs-core">KoppaJS Core</a>
31
+ &middot;
32
+ <a href="https://github.com/koppajs/koppajs-vite-plugin">Vite Plugin</a>
33
+ &middot;
34
+ <a href="https://github.com/koppajs/create-koppajs/issues">Issues</a>
35
+ </p>
36
+ </div>
37
+
38
+ <br>
39
+
40
+ <details>
41
+ <summary>Table of Contents</summary>
42
+ <ol>
43
+ <li><a href="#what-is-this">What is this?</a></li>
44
+ <li><a href="#usage">Usage</a></li>
45
+ <li><a href="#what-gets-generated">What gets generated</a></li>
46
+ <li><a href="#requirements">Requirements</a></li>
47
+ <li><a href="#release--governance">Release & Governance</a></li>
48
+ <li><a href="#community--contribution">Community & Contribution</a></li>
49
+ <li><a href="#license">License</a></li>
50
+ </ol>
51
+ </details>
52
+
53
+ ---
54
+
55
+ ## What is this?
56
+
57
+ `create-koppajs` is the **official project scaffolder** for KoppaJS.
58
+
59
+ It creates a ready-to-run starter project with a single command — no configuration, no dependencies to install first, no boilerplate to write by hand.
60
+
61
+ ---
62
+
63
+ ## Usage
64
+
65
+ ```bash
66
+ pnpm create koppajs my-app
67
+ ```
68
+
69
+ ```bash
70
+ npm create koppajs my-app
71
+ ```
72
+
73
+ ```bash
74
+ npx create-koppajs my-app
75
+ ```
76
+
77
+ Then:
78
+
79
+ ```bash
80
+ cd my-app
81
+ pnpm install
82
+ pnpm dev
83
+ ```
84
+
85
+ If you omit the project name, the CLI will prompt you for one.
86
+
87
+ ---
88
+
89
+ ## What gets generated
90
+
91
+ ```
92
+ my-app/
93
+ ├── .github/
94
+ ├── .husky/
95
+ ├── docs/
96
+ ├── tests/
97
+ ├── CHANGELOG.md
98
+ ├── RELEASE.md
99
+ ├── AI_CONSTITUTION.md
100
+ ├── ARCHITECTURE.md
101
+ ├── package.json
102
+ ├── .gitignore
103
+ ├── README.md
104
+ ├── vite.config.mjs
105
+ ├── vitest.config.mjs
106
+ ├── playwright.config.ts
107
+ ├── tsconfig.json
108
+ ├── pnpm-lock.yaml
109
+ ├── LICENSE
110
+ ├── public/
111
+ │ └── favicon.svg
112
+ └── src/
113
+ ├── main.ts
114
+ ├── style.css
115
+ ├── app-view.kpa
116
+ └── counter-component.kpa
117
+ ```
118
+
119
+ - **Vite** as dev server and bundler
120
+ - **TypeScript**, **ESLint**, **Prettier**, **Vitest**, and **Playwright**
121
+ - **GitHub workflows**, **Husky**, **lint-staged**, and **Conventional Commits**
122
+ - **Meta-layer docs**, ADRs, specs, and a release baseline
123
+ - **Two sample components** (app view + counter) aligned with the current
124
+ `koppajs-example` starter
125
+
126
+ ---
127
+
128
+ ## Requirements
129
+
130
+ - `create-koppajs`: Node.js >= 20
131
+ - Generated starter workflow: pnpm >= 10 plus a starter-supported Node.js line
132
+ (currently 20.19+, 22.13+, or 24+)
133
+
134
+ ---
135
+
136
+ ## Release & Governance
137
+
138
+ The scaffolded starter now ships with the same quality and governance baseline
139
+ as the current official `koppajs-example`, adapted for generated projects:
140
+
141
+ - explicit meta docs and ADR/spec structure
142
+ - tag-driven `CHANGELOG.md` plus `RELEASE.md`
143
+ - Conventional Commit enforcement via `commitlint`
144
+ - a generated-project CI/release baseline under `.github/workflows`
145
+
146
+ ---
147
+
148
+ ## Community & Contribution
149
+
150
+ Issues and pull requests are welcome:
151
+
152
+ https://github.com/koppajs/create-koppajs/issues
153
+
154
+ ## Governance & Architecture
155
+
156
+ Repository design and maintenance rules live in the meta layer:
157
+
158
+ - [AI_CONSTITUTION.md](./AI_CONSTITUTION.md)
159
+ - [ARCHITECTURE.md](./ARCHITECTURE.md)
160
+ - [DEVELOPMENT_RULES.md](./DEVELOPMENT_RULES.md)
161
+ - [TESTING_STRATEGY.md](./TESTING_STRATEGY.md)
162
+ - [RELEASE.md](./RELEASE.md)
163
+ - [docs/meta/README.md](./docs/meta/README.md)
164
+
165
+ ---
166
+
167
+ ## License
168
+
169
+ Apache-2.0 — © 2026 KoppaJS, Bastian Bensch