@cloudgrid-io/mcp 0.20.4 → 0.20.5

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 (125) hide show
  1. package/package.json +2 -2
  2. package/src/corpus/capability-map.md +8 -8
  3. package/src/corpus/cloudgrid-yaml.md +5 -5
  4. package/src/corpus/cookbook.md +1 -1
  5. package/src/corpus/skill-claim.md +1 -1
  6. package/src/corpus/skill-plug.md +1 -1
  7. package/src/corpus/skills-readme.md +1 -1
  8. package/src/corpus/templates/ai-knowledge-base/AGENTS.md +1 -1
  9. package/src/corpus/templates/ai-knowledge-base/index.md +1 -1
  10. package/src/corpus/templates/api-docs/README.md +2 -2
  11. package/src/corpus/templates/api-docs/index.md +3 -3
  12. package/src/corpus/templates/appointment-booking/AGENTS.md +7 -7
  13. package/src/corpus/templates/appointment-booking/index.md +5 -5
  14. package/src/corpus/templates/approval-workflow/AGENTS.md +2 -2
  15. package/src/corpus/templates/approval-workflow/index.md +2 -2
  16. package/src/corpus/templates/billing-dashboard/index.md +1 -1
  17. package/src/corpus/templates/calendar-scheduler/AGENTS.md +1 -1
  18. package/src/corpus/templates/calendar-scheduler/index.md +1 -1
  19. package/src/corpus/templates/changelog/README.md +2 -2
  20. package/src/corpus/templates/changelog/index.md +3 -3
  21. package/src/corpus/templates/company-website/README.md +3 -3
  22. package/src/corpus/templates/company-website/cloudgrid.yaml +1 -1
  23. package/src/corpus/templates/company-website/index.md +3 -3
  24. package/src/corpus/templates/course-platform/index.md +1 -1
  25. package/src/corpus/templates/dashboard/cloudgrid.yaml +1 -1
  26. package/src/corpus/templates/dashboard/index.md +3 -3
  27. package/src/corpus/templates/deck/cloudgrid.yaml +1 -1
  28. package/src/corpus/templates/deck/index.md +3 -3
  29. package/src/corpus/templates/docs-site/README.md +2 -2
  30. package/src/corpus/templates/docs-site/index.md +3 -3
  31. package/src/corpus/templates/forum/AGENTS.md +4 -4
  32. package/src/corpus/templates/forum/index.md +1 -1
  33. package/src/corpus/templates/hr-portal/index.md +1 -1
  34. package/src/corpus/templates/internal-tools-portal/index.md +1 -1
  35. package/src/corpus/templates/landing-page/cloudgrid.yaml +1 -1
  36. package/src/corpus/templates/landing-page/index.md +3 -3
  37. package/src/corpus/templates/lms/index.md +1 -1
  38. package/src/corpus/templates/marketplace/AGENTS.md +1 -1
  39. package/src/corpus/templates/marketplace/index.md +1 -1
  40. package/src/corpus/templates/membership-site/AGENTS.md +7 -7
  41. package/src/corpus/templates/membership-site/index.md +5 -5
  42. package/src/corpus/templates/online-store/index.md +1 -1
  43. package/src/corpus/templates/portfolio/README.md +2 -2
  44. package/src/corpus/templates/portfolio/index.md +3 -3
  45. package/src/corpus/templates/product-launch/README.md +3 -3
  46. package/src/corpus/templates/product-launch/cloudgrid.yaml +1 -1
  47. package/src/corpus/templates/product-launch/index.md +3 -3
  48. package/src/corpus/templates/report/cloudgrid.yaml +1 -1
  49. package/src/corpus/templates/report/index.md +3 -3
  50. package/src/corpus/templates/restaurant-reservations/AGENTS.md +7 -7
  51. package/src/corpus/templates/restaurant-reservations/index.md +2 -2
  52. package/src/corpus/templates/saas-marketing/README.md +2 -2
  53. package/src/corpus/templates/saas-marketing/index.md +3 -3
  54. package/src/corpus/templates/status-page/README.md +2 -2
  55. package/src/corpus/templates/status-page/index.md +3 -3
  56. package/src/corpus/templates/subscription-management/AGENTS.md +7 -7
  57. package/src/corpus/templates/subscription-management/index.md +5 -5
  58. package/src/corpus/templates/waitlist/README.md +2 -2
  59. package/src/corpus/templates/waitlist/index.md +3 -3
  60. package/src/corpus/templates/web-app/cloudgrid.yaml +1 -1
  61. package/src/corpus/templates/web-app/index.md +3 -3
  62. package/src/corpus/usage.md +1 -1
  63. package/src/corpus/workflows/admin-dashboard.md +4 -4
  64. package/src/corpus/workflows/ai-app.md +6 -6
  65. package/src/corpus/workflows/ai-knowledge-base.md +4 -4
  66. package/src/corpus/workflows/analytics-dashboard.md +4 -4
  67. package/src/corpus/workflows/api-dashboard.md +4 -4
  68. package/src/corpus/workflows/api-docs.md +2 -2
  69. package/src/corpus/workflows/api-service.md +6 -6
  70. package/src/corpus/workflows/app-with-data.md +6 -6
  71. package/src/corpus/workflows/appointment-booking.md +6 -6
  72. package/src/corpus/workflows/approval-workflow.md +4 -4
  73. package/src/corpus/workflows/billing-dashboard.md +6 -6
  74. package/src/corpus/workflows/blog-cms.md +4 -4
  75. package/src/corpus/workflows/booking-system.md +5 -5
  76. package/src/corpus/workflows/calendar-scheduler.md +4 -4
  77. package/src/corpus/workflows/changelog.md +2 -2
  78. package/src/corpus/workflows/company-website.md +3 -3
  79. package/src/corpus/workflows/course-platform.md +5 -5
  80. package/src/corpus/workflows/crm.md +5 -5
  81. package/src/corpus/workflows/dashboard.md +3 -3
  82. package/src/corpus/workflows/directory.md +4 -4
  83. package/src/corpus/workflows/docs-app.md +6 -6
  84. package/src/corpus/workflows/docs-site.md +2 -2
  85. package/src/corpus/workflows/erp.md +5 -5
  86. package/src/corpus/workflows/event-board.md +4 -4
  87. package/src/corpus/workflows/expense-tracker.md +4 -4
  88. package/src/corpus/workflows/feature-request-board.md +4 -4
  89. package/src/corpus/workflows/financial-dashboard.md +4 -4
  90. package/src/corpus/workflows/forum.md +5 -5
  91. package/src/corpus/workflows/hr-portal.md +5 -5
  92. package/src/corpus/workflows/internal-tools-portal.md +5 -5
  93. package/src/corpus/workflows/inventory.md +4 -4
  94. package/src/corpus/workflows/invoice.md +4 -4
  95. package/src/corpus/workflows/job-board.md +4 -4
  96. package/src/corpus/workflows/kanban.md +5 -5
  97. package/src/corpus/workflows/landing-page.md +3 -3
  98. package/src/corpus/workflows/lms.md +5 -5
  99. package/src/corpus/workflows/marketplace.md +4 -4
  100. package/src/corpus/workflows/membership-site.md +6 -6
  101. package/src/corpus/workflows/monitoring-dashboard.md +4 -4
  102. package/src/corpus/workflows/online-store.md +6 -6
  103. package/src/corpus/workflows/portfolio.md +2 -2
  104. package/src/corpus/workflows/presentation.md +3 -3
  105. package/src/corpus/workflows/product-catalog.md +4 -4
  106. package/src/corpus/workflows/product-launch.md +3 -3
  107. package/src/corpus/workflows/project-management.md +4 -4
  108. package/src/corpus/workflows/property-listings.md +4 -4
  109. package/src/corpus/workflows/quiz-platform.md +4 -4
  110. package/src/corpus/workflows/report.md +3 -3
  111. package/src/corpus/workflows/restaurant-reservations.md +5 -5
  112. package/src/corpus/workflows/revenue-dashboard.md +4 -4
  113. package/src/corpus/workflows/saas-marketing.md +2 -2
  114. package/src/corpus/workflows/semantic-search.md +5 -5
  115. package/src/corpus/workflows/status-page.md +2 -2
  116. package/src/corpus/workflows/subscription-management.md +6 -6
  117. package/src/corpus/workflows/task-manager.md +4 -4
  118. package/src/corpus/workflows/ticket-system.md +4 -4
  119. package/src/corpus/workflows/time-tracking.md +4 -4
  120. package/src/corpus/workflows/travel-booking.md +5 -5
  121. package/src/corpus/workflows/waitlist.md +2 -2
  122. package/src/corpus/workflows/web-app.md +3 -3
  123. package/src/session-logger.js +3 -3
  124. package/src/tools.js +129 -89
  125. package/src/widgets/org-picker.html +1 -1
@@ -40,7 +40,7 @@ edition** (Claude Desktop / Claude Code) or the CLI.
40
40
 
41
41
  ## 3. Scaffold
42
42
 
43
- `grid_init` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
43
+ `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
44
44
  and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
45
45
  directory, so run `init` FIRST.
46
46
 
@@ -48,7 +48,7 @@ directory, so run `init` FIRST.
48
48
 
49
49
  This is a blueprint — the structure guide is the deliverable, not copy-paste code.
50
50
 
51
- 1. `grid_fetch("template", "online-store")`.
51
+ 1. `grid_get_template("template", "online-store")`.
52
52
  2. **Read `AGENTS.md`** in the fetched template. It has: the file tree (app under
53
53
  `services/web/`), the Mongo collections (`products`, `orders`) and their
54
54
  fields, how the grid injects Mongo (`DATABASE_MONGODB_URL`) and the Stripe key
@@ -88,15 +88,15 @@ This is a blueprint — the structure guide is the deliverable, not copy-paste c
88
88
 
89
89
  ## 6. Config
90
90
 
91
- - Stripe secrets → the vault: `grid_secrets` to set `stripe-live-key` (and a
91
+ - Stripe secrets → the vault: `grid_set_secret` to set `stripe-live-key` (and a
92
92
  `stripe-webhook-secret` if you map one). The `vault:` block turns them into env
93
- vars. Non-secret config → `grid_env`.
93
+ vars. Non-secret config → `grid_set_env`.
94
94
  - Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` /
95
95
  `MONGODB_URL`) — the grid injects them.
96
96
 
97
97
  ## 7. Deploy (async)
98
98
 
99
- Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
99
+ Deploy the folder with `grid_deploy`. A **runtime deploy is ASYNC**: the first
100
100
  response is `status: "building"`, NOT a live URL yet.
101
101
  - Poll `grid_status` (or the returned poll_url) until the entity is live.
102
102
  - Surface a liveness signal while it builds — never a bare silent wait.
@@ -105,7 +105,7 @@ response is `status: "building"`, NOT a live URL yet.
105
105
  ## 8. Wire the Stripe webhook + return the live URL
106
106
 
107
107
  1. Register `<live-url>/api/webhook` as a webhook endpoint in the Stripe
108
- dashboard, copy its `whsec_…` secret into the vault, and re-`grid_plug` the
108
+ dashboard, copy its `whsec_…` secret into the vault, and re-`grid_deploy` the
109
109
  SAME entity if you changed the `vault:` mapping (same URL).
110
110
  2. Give the user the live store URL — that is the deliverable. To iterate, re-plug
111
111
  the SAME entity so it updates the same URL.
@@ -4,7 +4,7 @@ when: portfolio, personal site, freelancer site, my work, showcase, resume site,
4
4
  needs: none
5
5
  deploy: inspiration
6
6
  editions: all
7
- capabilities_note: static — no infrastructure. Publishes as an inspiration (instant, works on hosted) via grid_plug.
7
+ capabilities_note: static — no infrastructure. Publishes as an inspiration (instant, works on hosted) via grid_deploy.
8
8
  summary: Fetch the portfolio template, fill it with the user's projects and bio, deploy it, and return the live share URL.
9
9
  ---
10
10
 
@@ -15,7 +15,7 @@ follow this recipe. Reach for this over `landing-page` when the request is about
15
15
  showcasing projects with an about, skills, and contact. Do not ask setup
16
16
  questions first; use sensible defaults and build.
17
17
 
18
- 1. **Fetch the template.** Call `grid_fetch("template", "portfolio")` to load
18
+ 1. **Fetch the template.** Call `grid_get_template("template", "portfolio")` to load
19
19
  the self-contained HTML portfolio (hero, about, skills, projects grid,
20
20
  contact).
21
21
  2. **Fill the template.** Replace the placeholders with the user's content:
@@ -4,7 +4,7 @@ when: slides, deck, pitch, presentation, slideshow.
4
4
  needs: none
5
5
  deploy: inspiration
6
6
  editions: all
7
- capabilities_note: static — no infrastructure. Publishes as an inspiration (instant, works on hosted) via grid_plug.
7
+ capabilities_note: static — no infrastructure. Publishes as an inspiration (instant, works on hosted) via grid_deploy.
8
8
  summary: Fetch the deck template, fill it with the user's content, deploy it, and return the live share URL.
9
9
  ---
10
10
 
@@ -13,9 +13,9 @@ summary: Fetch the deck template, fill it with the user's content, deploy it, an
13
13
  Detect the intent ("build me a presentation / deck / slides about X") and follow
14
14
  this recipe. Do not ask setup questions first; use sensible defaults and build.
15
15
 
16
- 1. **Fetch the template.** Call `grid_fetch("template", "deck")` to load the
16
+ 1. **Fetch the template.** Call `grid_get_template("template", "deck")` to load the
17
17
  self-contained HTML deck template.
18
- 2. **(Optional) Fetch the example.** Call `grid_fetch("example", "deck")` to
18
+ 2. **(Optional) Fetch the example.** Call `grid_get_template("example", "deck")` to
19
19
  see a filled deck as a reference for tone and structure.
20
20
  3. **Fill the template.** Replace the placeholders with the user's content:
21
21
  - The deck title and subtitle.
@@ -41,7 +41,7 @@ edition** (Claude Desktop / Claude Code) or the CLI.
41
41
 
42
42
  ## 3. Scaffold
43
43
 
44
- `grid_init` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
44
+ `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
45
45
  and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
46
46
  directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**,
47
47
  and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
@@ -66,7 +66,7 @@ and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
66
66
  author new yaml with it, and never set `needs:` and `requires:` together (the
67
67
  validator rejects it).
68
68
  2. Fetch the template for the Mongo wiring + CRUD shape:
69
- `grid_fetch("template", "product-catalog")`. It is a minimal, real
69
+ `grid_get_template("template", "product-catalog")`. It is a minimal, real
70
70
  Next.js + `mongodb`-driver catalog under `services/web/`: a lazy client in
71
71
  `services/web/lib/db.js`, an App-Router GET/POST/DELETE route on a `products`
72
72
  collection, a server-component page, and a client grid with a category filter
@@ -86,13 +86,13 @@ before deploying. Don't require it.
86
86
 
87
87
  ## 6. Config
88
88
 
89
- - API keys / secrets → `grid_secrets`. Non-secret config → `grid_env`.
89
+ - API keys / secrets → `grid_set_secret`. Non-secret config → `grid_set_env`.
90
90
  - Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
91
91
  legacy `MONGODB_URL`) — the grid injects them.
92
92
 
93
93
  ## 7. Deploy (async)
94
94
 
95
- Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
95
+ Deploy the folder with `grid_deploy`. A **runtime deploy is ASYNC**: the first
96
96
  response is `status: "building"`, NOT a live URL yet.
97
97
  - Poll `grid_status` (or the returned poll_url) until the entity is live.
98
98
  - Surface a liveness signal while it builds — never a bare silent wait.
@@ -4,7 +4,7 @@ when: product launch page, launch announcement, new product page, we just launch
4
4
  needs: none
5
5
  deploy: inspiration
6
6
  editions: all
7
- capabilities_note: static — no infrastructure. Publishes as an inspiration (instant, works on hosted) via grid_plug.
7
+ capabilities_note: static — no infrastructure. Publishes as an inspiration (instant, works on hosted) via grid_deploy.
8
8
  summary: Fetch the product-launch template, fill it with the user's product/launch content, deploy it, and return the live share URL.
9
9
  ---
10
10
 
@@ -14,10 +14,10 @@ Detect the intent ("build a launch page / announcement for our new product X")
14
14
  and follow this recipe. Do not ask setup questions first; use sensible defaults
15
15
  and build.
16
16
 
17
- 1. **Fetch the template.** Call `grid_fetch("template", "product-launch")` to
17
+ 1. **Fetch the template.** Call `grid_get_template("template", "product-launch")` to
18
18
  load the self-contained HTML launch-page template (hero + product image,
19
19
  countdown, features, launch offer, social proof).
20
- 2. **(Optional) Fetch the example.** Call `grid_fetch("example", "product-launch")`
20
+ 2. **(Optional) Fetch the example.** Call `grid_get_template("example", "product-launch")`
21
21
  to see a filled launch page as a reference for tone and structure.
22
22
  3. **Fill the template.** Replace the placeholders with the user's content:
23
23
  - Product name, hero headline, subhead, launch badge, and CTA label/target.
@@ -42,7 +42,7 @@ edition** (Claude Desktop / Claude Code) or the CLI.
42
42
 
43
43
  ## 3. Scaffold
44
44
 
45
- `grid_init` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
45
+ `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
46
46
  and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
47
47
  directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**,
48
48
  and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
@@ -67,7 +67,7 @@ and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
67
67
  author new yaml with it, and never set `needs:` and `requires:` together (the
68
68
  validator rejects it).
69
69
  2. Fetch the template for the Mongo wiring + CRUD shape:
70
- `grid_fetch("template", "project-management")`. It is a minimal, real
70
+ `grid_get_template("template", "project-management")`. It is a minimal, real
71
71
  Next.js + `mongodb`-driver app under `services/web/`: a lazy client in
72
72
  `services/web/lib/db.js`, an App-Router GET/POST/DELETE route on a `projects`
73
73
  collection, a GET/POST/PATCH/DELETE route on a `tasks` collection, a
@@ -87,13 +87,13 @@ before deploying. Don't require it.
87
87
 
88
88
  ## 6. Config
89
89
 
90
- - API keys / secrets → `grid_secrets`. Non-secret config → `grid_env`.
90
+ - API keys / secrets → `grid_set_secret`. Non-secret config → `grid_set_env`.
91
91
  - Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
92
92
  legacy `MONGODB_URL`) — the grid injects them.
93
93
 
94
94
  ## 7. Deploy (async)
95
95
 
96
- Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
96
+ Deploy the folder with `grid_deploy`. A **runtime deploy is ASYNC**: the first
97
97
  response is `status: "building"`, NOT a live URL yet.
98
98
  - Poll `grid_status` (or the returned poll_url) until the entity is live.
99
99
  - Surface a liveness signal while it builds — never a bare silent wait.
@@ -38,7 +38,7 @@ edition** (Claude Desktop / Claude Code) or the CLI.
38
38
 
39
39
  ## 3. Scaffold
40
40
 
41
- `grid_init` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
41
+ `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
42
42
  and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
43
43
  directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**,
44
44
  and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
@@ -63,7 +63,7 @@ and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
63
63
  author new yaml with it, and never set `needs:` and `requires:` together (the
64
64
  validator rejects it).
65
65
  2. Fetch the template for the Mongo wiring + CRUD shape:
66
- `grid_fetch("template", "property-listings")`. It is a minimal, real
66
+ `grid_get_template("template", "property-listings")`. It is a minimal, real
67
67
  Next.js + `mongodb`-driver listings site under `services/web/`: a lazy client
68
68
  in `services/web/lib/db.js`, an App-Router GET/POST/DELETE route on a
69
69
  `properties` collection (GET supports `?location=` and `?maxPrice=` filters), a
@@ -82,13 +82,13 @@ before deploying. Don't require it.
82
82
 
83
83
  ## 6. Config
84
84
 
85
- - API keys / secrets → `grid_secrets`. Non-secret config → `grid_env`.
85
+ - API keys / secrets → `grid_set_secret`. Non-secret config → `grid_set_env`.
86
86
  - Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
87
87
  legacy `MONGODB_URL`) — the grid injects them.
88
88
 
89
89
  ## 7. Deploy (async)
90
90
 
91
- Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
91
+ Deploy the folder with `grid_deploy`. A **runtime deploy is ASYNC**: the first
92
92
  response is `status: "building"`, NOT a live URL yet.
93
93
  - Poll `grid_status` (or the returned poll_url) until the entity is live.
94
94
  - Surface a liveness signal while it builds — never a bare silent wait.
@@ -39,7 +39,7 @@ edition** (Claude Desktop / Claude Code) or the CLI.
39
39
 
40
40
  ## 3. Scaffold
41
41
 
42
- `grid_init` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
42
+ `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
43
43
  and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
44
44
  directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**,
45
45
  and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
@@ -64,7 +64,7 @@ and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
64
64
  author new yaml with it, and never set `needs:` and `requires:` together (the
65
65
  validator rejects it).
66
66
  2. Fetch the template for the Mongo wiring + CRUD shape:
67
- `grid_fetch("template", "quiz-platform")`. It is a minimal, real Next.js +
67
+ `grid_get_template("template", "quiz-platform")`. It is a minimal, real Next.js +
68
68
  `mongodb`-driver quiz platform under `services/web/`: a lazy client in
69
69
  `services/web/lib/db.js`, an App-Router GET/POST/DELETE route on a
70
70
  `questions` collection, a server-component page that reads the collection, and
@@ -86,13 +86,13 @@ before deploying. Don't require it.
86
86
 
87
87
  ## 6. Config
88
88
 
89
- - API keys / secrets → `grid_secrets`. Non-secret config → `grid_env`.
89
+ - API keys / secrets → `grid_set_secret`. Non-secret config → `grid_set_env`.
90
90
  - Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
91
91
  legacy `MONGODB_URL`) — the grid injects them.
92
92
 
93
93
  ## 7. Deploy (async)
94
94
 
95
- Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
95
+ Deploy the folder with `grid_deploy`. A **runtime deploy is ASYNC**: the first
96
96
  response is `status: "building"`, NOT a live URL yet.
97
97
  - Poll `grid_status` (or the returned poll_url) until the entity is live.
98
98
  - Surface a liveness signal while it builds — never a bare silent wait.
@@ -4,7 +4,7 @@ when: report, one-pager, summary, brief, whitepaper, case study, formatted docum
4
4
  needs: none
5
5
  deploy: inspiration
6
6
  editions: all
7
- capabilities_note: static — no infrastructure. Publishes as an inspiration (instant, works on hosted) via grid_plug.
7
+ capabilities_note: static — no infrastructure. Publishes as an inspiration (instant, works on hosted) via grid_deploy.
8
8
  summary: Fetch the report template, fill it with the user's content, deploy it, and return the live share URL.
9
9
  ---
10
10
 
@@ -13,9 +13,9 @@ summary: Fetch the report template, fill it with the user's content, deploy it,
13
13
  Detect the intent ("build me a report / one-pager / brief about X") and follow
14
14
  this recipe. Do not ask setup questions first; use sensible defaults and build.
15
15
 
16
- 1. **Fetch the template.** Call `grid_fetch("template", "report")` to load
16
+ 1. **Fetch the template.** Call `grid_get_template("template", "report")` to load
17
17
  the self-contained, print-friendly HTML report template.
18
- 2. **(Optional) Fetch the example.** Call `grid_fetch("example", "report")`
18
+ 2. **(Optional) Fetch the example.** Call `grid_get_template("example", "report")`
19
19
  to see a filled report as a reference for tone and structure.
20
20
  3. **Fill the template.** Replace the placeholders with the user's content:
21
21
  - The report title, subtitle, and date line.
@@ -43,7 +43,7 @@ edition** (Claude Desktop / Claude Code) or the CLI.
43
43
 
44
44
  ## 3. Fetch the blueprint and READ AGENTS.md
45
45
 
46
- `grid_fetch("template", "restaurant-reservations")`. This is a **blueprint**,
46
+ `grid_get_template("template", "restaurant-reservations")`. This is a **blueprint**,
47
47
  so the deliverable is `cloudgrid.yaml` + `AGENTS.md`, not app code.
48
48
 
49
49
  **Read `AGENTS.md` before building.** It defines:
@@ -56,7 +56,7 @@ so the deliverable is `cloudgrid.yaml` + `AGENTS.md`, not app code.
56
56
 
57
57
  ## 4. Scaffold + fill
58
58
 
59
- 1. `grid_init` an app `<name>` — creates the entity + `.cloudgrid/link.json`
59
+ 1. `grid_create_project` an app `<name>` — creates the entity + `.cloudgrid/link.json`
60
60
  and a `cloudgrid.yaml` with an EMPTY `services: {}`. Run `init` FIRST (plug
61
61
  needs a linked directory).
62
62
  2. Write the app under **`services/web/`** (`path:` is the URL mount, NOT the
@@ -85,9 +85,9 @@ so the deliverable is `cloudgrid.yaml` + `AGENTS.md`, not app code.
85
85
 
86
86
  ## 5. Config / secrets
87
87
 
88
- - Secret values (Stripe, SendGrid, auth) → `grid_secrets` (the `vault:` block
88
+ - Secret values (Stripe, SendGrid, auth) → `grid_set_secret` (the `vault:` block
89
89
  maps them to env vars). Non-secret config (publishable keys, flags) →
90
- `grid_env`.
90
+ `grid_set_env`.
91
91
  - Do **NOT** set the DB vars yourself (`DATABASE_MONGODB_URL` / `MONGODB_URL`) —
92
92
  the grid injects them.
93
93
 
@@ -98,7 +98,7 @@ against dev Mongo. Seed the `menu` collection, test a booking. Don't require it.
98
98
 
99
99
  ## 7. Deploy (async)
100
100
 
101
- Deploy `services/web/` with `grid_plug`. A **runtime deploy is ASYNC**: the
101
+ Deploy `services/web/` with `grid_deploy`. A **runtime deploy is ASYNC**: the
102
102
  first response is `status: building`, NOT a live URL.
103
103
  - Poll `grid_status` (or the returned poll URL) until live.
104
104
  - Surface a liveness signal while it builds — never a bare silent wait.
@@ -38,7 +38,7 @@ edition** (Claude Desktop / Claude Code) or the CLI.
38
38
 
39
39
  ## 3. Scaffold
40
40
 
41
- `grid_init` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
41
+ `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
42
42
  and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
43
43
  directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**,
44
44
  and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
@@ -63,7 +63,7 @@ and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
63
63
  author new yaml with it, and never set `needs:` and `requires:` together (the
64
64
  validator rejects it).
65
65
  2. Fetch the template for the Mongo wiring + CRUD shape:
66
- `grid_fetch("template", "revenue-dashboard")`. It is a minimal, real
66
+ `grid_get_template("template", "revenue-dashboard")`. It is a minimal, real
67
67
  Next.js + `mongodb`-driver dashboard under `services/web/`: a lazy client in
68
68
  `services/web/lib/db.js`, an App-Router GET/POST/DELETE route on a `sales`
69
69
  collection, a server-component page that computes the total + per-product
@@ -83,13 +83,13 @@ before deploying. Don't require it.
83
83
 
84
84
  ## 6. Config
85
85
 
86
- - API keys / secrets → `grid_secrets`. Non-secret config → `grid_env`.
86
+ - API keys / secrets → `grid_set_secret`. Non-secret config → `grid_set_env`.
87
87
  - Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
88
88
  legacy `MONGODB_URL`) — the grid injects them.
89
89
 
90
90
  ## 7. Deploy (async)
91
91
 
92
- Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
92
+ Deploy the folder with `grid_deploy`. A **runtime deploy is ASYNC**: the first
93
93
  response is `status: "building"`, NOT a live URL yet.
94
94
  - Poll `grid_status` (or the returned poll_url) until the entity is live.
95
95
  - Surface a liveness signal while it builds — never a bare silent wait.
@@ -4,7 +4,7 @@ when: SaaS marketing site, product marketing page, features and pricing page, mu
4
4
  needs: none
5
5
  deploy: inspiration
6
6
  editions: all
7
- capabilities_note: static — no infrastructure. Publishes as an inspiration (instant, works on hosted) via grid_plug.
7
+ capabilities_note: static — no infrastructure. Publishes as an inspiration (instant, works on hosted) via grid_deploy.
8
8
  summary: Fetch the saas-marketing template, fill it with the user's product content, deploy it, and return the live share URL.
9
9
  ---
10
10
 
@@ -16,7 +16,7 @@ it when the request calls for pricing tiers, testimonials, and an FAQ, not just
16
16
  hero. For a plain single-section landing page, use `landing-page`. Do not ask
17
17
  setup questions first; use sensible defaults and build.
18
18
 
19
- 1. **Fetch the template.** Call `grid_fetch("template", "saas-marketing")` to
19
+ 1. **Fetch the template.** Call `grid_get_template("template", "saas-marketing")` to
20
20
  load the self-contained HTML marketing site.
21
21
  2. **Fill the template.** Replace the placeholders with the user's content:
22
22
  - The product name, tagline, and hero eyebrow/headline/subheadline.
@@ -6,7 +6,7 @@ deploy: runtime
6
6
  editions: local
7
7
  capabilities_note: "Document search — needs a database (Mongo) for the documents + chunks collections. Two services: a React (Vite) static frontend at / and a FastAPI backend at /backend. Hybrid search = Mongo $text (lexical) + in-app NumPy cosine over chunk embedding arrays (semantic) + metadata filters, blended to the document level. Runtime app, async build, local edition only. Declare needs:{database:true}. NO needs:vector — pgvector runtime role-grant is blocked (#1545), so embeddings live in the Mongo chunks collection and are cosine-ranked in-app. Two refresh paths: the manager 'Refresh now' endpoint AND a scheduled Python type:cron job (services/refresh, daily 03:00 UTC) that vendors the backend app/ modules and reuses indexing.run_sync — both degrade gracefully. Health is green with no secrets; startup ensure_indexes() so $text never 500s on an empty catalog. Pluggable source (dropbox|local|url) + embeddings (OpenAI-compatible) each behind one config point, all secrets from env."
8
8
  summary: "Build a document-search app on the grid — index a folder of PDFs/DOCX/TXT/MD, then search by keyword + meaning + metadata, with a grounded answer mode and manager admin. React static frontend at / + FastAPI backend at /backend, backed by grid-shared Mongo. Edition-gate first, scaffold, put the code under services/web/ + services/backend/, declare needs:{database:true} (NO vector #1545), wire the web+backend+refresh services, set the embeddings + source + manager secrets, deploy async, poll to a live URL, then Refresh now (or wait for the daily cron) to index."
9
- recipe: "edition-gate -> auth+grid -> grid_init -> fetch template + read AGENTS.md -> put code under services/web + services/backend, set cloudgrid.yaml active fields -> grid secrets set (embeddings + source + MANAGER_PASSWORD_HASH) -> optional grid dev -> grid plug (async, poll) -> Refresh now to index -> return live URL"
9
+ recipe: "edition-gate -> auth+grid -> grid_create_project -> fetch template + read AGENTS.md -> put code under services/web + services/backend, set cloudgrid.yaml active fields -> grid secrets set (embeddings + source + MANAGER_PASSWORD_HASH) -> optional grid dev -> grid plug (async, poll) -> Refresh now to index -> return live URL"
10
10
  ---
11
11
 
12
12
  # Workflow: semantic-search
@@ -42,13 +42,13 @@ the **local edition** (Claude Desktop / Claude Code) or the CLI.
42
42
 
43
43
  ## 3. Scaffold
44
44
 
45
- `grid_init` an app `<name>` FIRST — it creates the entity +
45
+ `grid_create_project` an app `<name>` FIRST — it creates the entity +
46
46
  `.cloudgrid/link.json` and a starter `cloudgrid.yaml` with empty `services: {}`
47
47
  (`plug` needs a linked directory).
48
48
 
49
49
  ## 4. Fetch the template and READ AGENTS.md
50
50
 
51
- `grid_fetch("template", "semantic-search")`. Read **`AGENTS.md`** before
51
+ `grid_get_template("template", "semantic-search")`. Read **`AGENTS.md`** before
52
52
  writing anything — it defines the file tree, the `documents` + `chunks`
53
53
  collections + fields, the Mongo injection, the pluggable source adapter, the
54
54
  embeddings config point, the secrets, the deploy flow, and the four baked-in
@@ -111,7 +111,7 @@ the cron **vendors** the backend `app/` modules it needs into
111
111
 
112
112
  Store all of these with `grid secrets set KEY=VALUE` (never commit them; the app
113
113
  reads them lazily inside functions, never at import). Non-secret public config →
114
- `grid_env`. Do NOT set `DATABASE_MONGODB_URL` yourself — the grid injects it.
114
+ `grid_set_env`. Do NOT set `DATABASE_MONGODB_URL` yourself — the grid injects it.
115
115
 
116
116
  The app starts and passes `GET /backend/health` with **none** of these set;
117
117
  search/indexing degrade to a clear "not indexed / missing secret" state.
@@ -123,7 +123,7 @@ before deploying. Don't require it.
123
123
 
124
124
  ## 8. Deploy (async)
125
125
 
126
- Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
126
+ Deploy the folder with `grid_deploy`. A **runtime deploy is ASYNC**: the first
127
127
  response is `status: "building"`, NOT a live URL yet.
128
128
  - Poll `grid_status` (or the returned poll_url) until the entity is live.
129
129
  - Surface a liveness signal while it builds — never a bare silent wait.
@@ -4,7 +4,7 @@ when: status page, service status, uptime page, incident history, is-it-down pag
4
4
  needs: none
5
5
  deploy: inspiration
6
6
  editions: all
7
- capabilities_note: static — no infrastructure, status baked into the page. Publishes as an inspiration (instant, works on hosted) via grid_plug.
7
+ capabilities_note: static — no infrastructure, status baked into the page. Publishes as an inspiration (instant, works on hosted) via grid_deploy.
8
8
  summary: Fetch the status-page template, fill it with the user's components and incidents, deploy it, and return the live share URL.
9
9
  ---
10
10
 
@@ -15,7 +15,7 @@ recipe. This is a display-only static page — the status is baked into the mark
15
15
  there is no live polling. Do not ask setup questions first; use sensible defaults
16
16
  and build.
17
17
 
18
- 1. **Fetch the template.** Call `grid_fetch("template", "status-page")` to load
18
+ 1. **Fetch the template.** Call `grid_get_template("template", "status-page")` to load
19
19
  the self-contained HTML status page (overall banner, component list with
20
20
  up/degraded/down pills, per-component uptime bars, incident history).
21
21
  2. **Fill the template.** Replace the placeholders with the user's content:
@@ -49,18 +49,18 @@ A subscription-management app is a built + deployed container. It requires the
49
49
  Fetch the template and read its structure guide — this is the core of the
50
50
  workflow:
51
51
 
52
- - `grid_fetch("template", "subscription-management")` — the `cloudgrid.yaml` +
52
+ - `grid_get_template("template", "subscription-management")` — the `cloudgrid.yaml` +
53
53
  **`AGENTS.md`**. AGENTS.md has the file tree, the Mongo collections
54
54
  (`customers`, `subscriptions`), the CloudGrid injection table, and the Stripe
55
55
  change-plan / cancel / billing-portal / webhook wiring. **Read it fully before
56
56
  building.**
57
- - `grid_fetch("template", "app-with-data")` — the proven Next.js + Mongo
57
+ - `grid_get_template("template", "app-with-data")` — the proven Next.js + Mongo
58
58
  shape this blueprint extends (lazy db client in `lib/db.js`, App-Router
59
59
  GET/POST route). Imitate its wiring.
60
60
 
61
61
  ## 4. Scaffold
62
62
 
63
- `grid_init` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
63
+ `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
64
64
  and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
65
65
  directory, so run `init` FIRST. Then write the app under **`services/web/`** and
66
66
  set `cloudgrid.yaml` to the active shape below.
@@ -109,12 +109,12 @@ never set `needs:` and `requires:` together (the validator rejects it).
109
109
 
110
110
  ## 6. Config / secrets
111
111
 
112
- - Stripe secrets → `grid_secrets` (set the vault items `stripe-live-key` and
112
+ - Stripe secrets → `grid_set_secret` (set the vault items `stripe-live-key` and
113
113
  `stripe-webhook-secret` that the `vault:` block maps from). The deployer
114
114
  injects each as its env var at runtime and under `grid dev`. Add
115
115
  `auth-provider-key` too if you use an auth SDK.
116
116
  - Non-secret config (Stripe publishable key `NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY`,
117
- price ids, auth publishable key) → `grid_env` / `services.web.env`.
117
+ price ids, auth publishable key) → `grid_set_env` / `services.web.env`.
118
118
  - Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` / legacy
119
119
  `MONGODB_URL`) — the grid injects them.
120
120
 
@@ -125,7 +125,7 @@ and vault secrets before deploying. Don't require it.
125
125
 
126
126
  ## 8. Deploy (async)
127
127
 
128
- Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
128
+ Deploy the folder with `grid_deploy`. A **runtime deploy is ASYNC**: the first
129
129
  response is `status: "building"`, NOT a live URL yet.
130
130
  - Poll `grid_status` (or the returned poll_url) until the entity is live.
131
131
  - Surface a liveness signal while it builds — never a bare silent wait.
@@ -39,7 +39,7 @@ edition** (Claude Desktop / Claude Code) or the CLI.
39
39
 
40
40
  ## 3. Scaffold
41
41
 
42
- `grid_init` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
42
+ `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
43
43
  and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
44
44
  directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**,
45
45
  and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
@@ -64,7 +64,7 @@ and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
64
64
  author new yaml with it, and never set `needs:` and `requires:` together (the
65
65
  validator rejects it).
66
66
  2. Fetch the template for the Mongo wiring + CRUD shape:
67
- `grid_fetch("template", "task-manager")`. It is a minimal, real Next.js +
67
+ `grid_get_template("template", "task-manager")`. It is a minimal, real Next.js +
68
68
  `mongodb`-driver task manager under `services/web/`: a lazy client in
69
69
  `services/web/lib/db.js`, an App-Router GET/POST/PATCH/DELETE route on a
70
70
  `tasks` collection (PATCH toggles done), a server-component page, and a client
@@ -82,13 +82,13 @@ before deploying. Don't require it.
82
82
 
83
83
  ## 6. Config
84
84
 
85
- - API keys / secrets → `grid_secrets`. Non-secret config → `grid_env`.
85
+ - API keys / secrets → `grid_set_secret`. Non-secret config → `grid_set_env`.
86
86
  - Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
87
87
  legacy `MONGODB_URL`) — the grid injects them.
88
88
 
89
89
  ## 7. Deploy (async)
90
90
 
91
- Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
91
+ Deploy the folder with `grid_deploy`. A **runtime deploy is ASYNC**: the first
92
92
  response is `status: "building"`, NOT a live URL yet.
93
93
  - Poll `grid_status` (or the returned poll_url) until the entity is live.
94
94
  - Surface a liveness signal while it builds — never a bare silent wait.
@@ -37,7 +37,7 @@ edition** (Claude Desktop / Claude Code) or the CLI.
37
37
 
38
38
  ## 3. Scaffold
39
39
 
40
- `grid_init` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
40
+ `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
41
41
  and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
42
42
  directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**,
43
43
  and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
@@ -65,7 +65,7 @@ and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
65
65
  `services.web`, and `needs.database` uncommented — so it deploys to exactly
66
66
  those active fields.
67
67
  2. Fetch the template for the Mongo wiring + CRUD shape:
68
- `grid_fetch("template", "ticket-system")`. It is a minimal, real Next.js +
68
+ `grid_get_template("template", "ticket-system")`. It is a minimal, real Next.js +
69
69
  `mongodb`-driver app under `services/web/`: a lazy client in
70
70
  `services/web/lib/db.js`, an App-Router GET/POST/PATCH (status)/DELETE route on a `tickets` collection, a
71
71
  server-component page, and a client component.
@@ -82,13 +82,13 @@ before deploying. Don't require it.
82
82
 
83
83
  ## 6. Config
84
84
 
85
- - API keys / secrets → `grid_secrets`. Non-secret config → `grid_env`.
85
+ - API keys / secrets → `grid_set_secret`. Non-secret config → `grid_set_env`.
86
86
  - Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
87
87
  legacy `MONGODB_URL`) — the grid injects them.
88
88
 
89
89
  ## 7. Deploy (async)
90
90
 
91
- Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
91
+ Deploy the folder with `grid_deploy`. A **runtime deploy is ASYNC**: the first
92
92
  response is `status: "building"`, NOT a live URL yet.
93
93
  - Poll `grid_status` (or the returned poll_url) until the entity is live.
94
94
  - Surface a liveness signal while it builds — never a bare silent wait.
@@ -38,7 +38,7 @@ edition** (Claude Desktop / Claude Code) or the CLI.
38
38
 
39
39
  ## 3. Scaffold
40
40
 
41
- `grid_init` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
41
+ `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
42
42
  and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
43
43
  directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**,
44
44
  and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
@@ -63,7 +63,7 @@ and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
63
63
  author new yaml with it, and never set `needs:` and `requires:` together (the
64
64
  validator rejects it).
65
65
  2. Fetch the template for the Mongo wiring + CRUD shape:
66
- `grid_fetch("template", "time-tracking")`. It is a minimal, real Next.js +
66
+ `grid_get_template("template", "time-tracking")`. It is a minimal, real Next.js +
67
67
  `mongodb`-driver time tracker under `services/web/`: a lazy client in
68
68
  `services/web/lib/db.js`, an App-Router GET/POST/DELETE route on an `entries`
69
69
  collection, a server-component page, and a client form that also renders
@@ -85,13 +85,13 @@ before deploying. Don't require it.
85
85
 
86
86
  ## 6. Config
87
87
 
88
- - API keys / secrets → `grid_secrets`. Non-secret config → `grid_env`.
88
+ - API keys / secrets → `grid_set_secret`. Non-secret config → `grid_set_env`.
89
89
  - Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
90
90
  legacy `MONGODB_URL`) — the grid injects them.
91
91
 
92
92
  ## 7. Deploy (async)
93
93
 
94
- Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
94
+ Deploy the folder with `grid_deploy`. A **runtime deploy is ASYNC**: the first
95
95
  response is `status: "building"`, NOT a live URL yet.
96
96
  - Poll `grid_status` (or the returned poll_url) until the entity is live.
97
97
  - Surface a liveness signal while it builds — never a bare silent wait.
@@ -46,12 +46,12 @@ edition** (Claude Desktop / Claude Code) or the CLI.
46
46
 
47
47
  ## 3. Read the blueprint, then scaffold
48
48
 
49
- 1. Fetch the blueprint: `grid_fetch("template", "travel-booking")`. **Read its
49
+ 1. Fetch the blueprint: `grid_get_template("template", "travel-booking")`. **Read its
50
50
  `AGENTS.md`** — it is the structure guide (file tree under `services/web/`, the
51
51
  `flights` / `hotels` / `bookings` / `trips` collections + the overbooking
52
52
  guard, how CloudGrid injects the DB and vault secrets, how to wire Stripe +
53
53
  auth, and the trip-reminder-cron design).
54
- 2. `grid_init` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
54
+ 2. `grid_create_project` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
55
55
  and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a
56
56
  linked directory, so run `init` FIRST.
57
57
 
@@ -88,9 +88,9 @@ edition** (Claude Desktop / Claude Code) or the CLI.
88
88
 
89
89
  ## 5. Config (secrets)
90
90
 
91
- - Payment/auth secrets → add the vault items with `grid_secrets` (e.g.
91
+ - Payment/auth secrets → add the vault items with `grid_set_secret` (e.g.
92
92
  `stripe-live-key`, `stripe-webhook-secret`, `auth-provider-key`) BEFORE plug so
93
- the `vault:` mappings resolve. Non-secret config → `grid_env`.
93
+ the `vault:` mappings resolve. Non-secret config → `grid_set_env`.
94
94
  - Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` / legacy
95
95
  `MONGODB_URL`) — the grid injects them.
96
96
 
@@ -102,7 +102,7 @@ require it.
102
102
 
103
103
  ## 7. Deploy (async)
104
104
 
105
- Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
105
+ Deploy the folder with `grid_deploy`. A **runtime deploy is ASYNC**: the first
106
106
  response is `status: "building"`, NOT a live URL yet.
107
107
  - Poll `grid_status` (or the returned poll_url) until the entity is live.
108
108
  - Surface a liveness signal while it builds — never a bare silent wait.
@@ -4,7 +4,7 @@ when: waitlist, coming soon, early access, join the list, launch page, sign-up t
4
4
  needs: none
5
5
  deploy: inspiration
6
6
  editions: all
7
- capabilities_note: static — no infrastructure. The email form posts to a configurable mailto/external endpoint; it does NOT store signups. Publishes as an inspiration (instant, works on hosted) via grid_plug.
7
+ capabilities_note: static — no infrastructure. The email form posts to a configurable mailto/external endpoint; it does NOT store signups. Publishes as an inspiration (instant, works on hosted) via grid_deploy.
8
8
  summary: Fetch the waitlist template, fill it with the user's launch copy, wire the form to a mailto or external endpoint, deploy it, and return the live share URL.
9
9
  ---
10
10
 
@@ -22,7 +22,7 @@ NOT store signups anywhere on CloudGrid. To actually **store** waitlist signups
22
22
  (`needs: { database: true }`) — that is a CRUD app, coming in the crud-app
23
23
  archetype (Wave 1b). Do not claim this static page persists data.
24
24
 
25
- 1. **Fetch the template.** Call `grid_fetch("template", "waitlist")` to load
25
+ 1. **Fetch the template.** Call `grid_get_template("template", "waitlist")` to load
26
26
  the self-contained HTML waitlist page (hero, email form, social-proof counter).
27
27
  2. **Fill the template.** Replace the placeholders with the user's content:
28
28
  - The product name, coming-soon headline, and subheadline.