genesis-stack 1.1.6 → 1.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/README.md +35 -11
- package/package.json +1 -1
- package/stacks/pieces/cpp.md +13 -0
- package/stacks/pieces/csharp.md +19 -0
- package/stacks/pieces/go.md +17 -0
- package/stacks/pieces/java.md +20 -0
- package/stacks/pieces/kotlin.md +18 -0
- package/stacks/pieces/laravel.md +20 -0
- package/stacks/pieces/nodejs.md +9 -3
- package/stacks/pieces/php.md +18 -0
- package/stacks/pieces/python.md +18 -0
- package/stacks/pieces/ruby.md +19 -0
- package/stacks/pieces/rust.md +18 -0
- package/stacks/pieces/shell.md +5 -0
package/README.md
CHANGED
|
@@ -69,18 +69,42 @@ Projects with different output ids or commands must review the proposal during
|
|
|
69
69
|
preparation. A project can omit estimates and use its host's generic starting
|
|
70
70
|
policy. Neither the catalog nor the project stores host observations or limits.
|
|
71
71
|
|
|
72
|
-
## Connected package
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
72
|
+
## Connected package defaults
|
|
73
|
+
|
|
74
|
+
Each package-ecosystem language piece proposes Vibe64's opaque
|
|
75
|
+
`Connected development` section containing only
|
|
76
|
+
`- Default package type: \`<type>\``:
|
|
77
|
+
|
|
78
|
+
| Piece | Default |
|
|
79
|
+
| --- | --- |
|
|
80
|
+
| `nodejs` | `npm` |
|
|
81
|
+
| `php` | `composer` |
|
|
82
|
+
| `python` | `pip` |
|
|
83
|
+
| `ruby` | `bundler` |
|
|
84
|
+
| `go` | `gomod` |
|
|
85
|
+
| `rust` | `cargo` |
|
|
86
|
+
| `java` | `maven` |
|
|
87
|
+
| `kotlin` | `gradle` |
|
|
88
|
+
| `csharp` | `nuget` |
|
|
89
|
+
| `laravel` | `composer` |
|
|
90
|
+
|
|
91
|
+
Laravel requires `php` and `nodejs`, so its proposal supersedes theirs; npm
|
|
92
|
+
front-end repositories can still declare an explicit `npm` type per connection.
|
|
93
|
+
`cpp` and `shell` propose no default: their connections use an explicit
|
|
94
|
+
`custom` type with a project script. Selecting several unrelated languages
|
|
95
|
+
leaves the section as a project decision: `genesis stack add` succeeds, reports
|
|
96
|
+
`STACK_SECTION_AMBIGUOUS` with each proposal, and the project authors one
|
|
97
|
+
section choosing its default.
|
|
98
|
+
|
|
99
|
+
Vibe64 can inspect this default without treating it as a prepared development
|
|
100
|
+
recipe. The project must add its real source-map, preparation and verification
|
|
101
|
+
declarations before connected development can run; no repositories or commands
|
|
102
|
+
are inferred from selecting a language. A project-owned section wins unchanged,
|
|
103
|
+
including an explicit different default.
|
|
104
|
+
|
|
105
|
+
For an existing current-format project whose selected catalog gains this
|
|
82
106
|
proposal, Genesis reports `STACK_PROJECT_CONTRACTS_INCOMPLETE` if the project
|
|
83
107
|
section is missing. Explicitly reconcile the already-selected Stack with
|
|
84
|
-
`genesis stack add
|
|
108
|
+
`genesis stack add <component>`, then review the materialized contract. Older project
|
|
85
109
|
formats use the normal `genesis migrate` workflow. Catalog updates never install
|
|
86
110
|
a hidden runtime default or rewrite an existing project section.
|
package/package.json
CHANGED
package/stacks/pieces/cpp.md
CHANGED
|
@@ -38,6 +38,19 @@ C and C++ translation-unit, header, callable, ownership, build, and test convent
|
|
|
38
38
|
supplied `extensions.payments` semantics and verify signatures, deduplication,
|
|
39
39
|
entitlement transitions and transactional credits using controlled fixtures.
|
|
40
40
|
Native implementation remains required; guidance is not a working connector.
|
|
41
|
+
- This component has no package-ecosystem default and proposes no
|
|
42
|
+
`## Connected development` section. A connection it consumes should use an
|
|
43
|
+
explicit `custom` type with a project-defined script, for example a CMake
|
|
44
|
+
build that uses the connected source. When a project selects several
|
|
45
|
+
languages, its own complete `## Connected development` section chooses the
|
|
46
|
+
one default.
|
|
47
|
+
- A proven custom treatment for CMake FetchContent: the project script
|
|
48
|
+
configures an untracked build tree with
|
|
49
|
+
`-DFETCHCONTENT_SOURCE_DIR_<UPPERNAME>=<source root>`, so `CMakeLists.txt`
|
|
50
|
+
stays unchanged, and verifies from `compile_commands.json` that the
|
|
51
|
+
dependency's sources come from the connected checkout rather than a
|
|
52
|
+
`_deps/*-src` download. The project owns the repository-to-dependency name
|
|
53
|
+
mapping.
|
|
41
54
|
|
|
42
55
|
## Adoption
|
|
43
56
|
|
package/stacks/pieces/csharp.md
CHANGED
|
@@ -28,6 +28,25 @@ C# namespace, public type, dependency, lifecycle, and test conventions.
|
|
|
28
28
|
supplied `extensions.payments` semantics and verify signatures, deduplication,
|
|
29
29
|
entitlement transitions and transactional credits using controlled fixtures.
|
|
30
30
|
Native implementation remains required; guidance is not a working connector.
|
|
31
|
+
- The proposed `## Connected development` section declares Vibe64's default
|
|
32
|
+
connected package type, `nuget`. It does not declare repositories or
|
|
33
|
+
executable preparation. When connected development is needed, preserve that
|
|
34
|
+
default in the complete project-owned section and declare the application's
|
|
35
|
+
real Sources file and Prepare/Verify commands. An explicit `custom` connection
|
|
36
|
+
uses its project-defined script instead of `nuget` treatment. Do not invent a
|
|
37
|
+
working recipe from the component name.
|
|
38
|
+
- A proven NuGet treatment: Prepare writes an untracked, Git-excluded
|
|
39
|
+
`Directory.Build.targets` beside each consuming project that replaces the
|
|
40
|
+
connected `PackageReference` with a `ProjectReference` to the checkout's
|
|
41
|
+
project and moves the restore lock under `obj/`, so project files,
|
|
42
|
+
`nuget.config` and `packages.lock.json` stay unchanged and no shadow package
|
|
43
|
+
enters a NuGet cache. Do not restore in locked mode while connected. Verify
|
|
44
|
+
that `obj/project.assets.json` resolves each package as a project at its
|
|
45
|
+
source root.
|
|
46
|
+
|
|
47
|
+
## Connected development
|
|
48
|
+
|
|
49
|
+
- Default package type: `nuget`
|
|
31
50
|
|
|
32
51
|
## Deslop
|
|
33
52
|
|
package/stacks/pieces/go.md
CHANGED
|
@@ -28,6 +28,23 @@ Go package, exported callable, interface, concurrency, resource, and test conven
|
|
|
28
28
|
supplied `extensions.payments` semantics and verify signatures, deduplication,
|
|
29
29
|
entitlement transitions and transactional credits using controlled fixtures.
|
|
30
30
|
Native implementation remains required; guidance is not a working connector.
|
|
31
|
+
- The proposed `## Connected development` section declares Vibe64's default
|
|
32
|
+
connected package type, `gomod`. It does not declare repositories or
|
|
33
|
+
executable preparation. When connected development is needed, preserve that
|
|
34
|
+
default in the complete project-owned section and declare the application's
|
|
35
|
+
real Sources file and Prepare/Verify commands. An explicit `custom` connection
|
|
36
|
+
uses its project-defined script instead of `gomod` treatment. Do not invent a
|
|
37
|
+
working recipe from the component name.
|
|
38
|
+
- A proven Go modules treatment: Prepare writes an untracked, ignored `go.work`
|
|
39
|
+
at the module root with `use . <source root>...` (also ignore
|
|
40
|
+
`go.work.sum`). Workspace modules replace the required versions, so `go.mod`
|
|
41
|
+
and `go.sum` stay unchanged. Verify `go env GOWORK` and that
|
|
42
|
+
`go list -deps ./...` loads each connected module from its source root, then
|
|
43
|
+
`go build ./...`. Do not set `-mod=mod` or run `go work sync` while connected.
|
|
44
|
+
|
|
45
|
+
## Connected development
|
|
46
|
+
|
|
47
|
+
- Default package type: `gomod`
|
|
31
48
|
|
|
32
49
|
## Deslop
|
|
33
50
|
|
package/stacks/pieces/java.md
CHANGED
|
@@ -28,6 +28,26 @@ Java package, public type, dependency, lifecycle, and test conventions.
|
|
|
28
28
|
supplied `extensions.payments` semantics and verify signatures, deduplication,
|
|
29
29
|
entitlement transitions and transactional credits using controlled fixtures.
|
|
30
30
|
Native implementation remains required; guidance is not a working connector.
|
|
31
|
+
- The proposed `## Connected development` section declares Vibe64's default
|
|
32
|
+
connected package type, `maven`. It does not declare repositories or
|
|
33
|
+
executable preparation. When connected development is needed, preserve that
|
|
34
|
+
default in the complete project-owned section and declare the application's
|
|
35
|
+
real Sources file and Prepare/Verify commands. An explicit `custom` connection
|
|
36
|
+
uses its project-defined script instead of `maven` treatment. Do not invent a
|
|
37
|
+
working recipe from the component name.
|
|
38
|
+
- A proven Maven treatment (Maven 3.9.3+): Prepare installs each connected
|
|
39
|
+
checkout into an untracked project-local repository chained in front of the
|
|
40
|
+
user's, `mvn -f <source root> install -Dmaven.repo.local=<project
|
|
41
|
+
repository> -Dmaven.repo.local.tail=<user repository>`, and writes the same
|
|
42
|
+
two arguments to an ignored `.mvn/maven.config`, so ordinary `mvn` commands
|
|
43
|
+
resolve the connected build under unchanged coordinates and `pom.xml` stays
|
|
44
|
+
unchanged. Verify resolves the classpath through Maven and requires the jar
|
|
45
|
+
to match the checkout's freshly built one. Run Prepare again after editing
|
|
46
|
+
connected source.
|
|
47
|
+
|
|
48
|
+
## Connected development
|
|
49
|
+
|
|
50
|
+
- Default package type: `maven`
|
|
31
51
|
|
|
32
52
|
## Deslop
|
|
33
53
|
|
package/stacks/pieces/kotlin.md
CHANGED
|
@@ -28,6 +28,24 @@ Kotlin package, public callable, coroutine, nullability, build, and test convent
|
|
|
28
28
|
supplied `extensions.payments` semantics and verify signatures, deduplication,
|
|
29
29
|
entitlement transitions and transactional credits using controlled fixtures.
|
|
30
30
|
Native implementation remains required; guidance is not a working connector.
|
|
31
|
+
- The proposed `## Connected development` section declares Vibe64's default
|
|
32
|
+
connected package type, `gradle`. It does not declare repositories or
|
|
33
|
+
executable preparation. When connected development is needed, preserve that
|
|
34
|
+
default in the complete project-owned section and declare the application's
|
|
35
|
+
real Sources file and Prepare/Verify commands. An explicit `custom` connection
|
|
36
|
+
uses its project-defined script instead of `gradle` treatment. Do not invent a
|
|
37
|
+
working recipe from the component name.
|
|
38
|
+
- A proven Gradle treatment: Prepare writes an ignored init script, such as
|
|
39
|
+
`.development/connected.init.gradle.kts`, containing
|
|
40
|
+
`settingsEvaluated { includeBuild("<source root>") }`, and connected launches
|
|
41
|
+
pass `-I <init script>`; Gradle substitutes the matching `group:name` with
|
|
42
|
+
the included build from source, so no tracked settings or lockfiles change.
|
|
43
|
+
Verify resolves `runtimeClasspath` and requires each connected artifact to
|
|
44
|
+
come from an included build inside its source root.
|
|
45
|
+
|
|
46
|
+
## Connected development
|
|
47
|
+
|
|
48
|
+
- Default package type: `gradle`
|
|
31
49
|
|
|
32
50
|
## Deslop
|
|
33
51
|
|
package/stacks/pieces/laravel.md
CHANGED
|
@@ -46,6 +46,22 @@ conventions. Authoritative framework documentation: https://laravel.com/docs/
|
|
|
46
46
|
never accept an administrator flag from JSON. Keep commands usable from an
|
|
47
47
|
ordinary CLI outside the editor. Verify with native tests and controlled
|
|
48
48
|
provider fixtures; no Node or JSKIT runtime is required for integrations.
|
|
49
|
+
- The proposed `## Connected development` section declares Vibe64's default
|
|
50
|
+
connected package type, `composer`; because Laravel requires `php` and
|
|
51
|
+
`nodejs`, it supersedes their proposals. It does not declare repositories or
|
|
52
|
+
executable preparation. When connected development is needed, preserve that
|
|
53
|
+
default in the complete project-owned section and declare the application's
|
|
54
|
+
real Sources file and Prepare/Verify commands. An npm front-end repository can
|
|
55
|
+
set an explicit `npm` type for its connection, and an explicit `custom`
|
|
56
|
+
connection uses its project-defined script. Do not invent a working recipe
|
|
57
|
+
from the component name.
|
|
58
|
+
- A proven Composer treatment: Prepare writes an untracked derived manifest,
|
|
59
|
+
such as `composer.connected.json`, that adds a first `path` repository
|
|
60
|
+
(`symlink: true`, locked version pinned) for each connected source, copies
|
|
61
|
+
`composer.lock` to the matching derived lock and runs
|
|
62
|
+
`COMPOSER=<derived manifest> composer update <connected packages>`. The
|
|
63
|
+
tracked `composer.json` and `composer.lock` stay unchanged. Verify checks
|
|
64
|
+
`InstalledVersions::getInstallPath()` against each source root.
|
|
49
65
|
|
|
50
66
|
## Adoption
|
|
51
67
|
|
|
@@ -88,6 +104,10 @@ conventions. Authoritative framework documentation: https://laravel.com/docs/
|
|
|
88
104
|
|
|
89
105
|
- Verify `application`: `php` `artisan` `test`
|
|
90
106
|
|
|
107
|
+
## Connected development
|
|
108
|
+
|
|
109
|
+
- Default package type: `composer`
|
|
110
|
+
|
|
91
111
|
## Deslop
|
|
92
112
|
|
|
93
113
|
- Preserve Laravel's container, providers, middleware, policies, requests,
|
package/stacks/pieces/nodejs.md
CHANGED
|
@@ -28,9 +28,6 @@ Node.js package, command, module, dependency, and test conventions.
|
|
|
28
28
|
supplied `extensions.payments` semantics and verify signatures, deduplication,
|
|
29
29
|
entitlement transitions and transactional credits using controlled fixtures.
|
|
30
30
|
Native implementation remains required; guidance is not a working connector.
|
|
31
|
-
|
|
32
|
-
## Adoption
|
|
33
|
-
|
|
34
31
|
- The proposed `## Connected development` section declares Vibe64's default
|
|
35
32
|
connected package type, `npm`. It does not declare repositories or executable
|
|
36
33
|
preparation. When connected development is needed, preserve that default in
|
|
@@ -38,6 +35,15 @@ Node.js package, command, module, dependency, and test conventions.
|
|
|
38
35
|
map, preparation and verification commands. An explicit `custom` connection
|
|
39
36
|
uses its project-defined script instead of npm treatment. Do not invent a
|
|
40
37
|
working recipe from the component name.
|
|
38
|
+
- A proven npm treatment: Prepare runs
|
|
39
|
+
`npm install --no-save --install-links=false <source root>...` for the
|
|
40
|
+
connected dependencies, which links each checkout into `node_modules` while
|
|
41
|
+
`package.json` and `package-lock.json` stay unchanged; Verify resolves each
|
|
42
|
+
package from the application root and fails unless it resolves to its
|
|
43
|
+
connected source root. An ordinary `npm ci` restores the published packages.
|
|
44
|
+
|
|
45
|
+
## Adoption
|
|
46
|
+
|
|
41
47
|
- Identify the package manager from the lockfile and preserve the existing
|
|
42
48
|
module system, supported Node.js version, package entrypoints, and executable
|
|
43
49
|
commands.
|
package/stacks/pieces/php.md
CHANGED
|
@@ -28,6 +28,24 @@ PHP package, namespace, callable, dependency, and test conventions.
|
|
|
28
28
|
supplied `extensions.payments` semantics and verify signatures, deduplication,
|
|
29
29
|
entitlement transitions and transactional credits using controlled fixtures.
|
|
30
30
|
Native implementation remains required; guidance is not a working connector.
|
|
31
|
+
- The proposed `## Connected development` section declares Vibe64's default
|
|
32
|
+
connected package type, `composer`. It does not declare repositories or
|
|
33
|
+
executable preparation. When connected development is needed, preserve that
|
|
34
|
+
default in the complete project-owned section and declare the application's
|
|
35
|
+
real Sources file and Prepare/Verify commands. An explicit `custom` connection
|
|
36
|
+
uses its project-defined script instead of `composer` treatment. Do not invent
|
|
37
|
+
a working recipe from the component name.
|
|
38
|
+
- A proven Composer treatment: Prepare writes an untracked derived manifest,
|
|
39
|
+
such as `composer.connected.json`, that adds a first `path` repository
|
|
40
|
+
(`symlink: true`, locked version pinned) for each connected source, copies
|
|
41
|
+
`composer.lock` to the matching derived lock and runs
|
|
42
|
+
`COMPOSER=<derived manifest> composer update <connected packages>`. The
|
|
43
|
+
tracked `composer.json` and `composer.lock` stay unchanged. Verify checks
|
|
44
|
+
`InstalledVersions::getInstallPath()` against each source root.
|
|
45
|
+
|
|
46
|
+
## Connected development
|
|
47
|
+
|
|
48
|
+
- Default package type: `composer`
|
|
31
49
|
|
|
32
50
|
## Deslop
|
|
33
51
|
|
package/stacks/pieces/python.md
CHANGED
|
@@ -28,6 +28,24 @@ Python package, module, callable, dependency, and test conventions.
|
|
|
28
28
|
supplied `extensions.payments` semantics and verify signatures, deduplication,
|
|
29
29
|
entitlement transitions and transactional credits using controlled fixtures.
|
|
30
30
|
Native implementation remains required; guidance is not a working connector.
|
|
31
|
+
- The proposed `## Connected development` section declares Vibe64's default
|
|
32
|
+
connected package type, `pip`. It does not declare repositories or executable
|
|
33
|
+
preparation. When connected development is needed, preserve that default in
|
|
34
|
+
the complete project-owned section and declare the application's real Sources
|
|
35
|
+
file and Prepare/Verify commands. An explicit `custom` connection uses its
|
|
36
|
+
project-defined script instead of `pip` treatment. Do not invent a working
|
|
37
|
+
recipe from the component name.
|
|
38
|
+
- A proven pip treatment: install into an untracked virtual environment in one
|
|
39
|
+
resolution, `pip install -r <requirements> -e <source root>...` (or uv's
|
|
40
|
+
`uv pip install --python .venv/bin/python ...`), so each editable checkout
|
|
41
|
+
satisfies the application's own requirement. Verify that each package's
|
|
42
|
+
PEP 610 `direct_url.json` is editable with the source root's `file:` URL and
|
|
43
|
+
that its modules import from there. Do not use `uv sync`, which needs tracked
|
|
44
|
+
`[tool.uv.sources]` and lockfile changes.
|
|
45
|
+
|
|
46
|
+
## Connected development
|
|
47
|
+
|
|
48
|
+
- Default package type: `pip`
|
|
31
49
|
|
|
32
50
|
## Deslop
|
|
33
51
|
|
package/stacks/pieces/ruby.md
CHANGED
|
@@ -28,6 +28,25 @@ Ruby module, class, callable, dependency, lifecycle, and test conventions.
|
|
|
28
28
|
supplied `extensions.payments` semantics and verify signatures, deduplication,
|
|
29
29
|
entitlement transitions and transactional credits using controlled fixtures.
|
|
30
30
|
Native implementation remains required; guidance is not a working connector.
|
|
31
|
+
- The proposed `## Connected development` section declares Vibe64's default
|
|
32
|
+
connected package type, `bundler`. It does not declare repositories or
|
|
33
|
+
executable preparation. When connected development is needed, preserve that
|
|
34
|
+
default in the complete project-owned section and declare the application's
|
|
35
|
+
real Sources file and Prepare/Verify commands. An explicit `custom` connection
|
|
36
|
+
uses its project-defined script instead of `bundler` treatment. Do not invent
|
|
37
|
+
a working recipe from the component name.
|
|
38
|
+
- A proven Bundler treatment: Prepare writes an untracked `Gemfile.connected`
|
|
39
|
+
that switches each connected gem to `path: <source root>` and then
|
|
40
|
+
`eval_gemfile`s the tracked Gemfile, seeds `Gemfile.connected.lock` from
|
|
41
|
+
`Gemfile.lock`, and selects it with `bundle config set --local gemfile
|
|
42
|
+
Gemfile.connected`. The tracked `Gemfile` and `Gemfile.lock` stay unchanged.
|
|
43
|
+
Launch through `bundle exec` or export `BUNDLE_GEMFILE`: a plain
|
|
44
|
+
`require "bundler/setup"` launch ignores that setting. `local.<gem>` covers
|
|
45
|
+
only git sources. Verify that each spec loads from its source root.
|
|
46
|
+
|
|
47
|
+
## Connected development
|
|
48
|
+
|
|
49
|
+
- Default package type: `bundler`
|
|
31
50
|
|
|
32
51
|
## Deslop
|
|
33
52
|
|
package/stacks/pieces/rust.md
CHANGED
|
@@ -28,6 +28,24 @@ Rust module, public item, ownership, error, async, Cargo, and test conventions.
|
|
|
28
28
|
supplied `extensions.payments` semantics and verify signatures, deduplication,
|
|
29
29
|
entitlement transitions and transactional credits using controlled fixtures.
|
|
30
30
|
Native implementation remains required; guidance is not a working connector.
|
|
31
|
+
- The proposed `## Connected development` section declares Vibe64's default
|
|
32
|
+
connected package type, `cargo`. It does not declare repositories or
|
|
33
|
+
executable preparation. When connected development is needed, preserve that
|
|
34
|
+
default in the complete project-owned section and declare the application's
|
|
35
|
+
real Sources file and Prepare/Verify commands. An explicit `custom` connection
|
|
36
|
+
uses its project-defined script instead of `cargo` treatment. Do not invent a
|
|
37
|
+
working recipe from the component name.
|
|
38
|
+
- A proven Cargo treatment: Prepare writes an untracked, ignored
|
|
39
|
+
`.cargo/config.toml` with `[patch.crates-io]` (or `[patch."<git url>"]`)
|
|
40
|
+
`<crate> = { path = "<source root>" }` and `resolver.lockfile-path` pointing
|
|
41
|
+
at an untracked copy of `Cargo.lock`; a patch otherwise rewrites the tracked
|
|
42
|
+
lockfile. This requires Cargo 1.97 or later. Verify with
|
|
43
|
+
`cargo metadata --locked` that each crate resolves from its source root with
|
|
44
|
+
no registry source, then `cargo build --locked`.
|
|
45
|
+
|
|
46
|
+
## Connected development
|
|
47
|
+
|
|
48
|
+
- Default package type: `cargo`
|
|
31
49
|
|
|
32
50
|
## Deslop
|
|
33
51
|
|
package/stacks/pieces/shell.md
CHANGED
|
@@ -28,6 +28,11 @@ Shell script function, process, environment, portability, and test conventions.
|
|
|
28
28
|
supplied `extensions.payments` semantics and verify signatures, deduplication,
|
|
29
29
|
entitlement transitions and transactional credits using controlled fixtures.
|
|
30
30
|
Native implementation remains required; guidance is not a working connector.
|
|
31
|
+
- This component has no package-ecosystem default and proposes no
|
|
32
|
+
`## Connected development` section. A connection it consumes should use an
|
|
33
|
+
explicit `custom` type with a project-defined script. When a project selects
|
|
34
|
+
several languages, its own complete `## Connected development` section
|
|
35
|
+
chooses the one default.
|
|
31
36
|
|
|
32
37
|
## Deslop
|
|
33
38
|
|