create-loomstack-app 0.0.3 → 0.0.4

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
@@ -17,22 +17,29 @@ pnpm loomstack init
17
17
 
18
18
  Use `pnpm loomstack init --no-start` to initialize without starting Docker, or `pnpm loomstack init --skip-install` when dependencies are managed separately.
19
19
 
20
- ## Create your first feature
20
+ ## Build your first feature with a coding agent
21
+
22
+ Open the initialized project in your preferred coding agent—for example, Claude Code:
21
23
 
22
24
  ```bash
23
- pnpm loomstack create feature people --json
24
- pnpm loomstack context feature people --json
25
+ claude
26
+ # or: codex
27
+ # or: pi
25
28
  ```
26
29
 
27
- Then describe the product behavior to your coding agent:
30
+ Then describe the product behavior you want:
28
31
 
29
32
  ```text
30
- Implement the people feature. Users can create people with a name and optional
31
- job title, list only their own people newest-first, and open the list at /people.
32
- Read AGENTS.md first. Generate, verify, and test before finishing.
33
+ Read the root AGENTS.md first. Create a new feature named weather using the
34
+ canonical LoomStack workflow, then read the feature-local AGENTS.md before
35
+ editing it. Build a weather app with a UI where users enter a location. Query
36
+ a free online weather API that requires no paid account, persist each requested
37
+ weather response in PostgreSQL, and let users view the returned weather and
38
+ previous searches. Keep API and database access out of the UI. Generate,
39
+ verify, and test the feature before finishing.
33
40
  ```
34
41
 
35
- LoomStack gives the agent a deterministic context edit generate verify test workflow and keeps product behavior in canonical feature slices.
42
+ The agent will use LoomStack's structured context, scaffold the feature, edit only canonical authored files, regenerate wiring, and verify the result. LoomStack keeps product behavior in feature slices while generated files contain wiring only.
36
43
 
37
44
  ## What gets created
38
45
 
@@ -677,7 +677,7 @@ function appTemplateFiles(appName) {
677
677
  return {
678
678
  "package.json": `${JSON.stringify({
679
679
  name: appName,
680
- version: "0.0.2",
680
+ version: "0.0.4",
681
681
  private: true,
682
682
  type: "module",
683
683
  packageManager: "pnpm@11.11.0",
@@ -694,10 +694,10 @@ function appTemplateFiles(appName) {
694
694
  build: "pnpm generate && pnpm -r --filter './apps/*' build"
695
695
  },
696
696
  devDependencies: {
697
- "@loomstack/cli": "^0.0.2",
698
- "@loomstack/react": "^0.0.2",
699
- "@loomstack/runtime": "^0.0.2",
700
- "@loomstack/postgres": "^0.0.2",
697
+ "@loomstack/cli": "^0.0.4",
698
+ "@loomstack/react": "^0.0.4",
699
+ "@loomstack/runtime": "^0.0.4",
700
+ "@loomstack/postgres": "^0.0.4",
701
701
  "@types/node": "^24.0.0",
702
702
  "@types/react": "^19.0.0",
703
703
  "@types/react-dom": "^19.0.0",
@@ -931,13 +931,13 @@ volumes:
931
931
  "features/.gitkeep": "",
932
932
  "apps/web/package.json": `${JSON.stringify({
933
933
  name: `@${appName}/web`,
934
- version: "0.0.2",
934
+ version: "0.0.4",
935
935
  private: true,
936
936
  type: "module",
937
937
  scripts: { dev: "vite", build: "vite build" },
938
938
  dependencies: {
939
- "@loomstack/react": "^0.0.2",
940
- "@loomstack/runtime": "^0.0.2",
939
+ "@loomstack/react": "^0.0.4",
940
+ "@loomstack/runtime": "^0.0.4",
941
941
  "@vitejs/plugin-react": "^6.0.3",
942
942
  react: "^19.2.7",
943
943
  "react-dom": "^19.2.7",
@@ -996,14 +996,14 @@ export default defineConfig({
996
996
  `,
997
997
  "apps/api/package.json": `${JSON.stringify({
998
998
  name: `@${appName}/api`,
999
- version: "0.0.2",
999
+ version: "0.0.4",
1000
1000
  private: true,
1001
1001
  type: "module",
1002
1002
  scripts: { dev: "tsx watch src/server.ts", build: "tsup src/server.ts --format esm --clean" },
1003
1003
  dependencies: {
1004
- "@loomstack/koa": "^0.0.2",
1005
- "@loomstack/runtime": "^0.0.2",
1006
- "@loomstack/postgres": "^0.0.2",
1004
+ "@loomstack/koa": "^0.0.4",
1005
+ "@loomstack/runtime": "^0.0.4",
1006
+ "@loomstack/postgres": "^0.0.4",
1007
1007
  koa: "^3.2.1",
1008
1008
  "koa-bodyparser": "^4.4.1"
1009
1009
  },
@@ -1065,7 +1065,7 @@ function createApp(parentInput, appName) {
1065
1065
  throw new GeneratorFailure([frameworkError("loomstack5002", { message: `Target directory already exists: ${appName}.`, file: appName })]);
1066
1066
  }
1067
1067
  mkdirSync3(root, { recursive: false });
1068
- return renderApp(root, appName, [`cd ${appName}`, "pnpm install", "loomstack init"]);
1068
+ return renderApp(root, appName, [`cd ${appName}`, "pnpm install", "pnpm loomstack init"]);
1069
1069
  }
1070
1070
 
1071
1071
  // src/index.ts
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runCreateLoomStackApp
4
- } from "./chunk-PJ2RR44E.js";
4
+ } from "./chunk-7TBRLYYV.js";
5
5
 
6
6
  // src/cli.ts
7
7
  process.exitCode = runCreateLoomStackApp(process.argv.slice(2));
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runCreateLoomStackApp
3
- } from "./chunk-PJ2RR44E.js";
3
+ } from "./chunk-7TBRLYYV.js";
4
4
  export {
5
5
  runCreateLoomStackApp
6
6
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-loomstack-app",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "description": "Create a full-stack loomstack application",
5
5
  "type": "module",
6
6
  "bin": {
@@ -20,7 +20,7 @@
20
20
  "yaml": "^2.9.0"
21
21
  },
22
22
  "devDependencies": {
23
- "@loomstack/generator": "0.0.2"
23
+ "@loomstack/generator": "0.0.4"
24
24
  },
25
25
  "engines": {
26
26
  "node": ">=22.0.0"