genesis-stack 1.0.6 → 1.0.7

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
@@ -21,8 +21,11 @@ genesis stack add --stack-package genesis-stack cpp
21
21
  genesis stack add --stack-package genesis-stack jskit jskit-mysql
22
22
  ```
23
23
 
24
- Genesis records `genesis-stack` in `genesis/stack.md`, so later commands and
25
- other hosts resolve the same catalog without another flag.
24
+ Genesis records `genesis-stack` in `genesis/stack.md`, materializes the selected
25
+ pieces' missing operation proposals as project-owned contracts, and returns a
26
+ one-time preparation prompt. Later commands and other hosts resolve the same
27
+ catalog without another flag, while catalog upgrades cannot silently rewrite
28
+ the established project operations.
26
29
 
27
30
  The package contains static Markdown declarations only and has no framework
28
31
  dependencies. Genesis reads its manifest and Stack pieces; it never imports or
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "genesis-stack",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "description": "The optional curated technology Stack catalog for Genesis projects.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -12,6 +12,18 @@ C and C++ translation-unit, header, callable, ownership, build, and test convent
12
12
 
13
13
  - `cpp`
14
14
 
15
+ ## Guidance
16
+
17
+ - Derive one smallest C or C++ lane from established product intent: an
18
+ executable, a reusable library, or both; the supported platform; and the
19
+ first observable behavior. Ask only unresolved product or interface
20
+ questions instead of presenting build systems and frameworks as product
21
+ choices.
22
+ - Follow one build and test path selected by the request or existing source.
23
+ Read only the exact official guidance it requires; do not survey alternative
24
+ build systems, libraries, engines, or layouts unless a concrete failure
25
+ requires one exact investigation.
26
+
15
27
  ## Adoption
16
28
 
17
29
  - Identify the actual build system and presets, compiler and language level,
@@ -57,6 +57,13 @@ JSKIT MySQL runtime, live-schema CRUD generation, and persistence conventions.
57
57
  constraints safely, and invokes an app-owned idempotent seed. Do not execute
58
58
  it during adoption.
59
59
 
60
+ ## Guidance
61
+
62
+ - Use the application-owned JSKIT database preparation command only after the
63
+ app implements it. Record that exact command in the project's Workspace
64
+ setup and Deployment contracts when database preparation is part of those
65
+ operations; do not copy a command that the application does not provide.
66
+
60
67
  ## Deslop
61
68
 
62
69
  - Use the installed JSKIT database runtime and generated resource/repository
@@ -54,6 +54,13 @@ JSKIT PostgreSQL runtime, live-schema CRUD generation, and persistence conventio
54
54
  constraints safely, and invokes an app-owned idempotent seed. Do not execute
55
55
  it during adoption.
56
56
 
57
+ ## Guidance
58
+
59
+ - Use the application-owned JSKIT database preparation command only after the
60
+ app implements it. Record that exact command in the project's Workspace
61
+ setup and Deployment contracts when database preparation is part of those
62
+ operations; do not copy a command that the application does not provide.
63
+
57
64
  ## Deslop
58
65
 
59
66
  - Use the installed JSKIT database runtime and generated resource/repository
@@ -12,10 +12,26 @@ https://mobily-enterprises.github.io/jskit-ai/
12
12
 
13
13
  ## Guidance
14
14
 
15
+ - Derive one smallest JSKIT lane from established product intent instead of
16
+ asking the user to choose framework shape: a public page uses the minimal
17
+ foundation; navigation or settings uses the shell foundation; persistent
18
+ records add the matching database integration and one CRUD pattern;
19
+ login-required records use the shell, authentication, matching database
20
+ integration, and one CRUD pattern; and an administrative dashboard uses the
21
+ shell plus its relevant authenticated dashboard pattern. These are routing
22
+ examples, not substitutes for unresolved product, access, or data decisions.
15
23
  - Read the authoritative JSKIT framework guide at
16
- `https://mobily-enterprises.github.io/jskit-ai/guide/` and select the narrow
17
- relevant source pattern from
18
- `https://mobily-enterprises.github.io/jskit-ai/patterns/` before implementing.
24
+ `https://mobily-enterprises.github.io/jskit-ai/guide/` and only the foundation
25
+ and next source pattern required by that lane from
26
+ `https://mobily-enterprises.github.io/jskit-ai/patterns/`. Do not compare every
27
+ foundation, clone the whole framework repository, inspect unrelated package
28
+ internals, or delegate research unless a concrete failure requires one exact
29
+ investigation.
30
+ - When local authentication is selected, ask whether the relevant application
31
+ surfaces are public or login-required and expose
32
+ `AUTH_LOCAL_SESSION_SECRET` as a required environment name in the project's
33
+ established environment contract and committed environment example. Never
34
+ commit or invent its value.
19
35
  - Before creating or modifying JSKIT Vue/Vuetify UI, read the Material 3
20
36
  contract at
21
37
  `https://mobily-enterprises.github.io/jskit-ai/guide/framework/material-3`
@@ -38,7 +54,7 @@ https://mobily-enterprises.github.io/jskit-ai/
38
54
  composition, package-owned migrations, explicit repositories/features/named
39
55
  actions, and current client resources without running a broad package update.
40
56
  - Compare the real package scripts with JSKIT's current Workspace setup,
41
- Launch, verification, and consumer-owned Deployment proposal. Genesis keeps
57
+ Outputs, Verification, and consumer-owned Deployment proposal. Genesis keeps
42
58
  that extra section opaque; the deployment consumer validates it. Older source
43
59
  needs a complete project-owned override until a separately approved port
44
60
  supplies the current commands.
@@ -47,7 +63,7 @@ https://mobily-enterprises.github.io/jskit-ai/
47
63
  component when the script or preparation file does not exist.
48
64
  - When authenticated Preview exists, preserve the app-owned Preview identity
49
65
  command, selectors, protocol, environment names, runtime, and timeout in the
50
- project's Launch declaration. A host-saved identity name/value is not a
66
+ project's Outputs declaration. A host-saved identity name/value is not a
51
67
  substitute for this application contract.
52
68
  - Treat generator descriptors, receipts, sync commands, legacy service
53
69
  locators, and retired tool manifests as migration evidence only. Translate
@@ -57,7 +73,6 @@ https://mobily-enterprises.github.io/jskit-ai/
57
73
  ## Workspace setup
58
74
 
59
75
  - Prepare `Install dependencies` with `nodejs` when `package.json` exists: `npm` `install`
60
- - Prepare `Prepare database` with `nodejs` if `scripts/prepare-database.js` exists: `npm` `run` `db:prepare`
61
76
 
62
77
  ## Environment files
63
78
 
@@ -97,7 +112,6 @@ https://mobily-enterprises.github.io/jskit-ai/
97
112
  - Ready when: `GET` `/api/health` returns `200`
98
113
  - Prepare `Install dependencies`: `npm` `ci`
99
114
  - Build `Build`: `npm` `run` `build`
100
- - Migrate `Prepare database`: `npm` `run` `db:prepare`
101
115
  - Serve `Start`: `npm` `start`
102
116
 
103
117
  ## Deslop
@@ -0,0 +1,63 @@
1
+ # Stack piece: laravel-mysql
2
+
3
+ ## Description
4
+
5
+ Laravel MySQL connection, migration, Eloquent, and database environment conventions.
6
+
7
+ ## Requires
8
+
9
+ - `laravel`
10
+ - `mysql`
11
+
12
+ ## Conflicts
13
+
14
+ - `laravel-postgresql`
15
+
16
+ ## Environment defaults
17
+
18
+ - Default `DB_CONNECTION`: `mysql`
19
+ - Default `DB_HOST`: `127.0.0.1`
20
+ - Default `DB_PORT`: `3306`
21
+ - Default `DB_DATABASE`: `laravel`
22
+ - Default `DB_USERNAME`: `root`
23
+
24
+ ## Resources
25
+
26
+ ```json genesis-resource
27
+ {
28
+ "id": "database",
29
+ "kind": "mysql",
30
+ "environmentAlternatives": [
31
+ {
32
+ "bindings": {
33
+ "database": "DB_DATABASE",
34
+ "host": "DB_HOST",
35
+ "password": "DB_PASSWORD",
36
+ "port": "DB_PORT",
37
+ "username": "DB_USERNAME"
38
+ },
39
+ "allowEmpty": ["password"],
40
+ "preferred": true
41
+ },
42
+ {
43
+ "bindings": {
44
+ "url": "DB_URL"
45
+ }
46
+ }
47
+ ]
48
+ }
49
+ ```
50
+
51
+ ## Guidance
52
+
53
+ - Use Laravel's application-owned migrations and seeders. Add the exact
54
+ `php artisan migrate` or production `php artisan migrate --force` operation
55
+ to the applicable project contract only when that consumer owns executing it.
56
+ - Keep the project Resource contract aligned with `config/database.php` if the
57
+ application deliberately changes Laravel's conventional environment names.
58
+
59
+ ## Adoption
60
+
61
+ - Confirm the selected connection, URL alternative, individual `DB_*` names,
62
+ migrations, seeders, and production migration ownership from source before
63
+ declaring readiness or connecting to the database.
@@ -0,0 +1,63 @@
1
+ # Stack piece: laravel-postgresql
2
+
3
+ ## Description
4
+
5
+ Laravel PostgreSQL connection, migration, Eloquent, and database environment conventions.
6
+
7
+ ## Requires
8
+
9
+ - `laravel`
10
+ - `postgresql`
11
+
12
+ ## Conflicts
13
+
14
+ - `laravel-mysql`
15
+
16
+ ## Environment defaults
17
+
18
+ - Default `DB_CONNECTION`: `pgsql`
19
+ - Default `DB_HOST`: `127.0.0.1`
20
+ - Default `DB_PORT`: `5432`
21
+ - Default `DB_DATABASE`: `laravel`
22
+ - Default `DB_USERNAME`: `postgres`
23
+
24
+ ## Resources
25
+
26
+ ```json genesis-resource
27
+ {
28
+ "id": "database",
29
+ "kind": "postgresql",
30
+ "environmentAlternatives": [
31
+ {
32
+ "bindings": {
33
+ "database": "DB_DATABASE",
34
+ "host": "DB_HOST",
35
+ "password": "DB_PASSWORD",
36
+ "port": "DB_PORT",
37
+ "username": "DB_USERNAME"
38
+ },
39
+ "allowEmpty": ["password"],
40
+ "preferred": true
41
+ },
42
+ {
43
+ "bindings": {
44
+ "url": "DB_URL"
45
+ }
46
+ }
47
+ ]
48
+ }
49
+ ```
50
+
51
+ ## Guidance
52
+
53
+ - Use Laravel's application-owned migrations and seeders. Add the exact
54
+ `php artisan migrate` or production `php artisan migrate --force` operation
55
+ to the applicable project contract only when that consumer owns executing it.
56
+ - Keep the project Resource contract aligned with `config/database.php` if the
57
+ application deliberately changes Laravel's conventional environment names.
58
+
59
+ ## Adoption
60
+
61
+ - Confirm the selected connection, URL alternative, individual `DB_*` names,
62
+ migrations, seeders, and production migration ownership from source before
63
+ declaring readiness or connecting to the database.
@@ -0,0 +1,73 @@
1
+ # Stack piece: laravel
2
+
3
+ ## Description
4
+
5
+ Laravel application, Artisan, Composer, Vite, HTTP, and framework lifecycle
6
+ conventions. Authoritative framework documentation: https://laravel.com/docs/
7
+
8
+ ## Requires
9
+
10
+ - `php`
11
+ - `nodejs`
12
+
13
+ ## Guidance
14
+
15
+ - Use the Laravel version selected by the application and follow its matching
16
+ official documentation. Preserve Laravel's application container, service
17
+ providers, Eloquent models, validation, authorization, queues, events, and
18
+ Artisan conventions instead of adding parallel framework plumbing.
19
+ - Treat `.env.example` as names and safe examples only. Keep actual `.env`
20
+ values and secrets outside Git.
21
+ - Use Laravel's built-in `/up` health route unless the application deliberately
22
+ changes it and updates its project Outputs contract.
23
+
24
+ ## Adoption
25
+
26
+ - Inspect `composer.lock`, `composer.json`, `artisan`, `bootstrap/app.php`,
27
+ `package.json`, and the application's real environment names before changing
28
+ its project contracts. Preserve its Laravel major version and frontend tool.
29
+ - Record actual Composer and frontend installation, test, build, development,
30
+ queue, scheduler, migration, and production operations. Do not assume the
31
+ catalog proposal matches an older application.
32
+ - When the app uses MySQL or PostgreSQL, select the matching Laravel database
33
+ integration so its conventional environment names become explicit.
34
+
35
+ ## Environment files
36
+
37
+ - Dotenv `.env`
38
+
39
+ ## Workspace setup
40
+
41
+ - Prepare `Install PHP dependencies` with `php` when `composer.json` exists: `composer` `install` `--no-interaction`
42
+ - Prepare `Install frontend dependencies` with `nodejs` when `package.json` exists: `npm` `install`
43
+ - Prepare `Build frontend assets` with `nodejs` when `package.json` exists: `npm` `run` `build`
44
+
45
+ ## Outputs
46
+
47
+ ### Target `app`: Run Laravel app
48
+
49
+ - Default.
50
+ - Mode: `interactive`
51
+ - Runtimes: `php`
52
+ - Run `Develop`: `php` `artisan` `serve` `--host` `{host}` `--port` `{port}`
53
+
54
+ #### Presentation
55
+
56
+ - Kind: `web`
57
+ - Preferred port: `8000`
58
+ - URL path: `/`
59
+ - Ready when: `GET` `/up` returns `200`
60
+
61
+ ## Verification
62
+
63
+ - Verify `application`: `php` `artisan` `test`
64
+
65
+ ## Deslop
66
+
67
+ - Preserve Laravel's container, providers, middleware, policies, requests,
68
+ resources, jobs, events, Eloquent relationships, and Artisan ownership.
69
+ - Keep validation and authorization at established Laravel boundaries. Remove
70
+ facades, helpers, repositories, or service wrappers only when they duplicate
71
+ framework behavior without protecting a real application seam.
72
+ - Preserve migration history and model/database behavior; cleanup is not
73
+ permission for destructive schema changes or mass-assignment drift.
@@ -21,7 +21,7 @@ Node.js package, command, module, dependency, and test conventions.
21
21
  development, and production commands. Do not assume `npm run develop`,
22
22
  `npm test`, or `npm start` exists merely because a current foundation uses it.
23
23
  - Identify every long-running process, its workdir, host/port handling,
24
- readiness signal, and shutdown ownership before declaring Launch.
24
+ readiness signal, and shutdown ownership before declaring Outputs.
25
25
 
26
26
  ## Deslop
27
27