genesis-compiler 1.2.12 → 1.2.13

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/README.md CHANGED
@@ -13,7 +13,7 @@ interaction.
13
13
  ```text
14
14
  genesis/
15
15
  blueprint.md non-technical product intent
16
- stack.md selected technology guidance, checks, setup, launch, and deployment data
16
+ stack.md selected technology guidance, verification, declarations, and opaque extensions
17
17
  stack/ optional per-component Description, Guidance, Adoption, and Deslop customization
18
18
  program/ concise explanations grouped into conceptual subsystems
19
19
  .agents/skills/
@@ -73,12 +73,11 @@ genesis adopt "Optional product guidance"
73
73
 
74
74
  It preserves the implementation, initializes the Genesis files and local
75
75
  hooks, and prints the `adopt` prompt. That prompt imports the existing
76
- application's factual Stack contract—including setup, environment/resources,
77
- database preparation and seed, Launch/readiness, Preview identity,
78
- verification, and deployment—then creates the first useful Blueprint and
79
- Program. Give it to the agent already working in the repository. Adoption edits
80
- Genesis metadata only; implementation modernization remains a separate,
81
- explicitly approved port. “Adopt” never moves the project.
76
+ application's factual Stack declarations—including environment/resources,
77
+ verification, and consumer-owned opaque sections—then creates the first useful
78
+ Blueprint and Program. Give it to the agent already working in the repository.
79
+ Adoption edits Genesis metadata only; implementation modernization remains a
80
+ separate, explicitly approved port. “Adopt” never moves the project.
82
81
 
83
82
  For a new or empty project, initialize first and write the product intent:
84
83
 
@@ -137,26 +136,6 @@ Genesis never overwrites an unmanaged skill and preserves locally modified
137
136
  managed skills. Run `genesis init` after manually editing `genesis/stack.md`,
138
137
  or use `genesis stack add`, to synchronize selected skills.
139
138
 
140
- Run `genesis prepare` to execute the selected Stack's exact workspace recipe
141
- directly with the caller's environment and installed toolchain. It executes
142
- argument arrays without a shell, honors declared project-relative working
143
- directories and conditional paths, stops on the first failure, and never
144
- returns environment values. Hosts that need their own runtime, permission, or
145
- process policy can instead call the public `inspectWorkspaceSetup()` API and
146
- execute the same normalized recipe themselves. A concrete Stack piece may declare one exact,
147
- ordered `## Workspace setup` recipe with labels, argument arrays expressed as
148
- backticked tokens, abstract runtimes, and optional project-relative working
149
- directories and readiness paths. A recipe whose declared project marker does
150
- not exist remains unconfigured until a later inspection. The catalog's
151
- `jskit` piece waits for `package.json` and then declares `npm install`; generic
152
- `nodejs` and `php` deliberately declare no installer. One project section in
153
- `genesis/stack.md` replaces all component defaults, including with
154
- `- Nothing.`. Without that override, exactly one component recipe is used;
155
- multiple component recipes are reported as ambiguous and never merged.
156
- The standalone command does not provision declared resources: callers provide
157
- their own database, credentials, compilers, and other infrastructure. Stack
158
- resources such as database variables do not gate dependency installation.
159
-
160
139
  Hosts that manage project environments can call `inspectEnvironment()`.
161
140
  Concrete Stack integrations may declare public, non-secret Environment
162
141
  defaults such as the database driver selected by that integration. Explicit
@@ -176,52 +155,30 @@ value-free missing-input diagnostics, and paths. It never returns supplied
176
155
  environment values, writes files, stores secrets, or decides which resolved
177
156
  host values should be materialized.
178
157
 
179
- Hosts that provide previews can call the public `inspectLaunch()` API. An
180
- optional readable `## Launch` section in `genesis/stack.md` declares labeled
181
- targets, exact backticked argument tokens, relative working directories,
182
- abstract runtime requirements, `{host}`/`{port}` substitutions, and an optional
183
- application-owned Preview identity block. Concrete components may provide a
184
- default: the catalog's `jskit` piece declares its app-owned `npm run develop`
185
- command; generic
186
- `nodejs` and `php` do not guess. Genesis starts nothing itself. It returns preview identity
187
- command metadata and environment variable names, never their values. The host
188
- continues to own pinned runtimes, ports, processes, readiness probing and
189
- timeouts, identity-command execution and secrets, browser binaries, Git, and
190
- credentials. Genesis owns only the exact HTTP readiness predicate declared by
191
- the selected Stack. See
192
- [`docs/stack-components.md`](docs/stack-components.md) for the v1 contract.
193
-
194
- Hosts that publish applications can call the separate public
195
- `inspectDeployment()` API. An optional readable `## Deployment` section
196
- declares an ordered production recipe: project-relative workdir, abstract
197
- runtimes, exact Prepare/Build/Migrate/Serve argv, and one HTTP readiness
198
- predicate. A concrete component may provide the recipe; the catalog's `jskit`
199
- piece declares production dependency installation, build, database preparation,
200
- `npm start`, and `/api/health`. Generic language pieces do not guess. A project
201
- section replaces component defaults wholesale, and `- Nothing.` explicitly
202
- disables publishing.
203
-
204
- Genesis only validates and reports this recipe and the Stack's abstract resource
205
- requirements. It does not provision a database, resolve credentials, copy a
206
- release, run commands, start a service, reserve a port, route traffic, issue TLS,
207
- or roll back. A deployment host owns all of those operational responsibilities,
208
- including the mapping from `mysql` or `postgresql` resources to its managed
209
- services.
158
+ Consumers may define additional `##` sections in a project or component Stack.
159
+ Genesis composes each section by name, includes its exact text in Stack identity
160
+ and prompt context, and exposes it through `inspectStackSection()`. The body is
161
+ opaque: Genesis does not parse its commands, infer its purpose, or execute it.
162
+ A project section replaces a component default of the same name; competing
163
+ component declarations are reported mechanically instead of merged.
164
+
165
+ This is the boundary for every consumer-specific operation. The consumer that
166
+ names a section owns its schema, validation, runtime mapping, execution, and
167
+ proof of success. Genesis has no model of starting, preparing, deploying,
168
+ packaging, migrating, serving, probing, or supervising a project. A web host,
169
+ native toolchain, firmware publisher, desktop signer, or any future consumer
170
+ can define different sections without a Genesis compiler change.
210
171
 
211
172
  Standalone and non-Node hosts can inspect these same normalized contracts
212
173
  without importing the JavaScript API or parsing Markdown:
213
174
 
214
175
  ```bash
215
- genesis inspect workspace --json
216
176
  genesis inspect environment --json
217
- genesis inspect launch --json
218
- genesis inspect deployment --json
177
+ genesis inspect section 'Consumer operation' --json
219
178
  ```
220
179
 
221
180
  Without `--json`, the commands print concise human-readable summaries. They
222
- never start the application, probe a server, materialize environment files, or
223
- deploy. `genesis prepare` is the separate explicit command that executes only
224
- the finite Workspace setup recipe.
181
+ never interpret or execute a consumer-owned section.
225
182
 
226
183
  At session start, Codex receives only a short explanation of how Genesis is
227
184
  organized. After it locates the source involved in a request, it can load the
@@ -416,10 +373,8 @@ Run the Stack's declared checks explicitly:
416
373
  genesis verify
417
374
  ```
418
375
 
419
- Genesis first waits for any technology-declared Workspace setup marker. A
420
- missing marker is `unconfigured`, not a failed command. Once the workspace
421
- exists, Genesis applies public Stack defaults beneath explicit environment
422
- values, evaluates generic resource declarations, and runs each declared
376
+ Genesis applies public Stack defaults beneath explicit environment values,
377
+ evaluates generic resource declarations, and runs each declared Verification
423
378
  command without a shell. A complete successful run writes only
424
379
  `.genesis/verification.json`, recording:
425
380
 
@@ -436,7 +391,7 @@ whole-product correctness.
436
391
  A project can replace component defaults in `genesis/stack.md`:
437
392
 
438
393
  ```markdown
439
- ## Commands
394
+ ## Verification
440
395
 
441
396
  - Verify `tests`: `npm` `test`
442
397
  - Verify `build`: `npm` `run` `build`
@@ -453,8 +408,8 @@ genesis check
453
408
  - Blueprint and Stack validity;
454
409
  - selected Agent Skill presence and structural validity;
455
410
  - Program presence and structural validity;
456
- - Workspace setup, environment, Launch, and Deployment as `ready`, `blocked`,
457
- or honestly `unconfigured`;
411
+ - environment declarations and consumer-owned Stack extensions as `ready`,
412
+ `blocked`, or honestly `unconfigured`;
458
413
  - missing Stack-declared environment inputs (without claiming the service is
459
414
  reachable);
460
415
  - verification evidence as `current`, `stale`, `missing`, `invalid`, or
@@ -479,10 +434,8 @@ import {
479
434
  getContext,
480
435
  indexCodebase,
481
436
  initialize,
482
- inspectDeployment,
483
437
  inspectEnvironment,
484
- inspectLaunch,
485
- inspectWorkspaceSetup,
438
+ inspectStackSection,
486
439
  installCodex,
487
440
  listStackPieces,
488
441
  verify,
@@ -497,25 +450,16 @@ codebase. `installCodex()` installs the optional global discovery plugin.
497
450
  the functions already declared there, selected Stack guidance, available Agent
498
451
  Skills, and verification commands. `indexCodebase()` regenerates or returns the
499
452
  detailed Machine City and simple Program City projections.
500
- `inspectWorkspaceSetup()` returns one normalized, shell-free workspace
501
- preparation recipe—or an explicit unconfigured or ambiguous result—for a host
502
- to execute with its own pinned runtimes, caches, process isolation, and
503
- credentials. A configured recipe may remain unconfigured while it waits for a
504
- technology-declared project marker.
505
453
  `inspectEnvironment()` returns normalized Stack resource declarations,
506
454
  public non-secret defaults, value-free missing-input diagnostics, and dotenv
507
455
  projection paths without returning any supplied environment value.
508
- `inspectLaunch()` returns a validated, normalized Stack launch declaration for
509
- a host to execute with its own runtime, port, process, readiness probe, preview
510
- identity, secret, and browser policy.
511
- `inspectDeployment()` returns the separate normalized production recipe without
512
- executing or provisioning it.
513
-
514
- Normalized operational results identify their stable public contract in the
515
- `contract` field: `genesis.workspace-setup.v1`, `genesis.environment.v1`,
516
- `genesis.launch.v1`, `genesis.deployment.v2`, or
517
- `genesis.verification.v1`. Hosts validate that identity instead of
518
- feature-detecting individual fields.
456
+ `inspectStackSection()` returns one exact consumer-owned section without
457
+ interpreting or executing its contents.
458
+
459
+ Normalized results identify their stable public contract in the `contract`
460
+ field: `genesis.environment.v1`, `genesis.stack-section.v1`, or
461
+ `genesis.verification.v1`. A consumer defines any schema embedded inside the
462
+ opaque section body.
519
463
 
520
464
  A host such as Vibe64 can send the generated prompt to its existing agent:
521
465
 
@@ -37,7 +37,7 @@ Genesis keeps each instruction at one useful level:
37
37
  workflow skill and states only that turn's edit boundary.
38
38
  - a declared Stack package's `stacks/pieces/<component>.md` supplies concise Description, supplemental
39
39
  Guidance, Adoption requirements, Resources, Deslop overlays, structural Indexers, verification
40
- Commands, and an optional authoritative Agent Skill source.
40
+ commands, opaque consumer sections, and an optional authoritative Agent Skill source.
41
41
  - `genesis/blueprint.md`, `genesis/program/`, and `genesis/stack.md` are the
42
42
  project's own intent, explanation, and selected technical composition.
43
43
  - The generated JSON block contains current structural facts and warnings.
@@ -59,10 +59,10 @@ then creates one Blueprint and subsystem-oriented Program.
59
59
 
60
60
  Adoption does not upgrade an application's technology foundation. Component
61
61
  defaults apply only when direct source evidence matches. Older or otherwise
62
- different applications receive complete project-owned declarations for setup,
63
- environment/resources, Launch and Preview identity, verification, and
64
- deployment as applicable, so a host never executes a newly selected
65
- component's current command against source that does not provide it.
62
+ different applications receive complete project-owned environment/resource,
63
+ Verification, and consumer-owned opaque declarations as applicable. Genesis
64
+ does not interpret those opaque bodies; the consumer's schema and technology
65
+ skill determine what must be preserved.
66
66
 
67
67
  Codex users can run `genesis codex install` once to install the packaged
68
68
  Genesis discovery plugin. Its `SessionStart` hook executes before the first