@terreno/mcp 56.0.0-beta.0 → 56.0.0-beta.2

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 (154) hide show
  1. package/LICENSE +21 -0
  2. package/dist/bootstrap.js +7 -7
  3. package/dist/bootstrap.js.map +1 -1
  4. package/dist/docs/templates/bootstrap/backend/types/models/userTypes.template.md +5 -4
  5. package/dist/docs/templates/tools/model.template.md +4 -2
  6. package/dist/docs/upgrades/0.31.0.md +60 -0
  7. package/dist/docs/upgrades/56.0.0-beta.2.md +59 -0
  8. package/dist/docs/versioned/next/README.md +1 -0
  9. package/dist/docs/versioned/next/explanation/README.md +7 -1
  10. package/dist/docs/versioned/next/explanation/deployment-architecture-gcp.md +65 -0
  11. package/dist/docs/versioned/next/explanation/deployment-baseline.md +78 -0
  12. package/dist/docs/versioned/next/explanation/positioning.md +164 -0
  13. package/dist/docs/versioned/next/explanation/repository-settings.md +44 -0
  14. package/dist/docs/versioned/next/explanation/roadmap-process.md +330 -0
  15. package/dist/docs/versioned/next/explanation/roadmap-seed-issues.md +887 -0
  16. package/dist/docs/versioned/next/how-to/README.md +8 -0
  17. package/dist/docs/versioned/next/how-to/build-for-web.md +69 -0
  18. package/dist/docs/versioned/next/how-to/deploy-backend-to-cloud-run.md +115 -0
  19. package/dist/docs/versioned/next/how-to/deploy-to-gcp.md +20 -228
  20. package/dist/docs/versioned/next/how-to/deploy-web-to-gcs-cdn.md +183 -0
  21. package/dist/docs/versioned/next/implementationPlans/PLAN_INDEX.md +31 -0
  22. package/dist/docs/versioned/next/implementationPlans/README.md +56 -30
  23. package/dist/docs/versioned/next/implementationPlans/agentic-sdlc-plugin.md +2 -1
  24. package/dist/docs/versioned/next/implementationPlans/ai-dev-loop-boost.md +1 -0
  25. package/dist/docs/versioned/next/implementationPlans/b2b-platform-program.md +115 -0
  26. package/dist/docs/versioned/next/implementationPlans/billing-stripe.md +158 -0
  27. package/dist/docs/versioned/next/implementationPlans/build-terreno-app-validation.md +1 -0
  28. package/dist/docs/versioned/next/implementationPlans/comms-abstraction.md +323 -0
  29. package/dist/docs/versioned/next/implementationPlans/comms-adapter-expo-push.md +107 -0
  30. package/dist/docs/versioned/next/implementationPlans/comms-adapter-sendgrid.md +157 -0
  31. package/dist/docs/versioned/next/implementationPlans/comms-adapter-twilio-sms.md +155 -0
  32. package/dist/docs/versioned/next/implementationPlans/comms-adapter-twilio-verify.md +99 -0
  33. package/dist/docs/versioned/next/implementationPlans/comms-admin-dashboard.md +180 -0
  34. package/dist/docs/versioned/next/implementationPlans/deploy-to-gcp.md +1 -0
  35. package/dist/docs/versioned/next/implementationPlans/deploy-to-vercel.md +1 -0
  36. package/dist/docs/versioned/next/implementationPlans/deployment-foundation.md +1 -0
  37. package/dist/docs/versioned/next/implementationPlans/docs-reference-coverage.md +1 -0
  38. package/dist/docs/versioned/next/implementationPlans/docs-tutorials-ai-first.md +1 -0
  39. package/dist/docs/versioned/next/implementationPlans/examples-demo-coverage.md +1 -0
  40. package/dist/docs/versioned/next/implementationPlans/infra-mcp-research.md +188 -0
  41. package/dist/docs/versioned/next/implementationPlans/infra-mcp.md +269 -0
  42. package/dist/docs/versioned/next/implementationPlans/migrate-cicd-to-circleci-research.md +126 -0
  43. package/dist/docs/versioned/next/implementationPlans/migrate-cicd-to-circleci.md +269 -0
  44. package/dist/docs/versioned/next/implementationPlans/native-module-baseline.md +105 -0
  45. package/dist/docs/versioned/next/implementationPlans/orgs-and-teams.md +158 -0
  46. package/dist/docs/versioned/next/implementationPlans/oss-governance-baseline.md +1 -0
  47. package/dist/docs/versioned/next/implementationPlans/password-reset-and-email-verification.md +147 -0
  48. package/dist/docs/versioned/next/implementationPlans/positioning-django-rails-universal.md +1 -0
  49. package/dist/docs/versioned/next/implementationPlans/public-roadmap-github.md +1 -0
  50. package/dist/docs/versioned/next/implementationPlans/upgrade-guides-and-skill.md +1 -0
  51. package/dist/docs/versioned/next/implementationPlans/web-ssr-and-admin-spa.md +1 -0
  52. package/dist/docs/versioned/next/reference/README.md +5 -0
  53. package/dist/docs/versioned/next/reference/admin-spa.md +130 -0
  54. package/dist/docs/versioned/next/reference/ai.md +519 -0
  55. package/dist/docs/versioned/next/reference/comms.md +132 -0
  56. package/dist/docs/versioned/next/reference/environment-variables.md +229 -382
  57. package/dist/docs/versioned/next/reference/test.md +108 -0
  58. package/dist/docs/versioned/next/roadmap.md +9 -0
  59. package/dist/docs/versioned/next/tasks/README.md +42 -0
  60. package/dist/docs/versioned/next/tasks/agentic-sdlc-plugin.md +5 -5
  61. package/dist/docs/versioned/next/tasks/billing-stripe.md +75 -0
  62. package/dist/docs/versioned/next/tasks/comms-abstraction.md +90 -0
  63. package/dist/docs/versioned/next/tasks/comms-adapter-expo-push.md +29 -0
  64. package/dist/docs/versioned/next/tasks/comms-adapter-sendgrid.md +39 -0
  65. package/dist/docs/versioned/next/tasks/comms-adapter-twilio-sms.md +39 -0
  66. package/dist/docs/versioned/next/tasks/comms-adapter-twilio-verify.md +19 -0
  67. package/dist/docs/versioned/next/tasks/comms-admin-dashboard.md +52 -0
  68. package/dist/docs/versioned/next/tasks/deploy-to-gcp.md +11 -11
  69. package/dist/docs/versioned/next/tasks/deployment-foundation.md +12 -12
  70. package/dist/docs/versioned/next/tasks/docs-reference-coverage.md +4 -4
  71. package/dist/docs/versioned/next/tasks/infra-mcp.md +43 -0
  72. package/dist/docs/versioned/next/tasks/migrate-cicd-to-circleci.md +215 -0
  73. package/dist/docs/versioned/next/tasks/native-module-baseline.md +42 -0
  74. package/dist/docs/versioned/next/tasks/orgs-and-teams.md +70 -0
  75. package/dist/docs/versioned/next/tasks/oss-governance-baseline.md +18 -18
  76. package/dist/docs/versioned/next/tasks/password-reset-and-email-verification.md +60 -0
  77. package/dist/docs/versioned/next/tasks/positioning-django-rails-universal.md +4 -4
  78. package/dist/docs/versioned/next/tasks/public-roadmap-github.md +15 -15
  79. package/package.json +4 -3
  80. package/src/docs/templates/bootstrap/backend/types/models/userTypes.template.md +5 -4
  81. package/src/docs/templates/tools/model.template.md +4 -2
  82. package/src/docs/upgrades/0.31.0.md +60 -0
  83. package/src/docs/upgrades/56.0.0-beta.2.md +59 -0
  84. package/src/docs/versioned/next/README.md +1 -0
  85. package/src/docs/versioned/next/explanation/README.md +7 -1
  86. package/src/docs/versioned/next/explanation/deployment-architecture-gcp.md +65 -0
  87. package/src/docs/versioned/next/explanation/deployment-baseline.md +78 -0
  88. package/src/docs/versioned/next/explanation/positioning.md +164 -0
  89. package/src/docs/versioned/next/explanation/repository-settings.md +44 -0
  90. package/src/docs/versioned/next/explanation/roadmap-process.md +330 -0
  91. package/src/docs/versioned/next/explanation/roadmap-seed-issues.md +887 -0
  92. package/src/docs/versioned/next/how-to/README.md +8 -0
  93. package/src/docs/versioned/next/how-to/build-for-web.md +69 -0
  94. package/src/docs/versioned/next/how-to/deploy-backend-to-cloud-run.md +115 -0
  95. package/src/docs/versioned/next/how-to/deploy-to-gcp.md +20 -228
  96. package/src/docs/versioned/next/how-to/deploy-web-to-gcs-cdn.md +183 -0
  97. package/src/docs/versioned/next/implementationPlans/PLAN_INDEX.md +31 -0
  98. package/src/docs/versioned/next/implementationPlans/README.md +56 -30
  99. package/src/docs/versioned/next/implementationPlans/agentic-sdlc-plugin.md +2 -1
  100. package/src/docs/versioned/next/implementationPlans/ai-dev-loop-boost.md +1 -0
  101. package/src/docs/versioned/next/implementationPlans/b2b-platform-program.md +115 -0
  102. package/src/docs/versioned/next/implementationPlans/billing-stripe.md +158 -0
  103. package/src/docs/versioned/next/implementationPlans/build-terreno-app-validation.md +1 -0
  104. package/src/docs/versioned/next/implementationPlans/comms-abstraction.md +323 -0
  105. package/src/docs/versioned/next/implementationPlans/comms-adapter-expo-push.md +107 -0
  106. package/src/docs/versioned/next/implementationPlans/comms-adapter-sendgrid.md +157 -0
  107. package/src/docs/versioned/next/implementationPlans/comms-adapter-twilio-sms.md +155 -0
  108. package/src/docs/versioned/next/implementationPlans/comms-adapter-twilio-verify.md +99 -0
  109. package/src/docs/versioned/next/implementationPlans/comms-admin-dashboard.md +180 -0
  110. package/src/docs/versioned/next/implementationPlans/deploy-to-gcp.md +1 -0
  111. package/src/docs/versioned/next/implementationPlans/deploy-to-vercel.md +1 -0
  112. package/src/docs/versioned/next/implementationPlans/deployment-foundation.md +1 -0
  113. package/src/docs/versioned/next/implementationPlans/docs-reference-coverage.md +1 -0
  114. package/src/docs/versioned/next/implementationPlans/docs-tutorials-ai-first.md +1 -0
  115. package/src/docs/versioned/next/implementationPlans/examples-demo-coverage.md +1 -0
  116. package/src/docs/versioned/next/implementationPlans/infra-mcp-research.md +188 -0
  117. package/src/docs/versioned/next/implementationPlans/infra-mcp.md +269 -0
  118. package/src/docs/versioned/next/implementationPlans/migrate-cicd-to-circleci-research.md +126 -0
  119. package/src/docs/versioned/next/implementationPlans/migrate-cicd-to-circleci.md +269 -0
  120. package/src/docs/versioned/next/implementationPlans/native-module-baseline.md +105 -0
  121. package/src/docs/versioned/next/implementationPlans/orgs-and-teams.md +158 -0
  122. package/src/docs/versioned/next/implementationPlans/oss-governance-baseline.md +1 -0
  123. package/src/docs/versioned/next/implementationPlans/password-reset-and-email-verification.md +147 -0
  124. package/src/docs/versioned/next/implementationPlans/positioning-django-rails-universal.md +1 -0
  125. package/src/docs/versioned/next/implementationPlans/public-roadmap-github.md +1 -0
  126. package/src/docs/versioned/next/implementationPlans/upgrade-guides-and-skill.md +1 -0
  127. package/src/docs/versioned/next/implementationPlans/web-ssr-and-admin-spa.md +1 -0
  128. package/src/docs/versioned/next/reference/README.md +5 -0
  129. package/src/docs/versioned/next/reference/admin-spa.md +130 -0
  130. package/src/docs/versioned/next/reference/ai.md +519 -0
  131. package/src/docs/versioned/next/reference/comms.md +132 -0
  132. package/src/docs/versioned/next/reference/environment-variables.md +229 -382
  133. package/src/docs/versioned/next/reference/test.md +108 -0
  134. package/src/docs/versioned/next/roadmap.md +9 -0
  135. package/src/docs/versioned/next/tasks/README.md +42 -0
  136. package/src/docs/versioned/next/tasks/agentic-sdlc-plugin.md +5 -5
  137. package/src/docs/versioned/next/tasks/billing-stripe.md +75 -0
  138. package/src/docs/versioned/next/tasks/comms-abstraction.md +90 -0
  139. package/src/docs/versioned/next/tasks/comms-adapter-expo-push.md +29 -0
  140. package/src/docs/versioned/next/tasks/comms-adapter-sendgrid.md +39 -0
  141. package/src/docs/versioned/next/tasks/comms-adapter-twilio-sms.md +39 -0
  142. package/src/docs/versioned/next/tasks/comms-adapter-twilio-verify.md +19 -0
  143. package/src/docs/versioned/next/tasks/comms-admin-dashboard.md +52 -0
  144. package/src/docs/versioned/next/tasks/deploy-to-gcp.md +11 -11
  145. package/src/docs/versioned/next/tasks/deployment-foundation.md +12 -12
  146. package/src/docs/versioned/next/tasks/docs-reference-coverage.md +4 -4
  147. package/src/docs/versioned/next/tasks/infra-mcp.md +43 -0
  148. package/src/docs/versioned/next/tasks/migrate-cicd-to-circleci.md +215 -0
  149. package/src/docs/versioned/next/tasks/native-module-baseline.md +42 -0
  150. package/src/docs/versioned/next/tasks/orgs-and-teams.md +70 -0
  151. package/src/docs/versioned/next/tasks/oss-governance-baseline.md +18 -18
  152. package/src/docs/versioned/next/tasks/password-reset-and-email-verification.md +60 -0
  153. package/src/docs/versioned/next/tasks/positioning-django-rails-universal.md +4 -4
  154. package/src/docs/versioned/next/tasks/public-roadmap-github.md +15 -15
@@ -0,0 +1,887 @@
1
+ # Roadmap seed issues
2
+
3
+ Ready-to-paste GitHub issue bodies for IPs on the public roadmap — the
4
+ [OSS launch program](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/oss-launch-program.md) IPs plus other
5
+ roadmap-tracked work. Open one tracking issue per IP when the IP reaches **Approved**, then
6
+ add it to the **Terreno Roadmap** project with the field values below.
7
+
8
+ ---
9
+
10
+ ## oss-governance-baseline
11
+
12
+ **Title:** `[Roadmap] OSS governance baseline`
13
+
14
+ **Labels:** `area:dx`, `type:chore`
15
+ **Project fields:** Area=`dx`, Target=`Next`, Impact=`Improvement`, IP=`oss-governance-baseline`, Status=`Shipped`
16
+
17
+ Establishes the legal and community foundation required before Terreno can launch as a public
18
+ open-source project. It adds a root MIT license, contribution and security policies, a
19
+ changelog, GitHub community health files, and CI checks so every published npm package ships
20
+ with correct licensing. Without this work, the repository cannot credibly invite outside
21
+ contributors or consumers.
22
+
23
+ - **Implementation plan:** [oss-governance-baseline.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/oss-governance-baseline.md)
24
+ - **Tasks:** [oss-governance-baseline.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/oss-governance-baseline.md)
25
+ - **RTK flag:** None
26
+ - **Depends on:** —
27
+
28
+ ---
29
+
30
+ ## public-roadmap-github
31
+
32
+ **Title:** `[Roadmap] Public roadmap on GitHub`
33
+
34
+ **Labels:** `area:dx`, `type:feature`
35
+ **Project fields:** Area=`dx`, Target=`Next`, Impact=`Improvement`, IP=`public-roadmap-github`, Status=`In progress`
36
+
37
+ Runs Terreno's public roadmap on GitHub while keeping Linear as the internal execution
38
+ tracker. It sets up GitHub Discussions categories, a Terreno Roadmap project board, label
39
+ taxonomy, automated ROADMAP.md generation, and a one-way GitHub-to-Linear bridge for tracked
40
+ issues. Outside contributors can see priorities and propose work without maintainers
41
+ duplicating sprint planning.
42
+
43
+ - **Implementation plan:** [public-roadmap-github.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/public-roadmap-github.md)
44
+ - **Tasks:** [public-roadmap-github.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/public-roadmap-github.md)
45
+ - **RTK flag:** None
46
+ - **Depends on:** oss-governance-baseline
47
+
48
+ ---
49
+
50
+ ## deploy-to-gcp
51
+
52
+ **Title:** `[Roadmap] Deploy to GCP (generalized)`
53
+
54
+ **Labels:** `area:deploy`, `type:docs`
55
+ **Project fields:** Area=`deploy`, Target=`Next`, Impact=`Improvement`, IP=`deploy-to-gcp`, Status=`Planned`
56
+
57
+ Turns Terreno's GCP deployment story from Flourish-specific infrastructure into a reusable
58
+ guide any Terreno app can follow. It documents Cloud Run backend hosting, GCS plus CDN for
59
+ static web export, a reusable Terraform module, parameterized scripts, and a deploy-gcp
60
+ agent skill with confirmation gates. The guide covers websocket, replica-set, and
61
+ session-affinity constraints that commonly break production Terreno deployments.
62
+
63
+ - **Implementation plan:** [deploy-to-gcp.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/deploy-to-gcp.md)
64
+ - **Tasks:** [deploy-to-gcp.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/deploy-to-gcp.md)
65
+ - **RTK flag:** None
66
+ - **Depends on:** deployment-foundation
67
+
68
+ ---
69
+
70
+ ## agentic-sdlc-plugin
71
+
72
+ **Title:** `[Roadmap] Agentic SDLC plugin (/terreno-*)`
73
+
74
+ **Labels:** `area:dx`, `type:feature`
75
+ **Project fields:** Area=`dx`, Target=`Next`, Impact=`Feature`, IP=`agentic-sdlc-plugin`, Status=`Planned`
76
+
77
+ Packages and documents Terreno's five-stage `/terreno-*` agentic SDLC pipeline as a portable,
78
+ publicly installable Cursor plugin. The pipeline takes work from a raw request through
79
+ planning, test-driven implementation, independent verification, submission with evidence,
80
+ and a review loop until mergeable. Today the tooling exists inside the monorepo but is
81
+ invisible and breaks in consumer apps.
82
+
83
+ - **Implementation plan:** [agentic-sdlc-plugin.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/agentic-sdlc-plugin.md)
84
+ - **Tasks:** [agentic-sdlc-plugin.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/agentic-sdlc-plugin.md)
85
+ - **RTK flag:** Partial
86
+ - **Depends on:** positioning-django-rails-universal, oss-governance-baseline
87
+
88
+ ---
89
+
90
+ ## rtk-to-syncdb-migration-docs
91
+
92
+ **Title:** `[Roadmap] RTK deprecation and syncdb migration docs`
93
+
94
+ **Labels:** `area:syncdb`, `type:docs`, `deprecation`, `status:blocked`
95
+ **Project fields:** Area=`syncdb`, Target=`Next`, Impact=`Improvement`, IP=`rtk-to-syncdb-migration-docs`, Status=`Planned`
96
+
97
+ > Blocked on PR #869. The Project **Status** field has no `Blocked` option, so gating is
98
+ > tracked with the `status:blocked` issue label instead.
99
+
100
+ Makes Better Auth plus `@terreno/syncdb` the documented, supported frontend platform and gives
101
+ RTK Query consumers a tested migration path. It covers deprecation policy, a step-by-step
102
+ migration guide, syncdb reference docs, auth repositioning, and updates to agent rules, MCP
103
+ bootstrap output, and upgrade notes. Gates most Wave 1 launch documentation.
104
+
105
+ - **Implementation plan:** [rtk-to-syncdb-migration-docs.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/rtk-to-syncdb-migration-docs.md)
106
+ - **Tasks:** [rtk-to-syncdb-migration-docs.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/rtk-to-syncdb-migration-docs.md)
107
+ - **RTK flag:** Blocked (PR #869)
108
+ - **Depends on:** PR #869
109
+
110
+ ---
111
+
112
+ ## positioning-django-rails-universal
113
+
114
+ **Title:** `[Roadmap] Positioning — Django/Rails for TypeScript`
115
+
116
+ **Labels:** `area:docs`, `type:docs`
117
+ **Project fields:** Area=`docs`, Target=`Next`, Impact=`Improvement`, IP=`positioning-django-rails-universal`, Status=`Planned`
118
+
119
+ Aligns Terreno's messaging across README, docs site, agent context files, and npm package
120
+ metadata under one positioning statement: Django/Rails for TypeScript with universal app
121
+ support, organized around batteries included, universal by default, and AI-native pillars.
122
+
123
+ - **Implementation plan:** [positioning-django-rails-universal.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/positioning-django-rails-universal.md)
124
+ - **Tasks:** [positioning-django-rails-universal.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/positioning-django-rails-universal.md)
125
+ - **RTK flag:** Partial
126
+ - **Depends on:** rtk-to-syncdb-migration-docs
127
+
128
+ ---
129
+
130
+ ## docs-reference-coverage
131
+
132
+ **Title:** `[Roadmap] Reference documentation coverage`
133
+
134
+ **Labels:** `area:docs`, `type:docs`
135
+ **Project fields:** Area=`docs`, Target=`Next`, Impact=`Improvement`, IP=`docs-reference-coverage`, Status=`Planned`
136
+
137
+ Gives every published Terreno package a real README and a public docs/reference page instead
138
+ of stubs. Adds missing reference pages, de-stubs package READMEs, sanitizes internal
139
+ leakage, and extends docs-audit CI to catch drift.
140
+
141
+ - **Implementation plan:** [docs-reference-coverage.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/docs-reference-coverage.md)
142
+ - **Tasks:** [docs-reference-coverage.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/docs-reference-coverage.md)
143
+ - **RTK flag:** Blocked
144
+ - **Depends on:** rtk-to-syncdb-migration-docs, positioning-django-rails-universal
145
+
146
+ ---
147
+
148
+ ## docs-tutorials-ai-first
149
+
150
+ **Title:** `[Roadmap] AI-first tutorials`
151
+
152
+ **Labels:** `area:docs`, `type:docs`
153
+ **Project fields:** Area=`docs`, Target=`Next`, Impact=`Feature`, IP=`docs-tutorials-ai-first`, Status=`Planned`
154
+
155
+ Replaces Terreno's thin getting-started page with a full tutorial path where the
156
+ AI-assisted workflow is the default. Six tutorials cover examples, first app, MCP, AI
157
+ features, admin panel, and production deploy — all on syncdb + Better Auth.
158
+
159
+ - **Implementation plan:** [docs-tutorials-ai-first.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/docs-tutorials-ai-first.md)
160
+ - **Tasks:** [docs-tutorials-ai-first.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/docs-tutorials-ai-first.md)
161
+ - **RTK flag:** Blocked
162
+ - **Depends on:** docs-reference-coverage, ai-dev-loop-boost, deployment-foundation
163
+
164
+ ---
165
+
166
+ ## deployment-foundation
167
+
168
+ **Title:** `[Roadmap] Deployment foundation`
169
+
170
+ **Labels:** `area:deploy`, `type:docs`
171
+ **Project fields:** Area=`deploy`, Target=`Next`, Impact=`Improvement`, IP=`deployment-foundation`, Status=`Planned`
172
+
173
+ Defines the provider-agnostic deployment baseline every Terreno production app needs: core
174
+ requirements, environment-variable reference, Expo web output modes, and a canonical
175
+ example-backend Dockerfile with CI validation.
176
+
177
+ - **Implementation plan:** [deployment-foundation.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/deployment-foundation.md)
178
+ - **Tasks:** [deployment-foundation.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/deployment-foundation.md)
179
+ - **RTK flag:** Partial
180
+ - **Depends on:** —
181
+
182
+ ---
183
+
184
+ ## deploy-to-vercel
185
+
186
+ **Title:** `[Roadmap] Deploy to Vercel`
187
+
188
+ **Labels:** `area:deploy`, `type:docs`
189
+ **Project fields:** Area=`deploy`, Target=`Next`, Impact=`Improvement`, IP=`deploy-to-vercel`, Status=`Planned`
190
+
191
+ Documents Expo web export on Vercel, preview-deployment CORS and Better Auth origin handling,
192
+ and a deploy-vercel skill with websocket verification. Requires a spike on backend hosting
193
+ options.
194
+
195
+ - **Implementation plan:** [deploy-to-vercel.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/deploy-to-vercel.md)
196
+ - **Tasks:** [deploy-to-vercel.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/deploy-to-vercel.md)
197
+ - **RTK flag:** Partial
198
+ - **Depends on:** deployment-foundation
199
+
200
+ ---
201
+
202
+ ## upgrade-guides-and-skill
203
+
204
+ **Title:** `[Roadmap] Upgrade guides and upgrading-terreno skill`
205
+
206
+ **Labels:** `area:mcp`, `type:docs`
207
+ **Project fields:** Area=`mcp`, Target=`Next`, Impact=`Improvement`, IP=`upgrade-guides-and-skill`, Status=`Planned`
208
+
209
+ Makes upgrading Terreno across lockstep-published packages a documented, repeatable process.
210
+ Backfills upgrade notes, adds versioning policy, ships an upgrading-terreno skill, and
211
+ enforces upgrade-note requirements in release CI.
212
+
213
+ - **Implementation plan:** [upgrade-guides-and-skill.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/upgrade-guides-and-skill.md)
214
+ - **Tasks:** [upgrade-guides-and-skill.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/upgrade-guides-and-skill.md)
215
+ - **RTK flag:** Blocked
216
+ - **Depends on:** rtk-to-syncdb-migration-docs, oss-governance-baseline
217
+
218
+ ---
219
+
220
+ ## ai-dev-loop-boost
221
+
222
+ **Title:** `[Roadmap] AI development loop (MCP Boost)`
223
+
224
+ **Labels:** `area:mcp`, `type:feature`
225
+ **Project fields:** Area=`mcp`, Target=`Next`, Impact=`Feature`, IP=`ai-dev-loop-boost`, Status=`Planned`
226
+
227
+ Documents Terreno's AI-native development loop: search docs, generate code, run the app,
228
+ observe merged logs and client state, then fix and iterate. Builds on MCP Boost parity (PR
229
+ #802).
230
+
231
+ - **Implementation plan:** [ai-dev-loop-boost.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/ai-dev-loop-boost.md)
232
+ - **Tasks:** [ai-dev-loop-boost.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/ai-dev-loop-boost.md)
233
+ - **RTK flag:** Partial
234
+ - **Depends on:** PR #802
235
+
236
+ ---
237
+
238
+ ## build-terreno-app-validation
239
+
240
+ **Title:** `[Roadmap] Dogfooding run and launch blog post`
241
+
242
+ **Labels:** `area:docs`, `type:chore`
243
+ **Project fields:** Area=`docs`, Target=`Next`, Impact=`Improvement`, IP=`build-terreno-app-validation`, Status=`Planned`
244
+
245
+ Executes the OSS launch acceptance test: an agent builds and deploys a real universal app
246
+ using only public docs and skills, then publishes a friction log and blog post.
247
+
248
+ - **Implementation plan:** [build-terreno-app-validation.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/build-terreno-app-validation.md)
249
+ - **Tasks:** [build-terreno-app-validation.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/build-terreno-app-validation.md)
250
+ - **RTK flag:** Blocked
251
+ - **Depends on:** docs-tutorials-ai-first, ai-dev-loop-boost, deploy-to-vercel, docs-reference-coverage
252
+
253
+ ---
254
+
255
+ ## examples-demo-coverage
256
+
257
+ **Title:** `[Roadmap] Examples, demo, and test coverage`
258
+
259
+ **Labels:** `area:examples`, `type:chore`
260
+ **Project fields:** Area=`examples`, Target=`Future`, Impact=`Improvement`, IP=`examples-demo-coverage`, Status=`Planned`
261
+
262
+ Closes credibility gaps in examples, the UI demo app, and CI coverage gates. Adds missing demo
263
+ stories, extends coverage enforcement, and publishes an example-app feature matrix.
264
+
265
+ - **Implementation plan:** [examples-demo-coverage.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/examples-demo-coverage.md)
266
+ - **Tasks:** [examples-demo-coverage.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/examples-demo-coverage.md)
267
+ - **RTK flag:** Partial
268
+ - **Depends on:** docs-reference-coverage
269
+
270
+ ---
271
+
272
+ ## web-ssr-and-admin-spa
273
+
274
+ **Title:** `[Roadmap] Web SSR and admin SPA`
275
+
276
+ **Labels:** `area:ui`, `type:feature`
277
+ **Project fields:** Area=`ui`, Target=`Future`, Impact=`Feature`, IP=`web-ssr-and-admin-spa`, Status=`Planned`
278
+
279
+ Adds real server-side rendering for Terreno web apps so routes can be indexed and paint
280
+ meaningful HTML before JavaScript loads. Starts with static output and admin-spa as proving
281
+ ground; SSR is opt-in and depends on Expo SDK 55+.
282
+
283
+ - **Implementation plan:** [web-ssr-and-admin-spa.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/web-ssr-and-admin-spa.md)
284
+ - **Tasks:** [web-ssr-and-admin-spa.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/web-ssr-and-admin-spa.md)
285
+ - **RTK flag:** Partial
286
+ - **Depends on:** Expo SDK ≥ 55 (PR #779), deployment-foundation
287
+
288
+ ---
289
+
290
+ ## infra-mcp
291
+
292
+ *Outside the OSS launch program.*
293
+
294
+ **Title:** `[Roadmap] Infrastructure MCP server (@terreno/infra-mcp)`
295
+
296
+ **Labels:** `area:mcp`, `type:feature`, `status:blocked`
297
+ **Project fields:** Area=`mcp`, Target=`Future`, Impact=`Feature`, IP=`infra-mcp`, Status=`Planned`
298
+
299
+ > Blocked on the RBAC permissions module. The Project **Status** field has no `Blocked`
300
+ > option, so gating is tracked with the `status:blocked` issue label instead.
301
+
302
+ Puts privileged infrastructure tooling — GCP, Sentry, MongoDB, and later Expo/EAS and Vercel —
303
+ behind one deployable MCP server with per-user OAuth 2.1 authentication, RBAC-driven read and
304
+ write tiers, per-call confirmation on write tools, and an audit trail. Read-only access covers
305
+ log digging without handing anyone production credentials, and the server runs on its own Cloud
306
+ Run runtime service account so injected service-account keys can be retired.
307
+
308
+ - **Implementation plan:** [infra-mcp.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/infra-mcp.md)
309
+ - **Tasks:** [infra-mcp.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/infra-mcp.md)
310
+ - **RTK flag:** None
311
+ - **Depends on:** rbac-permissions
312
+
313
+ ---
314
+
315
+ # B2B platform program
316
+
317
+ Ready-to-paste GitHub issue bodies for the
318
+ [B2B platform program](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/b2b-platform-program.md).
319
+ Items marked *(IP pending)* are drafted ahead of their IP by maintainer decision; open the
320
+ issue with `Status=Planned` and fill the IP field when the IP lands.
321
+
322
+ ---
323
+
324
+ ## comms-abstraction
325
+
326
+ **Title:** `[Roadmap] Pluggable communications layer (@terreno/comms)`
327
+
328
+ **Labels:** `area:api`, `type:feature`
329
+ **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=`comms-abstraction`, Status=`Planned`
330
+
331
+ Terreno backends have no way to send email, SMS, or push notifications today. This adds a
332
+ new `@terreno/comms` package with provider interfaces for mail, SMS, push, and OTP
333
+ verification, a `CommsApp` plugin that registers them on a Terreno app, push-token
334
+ registration routes, a delivery log model, and console adapters for local development.
335
+ Concrete providers (Twilio, SendGrid, Expo push) ship as separate adapters, each with its own
336
+ roadmap item, so apps only install the SDKs they use.
337
+
338
+ - **Implementation plan:** [comms-abstraction.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/comms-abstraction.md)
339
+ - **Tasks:** [comms-abstraction.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/comms-abstraction.md)
340
+ - **RTK flag:** None
341
+ - **Depends on:** —
342
+
343
+ ---
344
+
345
+ ## comms-adapter-expo-push
346
+
347
+ **Title:** `[Roadmap] Comms adapter — Expo push notifications`
348
+
349
+ **Labels:** `area:api`, `type:feature`
350
+ **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=`comms-adapter-expo-push`, Status=`Planned`
351
+
352
+ Implements the `@terreno/comms` push provider on Expo's push service using
353
+ `expo-server-sdk` (already a dependency of `@terreno/api`, currently unused). Covers token
354
+ chunking, receipt polling, and automatic deactivation of dead device tokens. The client
355
+ half — `getExpoPushTokenAsync` registration — already exists in example-frontend.
356
+
357
+ - **Implementation plan:** [comms-adapter-expo-push.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/comms-adapter-expo-push.md)
358
+ - **Tasks:** [comms-adapter-expo-push.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/comms-adapter-expo-push.md)
359
+ - **RTK flag:** None
360
+ - **Depends on:** comms-abstraction
361
+
362
+ ---
363
+
364
+ ## comms-adapter-twilio-sms
365
+
366
+ **Title:** `[Roadmap] Comms adapter — Twilio SMS`
367
+
368
+ **Labels:** `area:api`, `type:feature`
369
+ **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=`comms-adapter-twilio-sms`, Status=`Planned`
370
+
371
+ Implements the `@terreno/comms` SMS provider on Twilio Programmable Messaging: send via
372
+ messaging service or from-number, delivery status callbacks through the inbound-webhook
373
+ framework, and E.164 validation using the `libphonenumber-js` dependency already in the
374
+ catalog.
375
+
376
+ - **Implementation plan:** [comms-adapter-twilio-sms.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/comms-adapter-twilio-sms.md)
377
+ - **Tasks:** [comms-adapter-twilio-sms.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/comms-adapter-twilio-sms.md)
378
+ - **RTK flag:** None
379
+ - **Depends on:** comms-abstraction; inbound-webhooks (status callbacks phase only)
380
+
381
+ ---
382
+
383
+ ## comms-adapter-twilio-verify
384
+
385
+ **Title:** `[Roadmap] Comms adapter — Twilio Verify (OTP)`
386
+
387
+ **Labels:** `area:api`, `type:feature`
388
+ **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=`comms-adapter-twilio-verify`, Status=`Planned`
389
+
390
+ Implements the `@terreno/comms` verification provider on Twilio Verify for SMS and email
391
+ one-time codes. This is the delivery channel for phone verification and for the future MFA
392
+ step-up work, without Terreno storing or rate-limiting codes itself.
393
+
394
+ - **Implementation plan:** [comms-adapter-twilio-verify.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/comms-adapter-twilio-verify.md)
395
+ - **Tasks:** [comms-adapter-twilio-verify.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/comms-adapter-twilio-verify.md)
396
+ - **RTK flag:** None
397
+ - **Depends on:** comms-abstraction
398
+
399
+ ---
400
+
401
+ ## comms-adapter-sendgrid
402
+
403
+ **Title:** `[Roadmap] Comms adapter — transactional email (SendGrid)`
404
+
405
+ **Labels:** `area:api`, `type:feature`
406
+ **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=`comms-adapter-sendgrid`, Status=`Planned`
407
+
408
+ Implements the first `@terreno/comms` mail provider on Twilio SendGrid so Terreno apps can
409
+ send transactional email (password resets, invitations, verification), sharing the Twilio
410
+ account story with the SMS and Verify adapters (decision D2). Other providers (Resend,
411
+ SES, SMTP) get their own items when demand appears.
412
+
413
+ - **Implementation plan:** [comms-adapter-sendgrid.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/comms-adapter-sendgrid.md)
414
+ - **Tasks:** [comms-adapter-sendgrid.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/comms-adapter-sendgrid.md)
415
+ - **RTK flag:** None
416
+ - **Depends on:** comms-abstraction
417
+
418
+ ---
419
+
420
+ ## comms-admin-dashboard
421
+
422
+ **Title:** `[Roadmap] Comms admin dashboard (errors, retries, log digging)`
423
+
424
+ **Labels:** `area:admin`, `type:feature`
425
+ **Project fields:** Area=`admin`, Target=`Next`, Impact=`Feature`, IP=`comms-admin-dashboard`, Status=`Planned`
426
+
427
+ Makes the admin panel the operations surface for the `@terreno/comms` layer: filterable
428
+ delivery logs (channel, provider, status, error code/class, recipient, date range, free
429
+ text), a message detail view with per-attempt history and raw provider metadata for log
430
+ digging, one-click and bulk retry of failed sends, and a stats endpoint for failure-rate
431
+ cards. Builds on the error taxonomy, lifecycle hooks, and payload retention added to the
432
+ comms abstraction.
433
+
434
+ - **Implementation plan:** [comms-admin-dashboard.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/comms-admin-dashboard.md)
435
+ - **Tasks:** [comms-admin-dashboard.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/comms-admin-dashboard.md)
436
+ - **RTK flag:** Partial — screens use the generated SDK; migrate with syncdb like other admin screens
437
+ - **Depends on:** comms-abstraction
438
+
439
+ ---
440
+
441
+ ## password-reset-and-email-verification
442
+
443
+ **Title:** `[Roadmap] Password reset and email verification`
444
+
445
+ **Labels:** `area:auth`, `type:feature`
446
+ **Project fields:** Area=`auth`, Target=`Next`, Impact=`Feature`, IP=`password-reset-and-email-verification`, Status=`Planned`
447
+
448
+ Closes a functional hole: the `@terreno/rtk` client already exposes a `resetPassword`
449
+ endpoint but no backend route implements it, and there is no email verification flow.
450
+ Adds token-issuing reset and verification routes to the JWT auth path, wires Better Auth's
451
+ equivalents, and sends the emails through `@terreno/comms`.
452
+
453
+ - **Implementation plan:** [password-reset-and-email-verification.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/password-reset-and-email-verification.md)
454
+ - **Tasks:** [password-reset-and-email-verification.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/password-reset-and-email-verification.md)
455
+ - **RTK flag:** None
456
+ - **Depends on:** comms-abstraction, comms-adapter-sendgrid
457
+
458
+ ---
459
+
460
+ ## inbound-webhooks
461
+
462
+ **Title:** `[Roadmap] Inbound webhook framework`
463
+
464
+ **Labels:** `area:api`, `type:feature`
465
+ **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
466
+
467
+ Terreno has outbound notifiers (Slack, Google Chat, Zoom) but no framework for receiving
468
+ webhooks from external services. Adds a plugin for registering webhook endpoints with
469
+ signature verification, raw-body handling, idempotency/replay protection, and event
470
+ dispatch — required by Stripe billing and by Twilio/Expo delivery status callbacks.
471
+
472
+ - **Implementation plan:** *(not yet written)*
473
+ - **Tasks:** *(not yet written)*
474
+ - **RTK flag:** None
475
+ - **Depends on:** —
476
+
477
+ ---
478
+
479
+ ## orgs-and-teams
480
+
481
+ **Title:** `[Roadmap] Organizations, teams, and multi-tenant scoping`
482
+
483
+ **Labels:** `area:api`, `type:feature`
484
+ **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=`orgs-and-teams`, Status=`Planned`
485
+
486
+ Terreno's data model is per-user: `ownerId`, `OwnerQueryFilter`, and owner permissions.
487
+ B2B apps need organizations. This adds Organization and Membership models, an org-context
488
+ middleware, an `OrgQueryFilter` and org-scoping schema plugin for modelRouter, and
489
+ membership-aware permission classes — the tenant analog of the existing owner stack.
490
+ Invitations and the management UI are separate items.
491
+
492
+ - **Implementation plan:** [orgs-and-teams.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/orgs-and-teams.md)
493
+ - **Tasks:** [orgs-and-teams.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/orgs-and-teams.md)
494
+ - **RTK flag:** None
495
+ - **Depends on:** —
496
+
497
+ ---
498
+
499
+ ## rbac-permissions
500
+
501
+ **Title:** `[Roadmap] Role-based access control`
502
+
503
+ **Labels:** `area:api`, `type:feature`
504
+ **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=`rbac-permissions`, Status=`Planned`
505
+
506
+ Replaces the binary `admin` flag + owner checks with a first-class RBAC module: a typed
507
+ permission vocabulary on Better Auth's access-control engine, DB-backed roles editable in
508
+ the admin panel, document-level scopes, field-level views, and one `can()` check enforced
509
+ across REST, websockets, MCP tools, and admin. An API design draft already exists;
510
+ `orgs-and-teams` extends it with org-scoped grants.
511
+
512
+ - **Implementation plan:** [rbac-permissions.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/rbac-permissions.md)
513
+ - **Tasks:** *(TBD — design doc predates task split)*
514
+ - **RTK flag:** None
515
+ - **Depends on:** —
516
+
517
+ ---
518
+
519
+ ## invitations-and-seats
520
+
521
+ **Title:** `[Roadmap] Invitations and seat management`
522
+
523
+ **Labels:** `area:api`, `type:feature`
524
+ **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
525
+
526
+ Lets an org admin invite teammates by email: invite tokens with expiry, accept/decline
527
+ flows for existing and new users, role assignment on acceptance, and seat counting that
528
+ billing can later enforce. Emails go through `@terreno/comms`.
529
+
530
+ - **Implementation plan:** *(not yet written)*
531
+ - **Tasks:** *(not yet written)*
532
+ - **RTK flag:** None
533
+ - **Depends on:** orgs-and-teams, comms-abstraction, comms-adapter-sendgrid
534
+
535
+ ---
536
+
537
+ ## org-management-ui
538
+
539
+ **Title:** `[Roadmap] Org switcher and member management screens`
540
+
541
+ **Labels:** `area:ui`, `type:feature`
542
+ **Project fields:** Area=`ui`, Target=`Next`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
543
+
544
+ The frontend counterpart of the tenancy track: an organization switcher, members list with
545
+ roles, invite flow, and org settings screens in `@terreno/ui` + example-frontend, working
546
+ on web and native.
547
+
548
+ - **Implementation plan:** *(not yet written)*
549
+ - **Tasks:** *(not yet written)*
550
+ - **RTK flag:** Partial — screens should target the syncdb data layer where available
551
+ - **Depends on:** orgs-and-teams, rbac-permissions, invitations-and-seats
552
+
553
+ ---
554
+
555
+ ## billing-stripe
556
+
557
+ **Title:** `[Roadmap] Stripe billing and subscriptions`
558
+
559
+ **Labels:** `area:api`, `type:feature`
560
+ **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=`billing-stripe`, Status=`Planned`
561
+
562
+ Adds a billing plugin on Stripe (web-first, decision D1): customers mapped to
563
+ organizations, subscription and plan models, checkout/portal session routes,
564
+ webhook-driven entitlement sync, and plan gating that plugs into the existing feature-flag
565
+ layer. Includes basic plan-picker and billing settings screens. Mobile in-app purchases
566
+ are a separate item.
567
+
568
+ - **Implementation plan:** [billing-stripe.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/billing-stripe.md)
569
+ - **Tasks:** [billing-stripe.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/billing-stripe.md)
570
+ - **RTK flag:** None
571
+ - **Depends on:** orgs-and-teams, inbound-webhooks
572
+
573
+ ---
574
+
575
+ ## native-module-baseline
576
+
577
+ **Title:** `[Roadmap] Native module baseline for the next major release`
578
+
579
+ **Labels:** `area:ui`, `type:chore`, `breaking`
580
+ **Project fields:** Area=`ui`, Target=`Next`, Impact=`Breaking`, IP=*(not yet written)*, Status=`Planned`
581
+
582
+ Adding a native module to a Terreno app forces a new dev-client/store binary, so every
583
+ native dependency the B2B program needs lands in one major release: Stripe payment sheet,
584
+ RevenueCat purchases, `expo-device`, `expo-crypto`, `expo-local-authentication`,
585
+ `expo-system-ui`, and `react-native-otp-verify`, plus config plugins and refreshed EAS
586
+ builds. After this release, the rest of the program ships as JS/OTA updates against the
587
+ same binary. Manifest finalized 2026-08-09 (decisions D1/D3/D7); TenTap excluded
588
+ (markdown stays).
589
+
590
+ - **Implementation plan:** [native-module-baseline.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/native-module-baseline.md)
591
+ - **Tasks:** [native-module-baseline.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/native-module-baseline.md)
592
+ - **RTK flag:** None
593
+ - **Depends on:** —
594
+
595
+ ---
596
+
597
+ ## create-terreno-app
598
+
599
+ **Title:** `[Roadmap] create-terreno-app scaffolding CLI`
600
+
601
+ **Labels:** `area:dx`, `type:feature`
602
+ **Project fields:** Area=`dx`, Target=`Next`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
603
+
604
+ Today the MCP bootstrap tool returns markdown instructions and writes no files. This ships
605
+ a real `create-terreno-app` CLI (or template repo) that produces a running, deployable app
606
+ — backend, Expo app, env files, seeded auth — in one command, with the MCP bootstrap
607
+ delegating to it.
608
+
609
+ - **Implementation plan:** *(not yet written)*
610
+ - **Tasks:** *(not yet written)*
611
+ - **RTK flag:** Partial — scaffold output follows the syncdb + Better Auth direction
612
+ - **Depends on:** deployment-foundation
613
+
614
+ ---
615
+
616
+ ## charts-and-dashboards
617
+
618
+ **Title:** `[Roadmap] Charts and dashboard primitives`
619
+
620
+ **Labels:** `area:ui`, `type:feature`
621
+ **Project fields:** Area=`ui`, Target=`Next`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
622
+
623
+ `@terreno/ui` has a stubbed `Chart` export and no implementation. Adds themed chart
624
+ components (line, bar, area, donut) on `victory-native` — JS-only, since its Skia /
625
+ Reanimated / Gesture Handler peers are already linked — plus a simple dashboard grid
626
+ layout, with demo stories and docs.
627
+
628
+ - **Implementation plan:** *(not yet written)*
629
+ - **Tasks:** *(not yet written)*
630
+ - **RTK flag:** None
631
+ - **Depends on:** —
632
+
633
+ ---
634
+
635
+ ## dark-mode-theme
636
+
637
+ **Title:** `[Roadmap] First-class dark mode`
638
+
639
+ **Labels:** `area:ui`, `type:feature`
640
+ **Project fields:** Area=`ui`, Target=`Next`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
641
+
642
+ The theming system has three layers but no built-in dark theme; the example app fakes one
643
+ by swapping primitives behind a feature flag. Ships a maintained dark palette, a
644
+ `colorScheme` API on `TerrenoProvider` (system/light/dark), and `expo-system-ui` wiring so
645
+ root views and system chrome follow the scheme.
646
+
647
+ - **Implementation plan:** *(not yet written)*
648
+ - **Tasks:** *(not yet written)*
649
+ - **RTK flag:** None
650
+ - **Depends on:** native-module-baseline (`expo-system-ui`)
651
+
652
+ ---
653
+
654
+ ## data-grid-server-filters
655
+
656
+ **Title:** `[Roadmap] DataTable server-side filtering and search`
657
+
658
+ **Labels:** `area:ui`, `type:feature`
659
+ **Project fields:** Area=`ui`, Target=`Next`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
660
+
661
+ DataTable sorts and paginates but has no filter UI. Adds per-column filter controls and a
662
+ search box that emit modelRouter-compatible query params (`queryFields`, `$and`/`$or`), so
663
+ list screens get server-side filtering without custom plumbing. Admin tables adopt it.
664
+
665
+ - **Implementation plan:** *(not yet written)*
666
+ - **Tasks:** *(not yet written)*
667
+ - **RTK flag:** Partial — query wiring examples depend on the frontend data layer
668
+ - **Depends on:** —
669
+
670
+ ---
671
+
672
+ ## mobile-iap-revenuecat
673
+
674
+ **Title:** `[Roadmap] Mobile in-app purchases (RevenueCat)`
675
+
676
+ **Labels:** `area:api`, `type:feature`
677
+ **Project fields:** Area=`api`, Target=`Future`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
678
+
679
+ Store-compliant mobile subscriptions via RevenueCat (`react-native-purchases`): entitlement
680
+ sync into the billing models through webhooks, paywall UI, and unified entitlements with
681
+ Stripe web billing (decision D1: web-first, mobile IAP later). The native SDK ships in the
682
+ native module baseline regardless, so this lands as a JS/OTA feature when scheduled.
683
+
684
+ - **Implementation plan:** *(not yet written)*
685
+ - **Tasks:** *(not yet written)*
686
+ - **RTK flag:** None
687
+ - **Depends on:** billing-stripe, native-module-baseline, inbound-webhooks
688
+
689
+ ---
690
+
691
+ ## notification-center
692
+
693
+ **Title:** `[Roadmap] In-app notification center`
694
+
695
+ **Labels:** `area:ui`, `type:feature`
696
+ **Project fields:** Area=`ui`, Target=`Next`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
697
+
698
+ Adds a Notification model with per-user preferences, realtime delivery over the existing
699
+ change-stream socket layer, and a bell/inbox UI in `@terreno/ui` with read/unread state —
700
+ the in-app channel beside `@terreno/comms` mail/SMS/push.
701
+
702
+ - **Implementation plan:** *(not yet written)*
703
+ - **Tasks:** *(not yet written)*
704
+ - **RTK flag:** Partial — inbox screens target the syncdb data layer where available
705
+ - **Depends on:** comms-abstraction
706
+
707
+ ---
708
+
709
+ ## command-palette
710
+
711
+ **Title:** `[Roadmap] Command palette (⌘K)`
712
+
713
+ **Labels:** `area:ui`, `type:feature`
714
+ **Project fields:** Area=`ui`, Target=`Future`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
715
+
716
+ A themable ⌘K palette component for web (with a native fallback surface): registerable
717
+ actions, navigation targets, and async search sources. Admin panel adopts it first.
718
+
719
+ - **Implementation plan:** *(not yet written)*
720
+ - **Tasks:** *(not yet written)*
721
+ - **RTK flag:** None
722
+ - **Depends on:** —
723
+
724
+ ---
725
+
726
+ ## wizard-stepper
727
+
728
+ **Title:** `[Roadmap] Generic multi-step wizard component`
729
+
730
+ **Labels:** `area:ui`, `type:feature`
731
+ **Project fields:** Area=`ui`, Target=`Future`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
732
+
733
+ Extracts the multi-step patterns hand-rolled in signup and consent flows into a generic
734
+ wizard/stepper: step state, validation gates, progress indicator, and per-step persistence
735
+ — the building block for onboarding and setup flows.
736
+
737
+ - **Implementation plan:** *(not yet written)*
738
+ - **Tasks:** *(not yet written)*
739
+ - **RTK flag:** None
740
+ - **Depends on:** —
741
+
742
+ ---
743
+
744
+ ## wysiwyg-editor
745
+
746
+ **Title:** `[Roadmap] Rich text (WYSIWYG) editor`
747
+
748
+ **Labels:** `area:ui`, `type:feature`
749
+ **Project fields:** Area=`ui`, Target=`Future`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
750
+
751
+ Terreno's rich text today is markdown-only (`MarkdownEditor`), and decision D3 keeps it
752
+ that way for now. This item tracks a future adoption of a true WYSIWYG editor (candidate:
753
+ TenTap, Tiptap-based). Because TenTap requires a native module that is **not** in the
754
+ native module baseline, adopting it means waiting for a later major release.
755
+
756
+ - **Implementation plan:** *(not yet written)*
757
+ - **Tasks:** *(not yet written)*
758
+ - **RTK flag:** None
759
+ - **Depends on:** a future major release (native module not in the current baseline)
760
+
761
+ ---
762
+
763
+ ## global-search
764
+
765
+ **Title:** `[Roadmap] Global search across entities`
766
+
767
+ **Labels:** `area:api`, `type:feature`
768
+ **Project fields:** Area=`api`, Target=`Future`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
769
+
770
+ A search framework for modelRouter models: per-model searchable-field registration, a
771
+ cross-model search endpoint with permission-aware results, Mongo text/Atlas Search backends,
772
+ and a search UI hook — feeding the command palette and app-level search bars.
773
+
774
+ - **Implementation plan:** *(not yet written)*
775
+ - **Tasks:** *(not yet written)*
776
+ - **RTK flag:** None
777
+ - **Depends on:** —
778
+
779
+ ---
780
+
781
+ ## enterprise-sso
782
+
783
+ **Title:** `[Roadmap] Enterprise SSO (SAML / OIDC)`
784
+
785
+ **Labels:** `area:auth`, `type:feature`
786
+ **Project fields:** Area=`auth`, Target=`Future`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
787
+
788
+ Org-level single sign-on: SAML and OIDC via Better Auth's SSO tooling, per-organization
789
+ IdP configuration, JIT user provisioning into org memberships, and domain-based login
790
+ routing. The mobile flow uses `expo-auth-session` + `expo-crypto` (PKCE) from the native
791
+ baseline.
792
+
793
+ - **Implementation plan:** *(not yet written)*
794
+ - **Tasks:** *(not yet written)*
795
+ - **RTK flag:** None
796
+ - **Depends on:** orgs-and-teams, native-module-baseline
797
+
798
+ ---
799
+
800
+ ## mfa-step-up-auth
801
+
802
+ **Title:** `[Roadmap] MFA and biometric step-up auth`
803
+
804
+ **Labels:** `area:auth`, `type:feature`
805
+ **Project fields:** Area=`auth`, Target=`Future`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
806
+
807
+ Second-factor support: TOTP enrollment, SMS/email OTP via the Twilio Verify adapter, and
808
+ biometric step-up on native (`expo-local-authentication`) for sensitive actions, with
809
+ enforcement hooks in the permission layer.
810
+
811
+ - **Implementation plan:** *(not yet written)*
812
+ - **Tasks:** *(not yet written)*
813
+ - **RTK flag:** None
814
+ - **Depends on:** comms-adapter-twilio-verify, native-module-baseline
815
+
816
+ ---
817
+
818
+ ## framework-audit-log
819
+
820
+ **Title:** `[Roadmap] Framework-level audit log`
821
+
822
+ **Labels:** `area:api`, `type:feature`
823
+ **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
824
+
825
+ Generalizes the admin/consent audit patterns into a first-class audit log: an AuditEvent
826
+ model, modelRouter hooks that record who changed what (with before/after diffs), org
827
+ scoping, retention policy, and an admin viewer — a hard requirement for compliance-minded
828
+ B2B customers.
829
+
830
+ - **Implementation plan:** *(not yet written)*
831
+ - **Tasks:** *(not yet written)*
832
+ - **RTK flag:** None
833
+ - **Depends on:** orgs-and-teams
834
+
835
+ ---
836
+
837
+ ## rate-limiting
838
+
839
+ **Title:** `[Roadmap] API rate limiting`
840
+
841
+ **Labels:** `area:api`, `type:feature`
842
+ **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
843
+
844
+ Adds HTTP rate limiting to `@terreno/api`: per-user/per-org/per-IP policies, sensible
845
+ defaults for auth and OTP endpoints, memory and Redis stores, and standard rate-limit
846
+ headers. Today only realtime subscriptions are capped.
847
+
848
+ - **Implementation plan:** *(not yet written)*
849
+ - **Tasks:** *(not yet written)*
850
+ - **RTK flag:** None
851
+ - **Depends on:** —
852
+
853
+ ---
854
+
855
+ ## job-queues
856
+
857
+ **Title:** `[Roadmap] Durable background jobs`
858
+
859
+ **Labels:** `area:api`, `type:feature`
860
+ **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
861
+
862
+ Terreno has an in-process cron helper and admin script runner but no durable queue. Adds a
863
+ job abstraction with retries, scheduling, and dead-lettering — Mongo-backed by default with
864
+ a Redis/BullMQ driver — so email sends, webhook retries, and billing sync survive restarts.
865
+
866
+ - **Implementation plan:** *(not yet written)*
867
+ - **Tasks:** *(not yet written)*
868
+ - **RTK flag:** None
869
+ - **Depends on:** —
870
+
871
+ ---
872
+
873
+ ## mongo-migrations
874
+
875
+ **Title:** `[Roadmap] MongoDB migrations tooling`
876
+
877
+ **Labels:** `area:api`, `type:feature`
878
+ **Project fields:** Area=`api`, Target=`Future`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
879
+
880
+ A migrations runner for Terreno apps: versioned migration files, up/down with a lock
881
+ collection, CI checks, and integration with the mongoose-schema-safety guidance — replacing
882
+ ad-hoc backfill scripts.
883
+
884
+ - **Implementation plan:** *(not yet written)*
885
+ - **Tasks:** *(not yet written)*
886
+ - **RTK flag:** None
887
+ - **Depends on:** —