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 +5 -2
- package/package.json +1 -1
- package/stacks/pieces/cpp.md +12 -0
- package/stacks/pieces/jskit-mysql.md +7 -0
- package/stacks/pieces/jskit-postgresql.md +7 -0
- package/stacks/pieces/jskit.md +21 -7
- package/stacks/pieces/laravel-mysql.md +63 -0
- package/stacks/pieces/laravel-postgresql.md +63 -0
- package/stacks/pieces/laravel.md +73 -0
- package/stacks/pieces/nodejs.md +1 -1
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`,
|
|
25
|
-
|
|
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
package/stacks/pieces/cpp.md
CHANGED
|
@@ -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
|
package/stacks/pieces/jskit.md
CHANGED
|
@@ -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
|
|
17
|
-
|
|
18
|
-
`https://mobily-enterprises.github.io/jskit-ai/patterns
|
|
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
|
-
|
|
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
|
|
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.
|
package/stacks/pieces/nodejs.md
CHANGED
|
@@ -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
|
|
24
|
+
readiness signal, and shutdown ownership before declaring Outputs.
|
|
25
25
|
|
|
26
26
|
## Deslop
|
|
27
27
|
|