@pukujan/create-modular-monolith 2.2.0 → 2.2.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/LICENSE +50 -0
- package/README.md +145 -62
- package/package.json +3 -2
- package/template/LICENSE +11 -0
- package/template/NOTICE +13 -0
- package/template/README.md +94 -23
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
|
-
**
|
|
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.
|
|
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
|
-
|
|
12
|
-
|
|
12
|
+
[](package.json)
|
|
13
|
+
[](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
|
|
22
|
+
## What this is
|
|
17
23
|
|
|
18
|
-
|
|
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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
|
33
|
+
Domain logic is **yours**: `npm run new:module -- billing --label "Billing"`.
|
|
31
34
|
|
|
32
35
|
---
|
|
33
36
|
|
|
34
|
-
## Why this
|
|
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
|
-
|
|
47
|
+
---
|
|
37
48
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
81
|
+
## Quick start (after scaffold)
|
|
48
82
|
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
-
##
|
|
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
|
-
|
|
115
|
+
**Not included:** domain batches, litigation prompts, or committed `evals/golden/` (add per project when you curate fixtures).
|
|
62
116
|
|
|
63
|
-
|
|
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
|
-
|
|
119
|
+
## Key commands (in every scaffolded app)
|
|
76
120
|
|
|
77
|
-
|
|
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
|
|
86
|
-
- **consolidatedExports** —
|
|
87
|
-
- **prePushDevLog** — paired human MD + agent JSON
|
|
88
|
-
- **apiDocumentationRegistry** — `docs/API.md`
|
|
89
|
-
- **repoArtifactLayout** — canonical
|
|
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
|
-
|
|
142
|
+
Add domain contracts in your modules when you introduce pipelines or storage layouts.
|
|
92
143
|
|
|
93
144
|
---
|
|
94
145
|
|
|
95
|
-
##
|
|
146
|
+
## Golden evals (per project, not universal)
|
|
96
147
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
##
|
|
193
|
+
## License
|
|
112
194
|
|
|
113
|
-
|
|
114
|
-
|
|
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.
|
|
3
|
+
"version": "2.2.1",
|
|
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": "
|
|
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"
|
package/template/LICENSE
ADDED
|
@@ -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.
|
package/template/NOTICE
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
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 (architecture contracts, file-exchange layout, dev-log tooling,
|
|
9
|
+
and related scripts) remain subject to the Pukujan Modular Monolith Platform
|
|
10
|
+
License. See LICENSE in the create-modular-monolith repository.
|
|
11
|
+
|
|
12
|
+
Attribution: retain this NOTICE (or equivalent credit in README) if you keep
|
|
13
|
+
substantial platform files from the template.
|
package/template/README.md
CHANGED
|
@@ -1,43 +1,114 @@
|
|
|
1
|
-
# Modular
|
|
1
|
+
# Modular Monolith Platform
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Your scaffolded app** — Express + React modular monolith with architecture contracts, file-exchange, agent dev logs, and CI gates.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
**
|
|
8
|
-
**
|
|
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
|
-
#
|
|
34
|
+
# new terminal:
|
|
15
35
|
cd frontend && npm install && npm run dev
|
|
16
36
|
```
|
|
17
37
|
|
|
18
|
-
|
|
38
|
+
- API: `http://localhost:3001` — [docs/API.md](docs/API.md)
|
|
39
|
+
- UI: Vite dev server — see `frontend/package.json`
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Daily commands
|
|
19
44
|
|
|
20
45
|
```bash
|
|
21
|
-
|
|
22
|
-
npm run
|
|
23
|
-
npm run
|
|
24
|
-
|
|
46
|
+
# Before every git push
|
|
47
|
+
npm run dev-log:pre-push -- --slug your-topic
|
|
48
|
+
npm run test:ci
|
|
49
|
+
|
|
50
|
+
# Inbound files for agents (never process from Downloads/ directly)
|
|
51
|
+
npm run import:file-exchange -- "/path/to/bundle"
|
|
52
|
+
|
|
53
|
+
# Refresh agent-readable snapshots
|
|
54
|
+
npm run condense:all
|
|
55
|
+
|
|
56
|
+
# New feature
|
|
57
|
+
npm run new:module -- billing --label "Billing"
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Repository map
|
|
63
|
+
|
|
64
|
+
```text
|
|
65
|
+
my-modular-monolith/
|
|
66
|
+
├── backend/src/modules/ # add features here (_reference = layout example)
|
|
67
|
+
├── frontend/src/modules/
|
|
68
|
+
├── docs/architecture/ # contracts, guardrails
|
|
69
|
+
├── file-exchange/ # imports/{stamp}/ exports/consolidated-*.json
|
|
70
|
+
├── work-log/ # handoffs + dev-logs (human + agent)
|
|
71
|
+
├── scripts/ # lint, condense, dev-log, new-module
|
|
72
|
+
└── .github/workflows/ci.yml
|
|
25
73
|
```
|
|
26
74
|
|
|
27
|
-
|
|
75
|
+
Canonical paths: [docs/architecture/REPO_ARTIFACT_LAYOUT.md](docs/architecture/REPO_ARTIFACT_LAYOUT.md)
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## What is included
|
|
80
|
+
|
|
81
|
+
- **Modules:** `_reference` (example layout), `model-condenser` (schema inventory API)
|
|
82
|
+
- **Platform contracts** v001 — file exchange, dev logs, consolidated exports, API registry
|
|
83
|
+
- **Lint:** `lint:architecture`, `lint:contracts`, `lint:repo-artifacts`
|
|
84
|
+
- **CI:** GitHub Actions runs the same checks as `npm run test:ci`
|
|
85
|
+
- **Observability:** `backend/src/shared/utils/traceId.js` for correlating workflow steps
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## What you add
|
|
90
|
+
|
|
91
|
+
- Domain modules under `backend/src/modules/<name>/` and `frontend/src/modules/<name>/`
|
|
92
|
+
- Prompts in each module’s `prompts/`
|
|
93
|
+
- Optional `evals/golden/{caseId}/` when you have curated expected JSON for regression
|
|
94
|
+
- Runtime data under `data/` (gitignored by default)
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Architecture checks
|
|
28
99
|
|
|
29
100
|
```bash
|
|
30
|
-
npm run
|
|
31
|
-
npm run
|
|
32
|
-
npm run
|
|
33
|
-
npm run new:module -- my-feature --label "My Feature"
|
|
101
|
+
npm run test:ci # recommended before push
|
|
102
|
+
npm run lint:architecture
|
|
103
|
+
npm run test:evals # module example eval runners (offline)
|
|
34
104
|
```
|
|
35
105
|
|
|
36
|
-
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## License & attribution
|
|
37
109
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
- Lint and condense tooling for trees, prompts, and schemas
|
|
110
|
+
This scaffold includes **platform files** licensed by Pukujan (see [LICENSE](LICENSE)
|
|
111
|
+
and [NOTICE](NOTICE)). **Keep attribution** in README or NOTICE if you retain
|
|
112
|
+
those files. Application code you write is yours.
|
|
42
113
|
|
|
43
|
-
|
|
114
|
+
Full terms: [create-modular-monolith/LICENSE](https://github.com/Pukujan/create-modular-monolith/blob/main/LICENSE)
|