@pukujan/create-modular-monolith 2.2.0 → 2.2.3

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 (33) hide show
  1. package/LICENSE +50 -0
  2. package/README.md +145 -62
  3. package/package.json +3 -2
  4. package/template/.cursor/rules/file-exchange-inbox.mdc +1 -1
  5. package/template/ARCHITECTURE_EXPORT_README.md +30 -0
  6. package/template/EXPORT_MANIFEST.json +74 -0
  7. package/template/LICENSE +11 -0
  8. package/template/NOTICE +12 -0
  9. package/template/README.md +36 -25
  10. package/template/backend/package.json +1 -1
  11. package/template/backend/src/modules/model-condenser/services/modelCondenser.service.js +36 -465
  12. package/template/backend/src/modules/model-condenser/tests/unit/modelCondenser.service.test.js +2 -3
  13. package/template/backend/src/shared/utils/consolidatedExport.js +155 -11
  14. package/template/backend/src/shared/utils/consolidatedExport.test.js +50 -0
  15. package/template/docs/README.md +0 -1
  16. package/template/docs/architecture/EVAL_AND_CI.md +68 -41
  17. package/template/docs/architecture/REPO_ARTIFACT_LAYOUT.md +57 -14
  18. package/template/docs/architecture/contracts/consolidatedExports.contract.md +14 -10
  19. package/template/docs/architecture/contracts/manifest.json +17 -0
  20. package/template/file-exchange/README.md +20 -15
  21. package/template/frontend/package.json +1 -1
  22. package/template/package.json +3 -3
  23. package/template/scripts/condense-all.mjs +52 -0
  24. package/template/scripts/condense-file-structure.mjs +19 -10
  25. package/template/scripts/condense-models.mjs +5 -3
  26. package/template/scripts/condense-prompts.mjs +13 -51
  27. package/template/scripts/consolidated-output.mjs +22 -10
  28. package/template/scripts/export-architecture-starter.mjs +389 -0
  29. package/template/scripts/lib/api-inventory.mjs +16 -61
  30. package/template/scripts/lib/repo-tree.mjs +26 -4
  31. package/template/scripts/sync-cli-template.mjs +44 -0
  32. package/template/scripts/write-pre-push-dev-log.mjs +1 -0
  33. package/template/file-exchange/exports/consolidated-models.json +0 -625
package/LICENSE ADDED
@@ -0,0 +1,50 @@
1
+ # Pukujan Modular Monolith Platform License
2
+
3
+ Copyright (c) 2026 Pukujan. All rights reserved.
4
+
5
+ This repository and the `@pukujan/create-modular-monolith` npm package (including
6
+ the `template/` directory) are proprietary. No rights are granted except as
7
+ stated below.
8
+
9
+ ## Permitted use
10
+
11
+ 1. **Scaffold** — You may install and run `@pukujan/create-modular-monolith` to
12
+ generate a project for your own application development.
13
+
14
+ 2. **Your application code** — You retain ownership of code you write in a
15
+ scaffolded project. Platform files copied from the template remain subject
16
+ to this license for as long as you keep them in your repository.
17
+
18
+ 3. **Attribution (required)** — If your repository or product includes
19
+ substantial portions of this platform (for example: architecture contracts,
20
+ file-exchange layout, dev-log tooling, or scripts copied from the template),
21
+ you must include **visible attribution** in a prominent place (typically
22
+ README), such as:
23
+
24
+ > Built with the Pukujan Modular Monolith platform
25
+ > https://github.com/Pukujan/create-modular-monolith
26
+
27
+ You must also retain copyright and license notices in `LICENSE` and `NOTICE`
28
+ files that you do not replace with your own.
29
+
30
+ ## Restrictions
31
+
32
+ - Do not remove or obscure copyright or attribution notices from platform files
33
+ you retain.
34
+ - Do not republish this package, its `template/`, or a substantially similar
35
+ scaffold under another name without written permission from the copyright holder.
36
+ - Do not use the Pukujan name or branding to imply endorsement of your product.
37
+
38
+ ## No warranty
39
+
40
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
41
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
42
+ FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. IN NO EVENT SHALL THE
43
+ COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY ARISING
44
+ FROM USE OF THE SOFTWARE.
45
+
46
+ ## Licensing inquiries
47
+
48
+ For permissions beyond this license (commercial redistribution of the scaffold,
49
+ white-label templates, etc.), open an issue at
50
+ https://github.com/Pukujan/create-modular-monolith/issues
package/README.md CHANGED
@@ -1,114 +1,197 @@
1
1
  # @pukujan/create-modular-monolith
2
2
 
3
- **npm create** scaffold for a modular monolith built for **human + agent** engineering at scale.
3
+ **Scaffold a modular monolith built for human + Cursor agent engineering** Express + React, versioned contracts, file-exchange handoffs, paired dev logs, and CI gates out of the box.
4
4
 
5
5
  ```bash
6
- npm create @pukujan/modular-monolith@2.2.0 my-platform
6
+ npm create @pukujan/modular-monolith@2.2.1 my-platform
7
7
  cd my-platform
8
8
  npm install --prefix backend && npm install --prefix frontend
9
+ npm run test:ci
9
10
  ```
10
11
 
11
- Published package: `@pukujan/create-modular-monolith`
12
- Product reference implementation: [litigation-prompt-engineering](https://github.com/Pukujan/litigation-prompt-engineering)
12
+ [![Node](https://img.shields.io/badge/node-%3E%3D20-brightgreen)](package.json)
13
+ [![License](https://img.shields.io/badge/License-Proprietary%20%2B%20attribution-lightgrey)](LICENSE)
14
+
15
+ | | |
16
+ |---|---|
17
+ | **This package** | `npm create` boilerplate — architecture only (`_reference`, `model-condenser`) |
18
+ | **Full product example** | [litigation-prompt-engineering](https://github.com/Pukujan/litigation-prompt-engineering) — domain modules, prompts, evals |
13
19
 
14
20
  ---
15
21
 
16
- ## What you get
22
+ ## What this is
17
23
 
18
- This is **not** a minimal Express/React demo. It is an **architecture platform**:
24
+ `@pukujan/create-modular-monolith` copies the `template/` folder into your chosen directory. You get a **platform**, not a hello-world demo:
19
25
 
20
- | Layer | Purpose |
21
- |-------|---------|
22
- | **Module contract** | Backend `register(app)` + frontend route modules add features without rewriting core |
23
- | **Architecture contracts** | Versioned manifest (`docs/architecture/contracts/`) paths, APIs, exports, dev logs |
24
- | **File exchange** | Dated `imports/` / `exports/` for human↔agent file handoff |
25
- | **Pre-push dev logs** | Paired **human markdown** (summary + detail, mermaid, TOC) + **agent JSON** audit |
26
- | **Consolidated snapshots** | `condense:all` → models, prompts, file tree in `file-exchange/exports/` |
27
- | **Lint automation** | Boundaries, layers, contracts, repo artifacts, API registry |
28
- | **Cursor-native** | `AGENTS.md`, `.cursor/rules`, `.cursor/commands` for repeatable agent workflows |
26
+ - **Modular monolith** feature modules with enforced boundaries and internal MVC layers
27
+ - **Architecture contracts** — versioned manifest so paths and tooling stay in sync
28
+ - **File exchange** dated `imports/` / `exports/` for human↔agent file handoff
29
+ - **Pre-push dev logs** human markdown (summary + detail) + agent JSON audit before every push
30
+ - **CI gates** `npm run test:ci` matches GitHub Actions (lint, tests, module evals)
31
+ - **Cursor-native** `AGENTS.md`, `.cursor/rules`, `.cursor/commands`
29
32
 
30
- Domain business logic is **yours to add** via `npm run new:module`. The repo ships with `_reference` and `model-condenser` only.
33
+ Domain logic is **yours**: `npm run new:module -- billing --label "Billing"`.
31
34
 
32
35
  ---
33
36
 
34
- ## Why this architecture exists
37
+ ## Why use this
38
+
39
+ | Problem | How the template helps |
40
+ |---------|-------------------------|
41
+ | Agents read random folders | Mandatory `file-exchange/imports/{stamp}/` + [AGENTS.md](template/AGENTS.md) |
42
+ | Undocumented APIs | [docs/API.md](template/docs/API.md) registry + `lint:api-docs` |
43
+ | Lost context between sessions | Paired dev logs under `work-log/dev-logs/` |
44
+ | Repo layout drift | `lint:contracts` + [CONTRACTS_OVERVIEW](template/docs/architecture/CONTRACTS_OVERVIEW.md) |
45
+ | No merge-quality bar | `.github/workflows/ci.yml` + `npm run test:ci` |
35
46
 
36
- Modern products are built as much by **agents** as by humans. This template encodes:
47
+ ---
37
48
 
38
- 1. **Discoverability** Agents read JSON audits and contract manifests instead of guessing folder layout.
39
- 2. **Repeatability** — Every push can produce the same artifact set (dev log pair, tree, API inventory, test results).
40
- 3. **Scale** — New modules plug in under `backend/src/modules/` and `frontend/src/modules/` with enforced boundaries.
41
- 4. **Governance** — `lint:contracts` fails CI if a contract path is missing; `lint:api-docs` keeps routes documented.
49
+ ## How it works
50
+
51
+ ```mermaid
52
+ flowchart LR
53
+ subgraph scaffold [npm create]
54
+ cli[index.js]
55
+ tpl[template/]
56
+ app[your-platform/]
57
+ end
58
+
59
+ subgraph platform [Platform layer]
60
+ fx[file-exchange/]
61
+ contracts[docs/architecture/contracts/]
62
+ devlog[work-log/dev-logs/]
63
+ ci[test:ci]
64
+ end
65
+
66
+ subgraph domain [You add]
67
+ mod[npm run new:module]
68
+ prompts[module prompts/]
69
+ evals[optional evals/golden/]
70
+ end
71
+
72
+ cli --> tpl --> app
73
+ app --> platform
74
+ app --> domain
75
+ ```
42
76
 
43
- Read **`template/docs/architecture/PLATFORM_ARCHITECTURE.md`** (in this repo) for the full narrative. After scaffold, start at **`docs/architecture/CONTRACTS_OVERVIEW.md`** in your project.
77
+ After scaffold, read [template/docs/architecture/PLATFORM_ARCHITECTURE.md](template/docs/architecture/PLATFORM_ARCHITECTURE.md) and [template/docs/architecture/EVAL_AND_CI.md](template/docs/architecture/EVAL_AND_CI.md).
44
78
 
45
79
  ---
46
80
 
47
- ## Repository layout (this GitHub repo)
81
+ ## Quick start (after scaffold)
48
82
 
49
- ```text
50
- create-modular-monolith/
51
- README.md ← you are here (npm package docs)
52
- package.json ← @pukujan/create-modular-monolith
53
- index.js ← copies template/ into target directory
54
- template/ ← full starter app (architecture only)
83
+ ```bash
84
+ cd my-platform
85
+
86
+ cp backend/.env.example backend/.env
87
+ cp frontend/.env.example frontend/.env
88
+
89
+ cd backend && npm run dev
90
+ # new terminal:
91
+ cd frontend && npm run dev
92
+ ```
93
+
94
+ **Quality gate (run before push):**
95
+
96
+ ```bash
97
+ npm run test:ci
98
+ npm run dev-log:pre-push -- --slug initial-setup
55
99
  ```
56
100
 
57
101
  ---
58
102
 
59
- ## Architecture scripts (in every scaffolded project)
103
+ ## What ships in `template/`
104
+
105
+ | Area | Contents |
106
+ |------|----------|
107
+ | Backend | `backend/src/core/`, `modules/_reference`, `modules/model-condenser` |
108
+ | Frontend | `frontend/src/core/`, `modules/_reference` |
109
+ | Docs | `docs/architecture/` — guardrails, contracts, PLATFORM_ARCHITECTURE, EVAL_AND_CI |
110
+ | Exchange | `file-exchange/imports/`, `file-exchange/exports/` |
111
+ | Work log | `work-log/dev-logs/human/`, `agent/`, JSON schema |
112
+ | CI | `.github/workflows/ci.yml` |
113
+ | Scripts | `lint:contracts`, `condense:all`, `import:file-exchange`, `new:module`, … |
60
114
 
61
- These live under `template/scripts/` and are copied into new projects:
115
+ **Not included:** domain batches, litigation prompts, or committed `evals/golden/` (add per project when you curate fixtures).
62
116
 
63
- | Script | npm command | Role |
64
- |--------|-------------|------|
65
- | `lint-contracts.mjs` | `npm run lint:contracts` | Verify `manifest.json` paths exist |
66
- | `lint-repo-artifacts.mjs` | `npm run lint:repo-artifacts` | Verify exchange, dev-log, contract docs |
67
- | `check-api-docs.mjs` | `npm run lint:api-docs` | Routes ⊆ `docs/API.md` registry |
68
- | `write-pre-push-dev-log.mjs` | `npm run dev-log:pre-push` | Human + agent pre-push audit pair |
69
- | `verify-dev-log.mjs` | `npm run dev-log:verify` | Validate latest dev-log structure |
70
- | `condense-file-structure.mjs` | `npm run condense-file-structure` | Repo tree → `exports/consolidated-file-structure.json` |
71
- | `condense-prompts.mjs` | `npm run condense-prompts` | All prompts → consolidated JSON |
72
- | `import-to-file-exchange.mjs` | `npm run import:file-exchange` | Inbound bundles → `imports/{stamp}/` |
73
- | `new-module.mjs` | `npm run new:module` | Scaffold backend + frontend module |
117
+ ---
74
118
 
75
- Scaffolded projects also ship **`npm run test:ci`**, **`.github/workflows/ci.yml`**, **`traceId.js`**, and **[EVAL_AND_CI.md](template/docs/architecture/EVAL_AND_CI.md)** (gates + per-case golden guidance).
119
+ ## Key commands (in every scaffolded app)
76
120
 
77
- Supporting libraries: `scripts/lib/repo-tree.mjs`, `api-inventory.mjs`, `dev-log-human-format.mjs`, `git-snapshot.mjs`, `run-tests.mjs`.
121
+ | Command | Purpose |
122
+ |---------|---------|
123
+ | `npm run test:ci` | All CI gates locally |
124
+ | `npm run new:module -- <name>` | Scaffold backend + frontend module |
125
+ | `npm run import:file-exchange -- <path>` | Inbound files → `imports/{stamp}/` |
126
+ | `npm run condense:all` | Snapshots → `file-exchange/exports/consolidated-*.json` |
127
+ | `npm run dev-log:pre-push -- --slug <topic>` | Human + agent dev log pair |
128
+ | `npm run lint:architecture` | Boundaries + layers + API docs |
78
129
 
79
130
  ---
80
131
 
81
- ## Contract catalog (v001)
132
+ ## Contract catalog (platform v001)
82
133
 
83
134
  Registered in `template/docs/architecture/contracts/manifest.json`:
84
135
 
85
- - **fileExchange** — dated imports/exports, human-readable stamps
86
- - **consolidatedExports** — snapshot JSON in `file-exchange/exports/`
87
- - **prePushDevLog** — paired human MD + agent JSON before push
88
- - **apiDocumentationRegistry** — `docs/API.md` as HTTP source of truth
89
- - **repoArtifactLayout** — canonical data roots
136
+ - **fileExchange** — dated imports/exports
137
+ - **consolidatedExports** — `condense:all` output paths
138
+ - **prePushDevLog** — paired human MD + agent JSON
139
+ - **apiDocumentationRegistry** — `docs/API.md`
140
+ - **repoArtifactLayout** — canonical roots
90
141
 
91
- Module-level contracts (storage layout, pipeline versions) are added when you build domain modules.
142
+ Add domain contracts in your modules when you introduce pipelines or storage layouts.
92
143
 
93
144
  ---
94
145
 
95
- ## Publishing this package
146
+ ## Golden evals (per project, not universal)
96
147
 
97
- ```bash
98
- cd packages/create-modular-monolith # or repo root if package.json is here
99
- npm version patch|minor|major
100
- npm publish --access public
148
+ **Eval / regression** compares output to expected JSON for a **known fixture case** — not “truth for every future customer/case.”
149
+
150
+ See [EVAL_AND_CI.md](template/docs/architecture/EVAL_AND_CI.md). Optional: create `evals/golden/{caseId}/` when you are ready to lock regression for one scenario.
151
+
152
+ ---
153
+
154
+ ## This repository layout
155
+
156
+ ```text
157
+ create-modular-monolith/ ← npm package (this repo)
158
+ ├── README.md ← you are here
159
+ ├── package.json ← @pukujan/create-modular-monolith@2.2.1
160
+ ├── index.js ← copies template/ on npm create
161
+ ├── CHANGELOG.md
162
+ └── template/ ← full starter copied to user's folder
163
+ ├── README.md ← first doc in a new project
164
+ ├── AGENTS.md
165
+ ├── docs/architecture/
166
+ └── ...
101
167
  ```
102
168
 
103
- Users install with:
169
+ ---
170
+
171
+ ## Publishing
172
+
173
+ Maintainers sync platform changes from product repos via `export:architecture-starter` (see [litigation-prompt-engineering](https://github.com/Pukujan/litigation-prompt-engineering)).
104
174
 
105
175
  ```bash
106
- npm create @pukujan/modular-monolith@2 <folder-name>
176
+ npm version patch # or minor / major
177
+ npm publish --access public
107
178
  ```
108
179
 
180
+ Requires npm auth (granular token with publish access).
181
+
182
+ ---
183
+
184
+ ## Related
185
+
186
+ | Repo | Role |
187
+ |------|------|
188
+ | [create-modular-monolith](https://github.com/Pukujan/create-modular-monolith) | **This package** |
189
+ | [litigation-prompt-engineering](https://github.com/Pukujan/litigation-prompt-engineering) | Reference product (domain + evals) |
190
+
109
191
  ---
110
192
 
111
- ## Version
193
+ ## License
112
194
 
113
- Package version tracks **architecture platform** releases (contracts, agent tooling, template layout).
114
- See `package.json` and git tags. Domain app code lives in separate product repos.
195
+ **Proprietary all rights reserved.** You may use the npm scaffold to build your
196
+ own apps; **attribution is required** if you keep substantial platform files from
197
+ the template. See [LICENSE](LICENSE) and [template/NOTICE](template/NOTICE).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pukujan/create-modular-monolith",
3
- "version": "2.2.0",
3
+ "version": "2.2.3",
4
4
  "description": "Scaffold a modular monolith with architecture contracts, file-exchange, agent dev logs, and lint automation for Cursor-scale engineering.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -8,6 +8,7 @@
8
8
  },
9
9
  "files": [
10
10
  "index.js",
11
+ "LICENSE",
11
12
  "template"
12
13
  ],
13
14
  "keywords": [
@@ -21,7 +22,7 @@
21
22
  "create-app"
22
23
  ],
23
24
  "author": "Pukujan",
24
- "license": "MIT",
25
+ "license": "SEE LICENSE IN LICENSE",
25
26
  "repository": {
26
27
  "type": "git",
27
28
  "url": "git+https://github.com/Pukujan/create-modular-monolith.git"
@@ -18,7 +18,7 @@ alwaysApply: true
18
18
  - Ingest golden from that stamp: `npm run ingest:golden-parsed`, `npm run ingest:golden-expected`.
19
19
  - Point `process-batch` / `curl` uploads at PDFs **inside** `file-exchange/imports/{stamp}/`, not `Downloads/` or repo root.
20
20
  - Copy deliverables to `file-exchange/exports/{stamp}/` when done.
21
- - Consolidated repo snapshots: `file-exchange/exports/consolidated-*.json` (`npm run condense:all`).
21
+ - Consolidated repo snapshots: `file-exchange/exports/{stamp}_consolidated/` (`npm run condense:all`); latest copies at `exports/consolidated-*.json`.
22
22
 
23
23
  ## Do not
24
24
 
@@ -0,0 +1,30 @@
1
+ # Architecture starter export
2
+
3
+ Generated by `npm run export:architecture-starter`.
4
+
5
+ ## What this is
6
+
7
+ A **clean modular-monolith boilerplate**: contracts, file-exchange, dev-logs, model-condenser, `_reference` module, lint scripts — **without** litigation/case-filing domain modules or runtime data.
8
+
9
+ ## What was excluded
10
+
11
+ - Domain backend/frontend modules (case-filing-ai, court-rules, …)
12
+ - `node_modules`, `dist`, `build`
13
+ - `data/`, `evals/golden`, batch PDFs, import bundles
14
+ - Legal-specific ingest/eval scripts
15
+
16
+ See `EXPORT_MANIFEST.json` for the full list.
17
+
18
+ ## Update npm CLI template
19
+
20
+ ```bash
21
+ npm run export:architecture-starter -- --to ../create-modular-monolith/packages/template
22
+ # or from this repo:
23
+ npm run export:architecture-starter -- --to packages/create-modular-monolith/template
24
+ cd packages/create-modular-monolith && npm publish --access public
25
+ ```
26
+
27
+ ## Docs
28
+
29
+ Start at [docs/architecture/CONTRACTS_OVERVIEW.md](docs/architecture/CONTRACTS_OVERVIEW.md).
30
+
@@ -0,0 +1,74 @@
1
+ {
2
+ "exportedAt": "2026-05-23T17:53:29.141Z",
3
+ "sourceRepo": "legal-prmpt-eng",
4
+ "description": "Architecture-only starter — no domain modules, no build artifacts",
5
+ "included": {
6
+ "backendModules": [
7
+ "_reference",
8
+ "model-condenser"
9
+ ],
10
+ "frontendModules": [
11
+ "_reference"
12
+ ],
13
+ "docs": [
14
+ "docs/architecture/**",
15
+ "docs/API.md (starter)",
16
+ "docs/model-condenser/API.md"
17
+ ],
18
+ "scripts": [
19
+ "new-module.mjs",
20
+ "sync-cli-template.mjs",
21
+ "export-architecture-starter.mjs",
22
+ "check-api-docs.mjs",
23
+ "lint-contracts.mjs",
24
+ "lint-repo-artifacts.mjs",
25
+ "condense-models.mjs",
26
+ "condense-prompts.mjs",
27
+ "condense-file-structure.mjs",
28
+ "condense-all.mjs",
29
+ "consolidated-output.mjs",
30
+ "write-pre-push-dev-log.mjs",
31
+ "verify-dev-log.mjs",
32
+ "import-to-file-exchange.mjs",
33
+ "resolve-import-stamp.mjs",
34
+ "export-consolidated-models.mjs",
35
+ "run-module-evals.mjs",
36
+ "scripts/lib/**",
37
+ "scripts/git-hooks/**"
38
+ ],
39
+ "other": [
40
+ "file-exchange/",
41
+ "work-log/ (structure)",
42
+ ".cursor/",
43
+ "backend/src/core",
44
+ "backend/src/shared",
45
+ "frontend/src/core",
46
+ "frontend/src/shared"
47
+ ]
48
+ },
49
+ "excluded": {
50
+ "dirs": [
51
+ "node_modules",
52
+ ".git",
53
+ "dist",
54
+ "build",
55
+ "coverage",
56
+ "packages",
57
+ "export",
58
+ "data",
59
+ "eval-bundles",
60
+ "case-exports",
61
+ "evals"
62
+ ],
63
+ "backendModules": "case-filing-ai, court-rules, case-workflow, filing-*, human-review, task-docketing",
64
+ "data": "runtime batches, golden fixtures, PDFs",
65
+ "scripts": "ingest-golden-*, rerun-batch-evals, run-module-evals"
66
+ },
67
+ "nextSteps": [
68
+ "Review export/ARCHITECTURE_EXPORT_README.md",
69
+ "npm install in backend/ and frontend/",
70
+ "npm run lint:contracts && npm run lint:architecture",
71
+ "node scripts/new-module.mjs my-feature --label \"My Feature\"",
72
+ "Copy into packages/create-modular-monolith/template or publish CLI"
73
+ ]
74
+ }
@@ -0,0 +1,11 @@
1
+ # Platform license (scaffolded from create-modular-monolith)
2
+
3
+ Copyright (c) 2026 Pukujan. All rights reserved.
4
+
5
+ This project includes platform files from @pukujan/create-modular-monolith.
6
+ See NOTICE for attribution requirements and
7
+ https://github.com/Pukujan/create-modular-monolith/blob/main/LICENSE
8
+ for the full Pukujan Modular Monolith Platform License.
9
+
10
+ Application code you add to this repository is yours. Platform files you retain
11
+ remain subject to the license above until you replace them.
@@ -0,0 +1,12 @@
1
+ Pukujan Modular Monolith Platform
2
+
3
+ Copyright (c) 2026 Pukujan. All rights reserved.
4
+
5
+ This project was scaffolded from @pukujan/create-modular-monolith
6
+ (https://github.com/Pukujan/create-modular-monolith).
7
+
8
+ Platform files remain subject to the Pukujan Modular Monolith Platform License.
9
+ See LICENSE in the create-modular-monolith repository.
10
+
11
+ Attribution: retain this NOTICE (or equivalent credit in README) if you keep
12
+ substantial platform files from the template.
@@ -1,43 +1,54 @@
1
- # Modular monolith platform (scaffolded)
1
+ # Modular Monolith Platform
2
2
 
3
- Architecture-first Express + React starter for products that scale with **human + agent** engineering.
3
+ **Your scaffolded app** — Express + React modular monolith with architecture contracts, file-exchange, agent dev logs, and CI gates.
4
4
 
5
- **Read first:** [docs/architecture/PLATFORM_ARCHITECTURE.md](docs/architecture/PLATFORM_ARCHITECTURE.md)
6
- **Contracts:** [docs/architecture/CONTRACTS_OVERVIEW.md](docs/architecture/CONTRACTS_OVERVIEW.md)
7
- **Evals & CI gates:** [docs/architecture/EVAL_AND_CI.md](docs/architecture/EVAL_AND_CI.md)
8
- **Agents:** [AGENTS.md](AGENTS.md)
5
+ | | |
6
+ |---|---|
7
+ | **Architecture** | This repo layout and contracts |
8
+ | **npm package** | [@pukujan/create-modular-monolith](https://github.com/Pukujan/create-modular-monolith) |
9
+ | **Example product** | [litigation-prompt-engineering](https://github.com/Pukujan/litigation-prompt-engineering) (domain-filled reference) |
10
+
11
+ ---
12
+
13
+ ## Start here
14
+
15
+ | Doc | Purpose |
16
+ |-----|---------|
17
+ | [docs/architecture/PLATFORM_ARCHITECTURE.md](docs/architecture/PLATFORM_ARCHITECTURE.md) | How the platform works (agents + humans) |
18
+ | [docs/architecture/CONTRACTS_OVERVIEW.md](docs/architecture/CONTRACTS_OVERVIEW.md) | Contract manifest and enforcement |
19
+ | [docs/architecture/EVAL_AND_CI.md](docs/architecture/EVAL_AND_CI.md) | CI gates, evals, golden (per-case) |
20
+ | [AGENTS.md](AGENTS.md) | **Required for Cursor / automation** |
21
+ | [docs/README.md](docs/README.md) | Full documentation index |
22
+
23
+ ---
9
24
 
10
25
  ## Quick start
11
26
 
27
+ **Requirements:** Node.js 20+
28
+
12
29
  ```bash
30
+ cp backend/.env.example backend/.env
31
+ cp frontend/.env.example frontend/.env
32
+
13
33
  cd backend && npm install && npm run dev
14
- # other terminal:
34
+ # new terminal:
15
35
  cd frontend && npm install && npm run dev
16
36
  ```
17
37
 
18
- ## Quality gates
19
-
20
- ```bash
21
- npm run test:ci # lint + unit tests + module evals (same as GitHub Actions)
22
- npm run lint:contracts
23
- npm run lint:architecture
24
- npm run test:evals
25
- ```
38
+ ---
26
39
 
27
- ## Architecture commands
40
+ ## Daily commands
28
41
 
29
42
  ```bash
30
- npm run import:file-exchange -- ./my-bundle
31
- npm run dev-log:pre-push -- --slug initial-setup
43
+ npm run dev-log:pre-push -- --slug your-topic
44
+ npm run test:ci
45
+ npm run import:file-exchange -- "/path/to/bundle"
32
46
  npm run condense:all
33
- npm run new:module -- my-feature --label "My Feature"
47
+ npm run new:module -- billing --label "Billing"
34
48
  ```
35
49
 
36
- ## What ships in this template
50
+ ---
37
51
 
38
- - `_reference` + `model-condenser` modules (no domain logic)
39
- - File exchange, work-log dev logs (human + agent), contract manifest v001
40
- - CI workflow (`.github/workflows/ci.yml`), trace ID helper
41
- - Lint and condense tooling for trees, prompts, and schemas
52
+ ## License & attribution
42
53
 
43
- Built with [@pukujan/create-modular-monolith](https://github.com/Pukujan/create-modular-monolith).
54
+ Platform files from [@pukujan/create-modular-monolith](https://github.com/Pukujan/create-modular-monolith). See [LICENSE](LICENSE) and [NOTICE](NOTICE).
@@ -10,7 +10,7 @@
10
10
  "lint:layers": "node scripts/check-module-layers.mjs",
11
11
  "lint:api-docs": "node ../scripts/check-api-docs.mjs",
12
12
  "lint:architecture": "npm run lint:boundaries && npm run lint:layers && npm run lint:api-docs",
13
- "test": "node --test 'src/modules/**/tests/**/*.test.js'",
13
+ "test": "node --test",
14
14
  "condense-models": "node ../scripts/condense-models.mjs",
15
15
  "condense-prompts": "node ../scripts/condense-prompts.mjs",
16
16
  "condense-file-structure": "node ../scripts/condense-file-structure.mjs",