@cloudgrid-io/mcp 0.20.13 → 0.20.15

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 (93) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/src/corpus/cli-reference.md +4 -4
  4. package/src/corpus/cloudgrid-yaml.md +3 -2
  5. package/src/corpus/cookbook.md +7 -4
  6. package/src/corpus/skill-init.md +21 -17
  7. package/src/corpus/templates/ai-knowledge-base/AGENTS.md +6 -5
  8. package/src/corpus/templates/ai-knowledge-base/index.md +2 -1
  9. package/src/corpus/templates/appointment-booking/AGENTS.md +4 -3
  10. package/src/corpus/templates/approval-workflow/AGENTS.md +4 -3
  11. package/src/corpus/templates/billing-dashboard/AGENTS.md +3 -4
  12. package/src/corpus/templates/billing-dashboard/index.md +3 -2
  13. package/src/corpus/templates/booking-system/AGENTS.md +3 -4
  14. package/src/corpus/templates/booking-system/index.md +2 -2
  15. package/src/corpus/templates/calendar-scheduler/AGENTS.md +6 -5
  16. package/src/corpus/templates/calendar-scheduler/index.md +2 -1
  17. package/src/corpus/templates/course-platform/AGENTS.md +3 -4
  18. package/src/corpus/templates/course-platform/index.md +4 -3
  19. package/src/corpus/templates/erp/AGENTS.md +3 -4
  20. package/src/corpus/templates/erp/README.md +2 -1
  21. package/src/corpus/templates/forum/AGENTS.md +4 -3
  22. package/src/corpus/templates/forum/README.md +2 -1
  23. package/src/corpus/templates/hr-portal/AGENTS.md +4 -5
  24. package/src/corpus/templates/hr-portal/README.md +3 -2
  25. package/src/corpus/templates/hr-portal/index.md +2 -1
  26. package/src/corpus/templates/internal-tools-portal/AGENTS.md +5 -6
  27. package/src/corpus/templates/internal-tools-portal/README.md +2 -2
  28. package/src/corpus/templates/internal-tools-portal/index.md +2 -1
  29. package/src/corpus/templates/lms/AGENTS.md +3 -4
  30. package/src/corpus/templates/lms/index.md +2 -2
  31. package/src/corpus/templates/marketplace/AGENTS.md +5 -5
  32. package/src/corpus/templates/marketplace/index.md +2 -1
  33. package/src/corpus/templates/membership-site/AGENTS.md +4 -3
  34. package/src/corpus/templates/online-store/AGENTS.md +3 -4
  35. package/src/corpus/templates/online-store/index.md +3 -2
  36. package/src/corpus/templates/restaurant-reservations/AGENTS.md +4 -3
  37. package/src/corpus/templates/restaurant-reservations/index.md +2 -2
  38. package/src/corpus/templates/semantic-search/AGENTS.md +3 -2
  39. package/src/corpus/templates/semantic-search/README.md +1 -1
  40. package/src/corpus/templates/semantic-search/index.md +2 -1
  41. package/src/corpus/templates/simple-semantic-search/README.md +5 -4
  42. package/src/corpus/templates/simple-semantic-search/index.md +9 -6
  43. package/src/corpus/templates/subscription-management/AGENTS.md +4 -3
  44. package/src/corpus/templates/travel-booking/AGENTS.md +3 -4
  45. package/src/corpus/templates/travel-booking/index.md +2 -2
  46. package/src/corpus/workflows/admin-dashboard.md +4 -3
  47. package/src/corpus/workflows/ai-app.md +3 -3
  48. package/src/corpus/workflows/ai-knowledge-base.md +5 -3
  49. package/src/corpus/workflows/analytics-dashboard.md +4 -3
  50. package/src/corpus/workflows/api-dashboard.md +4 -3
  51. package/src/corpus/workflows/api-service.md +3 -3
  52. package/src/corpus/workflows/app-with-data.md +3 -3
  53. package/src/corpus/workflows/appointment-booking.md +4 -3
  54. package/src/corpus/workflows/approval-workflow.md +4 -3
  55. package/src/corpus/workflows/billing-dashboard.md +3 -3
  56. package/src/corpus/workflows/blog-cms.md +4 -3
  57. package/src/corpus/workflows/booking-system.md +4 -3
  58. package/src/corpus/workflows/calendar-scheduler.md +5 -3
  59. package/src/corpus/workflows/course-platform.md +4 -3
  60. package/src/corpus/workflows/crm.md +4 -3
  61. package/src/corpus/workflows/directory.md +4 -3
  62. package/src/corpus/workflows/erp.md +4 -3
  63. package/src/corpus/workflows/event-board.md +4 -3
  64. package/src/corpus/workflows/expense-tracker.md +4 -3
  65. package/src/corpus/workflows/feature-request-board.md +4 -3
  66. package/src/corpus/workflows/financial-dashboard.md +4 -3
  67. package/src/corpus/workflows/forum.md +5 -4
  68. package/src/corpus/workflows/hr-portal.md +4 -3
  69. package/src/corpus/workflows/internal-tools-portal.md +4 -3
  70. package/src/corpus/workflows/inventory.md +4 -3
  71. package/src/corpus/workflows/invoice.md +4 -3
  72. package/src/corpus/workflows/job-board.md +4 -3
  73. package/src/corpus/workflows/kanban.md +4 -3
  74. package/src/corpus/workflows/lms.md +4 -3
  75. package/src/corpus/workflows/marketplace.md +5 -3
  76. package/src/corpus/workflows/membership-site.md +4 -3
  77. package/src/corpus/workflows/monitoring-dashboard.md +4 -3
  78. package/src/corpus/workflows/online-store.md +3 -3
  79. package/src/corpus/workflows/product-catalog.md +4 -3
  80. package/src/corpus/workflows/project-management.md +4 -3
  81. package/src/corpus/workflows/property-listings.md +4 -3
  82. package/src/corpus/workflows/quiz-platform.md +4 -3
  83. package/src/corpus/workflows/restaurant-reservations.md +4 -3
  84. package/src/corpus/workflows/revenue-dashboard.md +4 -3
  85. package/src/corpus/workflows/semantic-search.md +5 -3
  86. package/src/corpus/workflows/simple-semantic-search.md +5 -5
  87. package/src/corpus/workflows/subscription-management.md +4 -3
  88. package/src/corpus/workflows/task-manager.md +4 -3
  89. package/src/corpus/workflows/ticket-system.md +4 -3
  90. package/src/corpus/workflows/time-tracking.md +4 -3
  91. package/src/corpus/workflows/travel-booking.md +3 -3
  92. package/src/tools/deploy.js +1 -1
  93. package/src/tools/register.js +11 -11
@@ -34,8 +34,8 @@ grid_get_template("template", "restaurant-reservations") # cloudgrid.yaml + AG
34
34
 
35
35
  Then read `AGENTS.md` (file tree, `menu`/`reservations`/`tables` collections,
36
36
  CloudGrid env/vault/deploy wiring, Stripe + auth, cron shape) and build under
37
- `services/web/`. Deploy: `grid init` → fill → `grid plug` (async — poll to a live
38
- URL). Local edition only.
37
+ `services/web/`. Deploy: `grid plug` (the first plug auto-creates the entity from
38
+ `cloudgrid.yaml`; async — poll to a live URL). Local edition only.
39
39
 
40
40
  ## cloudgrid.yaml (active fields)
41
41
 
@@ -200,9 +200,10 @@ This is a built + deployed multi-service app → the **local edition** (Claude
200
200
  Desktop / Claude Code) or the CLI; the hosted edition cannot build a runtime
201
201
  container.
202
202
 
203
- 1. `grid init semantic-search` — creates the entity + `.cloudgrid/link.json`.
204
- 2. Put the code under `services/web/` and `services/backend/`; set `cloudgrid.yaml`
203
+ 1. Put the code under `services/web/` and `services/backend/`; set `cloudgrid.yaml`
205
204
  to the active fields (web static+build, backend python, `needs:{database:true}`).
205
+ 2. `grid plug --no-deploy` — registers the entity from the manifest (honors its
206
+ `name:`) and writes `.cloudgrid/link.json`, without building yet.
206
207
  3. `grid secrets set …` for embeddings + source + `MANAGER_PASSWORD_HASH` (§6).
207
208
  4. (Optional) `grid dev` to run locally against injected dev Mongo.
208
209
  5. **Build the frontend first:** `(cd services/web && npm install && npm run build)`.
@@ -63,7 +63,7 @@ search / indexing degrade to a clear "not indexed / missing secret" state.
63
63
  ## Deploy (manager does this)
64
64
 
65
65
  ```bash
66
- grid init semantic-search # creates the entity + .cloudgrid/link.json
66
+ grid plug --no-deploy # registers the entity from cloudgrid.yaml + writes .cloudgrid/link.json
67
67
  grid secrets set EMBEDDINGS_API_KEY=sk-... # + source secrets + MANAGER_PASSWORD_HASH
68
68
 
69
69
  # Build the static frontend BEFORE plug — CloudGrid validates that a
@@ -94,7 +94,8 @@ needs:
94
94
 
95
95
  ## Configure + deploy
96
96
 
97
- 1. `grid init semantic-search` — creates the entity + `.cloudgrid/link.json`.
97
+ 1. `grid plug --no-deploy` — registers the entity from `cloudgrid.yaml` (honors
98
+ its `name:`) and writes `.cloudgrid/link.json`, without building yet.
98
99
  2. `grid secrets set EMBEDDINGS_API_KEY=sk-…` plus the source secrets
99
100
  (`SOURCE_TYPE` + Dropbox/local/url config) and `MANAGER_PASSWORD_HASH`
100
101
  (sha256 hex of the manager password). See `AGENTS.md`.
@@ -11,10 +11,11 @@ the platform holds the pod out of traffic until search works.
11
11
 
12
12
  Proven by a real end-to-end deploy (live in under 3 minutes, 2026-07-16).
13
13
 
14
- - Deploy: `grid init app <name> --here`, then `grid plug`.
15
- - The CLI writes `.cloudgrid/link.json` (folder ↔ entity binding) — never
16
- hand-author it; `rm -rf .cloudgrid` + re-init to take a copied folder as your
17
- own app.
14
+ - Deploy: `grid plug` — the first plug auto-creates the entity from
15
+ `cloudgrid.yaml` and deploys it.
16
+ - The CLI writes `.cloudgrid/link.json` (folder ↔ entity binding) on that first
17
+ plug — never hand-author it; `rm -rf .cloudgrid` + re-plug to take a copied
18
+ folder as your own app.
18
19
  - Replace `services/web/src/document.txt` with the content to index.
19
20
  - For a multi-service search portfolio (upload UI + refresh cron), use the
20
21
  `semantic-search` blueprint instead.
@@ -39,7 +39,8 @@ services/web/src/document.txt # the content to index — replace with the
39
39
 
40
40
  ## What the CLI writes for you: `.cloudgrid/link.json`
41
41
 
42
- After `grid init app <name> --here` (or the first `grid plug`), the CLI binds
42
+ On the first `grid plug` (which auto-creates the entity from `cloudgrid.yaml`,
43
+ honoring its `name:`), the CLI binds
43
44
  the folder to its grid entity by writing `.cloudgrid/link.json`. It looks like:
44
45
 
45
46
  ```json
@@ -55,20 +56,22 @@ the folder to its grid entity by writing `.cloudgrid/link.json`. It looks like:
55
56
  ```
56
57
 
57
58
  **Never hand-author or copy this file** — the CLI writes it, and every value is
58
- minted at init time (the slug gets a 4-hex suffix). Two practical consequences:
59
+ minted when the entity is first registered (the slug gets a 4-hex suffix). Two
60
+ practical consequences:
59
61
 
60
62
  - A folder **with** `.cloudgrid/link.json` is bound: `grid plug` UPDATES that
61
63
  entity. To fork someone else's project into your own app, `rm -rf .cloudgrid`
62
- (and remove any `name:` you don't own from `cloudgrid.yaml`), then
63
- `grid init app <your-name> --here` for a fresh identity.
64
+ (and remove any `name:` you don't own from `cloudgrid.yaml`) — the next
65
+ `grid plug` mints a fresh identity.
64
66
  - `link.json` is why identity does NOT belong in `cloudgrid.yaml` — the
65
67
  manifest describes the app; the link binds the folder.
66
68
 
67
69
  ## Deploy
68
70
 
69
71
  ```bash
70
- grid init app <name> --here # once, registers the entity + writes .cloudgrid/link.json
71
- grid plug # build + deploy, async — live URL in ~2-3 min
72
+ grid plug # first plug registers the entity from cloudgrid.yaml
73
+ # + writes .cloudgrid/link.json, then builds + deploys
74
+ # (async — live URL in ~2-3 min)
72
75
  grid visibility set <slug> link # default is grid-only (403 outside the org)
73
76
  ```
74
77
 
@@ -160,9 +160,10 @@ known user — otherwise anyone could change anyone's plan.
160
160
 
161
161
  1. `grid_login_status` → `grid_login` if needed. Respect the grid picker
162
162
  (ask which grid if the user has more than one).
163
- 2. `grid_create_project` an app `<name>` FIRST — it creates the entity, writes
164
- `.cloudgrid/link.json`, and a `cloudgrid.yaml` with empty `services: {}`.
165
- `plug` needs a linked directory.
163
+ 2. `grid_create_project` an app `<name>` — it scaffolds the project folder and
164
+ a `cloudgrid.yaml` with empty `services: {}`. No server entity exists yet —
165
+ the first plug auto-creates it from the manifest (honoring its `name:`) and
166
+ writes `.cloudgrid/link.json`.
166
167
  3. Write the app under `services/web/` and set `cloudgrid.yaml` to the active
167
168
  shape: `name` + `services.web{type: nextjs, path: /}` + `needs:{database:true}`
168
169
  + the `vault:` block.
@@ -152,12 +152,11 @@ webhook signing secret as `STRIPE_WEBHOOK_SECRET`; read both lazily in
152
152
 
153
153
  ## 5. Deploy steps
154
154
 
155
- 1. `grid init` — scaffolds the entity + `.cloudgrid/link.json`; writes a
156
- `cloudgrid.yaml` with an empty `services: {}`. Run this FIRST (plug needs a
157
- linked directory).
158
- 2. Fill it in: build the files under `services/web/` and set `cloudgrid.yaml` to
155
+ 1. Build the files under `services/web/` and set `cloudgrid.yaml` to
159
156
  this template's shape (`services.web` nextjs + `needs: { database: true }` +
160
157
  the `vault:` block).
158
+ 2. `grid plug --no-deploy` — registers the entity from the manifest (honors its
159
+ `name:`) and writes `.cloudgrid/link.json`, without building yet.
161
160
  3. `grid secrets set stripe-live-key <sk_live_…>` and the other vault items
162
161
  (`stripe-webhook-secret`, `auth-provider-key`), so the `vault:` mappings
163
162
  resolve at deploy.
@@ -70,8 +70,8 @@ The heart of this blueprint. Read it before building. It covers:
70
70
  4. **Auth + payments wiring** — provider SDK from `AUTH_PROVIDER_KEY`; Stripe
71
71
  checkout + signature-verified webhook from `STRIPE_KEY` /
72
72
  `STRIPE_WEBHOOK_SECRET`.
73
- 5. **Deploy steps** — `grid init` → fill → `grid secrets set` → `grid plug` →
74
- poll to live.
73
+ 5. **Deploy steps** — write the files → `grid plug --no-deploy` →
74
+ `grid secrets set` → `grid plug` → poll to live.
75
75
  6. **Edition note** — runtime app → local edition only (hosted is static-only).
76
76
  7. **Trip-reminder cron** — intended shape + the platform-issue-#1543 PENDING note
77
77
  and stopgap.
@@ -39,9 +39,10 @@ edition** (Claude Desktop / Claude Code) or the CLI.
39
39
 
40
40
  ## 3. Scaffold
41
41
 
42
- `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
43
- and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
44
- directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**,
42
+ `grid_create_project` an app `<name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
43
+ `services: {}`. No server entity exists yet — the first `grid plug` auto-creates
44
+ it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
45
+ Then (a) write the app under **`services/web/`**,
45
46
  and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
46
47
  { database: true }`).
47
48
 
@@ -41,9 +41,9 @@ Persistent apps are owned entities.
41
41
 
42
42
  ## 3. Scaffold
43
43
 
44
- `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
45
- and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
46
- directory, so run `init` FIRST.
44
+ `grid_create_project` an app `<name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
45
+ `services: {}`. No server entity exists yet — the first `grid plug` auto-creates
46
+ it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
47
47
 
48
48
  You then do two things: (a) write the app under **`services/web/`**, and (b) fill
49
49
  in `cloudgrid.yaml` to the shape below (`services.web` type `nextjs` + `needs: {
@@ -65,9 +65,11 @@ There is no app code to copy — you generate it from the guide.
65
65
 
66
66
  ## 4. Scaffold + fill cloudgrid.yaml
67
67
 
68
- `grid_create_project` an app `<name>` FIRST (creates the entity + `.cloudgrid/link.json`
69
- and a starter `cloudgrid.yaml` with empty `services:{}`; `plug` needs a linked
70
- directory). Then put the app under **`services/web/`** and set `cloudgrid.yaml` to
68
+ `grid_create_project` an app `<name>` — it scaffolds the project folder and a
69
+ starter `cloudgrid.yaml` with empty `services:{}` (no server entity yet; the
70
+ first `grid plug` auto-creates it from the manifest, honoring its `name:`, and
71
+ writes `.cloudgrid/link.json`). Then put the app under **`services/web/`** and
72
+ set `cloudgrid.yaml` to
71
73
  the blueprint's active fields:
72
74
 
73
75
  ```yaml
@@ -40,9 +40,10 @@ edition** (Claude Desktop / Claude Code) or the CLI.
40
40
 
41
41
  ## 3. Scaffold
42
42
 
43
- `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
44
- and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
45
- directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**,
43
+ `grid_create_project` an app `<name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
44
+ `services: {}`. No server entity exists yet — the first `grid plug` auto-creates
45
+ it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
46
+ Then (a) write the app under **`services/web/`**,
46
47
  and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
47
48
  { database: true }`).
48
49
 
@@ -39,9 +39,10 @@ edition** (Claude Desktop / Claude Code) or the CLI.
39
39
 
40
40
  ## 3. Scaffold
41
41
 
42
- `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
43
- and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
44
- directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**,
42
+ `grid_create_project` an app `<name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
43
+ `services: {}`. No server entity exists yet — the first `grid plug` auto-creates
44
+ it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
45
+ Then (a) write the app under **`services/web/`**,
45
46
  and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
46
47
  { database: true }`).
47
48
 
@@ -42,9 +42,9 @@ Persistent services are owned entities.
42
42
 
43
43
  ## 3. Scaffold
44
44
 
45
- `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
46
- and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
47
- directory, so run `init` FIRST.
45
+ `grid_create_project` an app `<name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
46
+ `services: {}`. No server entity exists yet — the first `grid plug` auto-creates
47
+ it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
48
48
 
49
49
  You then do two things: (a) write the service under **`services/api/`**, and (b)
50
50
  fill in `cloudgrid.yaml` to the shape below (`services.api` type `node` + `needs:
@@ -43,9 +43,9 @@ Persistent apps are owned entities.
43
43
 
44
44
  ## 3. Scaffold
45
45
 
46
- `grid_create_project` an app `<name>` (the default `--type` is fine). `init` creates
47
- the entity + `.cloudgrid/link.json` and writes a `cloudgrid.yaml` with an EMPTY
48
- `services: {}`. `plug` needs a linked directory, so run `init` FIRST.
46
+ `grid_create_project` an app `<name>` (the default `--type` is fine). It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
47
+ `services: {}`. No server entity exists yet — the first `grid plug` auto-creates
48
+ it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
49
49
 
50
50
  You then do two things: (a) write the app under **`services/web/`**, and (b) fill
51
51
  in `cloudgrid.yaml` to the shape below (`services.web` + `needs: { database: true }`).
@@ -54,9 +54,10 @@ workflow:
54
54
 
55
55
  ## 4. Scaffold
56
56
 
57
- `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
58
- and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
59
- directory, so run `init` FIRST. Then write the app under **`services/web/`** and
57
+ `grid_create_project` an app `<name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
58
+ `services: {}`. No server entity exists yet — the first `grid plug` auto-creates
59
+ it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
60
+ Then write the app under **`services/web/`** and
60
61
  set `cloudgrid.yaml` to the active shape below.
61
62
 
62
63
  ## 5. Build the app following AGENTS.md
@@ -55,9 +55,10 @@ route, server page).
55
55
 
56
56
  ## 4. Scaffold
57
57
 
58
- `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
59
- and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
60
- directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**
58
+ `grid_create_project` an app `<name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
59
+ `services: {}`. No server entity exists yet — the first `grid plug` auto-creates
60
+ it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
61
+ Then (a) write the app under **`services/web/`**
61
62
  following `AGENTS.md`, and (b) fill `cloudgrid.yaml` to the shape below.
62
63
 
63
64
  ## 5. Build the app + wire Mongo
@@ -43,9 +43,9 @@ A persistent billing dashboard is a built + deployed container. It requires the
43
43
 
44
44
  ## 3. Scaffold
45
45
 
46
- `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
47
- and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
48
- directory, so run `init` FIRST.
46
+ `grid_create_project` an app `<name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
47
+ `services: {}`. No server entity exists yet — the first `grid plug` auto-creates
48
+ it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
49
49
 
50
50
  ## 4. Fetch the blueprint and read AGENTS.md
51
51
 
@@ -39,9 +39,10 @@ edition** (Claude Desktop / Claude Code) or the CLI.
39
39
 
40
40
  ## 3. Scaffold
41
41
 
42
- `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
43
- and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
44
- directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**,
42
+ `grid_create_project` an app `<name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
43
+ `services: {}`. No server entity exists yet — the first `grid plug` auto-creates
44
+ it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
45
+ Then (a) write the app under **`services/web/`**,
45
46
  and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
46
47
  { database: true }`).
47
48
 
@@ -52,9 +52,10 @@ edition** (Claude Desktop / Claude Code) or the CLI.
52
52
  `services` / `availabilityRules` / `bookings` collections + the double-booking
53
53
  guard, how CloudGrid injects the DB and vault secrets, how to wire Stripe +
54
54
  auth, and the reminder-cron design).
55
- 2. `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
56
- and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a
57
- linked directory, so run `init` FIRST.
55
+ 2. `grid_create_project` an app `<name>`. It scaffolds the project folder and
56
+ writes a `cloudgrid.yaml` with an EMPTY `services: {}`. No server entity
57
+ exists yet — the first `grid plug` auto-creates it from the manifest
58
+ (honoring its `name:`) and writes `.cloudgrid/link.json`.
58
59
 
59
60
  ## 4. Build the app + set cloudgrid.yaml
60
61
 
@@ -56,9 +56,11 @@ There is no app code to copy — you generate it from the guide.
56
56
 
57
57
  ## 4. Scaffold + fill cloudgrid.yaml
58
58
 
59
- `grid_create_project` an app `<name>` FIRST (creates the entity + `.cloudgrid/link.json`
60
- and a starter `cloudgrid.yaml` with empty `services:{}`; `plug` needs a linked
61
- directory). Then put the app under **`services/web/`** and set `cloudgrid.yaml` to
59
+ `grid_create_project` an app `<name>` — it scaffolds the project folder and a
60
+ starter `cloudgrid.yaml` with empty `services:{}` (no server entity yet; the
61
+ first `grid plug` auto-creates it from the manifest, honoring its `name:`, and
62
+ writes `.cloudgrid/link.json`). Then put the app under **`services/web/`** and
63
+ set `cloudgrid.yaml` to
62
64
  the blueprint's active fields:
63
65
 
64
66
  ```yaml
@@ -57,9 +57,10 @@ contains AGENTS.md — the CloudGrid-specific spec you must follow:
57
57
 
58
58
  ## 4. Scaffold + fill cloudgrid.yaml
59
59
 
60
- `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
61
- and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. Run `init` FIRST —
62
- `plug` needs a linked directory. Then set `cloudgrid.yaml` to the shape below and
60
+ `grid_create_project` an app `<name>`. It scaffolds the project folder and writes
61
+ a `cloudgrid.yaml` with an EMPTY `services: {}`. No server entity exists yet —
62
+ the first `grid plug` auto-creates it from the manifest (honoring its `name:`)
63
+ and writes `.cloudgrid/link.json`. Then set `cloudgrid.yaml` to the shape below and
63
64
  write the app under **`services/web/`** (`path: /` is the URL mount, NOT the
64
65
  filesystem path).
65
66
 
@@ -38,9 +38,10 @@ edition** (Claude Desktop / Claude Code) or the CLI.
38
38
 
39
39
  ## 3. Scaffold
40
40
 
41
- `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
42
- and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
43
- directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**,
41
+ `grid_create_project` an app `<name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
42
+ `services: {}`. No server entity exists yet — the first `grid plug` auto-creates
43
+ it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
44
+ Then (a) write the app under **`services/web/`**,
44
45
  and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
45
46
  { database: true }`).
46
47
 
@@ -39,9 +39,10 @@ edition** (Claude Desktop / Claude Code) or the CLI.
39
39
 
40
40
  ## 3. Scaffold
41
41
 
42
- `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
43
- and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
44
- directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**,
42
+ `grid_create_project` an app `<name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
43
+ `services: {}`. No server entity exists yet — the first `grid plug` auto-creates
44
+ it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
45
+ Then (a) write the app under **`services/web/`**,
45
46
  and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
46
47
  { database: true }`).
47
48
 
@@ -56,9 +56,10 @@ all four at once.
56
56
 
57
57
  ## 4. Scaffold
58
58
 
59
- `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
60
- and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
61
- directory, so run `init` FIRST. Then (a) build the app under **`services/web/`**
59
+ `grid_create_project` an app `<name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
60
+ `services: {}`. No server entity exists yet — the first `grid plug` auto-creates
61
+ it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
62
+ Then (a) build the app under **`services/web/`**
62
63
  following `AGENTS.md`, and (b) fill `cloudgrid.yaml` to the shape below.
63
64
 
64
65
  ## 5. Build the app + set cloudgrid.yaml
@@ -38,9 +38,10 @@ edition** (Claude Desktop / Claude Code) or the CLI.
38
38
 
39
39
  ## 3. Scaffold
40
40
 
41
- `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
42
- and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
43
- directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**,
41
+ `grid_create_project` an app `<name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
42
+ `services: {}`. No server entity exists yet — the first `grid plug` auto-creates
43
+ it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
44
+ Then (a) write the app under **`services/web/`**,
44
45
  and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
45
46
  { database: true }`).
46
47
 
@@ -38,9 +38,10 @@ edition** (Claude Desktop / Claude Code) or the CLI.
38
38
 
39
39
  ## 3. Scaffold
40
40
 
41
- `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
42
- and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
43
- directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**,
41
+ `grid_create_project` an app `<name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
42
+ `services: {}`. No server entity exists yet — the first `grid plug` auto-creates
43
+ it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
44
+ Then (a) write the app under **`services/web/`**,
44
45
  and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
45
46
  { database: true }`).
46
47
 
@@ -39,9 +39,10 @@ edition** (Claude Desktop / Claude Code) or the CLI.
39
39
 
40
40
  ## 3. Scaffold
41
41
 
42
- `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
43
- and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
44
- directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**,
42
+ `grid_create_project` an app `<name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
43
+ `services: {}`. No server entity exists yet — the first `grid plug` auto-creates
44
+ it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
45
+ Then (a) write the app under **`services/web/`**,
45
46
  and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
46
47
  { database: true }`).
47
48
 
@@ -39,9 +39,10 @@ edition** (Claude Desktop / Claude Code) or the CLI.
39
39
 
40
40
  ## 3. Scaffold
41
41
 
42
- `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
43
- and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
44
- directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**,
42
+ `grid_create_project` an app `<name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
43
+ `services: {}`. No server entity exists yet — the first `grid plug` auto-creates
44
+ it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
45
+ Then (a) write the app under **`services/web/`**,
45
46
  and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
46
47
  { database: true }`).
47
48
 
@@ -62,10 +62,11 @@ edition** (Claude Desktop / Claude Code) or the CLI.
62
62
  `AGENTS.md` — it defines the file tree, the `threads` / `posts` / `users`
63
63
  collections + fields, the nesting model, and the CloudGrid wiring. This is the
64
64
  spec you build to.
65
- 2. `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
66
- and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a
67
- linked directory, so run `init` FIRST. Then write the app under
68
- **`services/web/`** and fill `cloudgrid.yaml` to the shape below.
65
+ 2. `grid_create_project` an app `<name>`. It scaffolds the project folder and
66
+ writes a `cloudgrid.yaml` with an EMPTY `services: {}`. No server entity
67
+ exists yet — the first `grid plug` auto-creates it from the manifest
68
+ (honoring its `name:`) and writes `.cloudgrid/link.json`. Then write the app
69
+ under **`services/web/`** and fill `cloudgrid.yaml` to the shape below.
69
70
 
70
71
  ## 4. Build the app + wire Mongo, auth, moderation
71
72
 
@@ -51,9 +51,10 @@ to wire employee/admin auth, and the deploy steps.
51
51
 
52
52
  ## 4. Scaffold
53
53
 
54
- `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
55
- and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
56
- directory, so run `init` FIRST. Then (a) build the app under **`services/web/`**
54
+ `grid_create_project` an app `<name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
55
+ `services: {}`. No server entity exists yet — the first `grid plug` auto-creates
56
+ it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
57
+ Then (a) build the app under **`services/web/`**
57
58
  following `AGENTS.md`, and (b) fill `cloudgrid.yaml` to the shape below.
58
59
 
59
60
  ## 5. Build the app + set cloudgrid.yaml
@@ -54,9 +54,10 @@ deploy steps.
54
54
 
55
55
  ## 4. Scaffold
56
56
 
57
- `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
58
- and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
59
- directory, so run `init` FIRST. Then (a) build the app under **`services/web/`**
57
+ `grid_create_project` an app `<name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
58
+ `services: {}`. No server entity exists yet — the first `grid plug` auto-creates
59
+ it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
60
+ Then (a) build the app under **`services/web/`**
60
61
  following `AGENTS.md`, and (b) fill `cloudgrid.yaml` to the shape below.
61
62
 
62
63
  ## 5. Build the app + set cloudgrid.yaml
@@ -37,9 +37,10 @@ edition** (Claude Desktop / Claude Code) or the CLI.
37
37
 
38
38
  ## 3. Scaffold
39
39
 
40
- `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
41
- and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
42
- directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**,
40
+ `grid_create_project` an app `<name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
41
+ `services: {}`. No server entity exists yet — the first `grid plug` auto-creates
42
+ it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
43
+ Then (a) write the app under **`services/web/`**,
43
44
  and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
44
45
  { database: true }`).
45
46
 
@@ -37,9 +37,10 @@ edition** (Claude Desktop / Claude Code) or the CLI.
37
37
 
38
38
  ## 3. Scaffold
39
39
 
40
- `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
41
- and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
42
- directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**,
40
+ `grid_create_project` an app `<name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
41
+ `services: {}`. No server entity exists yet — the first `grid plug` auto-creates
42
+ it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
43
+ Then (a) write the app under **`services/web/`**,
43
44
  and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
44
45
  { database: true }`).
45
46
 
@@ -37,9 +37,10 @@ edition** (Claude Desktop / Claude Code) or the CLI.
37
37
 
38
38
  ## 3. Scaffold
39
39
 
40
- `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
41
- and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
42
- directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**,
40
+ `grid_create_project` an app `<name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
41
+ `services: {}`. No server entity exists yet — the first `grid plug` auto-creates
42
+ it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
43
+ Then (a) write the app under **`services/web/`**,
43
44
  and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
44
45
  { database: true }`).
45
46
 
@@ -37,9 +37,10 @@ edition** (Claude Desktop / Claude Code) or the CLI.
37
37
 
38
38
  ## 3. Scaffold
39
39
 
40
- `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
41
- and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
42
- directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**,
40
+ `grid_create_project` an app `<name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
41
+ `services: {}`. No server entity exists yet — the first `grid plug` auto-creates
42
+ it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
43
+ Then (a) write the app under **`services/web/`**,
43
44
  and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
44
45
  { database: true }`).
45
46