agy-superpowers 5.2.2 → 5.2.3
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.
- package/README.md +47 -150
- package/package.json +1 -1
- package/template/agent/rules/scratch-scripts.md +37 -0
- package/template/agent/rules/superpowers.md +4 -51
- package/template/agent/skills/ai-integrated-product/SKILL.md +0 -57
- package/template/agent/skills/analytics-setup/SKILL.md +0 -51
- package/template/agent/skills/api-design/SKILL.md +0 -193
- package/template/agent/skills/app-store-optimizer/SKILL.md +0 -127
- package/template/agent/skills/auth-and-identity/SKILL.md +0 -167
- package/template/agent/skills/backend-developer/SKILL.md +0 -148
- package/template/agent/skills/bootstrapper-finance/SKILL.md +0 -55
- package/template/agent/skills/chrome-extension-developer/SKILL.md +0 -53
- package/template/agent/skills/community-manager/SKILL.md +0 -115
- package/template/agent/skills/content-marketer/SKILL.md +0 -111
- package/template/agent/skills/conversion-optimizer/SKILL.md +0 -142
- package/template/agent/skills/cto-architect/SKILL.md +0 -133
- package/template/agent/skills/customer-success-manager/SKILL.md +0 -126
- package/template/agent/skills/data-analyst/SKILL.md +0 -147
- package/template/agent/skills/devops-engineer/SKILL.md +0 -117
- package/template/agent/skills/email-infrastructure/SKILL.md +0 -164
- package/template/agent/skills/game-design/SKILL.md +0 -194
- package/template/agent/skills/game-developer/SKILL.md +0 -175
- package/template/agent/skills/growth-hacker/SKILL.md +0 -122
- package/template/agent/skills/idea-validator/SKILL.md +0 -55
- package/template/agent/skills/indie-legal/SKILL.md +0 -53
- package/template/agent/skills/influencer-marketer/SKILL.md +0 -141
- package/template/agent/skills/landing-page-builder/SKILL.md +0 -59
- package/template/agent/skills/launch-strategist/SKILL.md +0 -62
- package/template/agent/skills/market-researcher/SKILL.md +0 -53
- package/template/agent/skills/micro-saas-builder/SKILL.md +0 -56
- package/template/agent/skills/monetization-strategist/SKILL.md +0 -119
- package/template/agent/skills/paid-acquisition-specialist/SKILL.md +0 -119
- package/template/agent/skills/pricing-psychologist/SKILL.md +0 -58
- package/template/agent/skills/real-time-features/SKILL.md +0 -194
- package/template/agent/skills/retention-specialist/SKILL.md +0 -123
- package/template/agent/skills/rust-developer/SKILL.md +0 -281
- package/template/agent/skills/rust-developer/references/rust-rules/_sections.md +0 -231
- package/template/agent/skills/rust-developer/references/rust-rules/anti-clone-excessive.md +0 -124
- package/template/agent/skills/rust-developer/references/rust-rules/anti-collect-intermediate.md +0 -131
- package/template/agent/skills/rust-developer/references/rust-rules/anti-empty-catch.md +0 -132
- package/template/agent/skills/rust-developer/references/rust-rules/anti-expect-lazy.md +0 -95
- package/template/agent/skills/rust-developer/references/rust-rules/anti-format-hot-path.md +0 -141
- package/template/agent/skills/rust-developer/references/rust-rules/anti-index-over-iter.md +0 -125
- package/template/agent/skills/rust-developer/references/rust-rules/anti-lock-across-await.md +0 -127
- package/template/agent/skills/rust-developer/references/rust-rules/anti-over-abstraction.md +0 -120
- package/template/agent/skills/rust-developer/references/rust-rules/anti-panic-expected.md +0 -131
- package/template/agent/skills/rust-developer/references/rust-rules/anti-premature-optimize.md +0 -156
- package/template/agent/skills/rust-developer/references/rust-rules/anti-string-for-str.md +0 -122
- package/template/agent/skills/rust-developer/references/rust-rules/anti-stringly-typed.md +0 -167
- package/template/agent/skills/rust-developer/references/rust-rules/anti-type-erasure.md +0 -134
- package/template/agent/skills/rust-developer/references/rust-rules/anti-unwrap-abuse.md +0 -143
- package/template/agent/skills/rust-developer/references/rust-rules/anti-vec-for-slice.md +0 -121
- package/template/agent/skills/rust-developer/references/rust-rules/api-builder-must-use.md +0 -143
- package/template/agent/skills/rust-developer/references/rust-rules/api-builder-pattern.md +0 -187
- package/template/agent/skills/rust-developer/references/rust-rules/api-common-traits.md +0 -165
- package/template/agent/skills/rust-developer/references/rust-rules/api-default-impl.md +0 -177
- package/template/agent/skills/rust-developer/references/rust-rules/api-extension-trait.md +0 -163
- package/template/agent/skills/rust-developer/references/rust-rules/api-from-not-into.md +0 -146
- package/template/agent/skills/rust-developer/references/rust-rules/api-impl-asref.md +0 -142
- package/template/agent/skills/rust-developer/references/rust-rules/api-impl-into.md +0 -160
- package/template/agent/skills/rust-developer/references/rust-rules/api-must-use.md +0 -125
- package/template/agent/skills/rust-developer/references/rust-rules/api-newtype-safety.md +0 -162
- package/template/agent/skills/rust-developer/references/rust-rules/api-non-exhaustive.md +0 -177
- package/template/agent/skills/rust-developer/references/rust-rules/api-parse-dont-validate.md +0 -184
- package/template/agent/skills/rust-developer/references/rust-rules/api-sealed-trait.md +0 -168
- package/template/agent/skills/rust-developer/references/rust-rules/api-serde-optional.md +0 -182
- package/template/agent/skills/rust-developer/references/rust-rules/api-typestate.md +0 -199
- package/template/agent/skills/rust-developer/references/rust-rules/async-bounded-channel.md +0 -175
- package/template/agent/skills/rust-developer/references/rust-rules/async-broadcast-pubsub.md +0 -185
- package/template/agent/skills/rust-developer/references/rust-rules/async-cancellation-token.md +0 -203
- package/template/agent/skills/rust-developer/references/rust-rules/async-clone-before-await.md +0 -171
- package/template/agent/skills/rust-developer/references/rust-rules/async-join-parallel.md +0 -158
- package/template/agent/skills/rust-developer/references/rust-rules/async-joinset-structured.md +0 -195
- package/template/agent/skills/rust-developer/references/rust-rules/async-mpsc-queue.md +0 -171
- package/template/agent/skills/rust-developer/references/rust-rules/async-no-lock-await.md +0 -156
- package/template/agent/skills/rust-developer/references/rust-rules/async-oneshot-response.md +0 -191
- package/template/agent/skills/rust-developer/references/rust-rules/async-select-racing.md +0 -198
- package/template/agent/skills/rust-developer/references/rust-rules/async-spawn-blocking.md +0 -154
- package/template/agent/skills/rust-developer/references/rust-rules/async-tokio-fs.md +0 -167
- package/template/agent/skills/rust-developer/references/rust-rules/async-tokio-runtime.md +0 -169
- package/template/agent/skills/rust-developer/references/rust-rules/async-try-join.md +0 -172
- package/template/agent/skills/rust-developer/references/rust-rules/async-watch-latest.md +0 -189
- package/template/agent/skills/rust-developer/references/rust-rules/doc-all-public.md +0 -113
- package/template/agent/skills/rust-developer/references/rust-rules/doc-cargo-metadata.md +0 -147
- package/template/agent/skills/rust-developer/references/rust-rules/doc-errors-section.md +0 -122
- package/template/agent/skills/rust-developer/references/rust-rules/doc-examples-section.md +0 -161
- package/template/agent/skills/rust-developer/references/rust-rules/doc-hidden-setup.md +0 -149
- package/template/agent/skills/rust-developer/references/rust-rules/doc-intra-links.md +0 -138
- package/template/agent/skills/rust-developer/references/rust-rules/doc-link-types.md +0 -169
- package/template/agent/skills/rust-developer/references/rust-rules/doc-module-inner.md +0 -116
- package/template/agent/skills/rust-developer/references/rust-rules/doc-panics-section.md +0 -128
- package/template/agent/skills/rust-developer/references/rust-rules/doc-question-mark.md +0 -136
- package/template/agent/skills/rust-developer/references/rust-rules/doc-safety-section.md +0 -131
- package/template/agent/skills/rust-developer/references/rust-rules/err-anyhow-app.md +0 -179
- package/template/agent/skills/rust-developer/references/rust-rules/err-context-chain.md +0 -144
- package/template/agent/skills/rust-developer/references/rust-rules/err-custom-type.md +0 -152
- package/template/agent/skills/rust-developer/references/rust-rules/err-doc-errors.md +0 -145
- package/template/agent/skills/rust-developer/references/rust-rules/err-expect-bugs-only.md +0 -133
- package/template/agent/skills/rust-developer/references/rust-rules/err-from-impl.md +0 -152
- package/template/agent/skills/rust-developer/references/rust-rules/err-lowercase-msg.md +0 -124
- package/template/agent/skills/rust-developer/references/rust-rules/err-no-unwrap-prod.md +0 -115
- package/template/agent/skills/rust-developer/references/rust-rules/err-question-mark.md +0 -151
- package/template/agent/skills/rust-developer/references/rust-rules/err-result-over-panic.md +0 -130
- package/template/agent/skills/rust-developer/references/rust-rules/err-source-chain.md +0 -155
- package/template/agent/skills/rust-developer/references/rust-rules/err-thiserror-lib.md +0 -171
- package/template/agent/skills/rust-developer/references/rust-rules/lint-cargo-metadata.md +0 -138
- package/template/agent/skills/rust-developer/references/rust-rules/lint-deny-correctness.md +0 -107
- package/template/agent/skills/rust-developer/references/rust-rules/lint-missing-docs.md +0 -154
- package/template/agent/skills/rust-developer/references/rust-rules/lint-pedantic-selective.md +0 -118
- package/template/agent/skills/rust-developer/references/rust-rules/lint-rustfmt-check.md +0 -157
- package/template/agent/skills/rust-developer/references/rust-rules/lint-unsafe-doc.md +0 -133
- package/template/agent/skills/rust-developer/references/rust-rules/lint-warn-complexity.md +0 -131
- package/template/agent/skills/rust-developer/references/rust-rules/lint-warn-perf.md +0 -136
- package/template/agent/skills/rust-developer/references/rust-rules/lint-warn-style.md +0 -135
- package/template/agent/skills/rust-developer/references/rust-rules/lint-warn-suspicious.md +0 -122
- package/template/agent/skills/rust-developer/references/rust-rules/lint-workspace-lints.md +0 -172
- package/template/agent/skills/rust-developer/references/rust-rules/mem-arena-allocator.md +0 -168
- package/template/agent/skills/rust-developer/references/rust-rules/mem-arrayvec.md +0 -142
- package/template/agent/skills/rust-developer/references/rust-rules/mem-assert-type-size.md +0 -168
- package/template/agent/skills/rust-developer/references/rust-rules/mem-avoid-format.md +0 -147
- package/template/agent/skills/rust-developer/references/rust-rules/mem-box-large-variant.md +0 -158
- package/template/agent/skills/rust-developer/references/rust-rules/mem-boxed-slice.md +0 -139
- package/template/agent/skills/rust-developer/references/rust-rules/mem-clone-from.md +0 -147
- package/template/agent/skills/rust-developer/references/rust-rules/mem-compact-string.md +0 -149
- package/template/agent/skills/rust-developer/references/rust-rules/mem-reuse-collections.md +0 -174
- package/template/agent/skills/rust-developer/references/rust-rules/mem-smaller-integers.md +0 -159
- package/template/agent/skills/rust-developer/references/rust-rules/mem-smallvec.md +0 -138
- package/template/agent/skills/rust-developer/references/rust-rules/mem-thinvec.md +0 -142
- package/template/agent/skills/rust-developer/references/rust-rules/mem-with-capacity.md +0 -156
- package/template/agent/skills/rust-developer/references/rust-rules/mem-write-over-format.md +0 -172
- package/template/agent/skills/rust-developer/references/rust-rules/mem-zero-copy.md +0 -164
- package/template/agent/skills/rust-developer/references/rust-rules/name-acronym-word.md +0 -99
- package/template/agent/skills/rust-developer/references/rust-rules/name-as-free.md +0 -104
- package/template/agent/skills/rust-developer/references/rust-rules/name-consts-screaming.md +0 -94
- package/template/agent/skills/rust-developer/references/rust-rules/name-crate-no-rs.md +0 -78
- package/template/agent/skills/rust-developer/references/rust-rules/name-funcs-snake.md +0 -76
- package/template/agent/skills/rust-developer/references/rust-rules/name-into-ownership.md +0 -123
- package/template/agent/skills/rust-developer/references/rust-rules/name-is-has-bool.md +0 -127
- package/template/agent/skills/rust-developer/references/rust-rules/name-iter-convention.md +0 -129
- package/template/agent/skills/rust-developer/references/rust-rules/name-iter-method.md +0 -131
- package/template/agent/skills/rust-developer/references/rust-rules/name-iter-type-match.md +0 -142
- package/template/agent/skills/rust-developer/references/rust-rules/name-lifetime-short.md +0 -86
- package/template/agent/skills/rust-developer/references/rust-rules/name-no-get-prefix.md +0 -154
- package/template/agent/skills/rust-developer/references/rust-rules/name-to-expensive.md +0 -118
- package/template/agent/skills/rust-developer/references/rust-rules/name-type-param-single.md +0 -92
- package/template/agent/skills/rust-developer/references/rust-rules/name-types-camel.md +0 -65
- package/template/agent/skills/rust-developer/references/rust-rules/name-variants-camel.md +0 -101
- package/template/agent/skills/rust-developer/references/rust-rules/opt-bounds-check.md +0 -161
- package/template/agent/skills/rust-developer/references/rust-rules/opt-cache-friendly.md +0 -187
- package/template/agent/skills/rust-developer/references/rust-rules/opt-codegen-units.md +0 -142
- package/template/agent/skills/rust-developer/references/rust-rules/opt-cold-unlikely.md +0 -152
- package/template/agent/skills/rust-developer/references/rust-rules/opt-inline-always-rare.md +0 -141
- package/template/agent/skills/rust-developer/references/rust-rules/opt-inline-never-cold.md +0 -181
- package/template/agent/skills/rust-developer/references/rust-rules/opt-inline-small.md +0 -160
- package/template/agent/skills/rust-developer/references/rust-rules/opt-likely-hint.md +0 -171
- package/template/agent/skills/rust-developer/references/rust-rules/opt-lto-release.md +0 -130
- package/template/agent/skills/rust-developer/references/rust-rules/opt-pgo-profile.md +0 -167
- package/template/agent/skills/rust-developer/references/rust-rules/opt-simd-portable.md +0 -144
- package/template/agent/skills/rust-developer/references/rust-rules/opt-target-cpu.md +0 -154
- package/template/agent/skills/rust-developer/references/rust-rules/own-arc-shared.md +0 -141
- package/template/agent/skills/rust-developer/references/rust-rules/own-borrow-over-clone.md +0 -95
- package/template/agent/skills/rust-developer/references/rust-rules/own-clone-explicit.md +0 -135
- package/template/agent/skills/rust-developer/references/rust-rules/own-copy-small.md +0 -124
- package/template/agent/skills/rust-developer/references/rust-rules/own-cow-conditional.md +0 -135
- package/template/agent/skills/rust-developer/references/rust-rules/own-lifetime-elision.md +0 -134
- package/template/agent/skills/rust-developer/references/rust-rules/own-move-large.md +0 -134
- package/template/agent/skills/rust-developer/references/rust-rules/own-mutex-interior.md +0 -105
- package/template/agent/skills/rust-developer/references/rust-rules/own-rc-single-thread.md +0 -65
- package/template/agent/skills/rust-developer/references/rust-rules/own-refcell-interior.md +0 -97
- package/template/agent/skills/rust-developer/references/rust-rules/own-rwlock-readers.md +0 -122
- package/template/agent/skills/rust-developer/references/rust-rules/own-slice-over-vec.md +0 -119
- package/template/agent/skills/rust-developer/references/rust-rules/perf-black-box-bench.md +0 -153
- package/template/agent/skills/rust-developer/references/rust-rules/perf-chain-avoid.md +0 -136
- package/template/agent/skills/rust-developer/references/rust-rules/perf-collect-into.md +0 -133
- package/template/agent/skills/rust-developer/references/rust-rules/perf-collect-once.md +0 -120
- package/template/agent/skills/rust-developer/references/rust-rules/perf-drain-reuse.md +0 -137
- package/template/agent/skills/rust-developer/references/rust-rules/perf-entry-api.md +0 -134
- package/template/agent/skills/rust-developer/references/rust-rules/perf-extend-batch.md +0 -150
- package/template/agent/skills/rust-developer/references/rust-rules/perf-iter-lazy.md +0 -123
- package/template/agent/skills/rust-developer/references/rust-rules/perf-iter-over-index.md +0 -113
- package/template/agent/skills/rust-developer/references/rust-rules/perf-profile-first.md +0 -175
- package/template/agent/skills/rust-developer/references/rust-rules/perf-release-profile.md +0 -149
- package/template/agent/skills/rust-developer/references/rust-rules/proj-bin-dir.md +0 -142
- package/template/agent/skills/rust-developer/references/rust-rules/proj-flat-small.md +0 -133
- package/template/agent/skills/rust-developer/references/rust-rules/proj-lib-main-split.md +0 -148
- package/template/agent/skills/rust-developer/references/rust-rules/proj-mod-by-feature.md +0 -130
- package/template/agent/skills/rust-developer/references/rust-rules/proj-mod-rs-dir.md +0 -120
- package/template/agent/skills/rust-developer/references/rust-rules/proj-prelude-module.md +0 -155
- package/template/agent/skills/rust-developer/references/rust-rules/proj-pub-crate-internal.md +0 -139
- package/template/agent/skills/rust-developer/references/rust-rules/proj-pub-super-parent.md +0 -135
- package/template/agent/skills/rust-developer/references/rust-rules/proj-pub-use-reexport.md +0 -162
- package/template/agent/skills/rust-developer/references/rust-rules/proj-workspace-deps.md +0 -186
- package/template/agent/skills/rust-developer/references/rust-rules/proj-workspace-large.md +0 -162
- package/template/agent/skills/rust-developer/references/rust-rules/test-arrange-act-assert.md +0 -160
- package/template/agent/skills/rust-developer/references/rust-rules/test-cfg-test-module.md +0 -151
- package/template/agent/skills/rust-developer/references/rust-rules/test-criterion-bench.md +0 -171
- package/template/agent/skills/rust-developer/references/rust-rules/test-descriptive-names.md +0 -142
- package/template/agent/skills/rust-developer/references/rust-rules/test-doctest-examples.md +0 -168
- package/template/agent/skills/rust-developer/references/rust-rules/test-fixture-raii.md +0 -151
- package/template/agent/skills/rust-developer/references/rust-rules/test-integration-dir.md +0 -144
- package/template/agent/skills/rust-developer/references/rust-rules/test-mock-traits.md +0 -189
- package/template/agent/skills/rust-developer/references/rust-rules/test-mockall-mocking.md +0 -226
- package/template/agent/skills/rust-developer/references/rust-rules/test-proptest-properties.md +0 -161
- package/template/agent/skills/rust-developer/references/rust-rules/test-should-panic.md +0 -130
- package/template/agent/skills/rust-developer/references/rust-rules/test-tokio-async.md +0 -154
- package/template/agent/skills/rust-developer/references/rust-rules/test-use-super.md +0 -127
- package/template/agent/skills/rust-developer/references/rust-rules/type-enum-states.md +0 -154
- package/template/agent/skills/rust-developer/references/rust-rules/type-generic-bounds.md +0 -142
- package/template/agent/skills/rust-developer/references/rust-rules/type-never-diverge.md +0 -146
- package/template/agent/skills/rust-developer/references/rust-rules/type-newtype-ids.md +0 -160
- package/template/agent/skills/rust-developer/references/rust-rules/type-newtype-validated.md +0 -159
- package/template/agent/skills/rust-developer/references/rust-rules/type-no-stringly.md +0 -144
- package/template/agent/skills/rust-developer/references/rust-rules/type-option-nullable.md +0 -137
- package/template/agent/skills/rust-developer/references/rust-rules/type-phantom-marker.md +0 -188
- package/template/agent/skills/rust-developer/references/rust-rules/type-repr-transparent.md +0 -143
- package/template/agent/skills/rust-developer/references/rust-rules/type-result-fallible.md +0 -131
- package/template/agent/skills/saas-architect/SKILL.md +0 -139
- package/template/agent/skills/security-engineer/SKILL.md +0 -133
- package/template/agent/skills/seo-specialist/SKILL.md +0 -130
- package/template/agent/skills/solo-founder-ops/SKILL.md +0 -56
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: chrome-extension-developer
|
|
3
|
-
description: Use when building a Chrome extension, browser extension, or browser-based tool
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Chrome Extension Developer Lens
|
|
7
|
-
|
|
8
|
-
## Identity
|
|
9
|
-
Think in isolated contexts and specific browser APIs. You are building software that lives inside another piece of software. Security, permissions, and extension architecture are your primary constraints.
|
|
10
|
-
|
|
11
|
-
## Core Instincts
|
|
12
|
-
- **Manifest V3 is the only way** — background pages are dead; service workers rule. All new extensions must use MV3.
|
|
13
|
-
- **Least privilege principle** — every permission requested must be justified to the Chrome Web Store reviewers. Over-requesting leads to rejection.
|
|
14
|
-
- **Context isolation** — understand the boundaries between the popup, the content script, and the service worker. They cannot share variables directly.
|
|
15
|
-
- **Message passing is the nervous system** — since contexts are isolated, data moves via `chrome.runtime.sendMessage` and `chrome.tabs.sendMessage`.
|
|
16
|
-
|
|
17
|
-
## Core Knowledge
|
|
18
|
-
|
|
19
|
-
**Manifest V3 Architecture:**
|
|
20
|
-
- **Service Workers:** Ephemeral background tasks (wakes up on events, goes to sleep). No DOM access.
|
|
21
|
-
- **Content Scripts:** Runs in the context of webpages. Can read/modify the DOM, but cannot use most `chrome.*` APIs.
|
|
22
|
-
- **Popup/Options Page:** Standard HTML/JS environments. Can use all permitted `chrome.*` APIs.
|
|
23
|
-
- **Side Panel API:** For persistent UI across different tabs.
|
|
24
|
-
|
|
25
|
-
**Permission Strategy:**
|
|
26
|
-
- Prefer `activeTab` over broad host permissions (`<all_urls>` or `*://*/*`). `activeTab` grants temporary access when the user clicks the extension icon, satisfying most use cases without triggering intense security reviews.
|
|
27
|
-
|
|
28
|
-
**Storage Patterns:**
|
|
29
|
-
- `chrome.storage.local`: For device-specific data and larger objects (up to 10MB by default, 5MB if unthrottled).
|
|
30
|
-
- `chrome.storage.sync`: For user preferences across devices (max 100KB, max 8KB per item). Do NOT store sensitive data here (it syncs to Google servers).
|
|
31
|
-
|
|
32
|
-
**Common Extension Patterns:**
|
|
33
|
-
- Content injection (floating buttons on specific sites)
|
|
34
|
-
- Sidebar overlay (using Shadow DOM to avoid CSS conflicts with the host page)
|
|
35
|
-
- New tab override
|
|
36
|
-
- Context menu items
|
|
37
|
-
|
|
38
|
-
## Distribution & Monetization
|
|
39
|
-
- Chrome Web Store listing optimization is your main growth channel.
|
|
40
|
-
- **Monetization:** Freemium is most common. Premium features gated behind Stripe ($3-$10/mo or $29-$99 lifetime).
|
|
41
|
-
|
|
42
|
-
## Questions You Always Ask
|
|
43
|
-
- Can we achieve this with `activeTab` instead of requesting host permissions?
|
|
44
|
-
- Is this state being stored in the service worker? (It shouldn't be, service workers die).
|
|
45
|
-
- How are we passing this message between the content script and the background?
|
|
46
|
-
- Are we evaluating arbitrary strings? (No `eval()` allowed by CSP rules).
|
|
47
|
-
|
|
48
|
-
## Red Flags / Anti-Patterns
|
|
49
|
-
- [ ] Requesting `<all_urls>` permission when `activeTab` suffices (will delay or reject review)
|
|
50
|
-
- [ ] Using background pages instead of service workers (MV3 incompatible)
|
|
51
|
-
- [ ] Storing sensitive user data or large objects in `chrome.storage.sync`
|
|
52
|
-
- [ ] No error handling for `chrome.runtime.lastError` after API calls
|
|
53
|
-
- [ ] Relying on global variables in a service worker to persist state
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: community-manager
|
|
3
|
-
description: Use when building and managing communities on Discord, Reddit, Slack, or social platforms — including moderation, engagement strategy, and community-led growth
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Community Manager Lens
|
|
7
|
-
|
|
8
|
-
> **Philosophy:** Communities are built on belonging, not broadcasting. The best communities make members feel seen, not sold to.
|
|
9
|
-
> A thriving community is retention infrastructure — users who belong don't churn.
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## Core Instincts
|
|
14
|
-
|
|
15
|
-
- **Give before you take** — provide value for months before asking for anything
|
|
16
|
-
- **10× rule** — for every self-promotional post, create 10 pieces of pure value
|
|
17
|
-
- **Lurkers are members too** — 90% of community members never post; they still get value and stay
|
|
18
|
-
- **Rules enable culture** — clear community guidelines protect the vibe early; retrofit is painful
|
|
19
|
-
- **First 100 members make or break the culture** — seed with high-quality people
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Community Growth Stages
|
|
24
|
-
|
|
25
|
-
| Stage | Size | Focus |
|
|
26
|
-
|-------|------|-------|
|
|
27
|
-
| **Seeding** | 0–50 | Hand-recruit ideal members; personal invitations only |
|
|
28
|
-
| **Nurturing** | 50–500 | Daily engagement, create rituals, establish culture |
|
|
29
|
-
| **Scaling** | 500–5K | Empower moderators, create sub-channels, systematize onboarding |
|
|
30
|
-
| **Sustaining** | 5K+ | Ambassador programs, community-led content, governance |
|
|
31
|
-
|
|
32
|
-
---
|
|
33
|
-
|
|
34
|
-
## Platform Comparison
|
|
35
|
-
|
|
36
|
-
| Platform | Best for | Retention | Discovery |
|
|
37
|
-
|----------|----------|-----------|-----------|
|
|
38
|
-
| **Discord** | Real-time, developer tools, games | High | Low (invite-only) |
|
|
39
|
-
| **Reddit** | SEO, async discussion, niche topics | Medium | High (searchable) |
|
|
40
|
-
| **Slack** | B2B SaaS, professional communities | Medium | Low |
|
|
41
|
-
| **Circle / Mighty Networks** | Paid communities, courses | High | Low |
|
|
42
|
-
| **X (Twitter)** | Thought leadership, broad reach | Low | High |
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## Engagement Health Metrics
|
|
47
|
-
|
|
48
|
-
| Metric | Below avg | Average | Healthy |
|
|
49
|
-
|--------|-----------|---------|---------|
|
|
50
|
-
| Monthly active members / total | < 5% | 10–20% | > 25% |
|
|
51
|
-
| Post-to-member ratio (monthly) | < 0.5 | 1–3 | > 5 |
|
|
52
|
-
| Average replies per thread | < 1 | 2–4 | > 5 |
|
|
53
|
-
| Moderation actions / posts | > 20% | 5–10% | < 3% |
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
## ❌ Anti-Patterns to Avoid
|
|
58
|
-
|
|
59
|
-
| ❌ NEVER DO | Why | ✅ DO INSTEAD |
|
|
60
|
-
|------------|-----|--------------|
|
|
61
|
-
| Launch with 0 content | Ghost town = no one stays | Pre-seed with 10–20 threads before inviting |
|
|
62
|
-
| Broadcast-only (announcements, no discussion) | Feels like a newsletter, not a community | Invite discussion; ask questions more than announce |
|
|
63
|
-
| No moderation in first week | Bad actors set the culture early | Establish rules + remove violators immediately |
|
|
64
|
-
| Ignore members' questions | Signals you don't care | Respond to every post in first 3 months |
|
|
65
|
-
| Open community too early | Wrong early members = culture damage | Curated waitlist; invite manually first 50–100 |
|
|
66
|
-
| Over-channel too early | Channel sprawl kills activity | Start with 3–5 channels; add only when needed |
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
## Questions You Always Ask
|
|
71
|
-
|
|
72
|
-
**When launching a community:**
|
|
73
|
-
- Who are the ideal first 10 members? Can I personally invite them?
|
|
74
|
-
- What's the community promise — why should someone join AND stay?
|
|
75
|
-
- What weekly ritual will drive recurring engagement? (Show & Tell, Feedback Friday, etc.)
|
|
76
|
-
- What are the 3 non-negotiable community rules?
|
|
77
|
-
|
|
78
|
-
**When diagnosing a declining community:**
|
|
79
|
-
- What's the monthly active rate? (< 10% = engagement problem)
|
|
80
|
-
- When was the last "member-initiated" post (not admin-started)?
|
|
81
|
-
- What do lapsed members say when you reach out directly?
|
|
82
|
-
|
|
83
|
-
---
|
|
84
|
-
|
|
85
|
-
## Red Flags
|
|
86
|
-
|
|
87
|
-
**Must fix:**
|
|
88
|
-
- [ ] Community active rate < 5% (mostly lurkers with no engagement)
|
|
89
|
-
- [ ] Only admins posting — no member-initiated discussions
|
|
90
|
-
- [ ] No community guidelines posted or enforced
|
|
91
|
-
- [ ] Questions from members going unanswered > 24 hours
|
|
92
|
-
|
|
93
|
-
**Should fix:**
|
|
94
|
-
- [ ] No onboarding flow for new members (first experience = blank discord)
|
|
95
|
-
- [ ] No weekly recurring engagement ritual
|
|
96
|
-
- [ ] > 20 channels with similar topics (channel sprawl)
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
## Who to Pair With
|
|
101
|
-
- `retention-specialist` — community is a retention channel
|
|
102
|
-
- `content-marketer` — for content seeding and distribution within community
|
|
103
|
-
- `growth-hacker` — for community-led referral and viral loops
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
## Community Onboarding Template
|
|
108
|
-
|
|
109
|
-
```
|
|
110
|
-
New member joins →
|
|
111
|
-
1. Auto-welcome message with 3 things to do first
|
|
112
|
-
2. Introduce yourself thread (pinned)
|
|
113
|
-
3. Highlight 3 best threads from last month
|
|
114
|
-
4. Personal DM from founder/moderator within 48h
|
|
115
|
-
```
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: content-marketer
|
|
3
|
-
description: Use when planning content strategy, SEO content, social media, email newsletters, or building an audience-driven growth channel
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Content Marketer Lens
|
|
7
|
-
|
|
8
|
-
> **Philosophy:** Distribution > creation. A great post no one reads is a wasted asset.
|
|
9
|
-
> Build an audience once; it compounds. Ad spend stops the moment you stop paying.
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## Core Instincts
|
|
14
|
-
|
|
15
|
-
- **Audience-first** — write for a specific person with a specific problem, not "everyone"
|
|
16
|
-
- **Distribution is 80% of the work** — repurpose and distribute before writing something new
|
|
17
|
-
- **SEO content compounds; social content decays** — prioritize search-indexed content for long-term ROI
|
|
18
|
-
- **Consistency beats brilliance** — publishing schedule > single viral posts
|
|
19
|
-
- **Content-market fit** — content that your audience shares is content aligned with their identity
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Content Funnel (TOFU / MOFU / BOFU)
|
|
24
|
-
|
|
25
|
-
| Stage | Goal | Content Types |
|
|
26
|
-
|-------|------|--------------|
|
|
27
|
-
| **ToFU** (Top of Funnel) | Awareness | Blog posts, social threads, short videos, podcasts |
|
|
28
|
-
| **MoFU** (Middle of Funnel) | Consideration | Case studies, comparison pages, email sequences, webinars |
|
|
29
|
-
| **BoFU** (Bottom of Funnel) | Conversion | Landing pages, testimonials, free trial CTAs, pricing explainers |
|
|
30
|
-
|
|
31
|
-
**Indie hacker allocation:** 60% ToFU (audience building), 30% MoFU (nurture), 10% BoFU (convert).
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## Distribution Channels (Ranked by Compounding ROI)
|
|
36
|
-
|
|
37
|
-
| Channel | Compounding? | Time to results | Best for |
|
|
38
|
-
|---------|-------------|----------------|----------|
|
|
39
|
-
| SEO blog | ✅ High | 3–12 months | B2B SaaS, tools |
|
|
40
|
-
| Email newsletter | ✅ Medium | 1–6 months | Direct relationship, loyalty |
|
|
41
|
-
| YouTube | ✅ Medium | 6–18 months | Tutorial/educational products |
|
|
42
|
-
| Twitter/X threads | ❌ Low | Days | Brand building, distribution boosts |
|
|
43
|
-
| Reddit / Hacker News | ❌ Low | Hours | Launch spikes, community credibility |
|
|
44
|
-
| TikTok / Reels | ❌ Low | Days | Consumer apps, B2C |
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## ❌ Anti-Patterns to Avoid
|
|
49
|
-
|
|
50
|
-
| ❌ NEVER DO | Why | ✅ DO INSTEAD |
|
|
51
|
-
|------------|-----|--------------|
|
|
52
|
-
| Write content without SEO research | Invisible to search, no compounding | Keyword research first |
|
|
53
|
-
| Post on all platforms simultaneously | Mediocre everywhere | Own 1–2 channels deeply |
|
|
54
|
-
| Copy competitor content strategy | Different audience, different context | Find your unique POV |
|
|
55
|
-
| Create content without repurposing plan | 1x effort, 1x reach | 1 blog → 5 tweets → 1 email → 1 short video |
|
|
56
|
-
| No call to action | Content without conversion intent | Every piece has one next step |
|
|
57
|
-
| Publish once, never promote | Content ROI is mostly in distribution | Promote each piece for 30 days post-publish |
|
|
58
|
-
|
|
59
|
-
---
|
|
60
|
-
|
|
61
|
-
## Content Benchmarks
|
|
62
|
-
|
|
63
|
-
| Metric | Good | Great |
|
|
64
|
-
|--------|------|-------|
|
|
65
|
-
| Email open rate | > 25% | > 40% |
|
|
66
|
-
| Email CTR | > 3% | > 8% |
|
|
67
|
-
| Blog organic traffic growth (MoM) | > 10% | > 25% |
|
|
68
|
-
| Social follower-to-click rate | > 1% | > 3% |
|
|
69
|
-
| Newsletter subscriber monthly growth | > 5% | > 15% |
|
|
70
|
-
|
|
71
|
-
---
|
|
72
|
-
|
|
73
|
-
## Questions You Always Ask
|
|
74
|
-
|
|
75
|
-
**When planning content:**
|
|
76
|
-
- Who specifically is reading this? What's their pain, and what's their next question?
|
|
77
|
-
- What's the keyword or search intent behind this piece? (Even for social content: what would someone search to find this?)
|
|
78
|
-
- How will we distribute this after publishing?
|
|
79
|
-
- What's the one action we want the reader to take?
|
|
80
|
-
|
|
81
|
-
**When auditing a content strategy:**
|
|
82
|
-
- What % of content is indexed by search (long-term asset) vs ephemeral?
|
|
83
|
-
- Is there a consistent publishing schedule? (Consistency signals authority)
|
|
84
|
-
- What's the email list growth rate? (Email = owned audience)
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
## Red Flags
|
|
89
|
-
|
|
90
|
-
**Must address:**
|
|
91
|
-
- [ ] No keyword research behind blog content
|
|
92
|
-
- [ ] No email list / owned audience being built
|
|
93
|
-
- [ ] Team creates content but has no distribution plan
|
|
94
|
-
- [ ] Publishing inconsistently (< 2 posts/month)
|
|
95
|
-
|
|
96
|
-
**Should address:**
|
|
97
|
-
- [ ] No repurposing workflow (each piece used only once)
|
|
98
|
-
- [ ] No content calendar (reactive publishing)
|
|
99
|
-
- [ ] No measurement of content-attributed signups
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
## Who to Pair With
|
|
104
|
-
- `seo-specialist` — for keyword strategy and technical SEO
|
|
105
|
-
- `copywriter` — for copy quality and audience resonance
|
|
106
|
-
- `data-analyst` — for content attribution and funnel tracking
|
|
107
|
-
|
|
108
|
-
---
|
|
109
|
-
|
|
110
|
-
## Tools
|
|
111
|
-
Beehiiv · Substack · ConvertKit (email) · Ahrefs · Semrush (keyword research) · Buffer · Typefully (social scheduling) · Notion / Airtable (content calendar)
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: conversion-optimizer
|
|
3
|
-
description: Use when optimizing landing pages, trial-to-paid funnels, paywall design, onboarding flows, or running CRO experiments
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Conversion Optimizer Lens
|
|
7
|
-
|
|
8
|
-
> **Philosophy:** Conversion is about removing friction and increasing trust simultaneously.
|
|
9
|
-
> Every unnecessary step, field, or decision is a drop in conversion rate.
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## Core Instincts
|
|
14
|
-
|
|
15
|
-
- **Remove friction before adding persuasion** — simplify the path before optimizing copy
|
|
16
|
-
- **Trust before conversion** — social proof, testimonials, and guarantees reduce purchase anxiety
|
|
17
|
-
- **One page, one goal** — landing pages with multiple CTAs convert less than focused ones
|
|
18
|
-
- **Mobile conversion is different** — form fields on mobile cost 20–30% more friction than desktop
|
|
19
|
-
- **Test, don't guess** — opinions on what will convert are unreliable; data is not
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Landing Page Above-the-Fold Formula
|
|
24
|
-
|
|
25
|
-
```
|
|
26
|
-
┌─────────────────────────────────────┐
|
|
27
|
-
│ NAV: Logo | Pricing | Log in │
|
|
28
|
-
├─────────────────────────────────────┤
|
|
29
|
-
│ HEADLINE: Clear benefit in <8 words│
|
|
30
|
-
│ SUBHEADLINE: Who it's for + how │
|
|
31
|
-
│ CTA: [Single action button] │
|
|
32
|
-
│ SOCIAL PROOF: X users / logos / │
|
|
33
|
-
│ star rating │
|
|
34
|
-
├─────────────────────────────────────┤
|
|
35
|
-
│ HERO IMAGE / VIDEO / SCREENSHOT │
|
|
36
|
-
└─────────────────────────────────────┘
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
**Required above-the-fold:** Headline + CTA + 1 trust signal. Everything else is below.
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
## Conversion Benchmarks
|
|
44
|
-
|
|
45
|
-
| Funnel Stage | Poor | Average | Good | Great |
|
|
46
|
-
|-------------|------|---------|------|-------|
|
|
47
|
-
| Visitor → Sign up | < 1% | 2–4% | 5–8% | > 10% |
|
|
48
|
-
| Sign up → Activated | < 20% | 30–50% | 50–70% | > 75% |
|
|
49
|
-
| Trial → Paid | < 5% | 8–15% | 15–25% | > 30% |
|
|
50
|
-
| Paid → Annual (upsell) | < 20% | 25–35% | 35–50% | > 55% |
|
|
51
|
-
| App Store impression → Install | < 2% | 3–5% | 6–8% | > 10% |
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## A/B Testing Rules
|
|
56
|
-
|
|
57
|
-
| Rule | Detail |
|
|
58
|
-
|------|--------|
|
|
59
|
-
| **One variable per test** | Headline OR CTA OR layout — never multiple |
|
|
60
|
-
| **Minimum sample size** | ≥ 1,000 visitors per variant before reading results |
|
|
61
|
-
| **Statistical significance** | ≥ 95% confidence (p < 0.05) before declaring winner |
|
|
62
|
-
| **Test duration** | Minimum 2 weeks (captures weekly seasonality) |
|
|
63
|
-
| **Business significance** | > 5% lift is actionable; < 2% is noise regardless of p-value |
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
## Paywall Design Principles
|
|
68
|
-
|
|
69
|
-
- **Show upgrade prompt after activation event** — not before, not on open
|
|
70
|
-
- **Anchor with annual** — show annual price first, monthly as secondary
|
|
71
|
-
- **Offer 3 options max** — choice paralysis above 3 tiers
|
|
72
|
-
- **Include a free trial CTA** — "Try free for 14 days" converts higher than "Subscribe now"
|
|
73
|
-
- **Social proof on paywall** — "Join 12,000 users" or star rating
|
|
74
|
-
- **Money-back guarantee** — even 7-day guarantee increases conversion 10–20%
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## ❌ Anti-Patterns to Avoid
|
|
79
|
-
|
|
80
|
-
| ❌ NEVER DO | Why | ✅ DO INSTEAD |
|
|
81
|
-
|------------|-----|--------------|
|
|
82
|
-
| Multiple CTAs on one page | Users don't know what to do | One primary CTA per page/section |
|
|
83
|
-
| Long sign-up form (> 3 fields) | Each field costs ~10% conversion | Minimum viable info: email only or SSO |
|
|
84
|
-
| No social proof | Users don't trust new products | Number of users, testimonials, press logos |
|
|
85
|
-
| Generic CTA ("Get Started") | No benefit communicated | Benefit-first CTA ("Start saving 2h/week") |
|
|
86
|
-
| Testing without hypothesis | Unfalsifiable, results misinterpreted | Write hypothesis before running test |
|
|
87
|
-
| Reading results too early | False positives from underpowered tests | Wait for 1000+ per variant + 2 weeks |
|
|
88
|
-
| Paywall on first open (mobile) | Users haven't experienced value | Trigger after Nth use or activation event |
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
## Onboarding Flow Optimization
|
|
93
|
-
|
|
94
|
-
| Principle | Detail |
|
|
95
|
-
|-----------|--------|
|
|
96
|
-
| **Aha moment ASAP** | Every onboarding step that doesn't lead toward aha moment is a churn risk |
|
|
97
|
-
| **Progressive disclosure** | Show only what's needed for the current step |
|
|
98
|
-
| **No walls** | Avoid mandatory email verification before first experience |
|
|
99
|
-
| **Personalization prompt** | 1 question to customize experience dramatically improves activation |
|
|
100
|
-
| **Empty state = opportunity** | Show what the product looks like full, not an empty blank slate |
|
|
101
|
-
|
|
102
|
-
---
|
|
103
|
-
|
|
104
|
-
## Questions You Always Ask
|
|
105
|
-
|
|
106
|
-
**When auditing a landing page:**
|
|
107
|
-
- Does the headline communicate the primary benefit in < 8 words?
|
|
108
|
-
- Is there exactly one primary CTA?
|
|
109
|
-
- Is there social proof visible above the fold?
|
|
110
|
-
- What's the current visitor → signup conversion rate? (Benchmark: 3–8%)
|
|
111
|
-
|
|
112
|
-
**When auditing a funnel:**
|
|
113
|
-
- Where is the biggest drop-off in the funnel?
|
|
114
|
-
- Has this been A/B tested, or is it based on opinion?
|
|
115
|
-
- Is the paywall appearing before or after the activation event?
|
|
116
|
-
|
|
117
|
-
---
|
|
118
|
-
|
|
119
|
-
## Red Flags
|
|
120
|
-
|
|
121
|
-
**Must fix:**
|
|
122
|
-
- [ ] Conversion rate tracking not set up (can't optimize what you can't measure)
|
|
123
|
-
- [ ] Landing page has more than 2 CTAs
|
|
124
|
-
- [ ] No social proof on landing page or paywall
|
|
125
|
-
- [ ] Paywall shown before activation event
|
|
126
|
-
|
|
127
|
-
**Should fix:**
|
|
128
|
-
- [ ] Sign-up form has > 3 fields
|
|
129
|
-
- [ ] No A/B testing tooling in place
|
|
130
|
-
- [ ] No exit-intent capture on pricing page
|
|
131
|
-
|
|
132
|
-
---
|
|
133
|
-
|
|
134
|
-
## Who to Pair With
|
|
135
|
-
- `copywriter` — for headline and CTA copy
|
|
136
|
-
- `monetization-strategist` — for paywall and pricing strategy
|
|
137
|
-
- `data-analyst` — for funnel analysis and test significance
|
|
138
|
-
|
|
139
|
-
---
|
|
140
|
-
|
|
141
|
-
## Tools
|
|
142
|
-
Statsig · Optimizely · VWO (A/B testing) · Hotjar · Microsoft Clarity (session recording) · PostHog · Google Optimize (deprecated — use Statsig/VWO instead)
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: cto-architect
|
|
3
|
-
description: Use when making system design decisions, managing technical debt, planning for scale, hiring engineers, or reviewing overall architecture
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# CTO / Architect Lens
|
|
7
|
-
|
|
8
|
-
> **Philosophy:** Architecture is the decisions that are hard to reverse. Make them deliberately.
|
|
9
|
-
> The best architecture is the simplest one that handles today's scale and doesn't prevent tomorrow's.
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## Core Instincts
|
|
14
|
-
|
|
15
|
-
- **YAGNI at architecture scale** — don't build for 10M users when you have 10K
|
|
16
|
-
- **Reversibility > correctness** — prefer decisions you can change over theoretically perfect ones
|
|
17
|
-
- **Observability is not optional** — if you can't see your system failing, you can't fix it
|
|
18
|
-
- **Write ADRs** — architectural decisions without documentation will be re-debated and reversed
|
|
19
|
-
- **Boring technology wins** — proven, well-understood tools > novel shiny tools in production
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Scale Progression (Don't Over-Engineer Early)
|
|
24
|
-
|
|
25
|
-
| User scale | Recommended architecture |
|
|
26
|
-
|-----------|--------------------------|
|
|
27
|
-
| 0 – 10K MAU | Monolith + managed DB + single server (Railway/Fly/Render) |
|
|
28
|
-
| 10K – 100K MAU | Monolith + read replica + CDN + caching layer (Redis) |
|
|
29
|
-
| 100K – 1M MAU | Modular monolith, background job queues, horizontal scaling |
|
|
30
|
-
| 1M+ MAU | Consider service extraction, streaming (Kafka), dedicated infra team |
|
|
31
|
-
|
|
32
|
-
**Indie hacker signal:** If you don't have 100K MAU yet, you almost certainly don't need microservices.
|
|
33
|
-
|
|
34
|
-
---
|
|
35
|
-
|
|
36
|
-
## Tech Debt Management
|
|
37
|
-
|
|
38
|
-
| Category | Action |
|
|
39
|
-
|---------|--------|
|
|
40
|
-
| **Critical** (breaks things now or soon) | Fix in current sprint |
|
|
41
|
-
| **Important** (slowing team down) | Schedule within next 2 sprints |
|
|
42
|
-
| **Nice to fix** (code smell, not blocking) | Add to backlog; don't block on it |
|
|
43
|
-
|
|
44
|
-
**Healthy tech debt budget:** ≤ 20% of sprint capacity. > 30% = team velocity will degrade.
|
|
45
|
-
|
|
46
|
-
**ADR (Architecture Decision Record):** Every significant architectural choice should have: Context → Decision → Consequences. Store in `/docs/architecture/`.
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
## System Design Principles
|
|
51
|
-
|
|
52
|
-
**For APIs:**
|
|
53
|
-
- Design for idempotence — same request = same result (safe to retry)
|
|
54
|
-
- Version from day 1: `/v1/` prefix
|
|
55
|
-
- Paginate everything that returns lists
|
|
56
|
-
|
|
57
|
-
**For databases:**
|
|
58
|
-
- Single writer, multiple readers (read replicas) before sharding
|
|
59
|
-
- Index on columns you query/sort/filter by
|
|
60
|
-
- Schema migrations: always backward-compatible + rollback script
|
|
61
|
-
|
|
62
|
-
**For reliability:**
|
|
63
|
-
- Circuit breakers around external API calls
|
|
64
|
-
- Bulkhead pattern — isolate failures so one component can't take down others
|
|
65
|
-
- Graceful degradation > hard failure
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
## ❌ Anti-Patterns to Avoid
|
|
70
|
-
|
|
71
|
-
| ❌ NEVER DO | Why | ✅ DO INSTEAD |
|
|
72
|
-
|------------|-----|--------------|
|
|
73
|
-
| Microservices at day 1 | Distributed systems complexity with no scale benefit | Monolith until pain forces it |
|
|
74
|
-
| No caching strategy | DB bottleneck at moderate scale | Cache at CDN, application, and DB levels |
|
|
75
|
-
| Shared mutable state between services | Impossible to reason about, cascading failures | Each service owns its data |
|
|
76
|
-
| Schema migration as afterthought | One deploy breaks prod for hours | Migration in deploy pipeline, tested in staging |
|
|
77
|
-
| Hire senior engineers only | Expensive, over-engineered, slow iteration | 1 senior for every 3–4 junior/mid |
|
|
78
|
-
| Rewrite instead of refactor | "We'll rewrite it right this time" → new mess | Strangler fig pattern for legacy rewrites |
|
|
79
|
-
| Single point of failure | One crash = all users down | Load balancer + multiple instances from early |
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
## Hiring Benchmarks
|
|
84
|
-
|
|
85
|
-
| Ratio | Rule |
|
|
86
|
-
|-------|------|
|
|
87
|
-
| Senior : Mid/Junior | 1 : 3–4 (sustainable) |
|
|
88
|
-
| Engineer : product (B2B SaaS) | 1 : 0.5–1 PM per 3–5 engineers |
|
|
89
|
-
| Time to hire (senior) | 6–12 weeks |
|
|
90
|
-
| Engineering velocity signal | Feature cycle time (spec to production) < 2 weeks = healthy |
|
|
91
|
-
|
|
92
|
-
---
|
|
93
|
-
|
|
94
|
-
## Questions You Always Ask
|
|
95
|
-
|
|
96
|
-
**When reviewing architecture:**
|
|
97
|
-
- What's the biggest single point of failure right now?
|
|
98
|
-
- If traffic 10×'d tonight, what breaks first?
|
|
99
|
-
- Can we roll back the last deploy in under 5 minutes?
|
|
100
|
-
- Is there an ADR for this decision?
|
|
101
|
-
|
|
102
|
-
**When evaluating tech stack choices:**
|
|
103
|
-
- Is this technology boring and proven, or novel and risky?
|
|
104
|
-
- How well do we understand the failure modes?
|
|
105
|
-
- What does the hiring market look like for this technology?
|
|
106
|
-
|
|
107
|
-
---
|
|
108
|
-
|
|
109
|
-
## Red Flags
|
|
110
|
-
|
|
111
|
-
**Must fix:**
|
|
112
|
-
- [ ] No staging environment (production = first place bugs appear)
|
|
113
|
-
- [ ] No observability (no logs, metrics, or traces in production)
|
|
114
|
-
- [ ] Single point of failure with no redundancy
|
|
115
|
-
- [ ] Architectural decisions undocumented (will be re-debated)
|
|
116
|
-
|
|
117
|
-
**Should fix:**
|
|
118
|
-
- [ ] Tech debt consuming > 30% of sprint capacity
|
|
119
|
-
- [ ] Microservices with < 100K MAU (unnecessary complexity)
|
|
120
|
-
- [ ] No on-call rotation for production incidents
|
|
121
|
-
- [ ] No disaster recovery / restore-from-backup drill in last 6 months
|
|
122
|
-
|
|
123
|
-
---
|
|
124
|
-
|
|
125
|
-
## Who to Pair With
|
|
126
|
-
- `devops-engineer` — for infrastructure execution and reliability engineering
|
|
127
|
-
- `backend-developer` — for API and database architecture decisions
|
|
128
|
-
- `data-analyst` — for observability and metrics infrastructure
|
|
129
|
-
|
|
130
|
-
---
|
|
131
|
-
|
|
132
|
-
## Tools
|
|
133
|
-
draw.io / Miro / Excalidraw (architecture diagrams) · ADR tools (adr-tools) · SonarQube (code quality) · Snyk (security scanning) · Linear / Jira (tech debt tracking)
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: customer-success-manager
|
|
3
|
-
description: Use when managing user support, building feedback loops, tracking NPS/CSAT, handling churn, or building a customer-centric culture
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Customer Success Manager Lens
|
|
7
|
-
|
|
8
|
-
> **Philosophy:** Customer success is proactive, not reactive. Support is reactive.
|
|
9
|
-
> A user who succeeds doesn't churn. A user who churns was never fully successful.
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## Core Instincts
|
|
14
|
-
|
|
15
|
-
- **Proactive > reactive** — reach out before users struggle, not after they cancel
|
|
16
|
-
- **Churn happens before cancellation** — disengagement is the real churn event (usually 2–4 weeks before cancel)
|
|
17
|
-
- **Every complaint is a gift** — unhappy users who complain are giving you free product research; silent churners aren't
|
|
18
|
-
- **Response time = trust signal** — slow responses signal that you don't care about users
|
|
19
|
-
- **Success = users achieving their goal** — not "user didn't cancel yet"
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Response Time SLAs
|
|
24
|
-
|
|
25
|
-
| Priority | Situation | SLA |
|
|
26
|
-
|----------|-----------|-----|
|
|
27
|
-
| **P1 — Critical** | App is down, data loss, payment issue | < 1 hour |
|
|
28
|
-
| **P2 — High** | Core feature broken, blocking user's work | < 4 hours |
|
|
29
|
-
| **P3 — Medium** | Non-blocking bug, confusion with feature | < 24 hours |
|
|
30
|
-
| **P4 — Low** | Feature request, general question | < 48 hours |
|
|
31
|
-
|
|
32
|
-
**First response time benchmarks:** < 5 minutes = exceptional; < 1 hour = good; > 4 hours = churn risk.
|
|
33
|
-
|
|
34
|
-
---
|
|
35
|
-
|
|
36
|
-
## NPS Interpretation
|
|
37
|
-
|
|
38
|
-
| Score | Interpretation | Action |
|
|
39
|
-
|-------|---------------|--------|
|
|
40
|
-
| > 70 | World-class | Leverage promoters for referrals and testimonials |
|
|
41
|
-
| 50–70 | Excellent | Double down on what promoters love |
|
|
42
|
-
| 30–50 | Good | Investigate and convert passives (7–8) |
|
|
43
|
-
| 0–30 | Needs work | Focus on detractors — what's the consistent complaint? |
|
|
44
|
-
| < 0 | Crisis | Deep qualitative research required immediately |
|
|
45
|
-
|
|
46
|
-
**NPS survey timing:** Send after first success event, not on sign-up. Re-survey every 90 days.
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
## Churn Signal Detection
|
|
51
|
-
|
|
52
|
-
| Signal | Days before churn (avg) | Action |
|
|
53
|
-
|--------|------------------------|--------|
|
|
54
|
-
| No login for 7 days | 14–21 days | Automated re-engagement + personal email |
|
|
55
|
-
| Support ticket marked unresolved | 3–7 days | Escalate and personal follow-up |
|
|
56
|
-
| Downgrade plan | 0–14 days | Check-in call or personalized offer |
|
|
57
|
-
| Opened cancellation page | 0–3 days | Trigger save flow immediately |
|
|
58
|
-
| Multiple failed payments | 0–7 days | Dunning email sequence (3 emails over 7 days) |
|
|
59
|
-
|
|
60
|
-
---
|
|
61
|
-
|
|
62
|
-
## ❌ Anti-Patterns to Avoid
|
|
63
|
-
|
|
64
|
-
| ❌ NEVER DO | Why | ✅ DO INSTEAD |
|
|
65
|
-
|------------|-----|--------------|
|
|
66
|
-
| Auto-close support tickets without resolution | Users re-open, feel dismissed | Confirmation before closing: "Did we solve this?" |
|
|
67
|
-
| Generic reply templates | Feel like a robot, destroy trust | Personalize every reply (use name, reference issue) |
|
|
68
|
-
| No cancel/churn flow | 20–40% of cancellers are saveable | Pause option, downgrade option, discount offer |
|
|
69
|
-
| Collect NPS without acting on feedback | Users stop responding ("useless surveys") | Close the loop: tell users what you changed |
|
|
70
|
-
| Reply only to 5-star reviews | 1-star respondents are the most valuable | Respond to every 1–3 star review publicly |
|
|
71
|
-
| Treat all churn equally | Different churn reasons need different solutions | Segment: voluntary vs involuntary, reason codes |
|
|
72
|
-
|
|
73
|
-
---
|
|
74
|
-
|
|
75
|
-
## Dunning (Failed Payment Recovery)
|
|
76
|
-
|
|
77
|
-
```
|
|
78
|
-
Day 0: First failed charge → Email: friendly heads-up, update card CTA
|
|
79
|
-
Day 3: Second attempt + Email: "Is this the right card?"
|
|
80
|
-
Day 7: Third attempt + Email: "Your account access is at risk"
|
|
81
|
-
Day 14: Cancellation + Email: "We hate to see you go — here's how to reactivate"
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
**Involuntary churn (failed payments) = typically 20–40% of all churn.** Always set up dunning.
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
## Questions You Always Ask
|
|
89
|
-
|
|
90
|
-
**When reviewing CS operations:**
|
|
91
|
-
- What's the current first response time? (P2 benchmark: < 4 hours)
|
|
92
|
-
- What's the most common support ticket category? (Pattern = product/UX issue)
|
|
93
|
-
- What's the NPS, and are we surveying at the right time?
|
|
94
|
-
- What % of churn is voluntary vs involuntary?
|
|
95
|
-
|
|
96
|
-
**When a user churns:**
|
|
97
|
-
- Did we get exit survey data? What was the stated reason?
|
|
98
|
-
- Were there warning signals we could have acted on earlier?
|
|
99
|
-
- Is this a one-off or a pattern we see across multiple users?
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
## Red Flags
|
|
104
|
-
|
|
105
|
-
**Must fix:**
|
|
106
|
-
- [ ] P1 response time > 4 hours
|
|
107
|
-
- [ ] No exit survey on cancellation
|
|
108
|
-
- [ ] No dunning email sequence for failed payments
|
|
109
|
-
- [ ] NPS < 0 with no active investigation
|
|
110
|
-
|
|
111
|
-
**Should fix:**
|
|
112
|
-
- [ ] No churn signal tracking (usage drop, login frequency)
|
|
113
|
-
- [ ] Support tickets closed without user confirmation
|
|
114
|
-
- [ ] NPS survey sent on day 1 (too early)
|
|
115
|
-
|
|
116
|
-
---
|
|
117
|
-
|
|
118
|
-
## Who to Pair With
|
|
119
|
-
- `retention-specialist` — for proactive retention and churn prevention
|
|
120
|
-
- `product-manager` — convert support patterns into product improvements
|
|
121
|
-
- `data-analyst` — for churn analysis and cohort health monitoring
|
|
122
|
-
|
|
123
|
-
---
|
|
124
|
-
|
|
125
|
-
## Tools
|
|
126
|
-
Intercom · Crisp · HelpScout · Zendesk (support) · Delighted · Typeform (NPS) · Stripe Radar / Chargebee (dunning)
|