@chidchanun/bcp 0.1.29 → 0.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/docs/README.md CHANGED
@@ -1,72 +1,80 @@
1
1
  # BCP Framework Documentation Source
2
2
 
3
- The `docs/` directory is the documentation source of truth for BCP Framework and is intentionally organized for **`bcp-docs-web`**.
3
+ The `docs/` directory is the documentation source of truth for BCP Framework and is organized for **`bcp-docs-web`**.
4
4
 
5
- > **Documentation target:** BCP Framework `0.1.29`
5
+ > **Documentation target:** BCP Framework `0.2.0`
6
6
  >
7
- > **Release state:** unreleased development target. Do not label `0.1.29` as published until RC validation, tagging and npm publication complete.
7
+ > **Release state:** unreleased development target. Do not label `0.2.0` as published until RC validation, tagging and npm publication complete.
8
8
 
9
- ## Documentation flow
9
+ ## Documentation architecture
10
+
11
+ BCP `0.2.0` uses two machine-readable manifests:
12
+
13
+ ```text
14
+ docs/docs-web-manifest.json
15
+ -> website navigation, routes, Markdown sources and release pages
16
+
17
+ docs/platform-manifest.json
18
+ -> framework version, runtime target, public entrypoints and capability metadata
19
+ ```
20
+
21
+ Markdown files under `docs/` remain the authored content source.
22
+
23
+ Recommended flow:
10
24
 
11
25
  ```text
12
- BCP Framework source/tests
26
+ framework source/tests
13
27
 
14
28
  docs/
29
+ ├─ Markdown content
30
+ ├─ docs-web-manifest.json
31
+ └─ platform-manifest.json
15
32
 
16
- Markdown content + docs-web manifest
17
-
18
- bcp-docs-web
33
+ bcp-docs-web
19
34
  ```
20
35
 
21
- Framework source and tests are authoritative for behavior. Markdown under `docs/` is the authored documentation layer. `bcp-docs-web` should render, organize and search these sources rather than becoming a competing source of truth.
36
+ Framework source and tests remain authoritative for runtime behavior.
22
37
 
23
- ## Docs-web navigation contract — 0.1.29
38
+ ## 0.2.0 Framework Platform baseline
24
39
 
25
- `docs/docs-web-manifest.json` is the explicit navigation and route contract for the docs website.
40
+ `0.2.0` establishes an explicit compatibility/platform contract rather than introducing a new runtime architecture.
26
41
 
27
- It defines:
42
+ New platform documents:
28
43
 
29
- ```text
30
- schema version
31
- framework/version target
32
- release state
33
- section IDs/titles
34
- website routes
35
- Markdown source files
36
- page titles
37
- release routes
38
- ```
44
+ | Source | Purpose |
45
+ | --- | --- |
46
+ | `platform-manifest.json` | Machine-readable platform/version/public-entrypoint metadata |
47
+ | `platform-contract.md` | Human-readable public platform contract |
48
+ | `migration-0.2.md` | Upgrade guide from the `0.1.x` baseline |
49
+ | `releases/0.2.0.md` | Release notes for the milestone |
39
50
 
40
- Recommended docs-web workflow:
51
+ Compatibility intent from `0.1.29`:
41
52
 
42
53
  ```text
43
- read docs/docs-web-manifest.json
44
-
45
- generate sidebar + route map
46
-
47
- load referenced Markdown file
48
-
49
- render content/search/prev-next
54
+ intentional public-entrypoint removals: none
55
+ standalone runtime model change: none
56
+ supported production build target: standalone-node
50
57
  ```
51
58
 
52
- Do not duplicate this mapping in a second hard-coded sidebar unless the website needs a temporary bootstrap fallback.
53
-
54
- Markdown remains the content source; the manifest contains navigation metadata only.
59
+ BCP remains pre-1.0, so application upgrades should still be validated before production deployment.
55
60
 
56
61
  ## Update rule
57
62
 
58
- When framework behavior changes:
63
+ When framework behavior or public surface changes:
59
64
 
60
65
  1. Update framework source.
61
66
  2. Add/update regression tests.
62
- 3. Update the matching Markdown file under `docs/`.
63
- 4. Update `docs/docs-web-manifest.json` when routes/navigation change.
64
- 5. Update `docs/releases/<version>.md`.
65
- 6. Change release state to published only after npm publication succeeds.
67
+ 3. Update the matching Markdown guide.
68
+ 4. Update `platform-manifest.json` when public entrypoints/runtime/capability metadata changes.
69
+ 5. Update `docs-web-manifest.json` when website navigation/routes change.
70
+ 6. Update `docs/releases/<version>.md`.
71
+ 7. Change release state to published only after npm publication succeeds.
72
+
73
+ ## Current docs-web navigation
66
74
 
67
- ## Recommended `bcp-docs-web` navigation
75
+ `docs/docs-web-manifest.json` is the authoritative ordered navigation contract.
68
76
 
69
- The current manifest groups documentation into:
77
+ Current sections:
70
78
 
71
79
  ```text
72
80
  Getting Started
@@ -76,95 +84,130 @@ Database
76
84
  Runtime & Infrastructure
77
85
  Storage & Uploads
78
86
  Developer Experience
87
+ Platform & Compatibility
79
88
  Releases
80
89
  ```
81
90
 
82
91
  ### Getting Started
83
92
 
84
- | Website route | Markdown source | Purpose |
85
- | --- | --- | --- |
86
- | `/docs/getting-started` | `getting-started.md` | Create and run a BCP application |
87
- | `/docs/configuration` | `configuration.md` | Framework configuration/environment |
88
- | `/docs/application-modules` | `application-modules.md` | Client/server boundaries |
89
- | `/docs/project-metadata` | `project-metadata.md` | `bcp.project.json` schema and security boundary |
90
- | `/docs/deployment` | `deployment.md` | Standalone production deployment |
91
- | `/docs/updating` | `updating.md` | Framework upgrades |
93
+ | Website route | Markdown source |
94
+ | --- | --- |
95
+ | `/docs/getting-started` | `getting-started.md` |
96
+ | `/docs/configuration` | `configuration.md` |
97
+ | `/docs/application-modules` | `application-modules.md` |
98
+ | `/docs/project-metadata` | `project-metadata.md` |
99
+ | `/docs/deployment` | `deployment.md` |
100
+ | `/docs/updating` | `updating.md` |
92
101
 
93
102
  ### Routing & Data
94
103
 
95
- | Website route | Markdown source | Purpose |
96
- | --- | --- | --- |
97
- | `/docs/routing` | `routing.md` | File-based page/API routing |
98
- | `/docs/server-data-loaders` | `server-data-loaders.md` | Server-side page data |
99
- | `/docs/route-guards` | `route-guards.md` | Scoped route authorization |
100
- | `/docs/form-actions` | `form-actions.md` | Server mutations/forms |
101
- | `/docs/server-request-apis` | `server-request-apis.md` | Request/cookie/response APIs |
102
- | `/docs/validation` | `validation.md` | Typed validation |
103
- | `/docs/error-handling` | `error-handling.md` | Structured HTTP errors |
104
+ | Website route | Markdown source |
105
+ | --- | --- |
106
+ | `/docs/routing` | `routing.md` |
107
+ | `/docs/server-data-loaders` | `server-data-loaders.md` |
108
+ | `/docs/route-guards` | `route-guards.md` |
109
+ | `/docs/form-actions` | `form-actions.md` |
110
+ | `/docs/server-request-apis` | `server-request-apis.md` |
111
+ | `/docs/validation` | `validation.md` |
112
+ | `/docs/error-handling` | `error-handling.md` |
104
113
 
105
114
  ### Authentication
106
115
 
107
- | Website route | Markdown source | Purpose |
108
- | --- | --- | --- |
109
- | `/docs/authentication` | `authentication.md` | Authentication Core |
110
- | `/docs/auth-route-guards` | `auth-route-guards.md` | Auth-aware route guards |
111
- | `/docs/session-auth` | `session-auth.md` | JWT cookie sessions |
116
+ | Website route | Markdown source |
117
+ | --- | --- |
118
+ | `/docs/authentication` | `authentication.md` |
119
+ | `/docs/auth-route-guards` | `auth-route-guards.md` |
120
+ | `/docs/session-auth` | `session-auth.md` |
112
121
 
113
122
  ### Database
114
123
 
115
- | Website route | Markdown source | Purpose |
116
- | --- | --- | --- |
117
- | `/docs/database` | `database.md` | MySQL database primitives |
118
- | `/docs/database-migrations` | `database-migrations.md` | Migration CLI/files |
124
+ | Website route | Markdown source |
125
+ | --- | --- |
126
+ | `/docs/database` | `database.md` |
127
+ | `/docs/database-migrations` | `database-migrations.md` |
119
128
 
120
129
  ### Runtime & Infrastructure
121
130
 
122
- | Website route | Markdown source | Purpose |
123
- | --- | --- | --- |
124
- | `/docs/middleware` | `middleware.md` | Middleware System v2 |
125
- | `/docs/hydration` | `hydration.md` | SSR/client hydration parity |
126
- | `/docs/development-logging` | `development-logging.md` | Logging/observability |
127
- | `/docs/caching` | `caching.md` | Cache/revalidation |
128
- | `/docs/security` | `security.md` | Security/body limits |
129
- | `/docs/production-hardening` | `production-hardening.md` | Graceful shutdown, trusted proxy and timeouts |
131
+ | Website route | Markdown source |
132
+ | --- | --- |
133
+ | `/docs/middleware` | `middleware.md` |
134
+ | `/docs/hydration` | `hydration.md` |
135
+ | `/docs/development-logging` | `development-logging.md` |
136
+ | `/docs/caching` | `caching.md` |
137
+ | `/docs/security` | `security.md` |
138
+ | `/docs/production-hardening` | `production-hardening.md` |
130
139
 
131
140
  ### Storage & Uploads
132
141
 
133
- | Website route | Markdown source | Purpose |
134
- | --- | --- | --- |
135
- | `/docs/file-upload` | `file-upload.md` | Buffered + streaming multipart uploads |
136
- | `/docs/storage` | `storage.md` | StorageAdapter, streaming and file delivery |
137
- | `/docs/storage-ecosystem` | `storage-ecosystem.md` | Listing, copy/move, metadata, bulk delete, signed URLs |
138
- | `/docs/s3-storage` | `s3-storage.md` | S3/R2/MinIO adapter and direct object access |
142
+ | Website route | Markdown source |
143
+ | --- | --- |
144
+ | `/docs/file-upload` | `file-upload.md` |
145
+ | `/docs/storage` | `storage.md` |
146
+ | `/docs/storage-ecosystem` | `storage-ecosystem.md` |
147
+ | `/docs/s3-storage` | `s3-storage.md` |
139
148
 
140
149
  ### Developer Experience
141
150
 
142
- | Website route | Markdown source | Purpose |
143
- | --- | --- | --- |
144
- | `/docs/generators` | `generators.md` | Page/API/middleware/migration generators |
145
- | `/docs/developer-tools` | `developer-tools.md` | Doctor/Inspect v2 and diagnostics |
151
+ | Website route | Markdown source |
152
+ | --- | --- |
153
+ | `/docs/generators` | `generators.md` |
154
+ | `/docs/developer-tools` | `developer-tools.md` |
146
155
 
147
- ## API Reference ownership
156
+ ### Platform & Compatibility
157
+
158
+ | Website route | Markdown source |
159
+ | --- | --- |
160
+ | `/docs/platform-contract` | `platform-contract.md` |
161
+ | `/docs/migration-0.2` | `migration-0.2.md` |
148
162
 
149
- Recommended entrypoint groups:
163
+ ## Platform manifest
164
+
165
+ `docs/platform-manifest.json` is intended for tooling and `bcp-docs-web` metadata displays.
166
+
167
+ It records:
168
+
169
+ ```text
170
+ schema version
171
+ framework/version/release state
172
+ Node/React/runtime baseline
173
+ production build target
174
+ public package entrypoints
175
+ CLI command families
176
+ capability groups
177
+ storage-provider families
178
+ previous-baseline compatibility intent
179
+ documentation contract files
180
+ ```
181
+
182
+ Do not treat the manifest as executable runtime configuration. It describes the supported platform surface; framework source/tests remain authoritative.
183
+
184
+ ## Public entrypoint baseline
185
+
186
+ The `0.2.0` platform recognizes:
150
187
 
151
188
  ```text
152
189
  bcp
153
- bcp/server
154
- bcp/auth
155
- bcp/database
156
- bcp/validation
157
- bcp/error
190
+ bcp/island
158
191
  bcp/cache
159
192
  bcp/config
193
+ bcp/validation
194
+ bcp/error
195
+ bcp/database
196
+ bcp/auth
197
+ bcp/server
198
+ bcp/server-only
160
199
  bcp/middleware
161
200
  ```
162
201
 
163
- | Entrypoint | Primary guide |
202
+ `bcp-docs-web` can use this list to build an API-reference index without hard-coding a second entrypoint list.
203
+
204
+ ## API guide ownership
205
+
206
+ | Entrypoint | Primary guides |
164
207
  | --- | --- |
165
208
  | `bcp` | `routing.md`, `server-data-loaders.md`, `form-actions.md` |
166
- | `bcp/server` | `server-request-apis.md`, `file-upload.md`, `storage.md`, `storage-ecosystem.md`, `s3-storage.md`, `development-logging.md`, `production-hardening.md` |
167
- | `bcp/auth` | `authentication.md`, `auth-route-guards.md` |
209
+ | `bcp/server` | `server-request-apis.md`, `file-upload.md`, `storage.md`, `storage-ecosystem.md`, `production-hardening.md` |
210
+ | `bcp/auth` | `authentication.md`, `auth-route-guards.md`, `session-auth.md` |
168
211
  | `bcp/database` | `database.md`, `database-migrations.md` |
169
212
  | `bcp/validation` | `validation.md` |
170
213
  | `bcp/error` | `error-handling.md` |
@@ -178,164 +221,92 @@ bcp/middleware
178
221
 
179
222
  - React SSR/hydration
180
223
  - file-based page/API routing
181
- - static/dynamic/catch-all/optional-catch-all routes
182
- - route groups/layouts/metadata
224
+ - dynamic/catch-all/optional catch-all routes
225
+ - layouts/metadata/route groups
183
226
  - SPA navigation
184
227
  - loaders/guards/form actions
185
228
  - client islands / partial hydration
186
- - Fast Refresh
187
229
 
188
- ### Server and production runtime
230
+ ### Server/runtime
189
231
 
190
- - request-scoped APIs/cookies/redirects/request IDs
191
- - JWT sessions/authentication
232
+ - request-scoped server APIs
233
+ - JWT cookie sessions
192
234
  - Middleware System v2
193
- - validation/structured errors
194
- - structured logging
195
- - response caching/security gateway
196
- - production hardening gateway
197
- - configurable request/header/keep-alive/shutdown timeouts
198
- - `SIGTERM` / `SIGINT` graceful shutdown
199
- - application shutdown hooks
200
- - trusted-proxy forwarding-header controls
201
-
202
- ### Storage & Uploads
203
-
204
- - buffered multipart upload APIs
205
- - production streaming multipart upload (`storeMultipartFile()`)
206
- - backward-compatible `StorageAdapter` contract
207
- - local filesystem storage
208
- - Amazon S3 / Cloudflare R2 / MinIO-compatible storage
209
- - streaming reads/writes and byte ranges
210
- - ETag/Last-Modified file delivery
211
- - upload/storage limits and abort cleanup
212
- - object listing with cursors
213
- - copy and move
214
- - portable user metadata
215
- - bulk deletion
216
- - S3 presigned read/write URLs
217
- - create-app Local Server / Amazon S3 / Cloudflare R2 presets
235
+ - validation and structured HTTP errors
236
+ - structured logging/request IDs
237
+ - response caching/revalidation
238
+ - production hardening/timeouts
239
+ - graceful shutdown and shutdown hooks
240
+ - trusted-proxy controls
218
241
 
219
242
  ### Database
220
243
 
221
- - `bcp/database`
222
- - lazy MySQL pool
223
- - prepared execution/query helpers
244
+ - MySQL framework primitives
245
+ - prepared query/execute helpers
224
246
  - transactions
225
247
  - migrations/status/rollback
226
248
 
227
- ### Developer Experience — 0.1.29
249
+ ### Storage & uploads
250
+
251
+ - buffered multipart APIs
252
+ - streaming multipart upload
253
+ - local filesystem storage
254
+ - Amazon S3 / Cloudflare R2 / S3-compatible storage
255
+ - streaming reads/writes and byte ranges
256
+ - list/copy/move
257
+ - portable metadata
258
+ - bulk delete
259
+ - S3 signed read/write URLs
260
+
261
+ ### Developer Experience
228
262
 
229
263
  - `create-bcp-app`
264
+ - Local / Amazon S3 / Cloudflare R2 storage presets
230
265
  - non-secret `bcp.project.json`
231
- - `bcp generate page`
232
- - `bcp generate api`
233
- - `bcp generate middleware`
234
- - `bcp generate migration`
235
- - `bcp update`
266
+ - page/API/middleware/migration generators
236
267
  - Doctor/Inspect v2
237
- - lockfile/package-manager diagnostics
238
- - duplicate framework declaration checks
239
- - storage/provider diagnostics
240
- - production-build/Docker/hardening diagnostics
268
+ - framework updater
241
269
  - Windows-safe `bcp-framework` alias
242
- - `docs/docs-web-manifest.json`
243
-
244
- ## BCP 0.1.29 documentation focus
245
-
246
- ### Project generators
247
270
 
248
- ```bash
249
- bcp generate page dashboard/users
250
- bcp generate api users
251
- bcp generate middleware
252
- bcp generate migration create_users
253
- ```
254
-
255
- Page/API/middleware generation requires `--force` before replacing existing target files.
256
-
257
- See `generators.md`.
258
-
259
- ### Doctor / Inspect v2
260
-
261
- Doctor adds deployment/project-health checks without removing previous checks. Inspect keeps its previous JSON fields and adds a `project` object containing lockfile, package manager, project metadata/presets, build presence, Dockerfile, framework declarations, storage provider and hardening status.
271
+ ## Build/runtime baseline
262
272
 
263
- See `developer-tools.md`.
264
-
265
- ### Project metadata
266
-
267
- New `create-bcp-app` projects receive:
273
+ Supported `0.2.0` production target:
268
274
 
269
275
  ```text
270
- bcp.project.json
271
- ```
272
-
273
- The file records scaffold choices only and must never contain credentials/secrets.
274
-
275
- See `project-metadata.md`.
276
-
277
- ### Docs-web contract
278
-
279
- `docs/docs-web-manifest.json` is intended to be consumed directly by `bcp-docs-web` for navigation and route generation.
280
-
281
- The website should still read the Markdown source referenced by each manifest page entry.
282
-
283
- ## CLI commands
284
-
285
- ```bash
286
- bcp dev
287
- bcp routes
288
- bcp build
289
- bcp start
290
- bcp generate page dashboard/users
291
- bcp generate api users
292
- bcp generate middleware
293
- bcp generate migration create_users
294
- bcp doctor
295
- bcp doctor --json
296
- bcp inspect
297
- bcp inspect --json
298
- bcp update
299
- bcp version
300
-
301
- bcp db create create_users
302
- bcp db migrate
303
- bcp db status
304
- bcp db rollback
276
+ standalone-node
305
277
  ```
306
278
 
307
- On Windows, direct project-local commands should prefer:
279
+ Build output:
308
280
 
309
- ```powershell
310
- npm exec -- bcp-framework doctor
311
- npm exec -- bcp-framework inspect
312
- npm exec -- bcp-framework generate page dashboard/users
313
- npm exec -- bcp-framework dev
314
- npm exec -- bcp-framework build
281
+ ```text
282
+ .bcp-framework/build/
283
+ ├─ client/
284
+ ├─ public/
285
+ └─ server/
286
+ └─ server.mjs
315
287
  ```
316
288
 
317
- Inside npm scripts, `bcp` is safe because npm prepends `node_modules/.bin` to `PATH`.
289
+ Native executable, desktop and mobile compilation are not part of the `0.2.0` platform contract.
318
290
 
319
291
  ## Releases
320
292
 
321
- Release notes live under:
293
+ Release notes live in:
322
294
 
323
295
  ```text
324
296
  docs/releases/
325
297
  ```
326
298
 
327
- The docs-web manifest currently maps:
299
+ Current manifest routes begin with:
328
300
 
329
301
  ```text
302
+ /releases/0.2.0
330
303
  /releases/0.1.29
331
304
  /releases/0.1.28
332
305
  /releases/0.1.27
333
306
  /releases/0.1.26
334
- /releases/0.1.25
335
- /releases/0.1.24
336
307
  ```
337
308
 
338
- Use one of these release states:
309
+ Use release states consistently:
339
310
 
340
311
  ```text
341
312
  published
@@ -343,122 +314,83 @@ release candidate
343
314
  unreleased development target
344
315
  ```
345
316
 
346
- The existence of a release note alone does not mean the npm version is published.
347
-
348
- ## Suggested docs-web implementation
349
-
350
- A simple implementation can model the manifest like:
351
-
352
- ```ts
353
- interface DocsWebManifest {
354
- schemaVersion: number;
355
- framework: string;
356
- versionTarget: string;
357
- releaseState: string;
358
- sections: Array<{
359
- id: string;
360
- title: string;
361
- pages: Array<{
362
- route: string;
363
- source: string;
364
- title: string;
365
- }>;
366
- }>;
367
- releases: Array<{
368
- route: string;
369
- source: string;
370
- version: string;
371
- state?: string;
372
- }>;
373
- }
374
- ```
375
-
376
- Recommended website behavior:
377
-
378
- 1. Load/validate `docs-web-manifest.json` at build/startup.
379
- 2. Build the sidebar in manifest order.
380
- 3. Resolve each route to its referenced Markdown source.
381
- 4. Generate previous/next links from manifest order.
382
- 5. Index rendered Markdown headings/content for search.
383
- 6. Use `versionTarget` / `releaseState` for the site banner.
384
- 7. Use release entries for the release navigation.
317
+ The presence of a release note does not mean the npm version is published.
385
318
 
386
- Do not expose `bcp.project.json` secrets because the project metadata format is intentionally non-secret; runtime `.env` files should never be ingested into public docs output.
319
+ ## Suggested bcp-docs-web implementation
387
320
 
388
- ## Suggested website features
321
+ At build/startup:
389
322
 
390
- 1. Sidebar from `docs-web-manifest.json`.
391
- 2. Markdown rendering + syntax highlighting.
392
- 3. Previous/next navigation.
393
- 4. Version/release-state banner.
394
- 5. Release pages.
395
- 6. Full-text search.
396
- 7. Copy buttons for code blocks.
397
- 8. Mobile navigation.
398
- 9. GitHub source/edit links.
323
+ ```text
324
+ load docs-web-manifest.json
325
+ load platform-manifest.json
326
+
327
+ validate schema/version relationship
328
+
329
+ build sidebar + route map + release map
330
+
331
+ load referenced Markdown
332
+
333
+ render content + prev/next + search index
334
+
335
+ show version/release/platform metadata
336
+ ```
399
337
 
400
- Later:
338
+ Recommended website behavior:
401
339
 
402
- - generated symbol reference,
403
- - versioned snapshots,
404
- - interactive examples/playgrounds,
405
- - release comparison pages.
340
+ 1. Build navigation in manifest order.
341
+ 2. Resolve every website route to its Markdown source.
342
+ 3. Generate previous/next links from manifest ordering.
343
+ 4. Use `versionTarget` and `releaseState` for banners.
344
+ 5. Use `platform-manifest.json` for runtime/public-entrypoint metadata.
345
+ 6. Index Markdown headings/content for search.
346
+ 7. Never ingest runtime `.env` files into public documentation output.
406
347
 
407
348
  ## Source conventions
408
349
 
409
- - one H1 per page,
350
+ - one H1 per Markdown page,
410
351
  - stable heading hierarchy,
411
352
  - fenced code blocks with language tags,
412
353
  - relative links between docs,
413
354
  - exact public API names,
414
355
  - clear stable/RC/roadmap labels,
415
356
  - security limitations next to affected APIs,
416
- - runnable examples where possible,
417
- - no private/internal modules presented as public API.
357
+ - no framework-internal module presented as public API.
418
358
 
419
359
  ## Release validation
420
360
 
421
- Before publishing:
361
+ Before publishing `0.2.0`:
422
362
 
423
363
  ```bash
424
364
  npm run typecheck
425
365
  npm run test:unit
426
366
  npm run test:integration
427
- npm run test:e2e
428
367
  npm run test:package
368
+ npm run test:e2e
429
369
  npm run rc:check
430
370
  ```
431
371
 
432
- For `0.1.29`, validation should cover project generators, Doctor/Inspect v2, create-app project metadata, the existing production hardening runtime and package preparation.
372
+ `0.2.0` adds a platform-contract package smoke check that verifies:
373
+
374
+ - prepared framework/create-app version parity,
375
+ - required public exports,
376
+ - both CLI executable aliases,
377
+ - Node.js engine baseline,
378
+ - inclusion of platform/docs contract files,
379
+ - docs-web target/version consistency.
433
380
 
434
- The release lockfile must be synchronized to `0.1.29` before the final tag.
381
+ The final release tag must point to the commit that passed the complete RC sequence.
435
382
 
436
383
  ## Documentation QA checklist
437
384
 
438
385
  - every manifest Markdown source exists,
439
- - every manifest route is unique,
440
- - examples use public exports/CLI commands,
441
- - version/release states are current,
442
- - Windows direct CLI examples use `npm exec -- bcp-framework`,
443
- - upload/storage/auth security caveats are present,
444
- - release notes match the framework version,
445
- - S3 credentials are never shown as public browser variables,
446
- - project metadata remains non-secret,
447
- - proxy trust remains documented as opt-in,
448
- - roadmap APIs are not presented as release guarantees.
449
-
450
- ## Next direction after 0.1.29
451
-
452
- Planned **`0.2.0 — Framework Platform`** focus:
453
-
454
- - consolidate public API naming/behavior,
455
- - document compatibility expectations,
456
- - stabilize supported production deployment paths,
457
- - complete docs-web integration and documentation coverage,
458
- - publish migration guidance for pre-`0.2.0` applications,
459
- - establish a platform baseline before broader feature expansion.
460
-
461
- These remain roadmap goals until their source/tests land.
386
+ - every website route is unique,
387
+ - docs-web target matches platform version,
388
+ - platform public entrypoints match package exports,
389
+ - examples use public APIs/commands,
390
+ - release states are accurate,
391
+ - secrets are never placed in project/docs metadata,
392
+ - proxy trust remains opt-in,
393
+ - roadmap features are not presented as release guarantees.
462
394
 
463
395
  ## Repository authority
464
396
 
@@ -470,6 +402,7 @@ public exports
470
402
  tests
471
403
  Markdown docs
472
404
  docs-web manifest
405
+ platform manifest
473
406
  release notes
474
407
  ```
475
408