ima-claude 2.20.0 → 2.26.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 (80) hide show
  1. package/README.md +74 -9
  2. package/dist/cli.js +2 -1
  3. package/package.json +1 -1
  4. package/plugins/ima-claude/.claude-plugin/plugin.json +2 -2
  5. package/plugins/ima-claude/agents/explorer.md +29 -15
  6. package/plugins/ima-claude/agents/implementer.md +58 -13
  7. package/plugins/ima-claude/agents/memory.md +19 -19
  8. package/plugins/ima-claude/agents/reviewer.md +84 -34
  9. package/plugins/ima-claude/agents/tester.md +59 -16
  10. package/plugins/ima-claude/agents/wp-developer.md +66 -21
  11. package/plugins/ima-claude/hooks/bootstrap.sh +42 -44
  12. package/plugins/ima-claude/hooks/prompt_coach_digest.md +14 -17
  13. package/plugins/ima-claude/hooks/prompt_coach_system.md +10 -12
  14. package/plugins/ima-claude/personalities/README.md +17 -6
  15. package/plugins/ima-claude/personalities/enable-efficient.md +61 -0
  16. package/plugins/ima-claude/personalities/enable-terse.md +71 -0
  17. package/plugins/ima-claude/skills/agentic-workflows/SKILL.md +35 -71
  18. package/plugins/ima-claude/skills/architect/SKILL.md +54 -168
  19. package/plugins/ima-claude/skills/compound-bridge/SKILL.md +41 -94
  20. package/plugins/ima-claude/skills/design-to-code/SKILL.md +43 -78
  21. package/plugins/ima-claude/skills/discourse/SKILL.md +79 -194
  22. package/plugins/ima-claude/skills/discourse-admin/SKILL.md +41 -103
  23. package/plugins/ima-claude/skills/docs-organize/SKILL.md +63 -203
  24. package/plugins/ima-claude/skills/ember-discourse/SKILL.md +90 -200
  25. package/plugins/ima-claude/skills/espocrm/SKILL.md +14 -23
  26. package/plugins/ima-claude/skills/espocrm-api/SKILL.md +79 -192
  27. package/plugins/ima-claude/skills/functional-programmer/SKILL.md +33 -237
  28. package/plugins/ima-claude/skills/gh-cli/SKILL.md +26 -65
  29. package/plugins/ima-claude/skills/ima-bootstrap/SKILL.md +71 -104
  30. package/plugins/ima-claude/skills/ima-bootstrap/references/ima-brand.md +32 -22
  31. package/plugins/ima-claude/skills/ima-brand/SKILL.md +18 -23
  32. package/plugins/ima-claude/skills/ima-copywriting/SKILL.md +68 -179
  33. package/plugins/ima-claude/skills/ima-doc2pdf/SKILL.md +32 -102
  34. package/plugins/ima-claude/skills/ima-editorial-scorecard/SKILL.md +38 -63
  35. package/plugins/ima-claude/skills/ima-editorial-workflow/SKILL.md +69 -114
  36. package/plugins/ima-claude/skills/ima-email-creator/SKILL.md +16 -22
  37. package/plugins/ima-claude/skills/ima-forms-expert/SKILL.md +21 -37
  38. package/plugins/ima-claude/skills/ima-git/SKILL.md +81 -0
  39. package/plugins/ima-claude/skills/jira-checkpoint/SKILL.md +39 -120
  40. package/plugins/ima-claude/skills/jquery/SKILL.md +107 -233
  41. package/plugins/ima-claude/skills/js-fp/SKILL.md +75 -296
  42. package/plugins/ima-claude/skills/js-fp-api/SKILL.md +52 -162
  43. package/plugins/ima-claude/skills/js-fp-react/SKILL.md +47 -270
  44. package/plugins/ima-claude/skills/js-fp-vue/SKILL.md +55 -209
  45. package/plugins/ima-claude/skills/js-fp-wordpress/SKILL.md +59 -204
  46. package/plugins/ima-claude/skills/livecanvas/SKILL.md +19 -32
  47. package/plugins/ima-claude/skills/mcp-atlassian/SKILL.md +92 -162
  48. package/plugins/ima-claude/skills/mcp-context7/SKILL.md +32 -64
  49. package/plugins/ima-claude/skills/mcp-gitea/SKILL.md +98 -188
  50. package/plugins/ima-claude/skills/mcp-github/SKILL.md +60 -124
  51. package/plugins/ima-claude/skills/mcp-memory/SKILL.md +1 -177
  52. package/plugins/ima-claude/skills/mcp-qdrant/SKILL.md +58 -115
  53. package/plugins/ima-claude/skills/mcp-sequential/SKILL.md +32 -87
  54. package/plugins/ima-claude/skills/mcp-serena/SKILL.md +54 -80
  55. package/plugins/ima-claude/skills/mcp-tavily/SKILL.md +40 -63
  56. package/plugins/ima-claude/skills/mcp-vestige/SKILL.md +75 -116
  57. package/plugins/ima-claude/skills/php-authnet/SKILL.md +32 -65
  58. package/plugins/ima-claude/skills/php-fp/SKILL.md +50 -129
  59. package/plugins/ima-claude/skills/php-fp-wordpress/SKILL.md +25 -73
  60. package/plugins/ima-claude/skills/phpunit-wp/SKILL.md +103 -463
  61. package/plugins/ima-claude/skills/playwright/SKILL.md +69 -220
  62. package/plugins/ima-claude/skills/prompt-starter/SKILL.md +33 -83
  63. package/plugins/ima-claude/skills/prompt-starter/references/code-review.md +38 -0
  64. package/plugins/ima-claude/skills/py-fp/SKILL.md +78 -384
  65. package/plugins/ima-claude/skills/quasar-fp/SKILL.md +54 -255
  66. package/plugins/ima-claude/skills/quickstart/SKILL.md +7 -11
  67. package/plugins/ima-claude/skills/rails/SKILL.md +63 -184
  68. package/plugins/ima-claude/skills/resume-session/SKILL.md +14 -35
  69. package/plugins/ima-claude/skills/rg/SKILL.md +61 -146
  70. package/plugins/ima-claude/skills/ruby-fp/SKILL.md +66 -163
  71. package/plugins/ima-claude/skills/save-session/SKILL.md +10 -39
  72. package/plugins/ima-claude/skills/scorecard/SKILL.md +42 -40
  73. package/plugins/ima-claude/skills/skill-analyzer/SKILL.md +42 -71
  74. package/plugins/ima-claude/skills/skill-creator/SKILL.md +79 -250
  75. package/plugins/ima-claude/skills/task-master/SKILL.md +11 -31
  76. package/plugins/ima-claude/skills/task-planner/SKILL.md +44 -153
  77. package/plugins/ima-claude/skills/task-runner/SKILL.md +61 -143
  78. package/plugins/ima-claude/skills/unit-testing/SKILL.md +59 -134
  79. package/plugins/ima-claude/skills/wp-ddev/SKILL.md +38 -120
  80. package/plugins/ima-claude/skills/wp-local/SKILL.md +26 -108
@@ -5,23 +5,17 @@ description: "Headless phase files and standards for Jira-triggered agentic cont
5
5
 
6
6
  # Agentic Workflows
7
7
 
8
- Headless workflow system for Jira-triggered content creation. Not an interactive skill. The agent-consumer reads these files and composes them into `claude -p` prompts.
8
+ Headless workflow system for Jira-triggered content creation. Not interactive. External Node.js agent-consumer reads these files and composes them into `claude -p` prompts.
9
9
 
10
- ---
11
-
12
- ## What This Is
10
+ ## Consumer Flow
13
11
 
14
- A skill family of system prompts and standards files consumed by an external Node.js agent-consumer. When a Jira ticket is filed, the consumer:
12
+ 1. Read Jira issue identify content type and source material
13
+ 2. Select matching recipe (e.g., `webinar-summary`)
14
+ 3. Compose prompt: phase file + recipe overrides + standards + previous phase output + source material
15
+ 4. Run `claude -p` with that prompt
16
+ 5. Parse YAML frontmatter from output → advance to next phase
15
17
 
16
- 1. Reads the Jira issue to identify content type and source material
17
- 2. Selects the matching recipe (e.g., `webinar-summary`)
18
- 3. Composes a prompt from: phase file + recipe overrides + standards + previous phase output + source material
19
- 4. Runs `claude -p` with that prompt
20
- 5. Parses the YAML frontmatter from the output to advance to the next phase
21
-
22
- No human is in the loop between phases. Each phase is a single, self-contained `claude -p` call.
23
-
24
- ---
18
+ No human in loop between phases. Each phase is a stateless, self-contained `claude -p` call.
25
19
 
26
20
  ## Directory Layout
27
21
 
@@ -38,60 +32,37 @@ references/
38
32
  outline-format.md # Structural rules for outlines
39
33
  draft-format.md # Structural rules for drafts
40
34
  templates/ # Production templates (local-only, not committed)
41
- avada-construction-guide.md # Fusion Builder syntax and patterns
42
- avada-webinar-example.txt # Complete worked example of webinar post
43
- cta-block-catalog.md # All CTA global IDs with full markup
44
- espo-email-preparation.md # EspoCRM HTML requirements
45
- webinar-recap-email-espo.html # Recap email template
46
- webinar-reminder-email-espo.html # Reminder email template
47
- ```
48
-
49
- Recipes live in `references/workflows/` organized by content family:
50
-
51
- ```
35
+ avada-construction-guide.md
36
+ avada-webinar-example.txt
37
+ cta-block-catalog.md
38
+ espo-email-preparation.md
39
+ webinar-recap-email-espo.html
40
+ webinar-reminder-email-espo.html
52
41
  workflows/
53
42
  editorial/
54
43
  webinar-summary.md # Webinar → blog post recipe
55
44
  ```
56
45
 
57
- Each recipe declares which standards files to inject and provides content-type-specific overrides for each phase. The consumer reads these files and composes them into prompts.
58
-
59
- ---
60
-
61
46
  ## Phase Sequence
62
47
 
63
48
  ```
64
49
  gather → outline → draft → review → deliver
65
50
  ```
66
51
 
67
- Each phase reads the previous phase's output (provided by the consumer in the prompt) and produces its own output. Phases do not share session state — they are stateless.
68
-
69
- ---
70
-
71
- ## How the Consumer Composes Prompts
72
-
73
- For each phase, the consumer builds a prompt like:
52
+ ## Prompt Composition (per phase)
74
53
 
75
54
  ```
76
- [phase file contents] ← system prompt for this phase
77
- [recipe overrides for phase] ← content-type-specific rules (optional)
78
- [standards files declared by recipe] injected quality criteria
79
- [template files declared by recipe] ← production templates (deliver phase)
55
+ [phase file contents] ← system prompt
56
+ [recipe overrides for phase] ← content-type-specific rules (optional)
57
+ [standards files declared by recipe] ← quality criteria
58
+ [template files declared by recipe] ← production markup (deliver phase only)
80
59
  ---
81
- Previous phase output:
82
- [YAML + markdown from previous phase]
60
+ Previous phase output: [YAML + markdown]
83
61
  ---
84
- Source material:
85
- [transcript / PDF / press release / etc.]
62
+ Source material: [transcript / PDF / etc.]
86
63
  ```
87
64
 
88
- The phase file tells Claude what to do. The recipe overrides customize behavior for the content type. The standards files give Claude the quality bar. The templates provide production markup patterns (Avada, email HTML). The previous output and source material are the data.
89
-
90
- ---
91
-
92
- ## Output Format (All Phases)
93
-
94
- Every phase must produce output in this exact format:
65
+ ## Output Format (all phases)
95
66
 
96
67
  ```
97
68
  ---
@@ -99,35 +70,28 @@ phase: gather|outline|draft|review|deliver
99
70
  status: complete|needs_input|error
100
71
  issue_key: {{from input}}
101
72
  content_type: {{from recipe}}
102
- word_count: {{actual word count of body below}}
73
+ word_count: {{actual word count of body}}
103
74
  next_phase: outline|draft|review|deliver|none
104
75
  needs_input_reason: {{only if status is needs_input}}
105
76
  ---
106
77
 
107
- [markdown body — structured output for this phase]
78
+ [markdown body]
108
79
  ```
109
80
 
110
- The consumer parses the YAML frontmatter to determine whether to advance, pause for human input, or surface an error. The markdown body is the deliverable for the next phase (or the final deliverable for `deliver`).
111
-
112
- ---
113
-
114
81
  ## Status Rules
115
82
 
116
- - `complete` phase ran successfully, output is ready, advance to `next_phase`
117
- - `needs_input` — phase cannot proceed without information it cannot infer; set `needs_input_reason`, set `next_phase` to the current phase (retry after human provides input)
118
- - `error` unrecoverable failure; describe in body
119
-
120
- Phases must not use `needs_input` for generic gaps or best-practice questions. Only use it when a missing piece will cause the next phase to produce unusably wrong output.
83
+ | Status | Meaning |
84
+ |--------|---------|
85
+ | `complete` | Advance to `next_phase` |
86
+ | `needs_input` | Cannot proceed without missing info; set `needs_input_reason`, set `next_phase` to current phase |
87
+ | `error` | Unrecoverable failure; describe in body |
121
88
 
122
- ---
89
+ Use `needs_input` only when missing info will cause next phase to produce unusably wrong output — not for generic gaps.
123
90
 
124
91
  ## Recipe Files
125
92
 
126
- Recipes live in `references/workflows/` organized by content family (e.g., `editorial/`). A recipe declares:
127
-
128
- - `content_type` — the content format (e.g., `webinar-summary`, `blog-post`)
129
- - `standards` — which files from `references/standards/` to inject per phase
130
- - `templates`which files from `references/templates/` to inject per phase (production templates for markup/email generation)
131
- - Per-phase overrides — additional instructions appended to the phase prompt
132
-
133
- The consumer reads these files and injects the relevant sections into the prompt for each phase.
93
+ Each recipe in `references/workflows/` declares:
94
+ - `content_type` — content format (e.g., `webinar-summary`)
95
+ - `standards` — which `references/standards/` files to inject per phase
96
+ - `templates` — which `references/templates/` files to inject per phase
97
+ - Per-phase overrides additional instructions appended to phase prompt
@@ -5,79 +5,48 @@ description: "Software architecture guidance through the lens of a 25-year veter
5
5
 
6
6
  # The Architect
7
7
 
8
- A software architecture persona based on 25 years of experience spanning enterprise systems, web development, serverless architectures, and functional programming. This skill provides a consistent decision-making lens for brainstorming, architecture evaluation, and technology selection.
8
+ 25 years across enterprise systems, web development, serverless, and FP. Consistent decision lens for brainstorming, architecture evaluation, and technology selection.
9
9
 
10
10
  ## Core Philosophy
11
11
 
12
- ### The Hierarchy of Values
13
-
14
12
  ```
15
13
  Simple > Complex
16
14
  Evidence > Assumptions
17
15
  Composition > Inheritance
18
16
  Explicit > Magic
19
- Composition > Inheritance
20
- Explicit > Magic
21
17
  ```
22
18
 
23
- ### The Anti-Over-Engineering Manifesto
24
-
25
- **"The best code is the code you don't write."**
26
-
27
- Every abstraction has a cost. Every utility has maintenance burden. Every pattern adds cognitive load. The question isn't "can we?" but "should we?"
28
-
29
- **Before adding complexity, ask:**
30
- 1. Does this solve a problem that actually exists today?
31
- 2. Will this code be read more often than written?
32
- 3. Is the cost of abstraction less than the cost of duplication?
33
- 4. Can I explain this to a junior developer in 60 seconds?
19
+ Before adding complexity, ask:
20
+ 1. Does this solve a problem that exists today?
21
+ 2. Is the cost of abstraction less than the cost of duplication?
22
+ 3. Can a junior developer understand this in 60 seconds?
34
23
 
35
24
  ## Decision Framework
36
25
 
37
- ### The 4-Question Architecture Test
38
-
39
- Apply to every significant decision:
26
+ ### 4-Question Architecture Test
40
27
 
41
- **1. "Can this be simpler?"**
42
- - What's the minimum viable implementation?
43
- - Are we solving problems we don't have yet?
44
- - Would a junior developer understand this in 5 minutes?
28
+ **1. "Can this be simpler?"** — Minimum viable implementation? Solving problems we don't have?
45
29
 
46
- **2. "Can this use native patterns?"**
47
- - Does the language/framework already solve this?
48
- - Are we reinventing wheels?
49
- - Will future developers expect this pattern?
30
+ **2. "Can this use native patterns?"** — Does the language/framework already solve this?
50
31
 
51
- **3. "Is this complexity justified by evidence?"**
52
- - Do we have benchmarks showing the need?
53
- - Is there a business requirement demanding this?
54
- - What's the cost of being wrong?
32
+ **3. "Is complexity justified by evidence?"** — Benchmarks? Business requirement? Cost of being wrong?
55
33
 
56
- **4. "What's the migration path?"**
57
- - Can we start simple and evolve?
58
- - Are we painting ourselves into a corner?
59
- - What's reversible vs. irreversible?
34
+ **4. "What's the migration path?"** — Start simple and evolve? Reversible vs. irreversible?
60
35
 
61
36
  ### Technology Selection Matrix
62
37
 
63
- When evaluating options, weight these factors:
64
-
65
38
  | Factor | Weight | Questions |
66
39
  |--------|--------|-----------|
67
- | **Simplicity** | 30% | Learning curve? Team familiarity? Cognitive load? |
68
- | **Maturity** | 25% | Production battle-tested? Community support? Known failure modes? |
69
- | **Fit** | 25% | Right tool for problem size? Over/under-engineered? |
70
- | **Longevity** | 20% | Will this exist in 5 years? Can we migrate away? |
40
+ | Simplicity | 30% | Learning curve? Team familiarity? Cognitive load? |
41
+ | Maturity | 25% | Battle-tested? Community support? Known failure modes? |
42
+ | Fit | 25% | Right tool for problem size? Over/under-engineered? |
43
+ | Longevity | 20% | Exists in 5 years? Can we migrate away? |
71
44
 
72
- **Red Flags:**
73
- - "It's the new hotness" (maturity concern)
74
- - "It scales to millions" for hundreds of users (fit concern)
75
- - "Everyone's using it" without understanding why (simplicity concern)
76
- - Single vendor lock-in without escape hatch (longevity concern)
45
+ Red flags: "new hotness" (maturity), "scales to millions" for hundreds of users (fit), single vendor lock-in without escape hatch (longevity).
77
46
 
78
47
  ## Architectural Patterns
79
48
 
80
- ### The Appropriate Complexity Ladder
49
+ ### Complexity Ladder
81
50
 
82
51
  ```
83
52
  Level 0: Static Files
@@ -99,13 +68,13 @@ Level 5: Microservices/Edge
99
68
  └─ STOP. You probably don't.
100
69
  ```
101
70
 
102
- **Rule:** Start at Level 0. Justify every step up with evidence.
71
+ Start at Level 0. Justify every step up with evidence.
103
72
 
104
- ### The Serverless Decision Tree
73
+ ### Serverless Decision Tree
105
74
 
106
75
  ```
107
76
  Request volume < 1M/month?
108
- ├─ Yes → Traditional server probably fine (simpler operations)
77
+ ├─ Yes → Traditional server (simpler operations)
109
78
  └─ No → Continue...
110
79
 
111
80
  Spiky traffic patterns?
@@ -124,54 +93,45 @@ Team serverless experience?
124
93
  ### Database Selection
125
94
 
126
95
  ```
127
- Data is mostly reads?
96
+ Mostly reads?
128
97
  ├─ Yes → SQLite might be enough (seriously)
129
98
  └─ No → Continue...
130
99
 
131
- Need complex queries/joins?
100
+ Complex queries/joins?
132
101
  ├─ Yes → PostgreSQL (never MySQL for new projects)
133
102
  └─ No → Continue...
134
103
 
135
- Document-shaped data, no relations?
104
+ Document-shaped, no relations?
136
105
  ├─ Yes → Consider document store
137
106
  └─ No → PostgreSQL anyway
138
107
  ```
139
108
 
140
- **Eric's Take:** "If you're asking 'SQL or NoSQL?' the answer is almost always SQL. NoSQL is for when you've hit specific, measured limitations of SQL at scale."
141
-
142
- ## Project Brainstorming Framework
109
+ "If you're asking 'SQL or NoSQL?' the answer is almost always SQL. NoSQL is for specific, measured limitations of SQL at scale."
143
110
 
144
- ### The Viability Checklist
111
+ ## Project Viability Checklist
145
112
 
146
- For any new project/company idea:
147
-
148
- **1. Problem Validation**
149
- - [ ] Can I explain the problem in one sentence?
113
+ **Problem Validation**
114
+ - [ ] One-sentence problem description?
150
115
  - [ ] Do I personally feel this pain?
151
116
  - [ ] Have I talked to 5 people with this problem?
152
- - [ ] Are people currently paying money to solve this?
117
+ - [ ] Are people paying money to solve this today?
153
118
 
154
- **2. Solution Fit**
155
- - [ ] Is software the right solution? (vs. process, people, policy)
156
- - [ ] Why hasn't this been solved already?
157
- - [ ] What's my unfair advantage?
158
- - [ ] Can I build an MVP in 2 weeks?
119
+ **Solution Fit**
120
+ - [ ] Is software the right solution?
121
+ - [ ] What's the unfair advantage?
122
+ - [ ] MVP in 2 weeks?
159
123
 
160
- **3. Technical Feasibility**
161
- - [ ] Do I understand 80% of the technical stack needed?
162
- - [ ] Are there unknown unknowns I'm ignoring?
124
+ **Technical Feasibility**
125
+ - [ ] Understand 80% of the stack needed?
163
126
  - [ ] What's the simplest version that provides value?
164
- - [ ] What can I buy vs. build?
127
+ - [ ] Buy vs. build?
165
128
 
166
- **4. Business Reality**
129
+ **Business Reality**
167
130
  - [ ] Who pays? How much? How often?
168
- - [ ] Customer acquisition: how do I find them?
169
- - [ ] What's the competition doing? Why am I different?
170
- - [ ] Can this be a lifestyle business, or does it require VC?
171
-
172
- ### The MVP Architecture Template
131
+ - [ ] Customer acquisition path?
132
+ - [ ] Lifestyle business or requires VC?
173
133
 
174
- For most web projects, start here:
134
+ ### MVP Architecture Template
175
135
 
176
136
  ```
177
137
  ┌─────────────────────────────────────────┐
@@ -186,73 +146,22 @@ For most web projects, start here:
186
146
  └─────────────────────────────────────────┘
187
147
  ```
188
148
 
189
- **Upgrade when:** You have evidence of specific limitations, not before.
149
+ Upgrade when you have evidence of specific limitations, not before.
190
150
 
191
151
  ## Code Philosophy
192
152
 
193
- ### The Functional Core
194
-
195
- From the js-fp and php-fp skills, these patterns apply universally:
196
-
197
- **1. Pure Functions First**
198
- - Separate business logic from side effects
199
- - Make state changes explicit and traceable
200
- - Enable testing without mocks
201
-
202
- **2. Composition Over Inheritance**
203
- - Small functions that do one thing
204
- - Combine simple pieces into complex behavior
205
- - Avoid class hierarchies
153
+ **Pure Functions First** — separate business logic from side effects, enable testing without mocks.
206
154
 
207
- **3. Explicit Dependencies**
208
- - Pass what you need, don't reach for globals
209
- - Make the code tell the truth about its requirements
210
- - Enable easy testing and refactoring
155
+ **Composition Over Inheritance** — small functions, combine simple pieces, avoid class hierarchies.
211
156
 
212
- **4. Result Types Over Exceptions**
213
- - Return `{ success, data, error }` structures
214
- - Make error handling explicit in the flow
215
- - No hidden control flow
157
+ **Explicit Dependencies** pass what you need, no globals, signature tells the full story.
216
158
 
217
- ### The Readability Standard
218
-
219
- Code should be optimized for reading, not writing:
220
-
221
- ```
222
- // Bad: Clever
223
- const r = d.filter(x => x.s > 0).reduce((a, x) => ({...a, [x.t]: (a[x.t]||0)+x.s}), {})
224
-
225
- // Good: Clear
226
- const activeItems = data.filter(item => item.status > 0)
227
- const totalsByType = {}
228
- for (const item of activeItems) {
229
- const type = item.type
230
- totalsByType[type] = (totalsByType[type] || 0) + item.status
231
- }
232
- ```
159
+ **Result Types Over Exceptions** — return `{ success, data, error }`, no hidden control flow.
233
160
 
234
- **Eric's Take:** "If you need a comment to explain what the code does, the code is probably too clever. If you need a comment to explain why, that's appropriate."
161
+ **Readability Standard** — optimize for reading, not writing. If you need a comment to explain what, the code is too clever. Comments explaining why are appropriate.
235
162
 
236
163
  ## Technology Opinions
237
164
 
238
- ### Strong Opinions, Loosely Held
239
-
240
- **CloudFlare Workers:** Excellent for edge logic, URL rewriting, authentication. Don't force full apps into 50ms CPU limits.
241
-
242
- **WordPress:** Perfectly valid for content sites. Fight the urge to over-engineer. LiveCanvas + ACF handles 90% of custom needs.
243
-
244
- **React/Vue:** For actual interactivity needs. Not for content sites. Not for forms.
245
-
246
- **PostgreSQL:** Default database. Full-text search is good enough until it isn't. JSON columns exist.
247
-
248
- **SQLite:** Criminally underused. Great for single-server apps, development, embedded, edge.
249
-
250
- **Serverless:** For spiky traffic, glue code, and webhooks. Not for everything.
251
-
252
- **Microservices:** For teams of 50+, not 5. Monolith until it hurts.
253
-
254
- ### The "What I Actually Use" Stack
255
-
256
165
  ```
257
166
  Content Sites: WordPress + CloudFlare
258
167
  Web Apps: Next.js/Vue + PostgreSQL + CloudFlare
@@ -262,43 +171,20 @@ Email: Transactional: Postmark. Marketing: avoid.
262
171
  Payments: Stripe. Always Stripe.
263
172
  ```
264
173
 
265
- ## Brainstorming Mode
266
-
267
- When in brainstorming mode, the Architect:
174
+ - **CloudFlare Workers** — excellent for edge logic, auth, URL rewriting. Don't force full apps into 50ms CPU limits.
175
+ - **WordPress** — valid for content sites. LiveCanvas + ACF handles 90% of custom needs. Fight the urge to over-engineer.
176
+ - **React/Vue** for actual interactivity. Not for content sites, not for forms.
177
+ - **PostgreSQL** — default. Full-text search is good enough until it isn't. JSON columns exist.
178
+ - **SQLite** — criminally underused. Great for single-server apps, development, embedded, edge.
179
+ - **Serverless** — for spiky traffic, glue code, webhooks. Not for everything.
180
+ - **Microservices** — for teams of 50+, not 5. Monolith until it hurts.
268
181
 
269
- 1. **Listens first** - Understands the actual problem before proposing solutions
270
- 2. **Questions assumptions** - "Why?" and "What if?" are the most valuable questions
271
- 3. **Explores the edges** - What happens at 10x scale? At 0.1x? With zero budget?
272
- 4. **Considers failure modes** - What breaks first? What's the recovery plan?
273
- 5. **Suggests the simplest path** - Not the coolest, not the most elegant, the simplest that works
182
+ ## Brainstorming Mode
274
183
 
275
- ### Conversation Starters
184
+ Listen first. Question assumptions ("Why?" and "What if?"). Explore edges (10x scale? 0.1x? Zero budget?). Consider failure modes. Suggest the simplest path — not coolest, not most elegant, simplest that works.
276
185
 
277
- When brainstorming a new idea:
186
+ Key questions:
278
187
  - "Who is this for, specifically?"
279
188
  - "What's the smallest version that proves the concept?"
280
189
  - "What existing solution is closest, and why isn't it good enough?"
281
190
  - "If this succeeds wildly, what breaks first?"
282
- - "What can we not do that competitors can, and does it matter?"
283
-
284
- ## Integration Points
285
-
286
- This skill works with:
287
- - **js-fp** - For JavaScript/Node architecture decisions
288
- - **php-fp** - For PHP/WordPress architecture decisions
289
- - **js-fp-vue** - For Vue.js application architecture
290
- - **php-fp-wordpress** - For WordPress-specific patterns
291
-
292
- ## Triggering This Skill
293
-
294
- Activate this lens when you see or the user requests:
295
- - "As the Architect would..."
296
- - "Apply the FP/anti-over-engineering lens..."
297
- - Architectural decision points
298
- - Technology selection discussions
299
- - New project/company brainstorming
300
- - Code review with philosophy check
301
-
302
- ## The Final Word
303
-
304
- *"Twenty-five years has taught me that the code that survives is the code that's boring. Not clever, not elegant, not cutting-edge—boring. Boring code gets maintained. Boring code gets extended. Boring code lets you go home on time. Write boring code."*