genesis-stack 1.1.5 → 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 CHANGED
@@ -68,3 +68,43 @@ project's complete reviewed section wins; a catalog upgrade never rewrites it.
68
68
  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
+
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
106
+ proposal, Genesis reports `STACK_PROJECT_CONTRACTS_INCOMPLETE` if the project
107
+ section is missing. Explicitly reconcile the already-selected Stack with
108
+ `genesis stack add <component>`, then review the materialized contract. Older project
109
+ formats use the normal `genesis migrate` workflow. Catalog updates never install
110
+ a hidden runtime default or rewrite an existing project section.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "genesis-stack",
3
- "version": "1.1.5",
3
+ "version": "1.2.0",
4
4
  "description": "The optional curated technology Stack catalog for Genesis projects.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -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
 
@@ -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
 
@@ -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
 
@@ -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
 
@@ -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
 
@@ -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,
@@ -28,6 +28,19 @@ 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
+ - The proposed `## Connected development` section declares Vibe64's default
32
+ connected package type, `npm`. 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 source
35
+ map, preparation and verification commands. An explicit `custom` connection
36
+ uses its project-defined script instead of npm treatment. Do not invent a
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.
31
44
 
32
45
  ## Adoption
33
46
 
@@ -63,6 +76,10 @@ Node.js package, command, module, dependency, and test conventions.
63
76
  estimate for the same process tree. Host measurements and owner limits stay
64
77
  in runtime-local state, not in this source contract.
65
78
 
79
+ ## Connected development
80
+
81
+ - Default package type: `npm`
82
+
66
83
  ## Deslop
67
84
 
68
85
  - Preserve the package's existing module system, package manager, public
@@ -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
 
@@ -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
 
@@ -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
 
@@ -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
 
@@ -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