ariadna 1.3.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. checksums.yaml +4 -4
  2. data/ariadna.gemspec +0 -1
  3. data/data/agents/ariadna-codebase-mapper.md +34 -722
  4. data/data/agents/ariadna-debugger.md +44 -1139
  5. data/data/agents/ariadna-executor.md +75 -396
  6. data/data/agents/ariadna-planner.md +78 -1215
  7. data/data/agents/ariadna-roadmapper.md +55 -582
  8. data/data/agents/ariadna-verifier.md +60 -702
  9. data/data/ariadna/templates/config.json +8 -33
  10. data/data/ariadna/workflows/debug.md +28 -0
  11. data/data/ariadna/workflows/execute-phase.md +31 -513
  12. data/data/ariadna/workflows/map-codebase.md +20 -319
  13. data/data/ariadna/workflows/new-milestone.md +20 -365
  14. data/data/ariadna/workflows/new-project.md +19 -880
  15. data/data/ariadna/workflows/plan-phase.md +24 -443
  16. data/data/ariadna/workflows/progress.md +20 -376
  17. data/data/ariadna/workflows/quick.md +19 -221
  18. data/data/ariadna/workflows/roadmap-ops.md +28 -0
  19. data/data/ariadna/workflows/verify-work.md +23 -560
  20. data/data/commands/ariadna/add-phase.md +11 -22
  21. data/data/commands/ariadna/debug.md +11 -143
  22. data/data/commands/ariadna/execute-phase.md +12 -30
  23. data/data/commands/ariadna/insert-phase.md +7 -14
  24. data/data/commands/ariadna/map-codebase.md +16 -49
  25. data/data/commands/ariadna/new-milestone.md +12 -25
  26. data/data/commands/ariadna/new-project.md +22 -26
  27. data/data/commands/ariadna/plan-phase.md +13 -22
  28. data/data/commands/ariadna/progress.md +16 -6
  29. data/data/commands/ariadna/quick.md +9 -11
  30. data/data/commands/ariadna/remove-phase.md +9 -12
  31. data/data/commands/ariadna/verify-work.md +14 -19
  32. data/data/skills/rails-backend/API.md +138 -0
  33. data/data/skills/rails-backend/CONTROLLERS.md +154 -0
  34. data/data/skills/rails-backend/JOBS.md +132 -0
  35. data/data/skills/rails-backend/MODELS.md +213 -0
  36. data/data/skills/rails-backend/SKILL.md +169 -0
  37. data/data/skills/rails-frontend/ASSETS.md +154 -0
  38. data/data/skills/rails-frontend/COMPONENTS.md +253 -0
  39. data/data/skills/rails-frontend/SKILL.md +187 -0
  40. data/data/skills/rails-frontend/VIEWS.md +168 -0
  41. data/data/skills/rails-performance/PROFILING.md +106 -0
  42. data/data/skills/rails-performance/SKILL.md +217 -0
  43. data/data/skills/rails-security/AUDIT.md +118 -0
  44. data/data/skills/rails-security/SKILL.md +422 -0
  45. data/data/skills/rails-testing/FIXTURES.md +78 -0
  46. data/data/skills/rails-testing/SKILL.md +160 -0
  47. data/data/skills/rails-testing/SYSTEM-TESTS.md +73 -0
  48. data/lib/ariadna/installer.rb +11 -15
  49. data/lib/ariadna/tools/cli.rb +0 -12
  50. data/lib/ariadna/tools/config_manager.rb +10 -72
  51. data/lib/ariadna/tools/frontmatter.rb +23 -1
  52. data/lib/ariadna/tools/init.rb +201 -401
  53. data/lib/ariadna/tools/model_profiles.rb +6 -14
  54. data/lib/ariadna/tools/phase_manager.rb +1 -10
  55. data/lib/ariadna/tools/state_manager.rb +170 -451
  56. data/lib/ariadna/tools/template_filler.rb +4 -12
  57. data/lib/ariadna/tools/verification.rb +21 -399
  58. data/lib/ariadna/uninstaller.rb +9 -0
  59. data/lib/ariadna/version.rb +1 -1
  60. metadata +20 -91
  61. data/data/agents/ariadna-backend-executor.md +0 -261
  62. data/data/agents/ariadna-frontend-executor.md +0 -259
  63. data/data/agents/ariadna-integration-checker.md +0 -418
  64. data/data/agents/ariadna-phase-researcher.md +0 -469
  65. data/data/agents/ariadna-plan-checker.md +0 -622
  66. data/data/agents/ariadna-project-researcher.md +0 -618
  67. data/data/agents/ariadna-research-synthesizer.md +0 -236
  68. data/data/agents/ariadna-test-executor.md +0 -266
  69. data/data/ariadna/references/checkpoints.md +0 -772
  70. data/data/ariadna/references/continuation-format.md +0 -249
  71. data/data/ariadna/references/decimal-phase-calculation.md +0 -65
  72. data/data/ariadna/references/git-integration.md +0 -248
  73. data/data/ariadna/references/git-planning-commit.md +0 -38
  74. data/data/ariadna/references/model-profile-resolution.md +0 -32
  75. data/data/ariadna/references/model-profiles.md +0 -73
  76. data/data/ariadna/references/phase-argument-parsing.md +0 -61
  77. data/data/ariadna/references/planning-config.md +0 -194
  78. data/data/ariadna/references/questioning.md +0 -153
  79. data/data/ariadna/references/rails-conventions.md +0 -416
  80. data/data/ariadna/references/tdd.md +0 -267
  81. data/data/ariadna/references/ui-brand.md +0 -160
  82. data/data/ariadna/references/verification-patterns.md +0 -853
  83. data/data/ariadna/templates/codebase/architecture.md +0 -481
  84. data/data/ariadna/templates/codebase/concerns.md +0 -380
  85. data/data/ariadna/templates/codebase/conventions.md +0 -434
  86. data/data/ariadna/templates/codebase/integrations.md +0 -328
  87. data/data/ariadna/templates/codebase/stack.md +0 -189
  88. data/data/ariadna/templates/codebase/structure.md +0 -418
  89. data/data/ariadna/templates/codebase/testing.md +0 -606
  90. data/data/ariadna/templates/context.md +0 -283
  91. data/data/ariadna/templates/continue-here.md +0 -78
  92. data/data/ariadna/templates/debug-subagent-prompt.md +0 -91
  93. data/data/ariadna/templates/phase-prompt.md +0 -609
  94. data/data/ariadna/templates/planner-subagent-prompt.md +0 -117
  95. data/data/ariadna/templates/research-project/ARCHITECTURE.md +0 -439
  96. data/data/ariadna/templates/research-project/FEATURES.md +0 -168
  97. data/data/ariadna/templates/research-project/PITFALLS.md +0 -406
  98. data/data/ariadna/templates/research-project/STACK.md +0 -251
  99. data/data/ariadna/templates/research-project/SUMMARY.md +0 -247
  100. data/data/ariadna/templates/state.md +0 -176
  101. data/data/ariadna/templates/summary-complex.md +0 -59
  102. data/data/ariadna/templates/summary-minimal.md +0 -41
  103. data/data/ariadna/templates/summary-standard.md +0 -48
  104. data/data/ariadna/templates/user-setup.md +0 -310
  105. data/data/ariadna/workflows/add-phase.md +0 -111
  106. data/data/ariadna/workflows/add-todo.md +0 -157
  107. data/data/ariadna/workflows/audit-milestone.md +0 -241
  108. data/data/ariadna/workflows/check-todos.md +0 -176
  109. data/data/ariadna/workflows/complete-milestone.md +0 -644
  110. data/data/ariadna/workflows/diagnose-issues.md +0 -219
  111. data/data/ariadna/workflows/discovery-phase.md +0 -289
  112. data/data/ariadna/workflows/discuss-phase.md +0 -408
  113. data/data/ariadna/workflows/execute-plan.md +0 -448
  114. data/data/ariadna/workflows/help.md +0 -470
  115. data/data/ariadna/workflows/insert-phase.md +0 -129
  116. data/data/ariadna/workflows/list-phase-assumptions.md +0 -178
  117. data/data/ariadna/workflows/pause-work.md +0 -122
  118. data/data/ariadna/workflows/plan-milestone-gaps.md +0 -256
  119. data/data/ariadna/workflows/remove-phase.md +0 -154
  120. data/data/ariadna/workflows/research-phase.md +0 -74
  121. data/data/ariadna/workflows/resume-project.md +0 -306
  122. data/data/ariadna/workflows/set-profile.md +0 -80
  123. data/data/ariadna/workflows/settings.md +0 -145
  124. data/data/ariadna/workflows/transition.md +0 -493
  125. data/data/ariadna/workflows/update.md +0 -212
  126. data/data/ariadna/workflows/verify-phase.md +0 -226
  127. data/data/commands/ariadna/add-todo.md +0 -42
  128. data/data/commands/ariadna/audit-milestone.md +0 -42
  129. data/data/commands/ariadna/check-todos.md +0 -41
  130. data/data/commands/ariadna/complete-milestone.md +0 -136
  131. data/data/commands/ariadna/discuss-phase.md +0 -86
  132. data/data/commands/ariadna/help.md +0 -22
  133. data/data/commands/ariadna/list-phase-assumptions.md +0 -50
  134. data/data/commands/ariadna/pause-work.md +0 -35
  135. data/data/commands/ariadna/plan-milestone-gaps.md +0 -40
  136. data/data/commands/ariadna/reapply-patches.md +0 -110
  137. data/data/commands/ariadna/research-phase.md +0 -187
  138. data/data/commands/ariadna/resume-work.md +0 -40
  139. data/data/commands/ariadna/set-profile.md +0 -34
  140. data/data/commands/ariadna/settings.md +0 -36
  141. data/data/commands/ariadna/update.md +0 -37
  142. data/data/guides/backend.md +0 -3069
  143. data/data/guides/frontend.md +0 -1479
  144. data/data/guides/performance.md +0 -1193
  145. data/data/guides/security.md +0 -1522
  146. data/data/guides/style-guide.md +0 -1091
  147. data/data/guides/testing.md +0 -504
  148. data/data/templates.md +0 -94
@@ -1,328 +0,0 @@
1
- # External Integrations Template
2
-
3
- Template for `.ariadna_planning/codebase/INTEGRATIONS.md` - captures external service dependencies.
4
-
5
- **Purpose:** Document what external systems this codebase communicates with. Focused on "what lives outside our code that we depend on."
6
-
7
- ---
8
-
9
- ## File Template
10
-
11
- ```markdown
12
- # External Integrations
13
-
14
- **Analysis Date:** [YYYY-MM-DD]
15
-
16
- ## APIs & External Services
17
-
18
- **Payment Processing:**
19
- - [Service] - [What it's used for: e.g., "subscription billing, one-time payments"]
20
- - Gem: [e.g., "`stripe` gem"]
21
- - Auth: [e.g., "`Rails.application.credentials.stripe[:secret_key]` or `ENV["STRIPE_SECRET_KEY"]`"]
22
- - Integration: [e.g., "Stripe::Customer, Stripe::PaymentIntent, webhooks"]
23
-
24
- **Email:**
25
- - [Service] - [What it's used for: e.g., "transactional emails"]
26
- - Gem: [e.g., "`postmark-rails` gem"]
27
- - Delivery method: [e.g., "ActionMailer with SMTP or API delivery"]
28
- - Templates: [e.g., "ERB views in `app/views/user_mailer/`"]
29
- - Config: [e.g., "`config/environments/production.rb` mail settings"]
30
-
31
- **External APIs:**
32
- - [Service] - [What it's used for]
33
- - Gem/Client: [e.g., "`faraday` gem", "`httparty` gem", "custom API wrapper in `app/services/`"]
34
- - Auth: [e.g., "Bearer token via `Rails.application.credentials`"]
35
- - Rate limits: [if applicable]
36
-
37
- ## Data Storage
38
-
39
- **Databases:**
40
- - [Type/Provider] - [e.g., "SQLite (Rails default)" or "PostgreSQL on Render"]
41
- - Connection: [e.g., "via `config/database.yml` and `DATABASE_URL` env var"]
42
- - Client: [e.g., "ActiveRecord"]
43
- - Migrations: [e.g., "`db/migrate/` via `rails db:migrate`"]
44
-
45
- **File Storage:**
46
- - [Service] - [e.g., "AWS S3 for user uploads via ActiveStorage"]
47
- - Gem: [e.g., "`aws-sdk-s3` gem"]
48
- - Config: [e.g., "`config/storage.yml`"]
49
- - Service: [e.g., "`amazon` service in production, `local` in development"]
50
-
51
- **Caching:**
52
- - [Service] - [e.g., "Solid Cache for database-backed caching" or "Redis for shared state caching"]
53
- - Gem: [e.g., "`solid_cache` gem" or "`redis` gem"]
54
- - Interface: [e.g., "`Rails.cache` with `solid_cache_store`" or "`redis_cache_store`"]
55
- - Config: [e.g., "`config/cache.yml` for Solid Cache" or "`config/environments/production.rb` cache store settings"]
56
-
57
- ## Authentication & Identity
58
-
59
- **Auth Provider:**
60
- - [Approach] - [e.g., "Rails authentication generator with `Authentication` concern", "`has_secure_password` with custom auth"]
61
- - Setup: [e.g., "`bin/rails generate authentication`"]
62
- - Config: [e.g., "`app/controllers/concerns/authentication.rb`"]
63
- - Session management: [e.g., "database-tracked sessions via `Session` model", "cookie-based sessions"]
64
-
65
- **OAuth Integrations:**
66
- - [Provider] - [e.g., "Google OAuth for sign-in"]
67
- - Gem: [e.g., "`omniauth-google-oauth2`"]
68
- - Credentials: [e.g., "`Rails.application.credentials.google[:client_id]`"]
69
- - Scopes: [e.g., "email, profile"]
70
-
71
- ## Monitoring & Observability
72
-
73
- **Error Tracking:**
74
- - [Service] - [e.g., "Sentry"]
75
- - Gem: [e.g., "`sentry-ruby` and `sentry-rails`"]
76
- - DSN: [e.g., "`Rails.application.credentials.sentry[:dsn]` or `ENV["SENTRY_DSN"]`"]
77
- - Config: [e.g., "`config/initializers/sentry.rb`"]
78
-
79
- **Analytics:**
80
- - [Service] - [e.g., "Ahoy for product analytics"]
81
- - Gem: [e.g., "`ahoy_matey`"]
82
-
83
- **Logs:**
84
- - [Service] - [e.g., "Lograge for structured logs", "stdout only"]
85
- - Gem: [e.g., "`lograge`"]
86
- - Config: [e.g., "`config/initializers/lograge.rb`"]
87
-
88
- ## Background Jobs
89
-
90
- **Job Backend:**
91
- - [Service] - [e.g., "Solid Queue for database-backed background processing (Rails 8 default)" or "Sidekiq for high-throughput processing"]
92
- - Gem: [e.g., "`solid_queue`" or "`sidekiq`"]
93
- - Config: [e.g., "`config/queue.yml` for Solid Queue" or "`config/sidekiq.yml`"]
94
- - Dashboard: [e.g., "Mission Control (`mission_control-jobs`) mounted at `/jobs`" or "Sidekiq Web UI at `/sidekiq`"]
95
- - Queues: [e.g., "default, mailers, backend"]
96
-
97
- ## CI/CD & Deployment
98
-
99
- **Hosting:**
100
- - [Platform] - [e.g., "Hetzner via Kamal", "Render", "Heroku"]
101
- - Deployment: [e.g., "Kamal deploy via `config/deploy.yml`"]
102
- - Docker: [e.g., "`Dockerfile` in project root"]
103
- - Environment vars: [e.g., "configured in `config/deploy.yml` secrets or platform dashboard"]
104
-
105
- **CI Pipeline:**
106
- - [Service] - [e.g., "GitHub Actions"]
107
- - Workflows: [e.g., "`.github/workflows/ci.yml`"]
108
- - Secrets: [e.g., "stored in GitHub repo secrets"]
109
-
110
- ## Environment Configuration
111
-
112
- **Development:**
113
- - Required env vars: [List critical vars]
114
- - Secrets location: [e.g., "`.env` via `dotenv-rails` gem (gitignored)", "`config/database.yml`"]
115
- - Mock/stub services: [e.g., "Stripe test mode", "SQLite (no setup needed)", "ActiveStorage local disk"]
116
-
117
- **Staging:**
118
- - Environment-specific differences: [e.g., "uses staging Stripe account"]
119
- - Data: [e.g., "separate staging database"]
120
-
121
- **Production:**
122
- - Secrets management: [e.g., "`config/credentials/production.yml.enc` via `rails credentials:edit --environment production`"]
123
- - Failover/redundancy: [e.g., "multi-region DB replication"]
124
-
125
- ## Webhooks & Callbacks
126
-
127
- **Incoming:**
128
- - [Service] - [Route: e.g., "`post "/webhooks/stripe", to: "webhooks/stripe#create"`"]
129
- - Verification: [e.g., "`Stripe::Webhook.construct_event` with signing secret"]
130
- - Events: [e.g., "payment_intent.succeeded, customer.subscription.updated"]
131
- - Controller: [e.g., "`app/controllers/webhooks/stripe_controller.rb`"]
132
-
133
- **Outgoing:**
134
- - [Service] - [What triggers it]
135
- - Delivery: [e.g., "ActiveJob-enqueued HTTP POST via webhook job"]
136
- - Retry logic: [if applicable]
137
-
138
- ---
139
-
140
- *Integration audit: [date]*
141
- *Update when adding/removing external services*
142
- ```
143
-
144
- <good_examples>
145
- ```markdown
146
- # External Integrations
147
-
148
- **Analysis Date:** 2025-01-20
149
-
150
- ## APIs & External Services
151
-
152
- **Payment Processing:**
153
- - Stripe - Subscription billing and one-time course payments
154
- - Gem: `stripe` gem v10.x
155
- - Auth: API key via `Rails.application.credentials.stripe[:secret_key]`
156
- - Integration: Stripe::Customer, Stripe::PaymentIntent, Stripe::Checkout::Session, webhooks
157
-
158
- **Email:**
159
- - Postmark - Transactional emails (receipts, password resets, notifications)
160
- - Gem: `postmark-rails` gem v0.22
161
- - Delivery method: ActionMailer with Postmark API delivery
162
- - Templates: ERB views in `app/views/` mailer directories (`user_mailer/`, `notification_mailer/`)
163
- - Config: `config/environments/production.rb` sets `config.action_mailer.delivery_method = :postmark`
164
-
165
- **External APIs:**
166
- - OpenAI API - Course content generation
167
- - Gem: `ruby-openai` gem v7.x
168
- - Auth: API key via `Rails.application.credentials.openai[:api_key]`
169
- - Rate limits: 3500 requests/min (tier 3)
170
-
171
- ## Data Storage
172
-
173
- **Databases:**
174
- - SQLite - Primary data store (Rails default, zero-configuration)
175
- - Connection: `config/database.yml` (file-based, no external service needed)
176
- - Client: ActiveRecord
177
- - Migrations: `db/migrate/` via `rails db:migrate`
178
- - Note: Switch to PostgreSQL for high-concurrency production or when needing PostgreSQL-specific features (jsonb, full-text search, advisory locks)
179
-
180
- **File Storage:**
181
- - AWS S3 via ActiveStorage - User uploads (profile images, course materials)
182
- - Gem: `aws-sdk-s3` gem
183
- - Config: `config/storage.yml` defines `amazon` service
184
- - Service: `amazon` in production, `local` disk in development
185
- - Auth: `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` env vars
186
-
187
- **Caching:**
188
- - Solid Cache - Database-backed fragment caching (Rails 8 default)
189
- - Gem: `solid_cache` gem
190
- - Interface: `Rails.cache` with `config.cache_store = :solid_cache_store`
191
- - Config: `config/cache.yml` for cache database, `config/environments/production.rb` cache store
192
- - Session store: Cookie-based
193
-
194
- ## Authentication & Identity
195
-
196
- **Auth Provider:**
197
- - Rails authentication generator - Email/password authentication with database-tracked sessions
198
- - Setup: `bin/rails generate authentication`
199
- - Config: `app/controllers/concerns/authentication.rb`, `Session` and `User` models with `has_secure_password`
200
- - Session management: Database-tracked sessions with CSRF protection
201
-
202
- **OAuth Integrations:**
203
- - Google OAuth - Social sign-in
204
- - Gem: `omniauth-google-oauth2`
205
- - Credentials: `Rails.application.credentials.google[:client_id]`, `Rails.application.credentials.google[:client_secret]`
206
- - Scopes: email, profile
207
- - Callback: `config/routes.rb` via OmniAuth routes
208
-
209
- ## Monitoring & Observability
210
-
211
- **Error Tracking:**
212
- - Sentry - Server-side error tracking
213
- - Gem: `sentry-ruby` and `sentry-rails`
214
- - DSN: `Rails.application.credentials.sentry[:dsn]`
215
- - Config: `config/initializers/sentry.rb`
216
- - Release tracking: Git commit SHA
217
-
218
- **Analytics:**
219
- - None (planned: Ahoy)
220
-
221
- **Logs:**
222
- - Lograge - Structured single-line request logs
223
- - Gem: `lograge`
224
- - Config: `config/initializers/lograge.rb`
225
- - Production: stdout for container log aggregation
226
-
227
- ## Background Jobs
228
-
229
- **Job Backend:**
230
- - Solid Queue - Database-backed background job processing (Rails 8 default)
231
- - Gem: `solid_queue` gem
232
- - Config: `config/queue.yml` for queue database and worker configuration
233
- - Dashboard: Mission Control (`mission_control-jobs`) mounted at `/jobs` in `config/routes.rb` (admin-only)
234
- - Queues: default, mailers, backend (exports, heavy processing)
235
- - Recurring: `config/recurring.yml` for scheduled tasks
236
-
237
- ## CI/CD & Deployment
238
-
239
- **Hosting:**
240
- - Hetzner via Kamal - Docker-based deployment
241
- - Deployment: `kamal deploy` via `config/deploy.yml`
242
- - Docker: `Dockerfile` in project root with multi-stage build
243
- - Environment vars: Secrets managed in `config/deploy.yml` via `.kamal/secrets`
244
-
245
- **CI Pipeline:**
246
- - GitHub Actions - Tests, linting, and security checks
247
- - Workflows: `.github/workflows/ci.yml`
248
- - Secrets: `RAILS_MASTER_KEY` stored in GitHub repo secrets
249
-
250
- ## Environment Configuration
251
-
252
- **Development:**
253
- - Required env vars: None (development defaults in `config/database.yml`)
254
- - Secrets location: `config/credentials.yml.enc` via `rails credentials:edit`, `.env` via `dotenv-rails` for overrides
255
- - Mock/stub services: Stripe test mode, SQLite (file-based, no setup), ActiveStorage local disk service
256
-
257
- **Staging:**
258
- - Uses staging Stripe account
259
- - Separate database on Render
260
- - Same Kamal setup, different deploy target
261
-
262
- **Production:**
263
- - Secrets management: `config/credentials/production.yml.enc` via `rails credentials:edit --environment production`
264
- - Database: SQLite with Litestream replication (or PostgreSQL on Render for high-concurrency apps)
265
-
266
- ## Webhooks & Callbacks
267
-
268
- **Incoming:**
269
- - Stripe - `post "/webhooks/stripe", to: "webhooks/stripe#create"` in `config/routes.rb`
270
- - Verification: `Stripe::Webhook.construct_event` with signing secret from `Rails.application.credentials.stripe[:webhook_signing_secret]`
271
- - Events: payment_intent.succeeded, customer.subscription.updated, customer.subscription.deleted
272
- - Controller: `app/controllers/webhooks/stripe_controller.rb`
273
-
274
- **Outgoing:**
275
- - None
276
-
277
- ---
278
-
279
- *Integration audit: 2025-01-20*
280
- *Update when adding/removing external services*
281
- ```
282
- </good_examples>
283
-
284
- <guidelines>
285
- **What belongs in INTEGRATIONS.md:**
286
- - External services the code communicates with
287
- - Authentication patterns (where secrets live, not the secrets themselves)
288
- - Gems and client libraries used for each integration
289
- - Environment variable names (not values)
290
- - Webhook endpoints, routes, and verification methods
291
- - Database connection patterns via `config/database.yml`
292
- - File storage configuration via ActiveStorage and `config/storage.yml`
293
- - Background job backend and queue configuration
294
- - Monitoring, logging, and error tracking services
295
- - Deployment platform and CI/CD pipeline
296
-
297
- **What does NOT belong here:**
298
- - Actual API keys or secrets (NEVER write these)
299
- - Internal architecture (that's ARCHITECTURE.md)
300
- - Code patterns (that's PATTERNS.md)
301
- - Technology choices (that's STACK.md)
302
- - Performance issues (that's CONCERNS.md)
303
-
304
- **When filling this template:**
305
- - Check `Gemfile` for integration gems (`stripe`, `sentry-rails`, `solid_queue`, `aws-sdk-s3`, etc.)
306
- - Check `config/initializers/` for service configuration files
307
- - Check `config/credentials.yml.enc` structure (via `rails credentials:show` or reading initializers that reference credentials)
308
- - Check `config/storage.yml` for ActiveStorage service configuration
309
- - Check `config/database.yml` for database connection setup
310
- - Check `config/environments/production.rb` for mail, cache store, and job backend settings
311
- - Look for webhook controllers in `app/controllers/webhooks/` or routes with `webhooks` in `config/routes.rb`
312
- - Check `config/deploy.yml` or platform config for deployment setup
313
- - Check `.github/workflows/` for CI pipeline configuration
314
- - Note where secrets are managed (credentials files, env vars, platform dashboard) — not the secrets themselves
315
- - Document environment-specific differences (development/staging/production)
316
-
317
- **Useful for phase planning when:**
318
- - Adding new external service integrations
319
- - Debugging authentication issues with third-party services
320
- - Understanding data flow outside the application
321
- - Setting up new environments or onboarding developers
322
- - Auditing third-party gem dependencies
323
- - Planning for service outages or migrations
324
- - Configuring deployment and CI/CD pipelines
325
-
326
- **Security note:**
327
- Document WHERE secrets live (`Rails.application.credentials`, env vars, `.kamal/secrets`), never WHAT the secrets are.
328
- </guidelines>
@@ -1,189 +0,0 @@
1
- # Technology Stack Template
2
-
3
- Template for `.ariadna_planning/codebase/STACK.md` - captures the technology foundation.
4
-
5
- **Purpose:** Document what technologies run this codebase. Focused on "what executes when you run the code."
6
-
7
- ---
8
-
9
- ## File Template
10
-
11
- ```markdown
12
- # Technology Stack
13
-
14
- **Analysis Date:** [YYYY-MM-DD]
15
-
16
- ## Languages
17
-
18
- **Primary:**
19
- - [Language] [Version] - [Where used: e.g., "all application code"]
20
-
21
- **Secondary:**
22
- - [Language] [Version] - [Where used: e.g., "Stimulus controllers, Turbo interactions"]
23
-
24
- ## Runtime
25
-
26
- **Environment:**
27
- - [Runtime] [Version] - [e.g., "Ruby 3.3 from `.ruby-version`"]
28
- - [Additional requirements if any]
29
-
30
- **Package Manager:**
31
- - [Manager] [Version] - [e.g., "Bundler 2.x"]
32
- - Lockfile: [e.g., "`Gemfile.lock` present"]
33
-
34
- ## Frameworks
35
-
36
- **Core:**
37
- - [Framework] [Version] - [Purpose: e.g., "full-stack web framework"]
38
-
39
- **Testing:**
40
- - [Framework] [Version] - [e.g., "Minitest for unit/integration/system tests"]
41
- - [Framework] [Version] - [e.g., "Capybara for system tests"]
42
-
43
- **Build/Dev:**
44
- - [Tool] [Version] - [e.g., "Propshaft for asset pipeline"]
45
- - [Tool] [Version] - [e.g., "importmap-rails for JavaScript module loading"]
46
-
47
- ## Key Dependencies
48
-
49
- [Only include dependencies critical to understanding the stack - limit to 5-10 most important]
50
-
51
- **Critical:**
52
- - [Gem] [Version] - [Why it matters: e.g., "authentication", "background jobs"]
53
- - [Gem] [Version] - [Why it matters]
54
-
55
- **Infrastructure:**
56
- - [Gem] [Version] - [e.g., "SQLite adapter" or "PostgreSQL adapter"]
57
- - [Gem] [Version] - [e.g., "application server"]
58
-
59
- ## Configuration
60
-
61
- **Environment:**
62
- - [How configured: e.g., "`config/database.yml`, `config/credentials.yml.enc`"]
63
- - [Key configs: e.g., "`config/environments/*.rb` per-environment settings"]
64
-
65
- **Build:**
66
- - [Build config files: e.g., "`config/importmap.rb`", "`Procfile.dev`"]
67
-
68
- ## Platform Requirements
69
-
70
- **Development:**
71
- - [OS requirements or "any platform"]
72
- - [Additional tooling if any: e.g., "PostgreSQL" if not using SQLite]
73
-
74
- **Production:**
75
- - [Deployment target: e.g., "Kamal to VPS", "Docker container", "Heroku", "Fly.io"]
76
- - [Application server: e.g., "Puma"]
77
-
78
- ---
79
-
80
- *Stack analysis: [date]*
81
- *Update after major dependency changes*
82
- ```
83
-
84
- <good_examples>
85
- ```markdown
86
- # Technology Stack
87
-
88
- **Analysis Date:** 2025-01-20
89
-
90
- ## Languages
91
-
92
- **Primary:**
93
- - Ruby 3.3 — All application code
94
-
95
- **Secondary:**
96
- - JavaScript — Stimulus controllers, Turbo interactions
97
- - CSS/SCSS — Styling
98
-
99
- ## Runtime
100
-
101
- **Environment:**
102
- - Ruby 3.3 (from `.ruby-version`)
103
- - Bundler 2.x
104
-
105
- **Package Manager:**
106
- - Bundler 2.x
107
- - Lockfile: `Gemfile.lock` present
108
-
109
- ## Frameworks
110
-
111
- **Core:**
112
- - Rails 8.x — Full-stack web framework
113
-
114
- **Testing:**
115
- - Minitest 5.x — Unit, integration, system tests
116
- - Capybara — System tests with browser automation
117
-
118
- **Build/Dev:**
119
- - Propshaft — Asset pipeline
120
- - importmap-rails — JavaScript module loading without bundler
121
-
122
- ## Key Dependencies
123
-
124
- **Critical:**
125
- - authentication (built-in) — Session-based auth
126
- - authorization - custom implementation (before_action + Current) — Role-based access control
127
- - solid_queue — Background jobs (Rails 8 default)
128
-
129
- **Infrastructure:**
130
- - sqlite3 — SQLite adapter (Rails default)
131
- - solid_cache — Database-backed caching (Rails 8 default)
132
- - puma — Application server
133
-
134
- ## Configuration
135
-
136
- **Environment:**
137
- - `config/database.yml`, `config/credentials.yml.enc`, `config/environments/*.rb`
138
- - `SECRET_KEY_BASE` required in production
139
-
140
- **Build:**
141
- - `config/importmap.rb` — JavaScript module pins
142
- - `Procfile.dev` — Development process manager
143
-
144
- ## Platform Requirements
145
-
146
- **Development:**
147
- - macOS/Linux
148
- - No Docker or external database required for local development (SQLite is file-based)
149
-
150
- **Production:**
151
- - Kamal deployment to VPS, Docker container, Puma application server
152
- - SQLite (or PostgreSQL for high-concurrency production)
153
-
154
- ---
155
-
156
- *Stack analysis: 2025-01-20*
157
- *Update after major dependency changes*
158
- ```
159
- </good_examples>
160
-
161
- <guidelines>
162
- **What belongs in STACK.md:**
163
- - Languages and versions
164
- - Runtime requirements (Ruby version, Bundler)
165
- - Package manager and lockfile
166
- - Framework choices
167
- - Critical dependencies (limit to 5-10 most important)
168
- - Build tooling and asset pipeline
169
- - Platform/deployment requirements
170
-
171
- **What does NOT belong here:**
172
- - File structure (that's STRUCTURE.md)
173
- - Architectural patterns (that's ARCHITECTURE.md)
174
- - Every gem in `Gemfile` (only critical ones)
175
- - Implementation details (defer to code)
176
-
177
- **When filling this template:**
178
- - Check `Gemfile` for dependencies and framework versions
179
- - Note Ruby version from `.ruby-version` or `Gemfile`
180
- - Check `config/` directory for framework configuration and asset pipeline setup
181
- - Include only dependencies that affect understanding (not every utility gem)
182
- - Specify versions only when version matters (breaking changes, compatibility)
183
-
184
- **Useful for phase planning when:**
185
- - Adding new dependencies (check compatibility)
186
- - Upgrading frameworks (know what's in use)
187
- - Choosing implementation approach (must work with existing stack)
188
- - Understanding build requirements
189
- </guidelines>