genesis-compiler 1.0.0 → 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.
Files changed (73) hide show
  1. package/.agents/plugins/marketplace.json +20 -0
  2. package/README.md +443 -0
  3. package/bin/genesis.js +15 -0
  4. package/docs/assurance-model.md +26 -0
  5. package/docs/prompt-integration.md +98 -0
  6. package/docs/stack-components.md +304 -0
  7. package/package.json +57 -7
  8. package/plugins/genesis/.codex-plugin/plugin.json +19 -0
  9. package/plugins/genesis/hooks.json +18 -0
  10. package/prompts/blueprint.txt +9 -0
  11. package/prompts/describe.txt +17 -0
  12. package/prompts/deslop.txt +14 -0
  13. package/prompts/program.txt +12 -0
  14. package/prompts/reconcile.txt +12 -0
  15. package/prompts/review.txt +12 -0
  16. package/prompts/start.txt +30 -0
  17. package/prompts/work.txt +28 -0
  18. package/skills/genesis-deslop/SKILL.md +36 -0
  19. package/skills/genesis-deslop/agents/openai.yaml +4 -0
  20. package/skills/genesis-program/SKILL.md +66 -0
  21. package/skills/genesis-program/agents/openai.yaml +4 -0
  22. package/skills/genesis-project/SKILL.md +53 -0
  23. package/skills/genesis-project/agents/openai.yaml +4 -0
  24. package/src/cli.js +276 -0
  25. package/src/index/agent-skills.js +425 -0
  26. package/src/index/assets.js +19 -0
  27. package/src/index/blueprint.js +38 -0
  28. package/src/index/check.js +102 -0
  29. package/src/index/code-index.js +283 -0
  30. package/src/index/code-indexers/ast-grep.js +414 -0
  31. package/src/index/codex-hooks.js +367 -0
  32. package/src/index/codex-plugin.js +73 -0
  33. package/src/index/context.js +137 -0
  34. package/src/index/environment-files.js +19 -0
  35. package/src/index/errors.js +26 -0
  36. package/src/index/git.js +26 -0
  37. package/src/index/init.js +48 -0
  38. package/src/index/launch.js +34 -0
  39. package/src/index/paths.js +10 -0
  40. package/src/index/process.js +89 -0
  41. package/src/index/program.js +181 -0
  42. package/src/index/project-files.js +24 -0
  43. package/src/index/project-state.js +87 -0
  44. package/src/index/prompt.js +347 -0
  45. package/src/index/stack-catalog.js +72 -0
  46. package/src/index/stack-command.js +65 -0
  47. package/src/index/stack-composition.js +38 -0
  48. package/src/index/stack-environment-files.js +83 -0
  49. package/src/index/stack-launch.js +428 -0
  50. package/src/index/stack-piece.js +283 -0
  51. package/src/index/stack-preflight.js +25 -0
  52. package/src/index/stack-process.js +25 -0
  53. package/src/index/stack-workspace-setup.js +129 -0
  54. package/src/index/stack.js +302 -0
  55. package/src/index/utils.js +85 -0
  56. package/src/index/verification.js +77 -0
  57. package/src/index/workspace-setup.js +55 -0
  58. package/src/index.js +102 -0
  59. package/stacks/pieces/cpp.md +22 -0
  60. package/stacks/pieces/csharp.md +22 -0
  61. package/stacks/pieces/go.md +22 -0
  62. package/stacks/pieces/java.md +22 -0
  63. package/stacks/pieces/jskit-mysql.md +37 -0
  64. package/stacks/pieces/jskit.md +70 -0
  65. package/stacks/pieces/kotlin.md +22 -0
  66. package/stacks/pieces/mysql.md +18 -0
  67. package/stacks/pieces/nodejs.md +25 -0
  68. package/stacks/pieces/php.md +23 -0
  69. package/stacks/pieces/python.md +23 -0
  70. package/stacks/pieces/ruby.md +22 -0
  71. package/stacks/pieces/rust.md +22 -0
  72. package/stacks/pieces/shell.md +23 -0
  73. package/stacks/pieces/vue.md +19 -0
@@ -0,0 +1,22 @@
1
+ # Stack piece: java
2
+
3
+ ## Description
4
+
5
+ Java package, public type, dependency, lifecycle, and test conventions.
6
+
7
+ ## Requires
8
+
9
+ - Nothing.
10
+
11
+ ## Indexers
12
+
13
+ - `java`
14
+
15
+ ## Deslop
16
+
17
+ - Preserve established packages, public interfaces, dependency injection,
18
+ lifecycle ownership, checked-error policy, and build-tool conventions.
19
+ - Keep private helpers with their owning class. Consolidate repeated mapping,
20
+ validation, and resource handling at an existing service or domain boundary.
21
+ - Remove empty facades, single-implementation abstractions, and builder or DTO
22
+ layers that do not protect a real public or compatibility boundary.
@@ -0,0 +1,37 @@
1
+ # Stack piece: jskit-mysql
2
+
3
+ ## Description
4
+
5
+ JSKIT MySQL runtime, live-schema CRUD generation, and persistence conventions.
6
+
7
+ ## Requires
8
+
9
+ - `jskit`
10
+ - `mysql`
11
+
12
+ ## Resources
13
+
14
+ ```json genesis-resource
15
+ {
16
+ "id": "database",
17
+ "environmentAlternatives": [
18
+ {
19
+ "required": ["DATABASE_URL"]
20
+ },
21
+ {
22
+ "required": ["DB_CLIENT", "DB_HOST", "DB_PORT", "DB_NAME", "DB_USER", "DB_PASSWORD"],
23
+ "allowEmpty": ["DB_PASSWORD"]
24
+ }
25
+ ]
26
+ }
27
+ ```
28
+
29
+ ## Deslop
30
+
31
+ - Use the installed JSKIT database runtime and generated resource/repository
32
+ seams; do not add a second client, connection factory, CRUD transport, or
33
+ file-persistence fallback.
34
+ - Keep environment normalization, transactions, row mapping, and database
35
+ error translation at one established persistence boundary.
36
+ - Never compete with or rewrite a generator-owned baseline migration. Preserve
37
+ retained migration history and data semantics.
@@ -0,0 +1,70 @@
1
+ # Stack piece: jskit
2
+
3
+ ## Description
4
+
5
+ JSKIT application creation, package generators, Vue surfaces, app-owned
6
+ generated files, and runtime composition.
7
+
8
+ ## Requires
9
+
10
+ - `nodejs`
11
+
12
+ ## Skill
13
+
14
+ - Package: `@jskit-ai/agent-docs`
15
+ - Path: `skills/jskit`
16
+
17
+ ## Guidance
18
+
19
+ - Before creating or modifying JSKIT Vue/Vuetify UI, load the installed
20
+ `jskit` Agent Skill and read its `references/material-3.md` completely.
21
+ - Implement Material 3 through JSKIT generators, shared screens, shell and
22
+ placement seams, app-owned theme configuration, and supported Vuetify APIs.
23
+ - Use geometry-preserving Material skeletons for all user-visible loading;
24
+ never use a generic spinner or circular progress indicator, or let content
25
+ jump when data arrives. Actions use stable disabled/pending labels.
26
+ - Keep resource-load and field errors in context, but route transient
27
+ user-command failures through JSKIT's shared non-layout-shifting action
28
+ feedback/snackbar path.
29
+
30
+ ## Workspace setup
31
+
32
+ - Prepare `Install dependencies` with `nodejs` when `package.json` exists: `npm` `install`
33
+
34
+ ## Environment files
35
+
36
+ - Dotenv `.env`
37
+
38
+ ## Launch
39
+
40
+ ### Target `app`: Run app
41
+
42
+ - Default.
43
+ - Preferred port: `3000`
44
+ - URL path: `/`
45
+ - Runtimes: `nodejs`
46
+ - Prepare `Build`: `npm` `run` `build`
47
+ - Serve `Start`: `npm` `start`
48
+
49
+ ## Deslop
50
+
51
+ - For every affected JSKIT screen, load the installed `jskit` Agent Skill,
52
+ read `references/material-3.md`, and execute its Material 3 audit.
53
+ - Use JSKIT generators, packages, resources, composables, screens, and
54
+ placement seams instead of parallel framework plumbing.
55
+ - Treat generated output as app-owned and customizable. Adapt routes,
56
+ placements, and infrastructure tests coherently; when replacing a starter
57
+ route, update its baseline browser coverage instead of deleting it.
58
+ - Consolidate repeated validation, pending/error state, API access, and page
59
+ behavior at the generated shared resource or established JSKIT seam.
60
+ - Replace transient command-error alerts that shift page content with the
61
+ established JSKIT action feedback/snackbar seam; preserve stable in-page
62
+ resource-load errors, retry states, and field validation.
63
+ - Replace generic in-content spinners with Material skeletons that reserve the
64
+ final layout, and verify that loading completion does not shift content.
65
+ - Remove pass-through wrappers and abandoned scaffold code only when doing so
66
+ preserves routes, placements, baseline tests, and observable behavior.
67
+
68
+ ## Commands
69
+
70
+ - Verify `application`: `npm` `run` `verify`
@@ -0,0 +1,22 @@
1
+ # Stack piece: kotlin
2
+
3
+ ## Description
4
+
5
+ Kotlin package, public callable, coroutine, nullability, build, and test conventions.
6
+
7
+ ## Requires
8
+
9
+ - Nothing.
10
+
11
+ ## Indexers
12
+
13
+ - `kotlin`
14
+
15
+ ## Deslop
16
+
17
+ - Preserve package visibility, nullability, coroutine ownership, public types,
18
+ dependency injection, and Gradle or multiplatform conventions.
19
+ - Keep private functions near their caller. Consolidate repeated mapping,
20
+ validation, state, and error translation at an existing boundary.
21
+ - Remove redundant extension functions, wrappers, sealed hierarchies, and
22
+ generic layers that do not make the domain or lifecycle clearer.
@@ -0,0 +1,18 @@
1
+ # Stack piece: mysql
2
+
3
+ ## Description
4
+
5
+ MySQL persistence and migration conventions.
6
+
7
+ ## Requires
8
+
9
+ - Nothing.
10
+
11
+ ## Deslop
12
+
13
+ - Keep connection configuration, transaction ownership, and database error
14
+ translation at one persistence boundary.
15
+ - Use the selected integration's client and migration lifecycle instead of
16
+ adding parallel connection factories or schema-management code.
17
+ - Preserve migration history and data semantics. Deslop is not permission for
18
+ destructive schema changes.
@@ -0,0 +1,25 @@
1
+ # Stack piece: nodejs
2
+
3
+ ## Description
4
+
5
+ Node.js package, command, module, dependency, and test conventions.
6
+
7
+ ## Requires
8
+
9
+ - Nothing.
10
+
11
+ ## Indexers
12
+
13
+ - `javascript`
14
+
15
+ ## Deslop
16
+
17
+ - Preserve the package's existing module system, package manager, public
18
+ exports, registered commands, and supported runtime.
19
+ - Prefer direct modules and Node.js built-ins over wrappers that merely rename
20
+ an operation.
21
+ - Keep single-consumer helpers private and close to their caller. Consolidate
22
+ repeated argument, path, serialization, error, and process-lifecycle logic
23
+ only when one clear shared operation exists.
24
+ - Make subprocess, listener, timer, and cleanup ownership obvious. Remove dead
25
+ entrypoints and duplicate public exports instead of maintaining aliases.
@@ -0,0 +1,23 @@
1
+ # Stack piece: php
2
+
3
+ ## Description
4
+
5
+ PHP package, namespace, callable, dependency, and test conventions.
6
+
7
+ ## Requires
8
+
9
+ - Nothing.
10
+
11
+ ## Indexers
12
+
13
+ - `php`
14
+
15
+ ## Deslop
16
+
17
+ - Preserve established namespaces, package boundaries, public interfaces,
18
+ framework lifecycle, dependency injection, and Composer conventions.
19
+ - Keep private and protected helpers close to their owning class. Consolidate
20
+ repeated request, validation, mapping, and persistence behavior at the
21
+ existing application seam rather than adding generic utility layers.
22
+ - Remove abandoned service wrappers, duplicated facades, and aliases that do
23
+ not protect a real compatibility boundary.
@@ -0,0 +1,23 @@
1
+ # Stack piece: python
2
+
3
+ ## Description
4
+
5
+ Python package, module, callable, dependency, and test conventions.
6
+
7
+ ## Requires
8
+
9
+ - Nothing.
10
+
11
+ ## Indexers
12
+
13
+ - `python`
14
+
15
+ ## Deslop
16
+
17
+ - Preserve established package boundaries, public imports, typing style,
18
+ dependency injection, and synchronous or asynchronous execution conventions.
19
+ - Keep single-consumer helpers private and close to their caller. Consolidate
20
+ repeated validation, serialization, resource lifetime, and error translation
21
+ only at one clear existing seam.
22
+ - Remove pass-through modules, speculative base classes, and utility wrappers
23
+ that merely rename standard Python or framework operations.
@@ -0,0 +1,22 @@
1
+ # Stack piece: ruby
2
+
3
+ ## Description
4
+
5
+ Ruby module, class, callable, dependency, lifecycle, and test conventions.
6
+
7
+ ## Requires
8
+
9
+ - Nothing.
10
+
11
+ ## Indexers
12
+
13
+ - `ruby`
14
+
15
+ ## Deslop
16
+
17
+ - Preserve established modules, public entry points, dependency boundaries,
18
+ lifecycle callbacks, and Bundler and test conventions.
19
+ - Keep private methods with their owning class or module. Consolidate repeated
20
+ coercion, validation, persistence, and error handling at an existing seam.
21
+ - Remove forwarding objects, metaprogramming, concerns, and service layers that
22
+ obscure a direct operation without protecting a real shared boundary.
@@ -0,0 +1,22 @@
1
+ # Stack piece: rust
2
+
3
+ ## Description
4
+
5
+ Rust module, public item, ownership, error, async, Cargo, and test conventions.
6
+
7
+ ## Requires
8
+
9
+ - Nothing.
10
+
11
+ ## Indexers
12
+
13
+ - `rust`
14
+
15
+ ## Deslop
16
+
17
+ - Preserve module visibility, ownership and borrowing, error types, feature
18
+ gates, async runtime boundaries, and Cargo workspace conventions.
19
+ - Keep private functions near their callers. Consolidate repeated conversion,
20
+ validation, and resource cleanup only when one ownership model remains clear.
21
+ - Remove needless traits, boxes, clones, wrapper types, and generic layers that
22
+ do not protect a real semantic or compatibility boundary.
@@ -0,0 +1,23 @@
1
+ # Stack piece: shell
2
+
3
+ ## Description
4
+
5
+ Shell script function, process, environment, portability, and test conventions.
6
+
7
+ ## Requires
8
+
9
+ - Nothing.
10
+
11
+ ## Indexers
12
+
13
+ - `shell`
14
+
15
+ ## Deslop
16
+
17
+ - Preserve the script's supported shell, command-line contract, environment
18
+ semantics, quoting rules, exit statuses, and process ownership.
19
+ - Keep private functions close to their callers. Consolidate repeated argument
20
+ parsing, validation, cleanup, and command execution only at a clear script or
21
+ sourced-library boundary.
22
+ - Remove needless command wrappers, subshells, pipelines, aliases, and dynamic
23
+ evaluation that obscure a direct, safely quoted operation.
@@ -0,0 +1,19 @@
1
+ # Stack piece: vue
2
+
3
+ ## Description
4
+
5
+ Vue component, reactive state, resource hydration, routing, and screen-state conventions.
6
+
7
+ ## Requires
8
+
9
+ - `nodejs`
10
+
11
+ ## Guidance
12
+
13
+ ### Reactive state hydration
14
+
15
+ - Cached query/resource data and route state may already exist when a component is created. Never rely on a default lazy `watch()` to initialize writable UI state.
16
+ - Prefer a computed source of truth. When local writable state is necessary, initialize it synchronously and use `{ immediate: true }` for watchers that hydrate or validate from resource data, query results, props, or `route.query`.
17
+ - Keep genuinely change-only watchers non-immediate.
18
+ - Persist user-selected filters and screen context in the URL when they must survive navigation.
19
+ - Test stateful screens by navigating away and back with a warm query cache, including browser back/forward navigation.