agileflow 4.0.0-alpha.2 → 4.0.0-alpha.21
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/CHANGELOG.md +51 -0
- package/content/plugins/accessibility/plugin.yaml +14 -0
- package/content/plugins/accessibility/skills/agileflow-accessibility/SKILL.md +392 -0
- package/content/plugins/accessibility/skills/agileflow-accessibility/references/aria-patterns.md +528 -0
- package/content/plugins/accessibility/skills/agileflow-accessibility/references/testing-checklist.md +457 -0
- package/content/plugins/accessibility/skills/agileflow-accessibility/references/wcag-guide.md +683 -0
- package/content/plugins/accessibility/skills/agileflow-accessibility/workflows/audit-page.md +310 -0
- package/content/plugins/accessibility/skills/agileflow-accessibility/workflows/implement-accessible-component.md +479 -0
- package/content/plugins/ads/agents/ads-audit-budget.md +185 -0
- package/content/plugins/ads/agents/ads-audit-compliance.md +171 -0
- package/content/plugins/ads/agents/ads-audit-creative.md +168 -0
- package/content/plugins/ads/agents/ads-audit-google.md +227 -0
- package/content/plugins/ads/agents/ads-audit-meta.md +184 -0
- package/content/plugins/ads/agents/ads-audit-tracking.md +205 -0
- package/content/plugins/ads/agents/ads-consensus.md +410 -0
- package/content/plugins/ads/agents/ads-generate.md +152 -0
- package/content/plugins/ads/agents/ads-performance-tracker.md +212 -0
- package/content/plugins/ads/plugin.yaml +23 -4
- package/content/plugins/ads/skills/agileflow-ads/SKILL.md +218 -0
- package/content/plugins/ads/skills/agileflow-ads/references/ad-copy-formula-guide.md +131 -0
- package/content/plugins/ads/skills/agileflow-ads/references/audience-targeting-guide.md +137 -0
- package/content/plugins/ads/skills/agileflow-ads/references/bid-strategy-guide.md +115 -0
- package/content/plugins/ads/skills/agileflow-ads/references/platform-benchmarks.md +100 -0
- package/content/plugins/ads/skills/agileflow-ads/workflows/audit.md +118 -0
- package/content/plugins/ads/skills/agileflow-ads/workflows/generate.md +84 -0
- package/content/plugins/audit/agents/a11y-analyzer-aria.md +173 -0
- package/content/plugins/audit/agents/a11y-analyzer-forms.md +173 -0
- package/content/plugins/audit/agents/a11y-analyzer-keyboard.md +183 -0
- package/content/plugins/audit/agents/a11y-analyzer-semantic.md +169 -0
- package/content/plugins/audit/agents/a11y-analyzer-visual.md +172 -0
- package/content/plugins/audit/agents/a11y-consensus.md +249 -0
- package/content/plugins/audit/agents/accessibility.md +558 -0
- package/content/plugins/audit/agents/api-quality-analyzer-conventions.md +156 -0
- package/content/plugins/audit/agents/api-quality-analyzer-docs.md +184 -0
- package/content/plugins/audit/agents/api-quality-analyzer-errors.md +191 -0
- package/content/plugins/audit/agents/api-quality-analyzer-pagination.md +179 -0
- package/content/plugins/audit/agents/api-quality-analyzer-versioning.md +150 -0
- package/content/plugins/audit/agents/api-quality-consensus.md +217 -0
- package/content/plugins/audit/agents/api-validator.md +191 -0
- package/content/plugins/audit/agents/arch-analyzer-circular.md +156 -0
- package/content/plugins/audit/agents/arch-analyzer-complexity.md +193 -0
- package/content/plugins/audit/agents/arch-analyzer-coupling.md +152 -0
- package/content/plugins/audit/agents/arch-analyzer-layering.md +160 -0
- package/content/plugins/audit/agents/arch-analyzer-patterns.md +210 -0
- package/content/plugins/audit/agents/arch-consensus.md +228 -0
- package/content/plugins/audit/agents/browser-qa.md +342 -0
- package/content/plugins/audit/agents/code-reviewer.md +298 -0
- package/content/plugins/audit/agents/completeness-analyzer-api.md +199 -0
- package/content/plugins/audit/agents/completeness-analyzer-conditional.md +211 -0
- package/content/plugins/audit/agents/completeness-analyzer-handlers.md +166 -0
- package/content/plugins/audit/agents/completeness-analyzer-imports.md +165 -0
- package/content/plugins/audit/agents/completeness-analyzer-routes.md +190 -0
- package/content/plugins/audit/agents/completeness-analyzer-state.md +196 -0
- package/content/plugins/audit/agents/completeness-analyzer-stubs.md +206 -0
- package/content/plugins/audit/agents/completeness-consensus.md +295 -0
- package/content/plugins/audit/agents/error-analyzer.md +213 -0
- package/content/plugins/audit/agents/flow-analyzer-authorization.md +182 -0
- package/content/plugins/audit/agents/flow-analyzer-discovery.md +174 -0
- package/content/plugins/audit/agents/flow-analyzer-errors.md +186 -0
- package/content/plugins/audit/agents/flow-analyzer-feedback.md +185 -0
- package/content/plugins/audit/agents/flow-analyzer-navigation.md +177 -0
- package/content/plugins/audit/agents/flow-analyzer-persistence.md +193 -0
- package/content/plugins/audit/agents/flow-analyzer-wiring.md +169 -0
- package/content/plugins/audit/agents/flow-consensus.md +237 -0
- package/content/plugins/audit/agents/legal-analyzer-a11y.md +114 -0
- package/content/plugins/audit/agents/legal-analyzer-ai.md +121 -0
- package/content/plugins/audit/agents/legal-analyzer-consumer.md +114 -0
- package/content/plugins/audit/agents/legal-analyzer-content.md +117 -0
- package/content/plugins/audit/agents/legal-analyzer-international.md +119 -0
- package/content/plugins/audit/agents/legal-analyzer-licensing.md +119 -0
- package/content/plugins/audit/agents/legal-analyzer-privacy.md +112 -0
- package/content/plugins/audit/agents/legal-analyzer-security.md +116 -0
- package/content/plugins/audit/agents/legal-analyzer-terms.md +115 -0
- package/content/plugins/audit/agents/legal-consensus.md +250 -0
- package/content/plugins/audit/agents/logic-analyzer-edge.md +179 -0
- package/content/plugins/audit/agents/logic-analyzer-flow.md +264 -0
- package/content/plugins/audit/agents/logic-analyzer-invariant.md +215 -0
- package/content/plugins/audit/agents/logic-analyzer-race.md +280 -0
- package/content/plugins/audit/agents/logic-analyzer-type.md +227 -0
- package/content/plugins/audit/agents/logic-consensus.md +259 -0
- package/content/plugins/audit/agents/perf-analyzer-assets.md +182 -0
- package/content/plugins/audit/agents/perf-analyzer-bundle.md +173 -0
- package/content/plugins/audit/agents/perf-analyzer-caching.md +170 -0
- package/content/plugins/audit/agents/perf-analyzer-compute.md +173 -0
- package/content/plugins/audit/agents/perf-analyzer-memory.md +193 -0
- package/content/plugins/audit/agents/perf-analyzer-network.md +165 -0
- package/content/plugins/audit/agents/perf-analyzer-queries.md +162 -0
- package/content/plugins/audit/agents/perf-analyzer-rendering.md +168 -0
- package/content/plugins/audit/agents/perf-consensus.md +287 -0
- package/content/plugins/audit/agents/qa.md +820 -0
- package/content/plugins/audit/agents/quality-analyzer-comments.md +159 -0
- package/content/plugins/audit/agents/quality-analyzer-duplication.md +184 -0
- package/content/plugins/audit/agents/quality-analyzer-naming.md +160 -0
- package/content/plugins/audit/agents/quality-consensus.md +241 -0
- package/content/plugins/audit/agents/schema-validator.md +473 -0
- package/content/plugins/audit/agents/security-analyzer-api.md +210 -0
- package/content/plugins/audit/agents/security-analyzer-auth.md +169 -0
- package/content/plugins/audit/agents/security-analyzer-authz.md +180 -0
- package/content/plugins/audit/agents/security-analyzer-deps.md +153 -0
- package/content/plugins/audit/agents/security-analyzer-infra.md +184 -0
- package/content/plugins/audit/agents/security-analyzer-injection.md +155 -0
- package/content/plugins/audit/agents/security-analyzer-input.md +201 -0
- package/content/plugins/audit/agents/security-analyzer-secrets.md +183 -0
- package/content/plugins/audit/agents/security-consensus.md +283 -0
- package/content/plugins/audit/agents/test-analyzer-assertions.md +188 -0
- package/content/plugins/audit/agents/test-analyzer-coverage.md +189 -0
- package/content/plugins/audit/agents/test-analyzer-fragility.md +193 -0
- package/content/plugins/audit/agents/test-analyzer-integration.md +161 -0
- package/content/plugins/audit/agents/test-analyzer-maintenance.md +180 -0
- package/content/plugins/audit/agents/test-analyzer-mocking.md +188 -0
- package/content/plugins/audit/agents/test-analyzer-patterns.md +196 -0
- package/content/plugins/audit/agents/test-analyzer-structure.md +184 -0
- package/content/plugins/audit/agents/test-consensus.md +301 -0
- package/content/plugins/audit/agents/testing.md +561 -0
- package/content/plugins/audit/agents/ui-validator.md +344 -0
- package/content/plugins/audit/plugin.yaml +186 -5
- package/content/plugins/audit/skills/agileflow-audit/SKILL.md +113 -0
- package/content/plugins/audit/skills/agileflow-audit/references/audit-depth-guide.md +151 -0
- package/content/plugins/audit/skills/agileflow-audit/references/dependency-risk-guide.md +139 -0
- package/content/plugins/audit/skills/agileflow-audit/references/owasp-top10.md +120 -0
- package/content/plugins/audit/skills/agileflow-audit/references/performance-budget-guide.md +143 -0
- package/content/plugins/audit/skills/agileflow-audit/references/wcag-criteria.md +117 -0
- package/content/plugins/audit/skills/agileflow-audit/workflows/run-audit.md +52 -0
- package/content/plugins/audit/skills/agileflow-audit/workflows/tdd.md +66 -0
- package/content/plugins/core/agents/adr-writer.md +521 -0
- package/content/plugins/core/agents/epic-planner.md +520 -0
- package/content/plugins/core/agents/mentor.md +709 -0
- package/content/plugins/core/agents/orchestrator.md +776 -0
- package/content/plugins/core/agents/team-coordinator.md +334 -0
- package/content/plugins/core/agents/team-lead.md +181 -0
- package/content/plugins/core/agents/workspace-orchestrator.md +146 -0
- package/content/plugins/core/hooks/context-loader.js +31 -4
- package/content/plugins/core/hooks/damage-control-bash.js +10 -2
- package/content/plugins/core/hooks/damage-control-edit.js +4 -1
- package/content/plugins/core/hooks/damage-control-patterns.yaml +1 -1
- package/content/plugins/core/hooks/damage-control-write.js +4 -1
- package/content/plugins/core/hooks/{pre-compact-state.js → post-compact-state.js} +25 -8
- package/content/plugins/core/hooks/preferences-injector.js +352 -0
- package/content/plugins/core/plugin.yaml +24 -28
- package/content/plugins/core/skills/agileflow-adr/SKILL.md +34 -8
- package/content/plugins/core/skills/agileflow-adr/references/madr-format-guide.md +86 -0
- package/content/plugins/core/skills/agileflow-adr/workflows/write-adr.md +57 -0
- package/content/plugins/core/skills/agileflow-babysit-mentor/SKILL.md +94 -27
- package/content/plugins/core/skills/agileflow-babysit-mentor/references/mentor-decision-guide.md +81 -0
- package/content/plugins/core/skills/agileflow-babysit-mentor/workflows/mentor-session.md +79 -0
- package/content/plugins/core/skills/agileflow-epic-planner/SKILL.md +37 -7
- package/content/plugins/core/skills/agileflow-epic-planner/references/epic-sizing-guide.md +81 -0
- package/content/plugins/core/skills/agileflow-epic-planner/workflows/plan-epic.md +55 -0
- package/content/plugins/core/skills/agileflow-status-updater/SKILL.md +36 -20
- package/content/plugins/core/skills/agileflow-status-updater/references/status-transitions.md +89 -0
- package/content/plugins/core/skills/agileflow-status-updater/workflows/update-status.md +56 -0
- package/content/plugins/core/skills/agileflow-story-writer/SKILL.md +39 -114
- package/content/plugins/core/skills/agileflow-story-writer/references/estimation-reference.md +36 -0
- package/content/plugins/core/skills/agileflow-story-writer/references/story-template.md +92 -0
- package/content/plugins/core/skills/agileflow-story-writer/workflows/write-story.md +138 -0
- package/content/plugins/council/agents/council-advocate.md +223 -0
- package/content/plugins/council/agents/council-analyst.md +278 -0
- package/content/plugins/council/agents/council-compounder.md +204 -0
- package/content/plugins/council/agents/council-contrarian.md +217 -0
- package/content/plugins/council/agents/council-moonshot.md +217 -0
- package/content/plugins/council/agents/council-optimist.md +185 -0
- package/content/plugins/council/agents/council-revenue.md +200 -0
- package/content/plugins/council/agents/council-technical.md +218 -0
- package/content/plugins/council/agents/multi-expert.md +334 -0
- package/content/plugins/council/plugin.yaml +23 -4
- package/content/plugins/council/skills/agileflow-council/SKILL.md +102 -0
- package/content/plugins/council/skills/agileflow-council/references/decision-log-template.md +109 -0
- package/content/plugins/council/skills/agileflow-council/references/perspective-guide.md +104 -0
- package/content/plugins/council/skills/agileflow-council/references/when-to-convene-guide.md +112 -0
- package/content/plugins/council/skills/agileflow-council/workflows/convene.md +73 -0
- package/content/plugins/council/skills/agileflow-council/workflows/multi-expert.md +75 -0
- package/content/plugins/database/plugin.yaml +14 -0
- package/content/plugins/database/skills/agileflow-database/SKILL.md +284 -0
- package/content/plugins/database/skills/agileflow-database/references/indexing-guide.md +313 -0
- package/content/plugins/database/skills/agileflow-database/references/migration-guide.md +328 -0
- package/content/plugins/database/skills/agileflow-database/references/schema-design-guide.md +467 -0
- package/content/plugins/database/skills/agileflow-database/workflows/design-schema.md +213 -0
- package/content/plugins/database/skills/agileflow-database/workflows/optimize-query.md +253 -0
- package/content/plugins/debugging/plugin.yaml +14 -0
- package/content/plugins/debugging/skills/agileflow-debug/SKILL.md +236 -0
- package/content/plugins/debugging/skills/agileflow-debug/references/common-patterns.md +350 -0
- package/content/plugins/debugging/skills/agileflow-debug/references/debugging-strategies.md +328 -0
- package/content/plugins/debugging/skills/agileflow-debug/workflows/debug-issue.md +187 -0
- package/content/plugins/debugging/skills/agileflow-debug/workflows/reproduce-bug.md +194 -0
- package/content/plugins/delivery/agents/ci.md +547 -0
- package/content/plugins/delivery/agents/devops.md +789 -0
- package/content/plugins/delivery/plugin.yaml +19 -0
- package/content/plugins/delivery/skills/agileflow-delivery/SKILL.md +111 -0
- package/content/plugins/delivery/skills/agileflow-delivery/references/changelog-format-guide.md +133 -0
- package/content/plugins/delivery/skills/agileflow-delivery/references/ci-pipeline-guide.md +158 -0
- package/content/plugins/delivery/skills/agileflow-delivery/references/pr-checklist-guide.md +133 -0
- package/content/plugins/delivery/skills/agileflow-delivery/references/release-checklist.md +142 -0
- package/content/plugins/delivery/skills/agileflow-delivery/workflows/changelog.md +72 -0
- package/content/plugins/delivery/skills/agileflow-delivery/workflows/deploy.md +74 -0
- package/content/plugins/delivery/skills/agileflow-delivery/workflows/pr.md +75 -0
- package/content/plugins/docs/agents/documentation.md +544 -0
- package/content/plugins/docs/agents/readme-updater.md +640 -0
- package/content/plugins/docs/plugin.yaml +19 -0
- package/content/plugins/docs/skills/agileflow-docs/SKILL.md +106 -0
- package/content/plugins/docs/skills/agileflow-docs/references/api-doc-template.md +167 -0
- package/content/plugins/docs/skills/agileflow-docs/references/doc-types-guide.md +141 -0
- package/content/plugins/docs/skills/agileflow-docs/references/readme-template.md +156 -0
- package/content/plugins/docs/skills/agileflow-docs/workflows/readme-sync.md +57 -0
- package/content/plugins/docs/skills/agileflow-docs/workflows/sync.md +64 -0
- package/content/plugins/engineering/agents/api.md +718 -0
- package/content/plugins/engineering/agents/codebase-query.md +285 -0
- package/content/plugins/engineering/agents/compliance.md +559 -0
- package/content/plugins/engineering/agents/database.md +644 -0
- package/content/plugins/engineering/agents/integrations.md +644 -0
- package/content/plugins/engineering/agents/mobile.md +552 -0
- package/content/plugins/engineering/agents/monitoring.md +585 -0
- package/content/plugins/engineering/agents/performance.md +529 -0
- package/content/plugins/engineering/agents/refactor.md +592 -0
- package/content/plugins/engineering/agents/security.md +524 -0
- package/content/plugins/engineering/agents/ui.md +1336 -0
- package/content/plugins/engineering/plugin.yaml +37 -0
- package/content/plugins/engineering/skills/agileflow-engineering/SKILL.md +127 -0
- package/content/plugins/engineering/skills/agileflow-engineering/references/code-review-guide.md +126 -0
- package/content/plugins/engineering/skills/agileflow-engineering/references/domain-routing-guide.md +89 -0
- package/content/plugins/engineering/skills/agileflow-engineering/references/refactoring-guide.md +136 -0
- package/content/plugins/engineering/skills/agileflow-engineering/workflows/diagnose.md +63 -0
- package/content/plugins/engineering/skills/agileflow-engineering/workflows/impact.md +60 -0
- package/content/plugins/ideation/agents/brainstorm-analyzer-features.md +179 -0
- package/content/plugins/ideation/agents/brainstorm-analyzer-growth.md +169 -0
- package/content/plugins/ideation/agents/brainstorm-analyzer-integration.md +181 -0
- package/content/plugins/ideation/agents/brainstorm-analyzer-market.md +150 -0
- package/content/plugins/ideation/agents/brainstorm-analyzer-ux.md +180 -0
- package/content/plugins/ideation/agents/brainstorm-consensus.md +245 -0
- package/content/plugins/ideation/agents/design.md +568 -0
- package/content/plugins/ideation/agents/product.md +582 -0
- package/content/plugins/ideation/plugin.yaml +31 -0
- package/content/plugins/ideation/skills/agileflow-ideation/SKILL.md +109 -0
- package/content/plugins/ideation/skills/agileflow-ideation/references/brainstorm-techniques.md +138 -0
- package/content/plugins/ideation/skills/agileflow-ideation/references/competitive-analysis-template.md +148 -0
- package/content/plugins/ideation/skills/agileflow-ideation/references/feature-prioritization-guide.md +147 -0
- package/content/plugins/ideation/skills/agileflow-ideation/references/user-story-patterns.md +152 -0
- package/content/plugins/ideation/skills/agileflow-ideation/workflows/features.md +65 -0
- package/content/plugins/ideation/skills/agileflow-ideation/workflows/ideate.md +54 -0
- package/content/plugins/migration/agents/datamigration.md +757 -0
- package/content/plugins/migration/plugin.yaml +17 -0
- package/content/plugins/migration/skills/agileflow-migration/SKILL.md +106 -0
- package/content/plugins/migration/skills/agileflow-migration/references/data-validation-checklist.md +154 -0
- package/content/plugins/migration/skills/agileflow-migration/references/migration-patterns.md +209 -0
- package/content/plugins/migration/skills/agileflow-migration/references/rollback-playbook.md +171 -0
- package/content/plugins/migration/skills/agileflow-migration/references/version-compatibility-matrix.md +155 -0
- package/content/plugins/migration/skills/agileflow-migration/workflows/plan.md +73 -0
- package/content/plugins/migration/skills/agileflow-migration/workflows/validate.md +71 -0
- package/content/plugins/performance/plugin.yaml +14 -0
- package/content/plugins/performance/skills/agileflow-performance/SKILL.md +224 -0
- package/content/plugins/performance/skills/agileflow-performance/references/optimization-patterns.md +554 -0
- package/content/plugins/performance/skills/agileflow-performance/references/profiling-guide.md +383 -0
- package/content/plugins/performance/skills/agileflow-performance/references/web-vitals-guide.md +360 -0
- package/content/plugins/performance/skills/agileflow-performance/workflows/improve-web-vitals.md +344 -0
- package/content/plugins/performance/skills/agileflow-performance/workflows/profile-and-fix.md +254 -0
- package/content/plugins/planning/agents/analytics.md +670 -0
- package/content/plugins/planning/agents/rlm-subcore.md +215 -0
- package/content/plugins/planning/plugin.yaml +19 -0
- package/content/plugins/planning/skills/agileflow-planning/SKILL.md +111 -0
- package/content/plugins/planning/skills/agileflow-planning/references/estimation-guide.md +114 -0
- package/content/plugins/planning/skills/agileflow-planning/references/rpi-workflow.md +119 -0
- package/content/plugins/planning/skills/agileflow-planning/references/sprint-planning-guide.md +145 -0
- package/content/plugins/planning/skills/agileflow-planning/workflows/impact.md +63 -0
- package/content/plugins/planning/skills/agileflow-planning/workflows/rpi.md +104 -0
- package/content/plugins/psychology/plugin.yaml +14 -0
- package/content/plugins/psychology/skills/agileflow-retention/SKILL.md +252 -0
- package/content/plugins/psychology/skills/agileflow-retention/references/competitor-analysis.md +240 -0
- package/content/plugins/psychology/skills/agileflow-retention/references/psychology-models.md +349 -0
- package/content/plugins/psychology/skills/agileflow-retention/references/retention-patterns.md +279 -0
- package/content/plugins/psychology/skills/agileflow-retention/workflows/design-retention-feature.md +287 -0
- package/content/plugins/psychology/skills/agileflow-retention/workflows/retention-audit.md +259 -0
- package/content/plugins/refactoring/plugin.yaml +14 -0
- package/content/plugins/refactoring/skills/agileflow-refactor/SKILL.md +235 -0
- package/content/plugins/refactoring/skills/agileflow-refactor/references/refactoring-patterns.md +405 -0
- package/content/plugins/refactoring/skills/agileflow-refactor/references/safety-checks.md +177 -0
- package/content/plugins/refactoring/skills/agileflow-refactor/workflows/extract-module.md +226 -0
- package/content/plugins/refactoring/skills/agileflow-refactor/workflows/safe-refactor.md +169 -0
- package/content/plugins/research/agents/research.md +503 -0
- package/content/plugins/research/plugin.yaml +17 -0
- package/content/plugins/research/skills/agileflow-research/SKILL.md +110 -0
- package/content/plugins/research/skills/agileflow-research/references/knowledge-decay-guide.md +121 -0
- package/content/plugins/research/skills/agileflow-research/references/research-prompt-guide.md +141 -0
- package/content/plugins/research/skills/agileflow-research/references/synthesis-template.md +154 -0
- package/content/plugins/research/skills/agileflow-research/workflows/analyze.md +60 -0
- package/content/plugins/research/skills/agileflow-research/workflows/ask.md +64 -0
- package/content/plugins/research/skills/agileflow-research/workflows/import.md +66 -0
- package/content/plugins/research/skills/agileflow-research/workflows/synthesize.md +66 -0
- package/content/plugins/reviews/plugin.yaml +14 -0
- package/content/plugins/reviews/skills/agileflow-pr-reviewer/SKILL.md +241 -0
- package/content/plugins/reviews/skills/agileflow-pr-reviewer/references/review-checklist.md +200 -0
- package/content/plugins/reviews/skills/agileflow-pr-reviewer/references/security-patterns.md +328 -0
- package/content/plugins/reviews/skills/agileflow-pr-reviewer/workflows/review-pr.md +153 -0
- package/content/plugins/reviews/skills/agileflow-pr-reviewer/workflows/security-review.md +177 -0
- package/content/plugins/seo/agents/seo-analyzer-content.md +169 -0
- package/content/plugins/seo/agents/seo-analyzer-images.md +198 -0
- package/content/plugins/seo/agents/seo-analyzer-performance.md +217 -0
- package/content/plugins/seo/agents/seo-analyzer-schema.md +184 -0
- package/content/plugins/seo/agents/seo-analyzer-sitemap.md +177 -0
- package/content/plugins/seo/agents/seo-analyzer-technical.md +151 -0
- package/content/plugins/seo/agents/seo-consensus.md +304 -0
- package/content/plugins/seo/plugin.yaml +19 -4
- package/content/plugins/seo/skills/agileflow-seo/SKILL.md +188 -0
- package/content/plugins/seo/skills/agileflow-seo/references/cwv-thresholds.md +110 -0
- package/content/plugins/seo/skills/agileflow-seo/references/eeat-framework.md +144 -0
- package/content/plugins/seo/skills/agileflow-seo/references/keyword-research-guide.md +125 -0
- package/content/plugins/seo/skills/agileflow-seo/references/schema-types.md +139 -0
- package/content/plugins/seo/skills/agileflow-seo/references/technical-seo-checklist.md +139 -0
- package/content/plugins/seo/skills/agileflow-seo/workflows/audit.md +98 -0
- package/content/plugins/seo/skills/agileflow-seo/workflows/page.md +118 -0
- package/content/plugins/testing/plugin.yaml +16 -0
- package/content/plugins/testing/skills/agileflow-test-writer/SKILL.md +260 -0
- package/content/plugins/testing/skills/agileflow-test-writer/references/coverage-targets.md +239 -0
- package/content/plugins/testing/skills/agileflow-test-writer/references/test-patterns.md +420 -0
- package/content/plugins/testing/skills/agileflow-test-writer/workflows/add-coverage.md +154 -0
- package/content/plugins/testing/skills/agileflow-test-writer/workflows/write-tests-from-ac.md +225 -0
- package/package.json +2 -2
- package/src/cli/commands/doctor.js +818 -30
- package/src/cli/commands/hook.js +17 -14
- package/src/cli/commands/launch.js +1454 -0
- package/src/cli/commands/learn.js +149 -0
- package/src/cli/commands/plugins.js +113 -0
- package/src/cli/commands/setup.js +455 -110
- package/src/cli/commands/skills.js +324 -0
- package/src/cli/commands/status.js +8 -10
- package/src/cli/commands/update.js +76 -15
- package/src/cli/index.js +90 -26
- package/src/cli/wizard/babysit-mode-picker.js +192 -0
- package/src/cli/wizard/behaviors-picker.js +208 -54
- package/src/cli/wizard/ide-picker.js +40 -28
- package/src/cli/wizard/install-scope-picker.js +57 -0
- package/src/cli/wizard/launch-alias-picker.js +50 -0
- package/src/cli/wizard/launch-cli-picker.js +129 -0
- package/src/cli/wizard/launch-tmux-picker.js +133 -0
- package/src/cli/wizard/learnings-picker.js +40 -0
- package/src/cli/wizard/plugin-picker.js +47 -16
- package/src/lib/brand.js +116 -0
- package/src/lib/errors.js +120 -0
- package/src/lib/path-check.js +39 -0
- package/src/runtime/config/defaults.js +22 -17
- package/src/runtime/config/loader.js +77 -8
- package/src/runtime/config/schema.json +43 -16
- package/src/runtime/config/writer.js +3 -1
- package/src/runtime/ide/babysit-skill.js +202 -0
- package/src/runtime/ide/capabilities.js +84 -29
- package/src/runtime/ide/claude-code-content.js +177 -0
- package/src/runtime/ide/claude-code-settings.js +67 -29
- package/src/runtime/ide/claude-code-skills.js +47 -32
- package/src/runtime/ide/codex-config.js +295 -0
- package/src/runtime/installer/install.js +252 -24
- package/src/runtime/launch/alias-installer.js +191 -0
- package/src/runtime/launch/cli-resume.js +244 -0
- package/src/runtime/launch/closed-windows.js +338 -0
- package/src/runtime/launch/defaults.js +66 -0
- package/src/runtime/launch/detect-clis.js +69 -0
- package/src/runtime/launch/doctor.js +464 -0
- package/src/runtime/launch/exec-wrapper.js +114 -0
- package/src/runtime/launch/parallel-session.js +247 -0
- package/src/runtime/launch/prefs.js +211 -0
- package/src/runtime/launch/project-prefs.js +234 -0
- package/src/runtime/launch/resolve-cli.js +56 -0
- package/src/runtime/launch/restore.js +152 -0
- package/src/runtime/launch/schema.json +75 -0
- package/src/runtime/launch/session-lifecycle.js +313 -0
- package/src/runtime/launch/session-registry.js +401 -0
- package/src/runtime/launch/spawn.js +103 -0
- package/src/runtime/launch/tabs.js +350 -0
- package/src/runtime/launch/tmux.js +764 -0
- package/src/runtime/launch/worktree.js +260 -0
- package/src/runtime/plugins/registry.js +16 -11
- package/src/runtime/plugins/validator.js +57 -43
- package/src/runtime/skills/learnings.js +308 -0
- package/content/plugins/core/hooks/babysit-mentor-injector.js +0 -55
- package/src/cli/wizard/personalization.js +0 -64
package/content/plugins/psychology/skills/agileflow-retention/references/retention-patterns.md
ADDED
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
# Retention Patterns Reference
|
|
2
|
+
|
|
3
|
+
**Load this when:** implementing a specific retention mechanic, evaluating whether a mechanic is evidence-based, designing a notification strategy, or auditing which mechanics the product already has.
|
|
4
|
+
|
|
5
|
+
Each pattern includes: psychological basis, key research, real-world evidence, and implementation steps.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. Streaks
|
|
10
|
+
|
|
11
|
+
### What it is
|
|
12
|
+
|
|
13
|
+
A counter showing consecutive days (or sessions) a user has performed a target behavior. Accompanied by a visual indicator (fire icon, chain) and often a recovery mechanic (streak freeze).
|
|
14
|
+
|
|
15
|
+
### Psychological basis
|
|
16
|
+
|
|
17
|
+
**Loss aversion** (Kahneman & Tversky, 1979): humans weight potential losses approximately twice as heavily as equivalent gains. A user with a 45-day streak has accumulated something they are strongly motivated not to lose.
|
|
18
|
+
|
|
19
|
+
**Research:** Kahneman, D. & Tversky, A. (1979). "Prospect Theory: An Analysis of Decision under Risk." _Econometrica_, 47(2), 263–292.
|
|
20
|
+
|
|
21
|
+
### Evidence
|
|
22
|
+
|
|
23
|
+
- **Duolingo internal data:** Users with a 30-day streak are retained at approximately 2.4× the rate of users without streaks. This is one of the highest ROI features in Duolingo's product.
|
|
24
|
+
- **Duolingo streak freeze:** Allowing users to "repair" missed days with a streak freeze (earned or purchased) dramatically reduces streak abandonment. Without it, a single missed day causes permanent churn for a significant segment of streak users.
|
|
25
|
+
- **GitHub contribution graph:** GitHub's "green squares" contribution history functions as a streak visual, driving daily commit behavior among developers.
|
|
26
|
+
|
|
27
|
+
### Implementation steps
|
|
28
|
+
|
|
29
|
+
1. Define the target behavior (the action that increments the streak)
|
|
30
|
+
2. Set the streak increment unit (daily is most common; weekly for lower-frequency behaviors)
|
|
31
|
+
3. Build the streak counter with a visually satisfying increment animation
|
|
32
|
+
4. Add a prominent visual indicator that degrades visually as the streak approaches 24-hour expiry
|
|
33
|
+
5. Implement streak freeze / recovery mechanic — allow at most 1–2 misses before streak resets
|
|
34
|
+
6. Add a "streak at risk" notification that fires 2–4 hours before the deadline (high-converting)
|
|
35
|
+
7. Celebrate milestone streaks (7 days, 30 days, 100 days) with special animations/rewards
|
|
36
|
+
8. Track: average streak length, streak abandonment rate, 7-day retention by streak cohort
|
|
37
|
+
|
|
38
|
+
### Failure modes
|
|
39
|
+
|
|
40
|
+
- Streak anxiety: users who find the pressure aversive will churn entirely to escape. Offer an opt-out.
|
|
41
|
+
- Fake engagement: users complete the minimum to preserve the streak without real value. Audit whether streak behavior correlates with core value delivery.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## 2. Progress Bars and Completion Indicators
|
|
46
|
+
|
|
47
|
+
### What it is
|
|
48
|
+
|
|
49
|
+
A visual indicator of how complete a user's profile, onboarding, or task sequence is. Shows a percentage or step count and highlights the next actionable step.
|
|
50
|
+
|
|
51
|
+
### Psychological basis
|
|
52
|
+
|
|
53
|
+
**Commitment and consistency** (Cialdini, 1984): once a person has started something, they are psychologically motivated to complete it. A visible progress bar activates this commitment.
|
|
54
|
+
|
|
55
|
+
**Zeigarnik Effect** (1927): incomplete tasks are held in working memory more vividly than completed tasks. A progress bar at 60% creates a persistent cognitive "open loop" that drives users back.
|
|
56
|
+
|
|
57
|
+
**Research:**
|
|
58
|
+
|
|
59
|
+
- Cialdini, R.B. (1984). _Influence: The Psychology of Persuasion._ William Morrow.
|
|
60
|
+
- Zeigarnik, B. (1927). "Das Behalten erledigter und unerledigter Handlungen." _Psychologische Forschung_, 9, 1–85.
|
|
61
|
+
|
|
62
|
+
### Evidence
|
|
63
|
+
|
|
64
|
+
- **LinkedIn profile completeness bar:** LinkedIn's profile completeness indicator, showing steps like "Add a photo", "Add your current position", significantly increased profile completion rates. Completed profiles generated more connection requests, improving network effects and retention.
|
|
65
|
+
- **Progress-based onboarding** consistently outperforms step-by-step linear flows in A/B tests across multiple SaaS products. Users who see how far they've come are more likely to continue than users in a pure sequence.
|
|
66
|
+
|
|
67
|
+
### Implementation steps
|
|
68
|
+
|
|
69
|
+
1. Define what "100% complete" means (profile, onboarding, feature adoption)
|
|
70
|
+
2. Weight steps by impact on retention, not just effort
|
|
71
|
+
3. Show the progress bar prominently in the UI with exact percentage
|
|
72
|
+
4. For each step below 100%, highlight the single most impactful next action
|
|
73
|
+
5. Never show a progress bar at 0% — consider pre-filling with "free" initial progress (see Endowed Progress below)
|
|
74
|
+
6. Celebrate completion with a clear reward (access to a feature, a visual transformation)
|
|
75
|
+
7. Remove the bar once complete — don't turn a completion into a persistent reminder of a finished task
|
|
76
|
+
|
|
77
|
+
### Failure modes
|
|
78
|
+
|
|
79
|
+
- Progress bar for its own sake: if completion doesn't unlock real value, users learn to ignore it
|
|
80
|
+
- Too many steps: a progress bar with 15 items feels overwhelming. Cap at 5–7 major items.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 3. Variable Reward Schedules
|
|
85
|
+
|
|
86
|
+
### What it is
|
|
87
|
+
|
|
88
|
+
Reward delivery that is unpredictable — sometimes you get a big reward, sometimes a small one, sometimes nothing. The unpredictability is the feature, not a bug.
|
|
89
|
+
|
|
90
|
+
### Psychological basis
|
|
91
|
+
|
|
92
|
+
**Operant conditioning / variable ratio reinforcement** (Skinner, 1938): a variable ratio schedule — where a reward occurs after an unpredictable number of responses — produces the highest response rate and the greatest resistance to extinction of all reward schedules.
|
|
93
|
+
|
|
94
|
+
**Research:** Skinner, B.F. (1938). _The Behavior of Organisms: An Experimental Analysis._ Appleton-Century-Crofts.
|
|
95
|
+
|
|
96
|
+
The mechanism: dopamine is released in anticipation of a potential reward, not just upon receiving it. Unpredictability maximizes anticipatory dopamine release, which drives continued behavior.
|
|
97
|
+
|
|
98
|
+
### Evidence
|
|
99
|
+
|
|
100
|
+
- **Slot machines:** The canonical application of variable ratio schedules — the most addictive gambling mechanic ever designed.
|
|
101
|
+
- **Instagram likes:** The delay between posting and seeing likes creates variability. The "pull to refresh" gesture that reveals new likes is a discrete slot machine pull.
|
|
102
|
+
- **Email inbox:** The expectation of an interesting email drives inbox refreshing behavior, even when most emails are irrelevant.
|
|
103
|
+
- **Wordle:** The daily single puzzle with uncertain success creates anticipation. Players don't know if today's word will be easy or hard.
|
|
104
|
+
- **Loot boxes in games:** Proven retention mechanic; now regulated in several countries due to gambling parallels.
|
|
105
|
+
|
|
106
|
+
### Implementation steps
|
|
107
|
+
|
|
108
|
+
1. Identify the reward in your product (social validation, useful information, achievement, discovery)
|
|
109
|
+
2. Remove predictability: don't deliver the reward on a fixed schedule
|
|
110
|
+
3. Add signal uncertainty: "You have X new notifications" without showing them immediately
|
|
111
|
+
4. Design pull-to-reveal moments: the act of checking creates anticipation
|
|
112
|
+
5. Use occasional "jackpot" moments: unexpected large rewards (Spotify Discover Weekly, unexpected free premium feature)
|
|
113
|
+
6. Do NOT make every interaction rewarding — some variability (occasionally nothing interesting) is essential
|
|
114
|
+
|
|
115
|
+
### Ethical note
|
|
116
|
+
|
|
117
|
+
Variable reward schedules are the most powerful and most ethically fraught mechanic. Apply only to behaviors that deliver genuine value to users. "Checking for notifications to see if friends engaged with my content" is legitimate. "Checking for algorithmically outraged content to maximize session time" crosses into manipulation.
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## 4. Social Proof
|
|
122
|
+
|
|
123
|
+
### What it is
|
|
124
|
+
|
|
125
|
+
Displaying evidence that other people are using, enjoying, or valuing the product — reducing uncertainty and creating behavioral norms.
|
|
126
|
+
|
|
127
|
+
### Psychological basis
|
|
128
|
+
|
|
129
|
+
**Social proof** (Cialdini, 1984): when uncertain about the correct course of action, people look to what others are doing to determine the right behavior. The more similar those others are perceived to be, the stronger the effect.
|
|
130
|
+
|
|
131
|
+
**Research:** Cialdini, R.B. (1984). _Influence: The Psychology of Persuasion._ William Morrow.
|
|
132
|
+
|
|
133
|
+
### Evidence
|
|
134
|
+
|
|
135
|
+
- **Airbnb "Usually books within 24 hours":** Showing host responsiveness as social proof increased booking conversion rates measurably (Airbnb A/B test data).
|
|
136
|
+
- **Amazon reviews:** Product review counts are one of the strongest conversion predictors. Zero reviews dramatically suppress conversion even with positive ratings.
|
|
137
|
+
- **"X people are viewing this item right now":** Urgency-amplified social proof shown on hotel booking sites. When genuine, increases conversion; when fabricated, creates distrust when discovered.
|
|
138
|
+
- **Twitter follower counts:** Public follower counts are social proof of account credibility. Accounts with 0 followers receive lower engagement than accounts with 1,000 followers, even for identical content.
|
|
139
|
+
|
|
140
|
+
### Implementation steps
|
|
141
|
+
|
|
142
|
+
1. Identify the uncertainty your user faces (Is this product worth my time? Will others judge me? Is this the right choice?)
|
|
143
|
+
2. Select the most credible social proof type for that uncertainty:
|
|
144
|
+
- **Aggregate numbers:** "10,000 teams use this"
|
|
145
|
+
- **Activity signals:** "Viewed 47 times today"
|
|
146
|
+
- **Testimonials:** Specific, named, with context
|
|
147
|
+
- **Similar user proof:** "Teams like yours" — similarity amplifies the effect
|
|
148
|
+
3. Display proof at the decision moment, not on a separate testimonials page
|
|
149
|
+
4. Keep proof honest — fabricated social proof causes permanent trust damage when discovered
|
|
150
|
+
5. Update counts in real-time or near-real-time; stale numbers undermine credibility
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## 5. Personalized Onboarding and the Aha Moment
|
|
155
|
+
|
|
156
|
+
### What it is
|
|
157
|
+
|
|
158
|
+
The "aha moment" is the specific user action that correlates most strongly with long-term retention. Personalized onboarding redesigns the first-session experience to reach that moment as quickly as possible.
|
|
159
|
+
|
|
160
|
+
### Psychological basis
|
|
161
|
+
|
|
162
|
+
**Value realization:** Retention is a function of how quickly users experience the core value of the product. Users who reach value in session 1 have dramatically higher D7 and D30 retention.
|
|
163
|
+
|
|
164
|
+
**Personalization effect:** Users who are asked about their goals and receive a tailored experience feel the product is made for them (Fogg's belonging motivator + SDT autonomy need).
|
|
165
|
+
|
|
166
|
+
### Evidence
|
|
167
|
+
|
|
168
|
+
- **Facebook "7 friends in 10 days":** Facebook's growth team discovered that users who connected with at least 7 friends in their first 10 days had dramatically higher long-term retention. This became the north star for onboarding optimization. _Source: Chamath Palihapitiya, former VP of Growth at Facebook, multiple talks._
|
|
169
|
+
- **Twitter "follow 30 accounts in first session":** Twitter's retention team found this threshold strongly predicted whether a new user would become an active user. The onboarding flow was redesigned to guide users to this milestone. _Source: Josh Elman, former Twitter Product, multiple talks._
|
|
170
|
+
- **Slack "2,000 messages exchanged":** Teams that had sent at least 2,000 messages had a 93% retention rate after 90 days. Below that threshold, retention was significantly lower. _Source: Slack growth team data, cited in multiple product publications._
|
|
171
|
+
- **Dropbox "first upload":** Users who uploaded at least one file in their first session had dramatically higher 30-day retention. Dropbox redesigned its install flow around reaching this milestone faster.
|
|
172
|
+
|
|
173
|
+
### Implementation steps
|
|
174
|
+
|
|
175
|
+
1. Analyze your retention data: which action in week 1 most strongly predicts D30 retention? That is your aha moment.
|
|
176
|
+
2. If you don't have data, run a survey with retained users: "What was the moment you knew you'd keep using this?"
|
|
177
|
+
3. Redesign onboarding as a guided path to that single moment — cut everything that doesn't contribute to reaching it
|
|
178
|
+
4. Add personalization questions that let you tailor the path ("What's your main goal?")
|
|
179
|
+
5. Measure "time to aha moment" as a core onboarding metric, and track it by cohort
|
|
180
|
+
6. For each new user segment, identify whether the aha moment is the same or different
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## 6. Behavioral Notifications
|
|
185
|
+
|
|
186
|
+
### What it is
|
|
187
|
+
|
|
188
|
+
Push notifications or emails triggered by specific user behaviors or contextual signals, rather than sent on a marketing schedule.
|
|
189
|
+
|
|
190
|
+
### Psychological basis
|
|
191
|
+
|
|
192
|
+
**Relevance and timing** (Fogg's Prompt principle): a prompt that arrives at the right motivation state is far more effective than a generic prompt. Behavioral triggers fire when the user is most ready to act.
|
|
193
|
+
|
|
194
|
+
### Evidence
|
|
195
|
+
|
|
196
|
+
- **Urban Airship (now Airship) data (2016):** Push notifications triggered by user behavior or location generated 2–5× higher engagement rates than broadcast marketing messages. _Source: Urban Airship Push Notification Benchmark Report, 2016._
|
|
197
|
+
- **Optimal frequency:** 2–5 notifications per week is the optimal range for most apps before opt-out rates spike. _Source: Localytics Push Notification Benchmark, 2017._
|
|
198
|
+
- **Personalization lift:** Personalized push notifications (including first name, relevant content) show 4× higher click rates than generic notifications. _Source: Leanplum, 2017._
|
|
199
|
+
|
|
200
|
+
### Notification types by effectiveness (high to low)
|
|
201
|
+
|
|
202
|
+
1. **Triggered by user action:** "Someone replied to your comment" — highest relevance, user-initiated context
|
|
203
|
+
2. **Triggered by milestone:** "You're on a 7-day streak!" — relevant to user's own progress
|
|
204
|
+
3. **Triggered by friend action:** "Alice mentioned you" — social relevance
|
|
205
|
+
4. **Triggered by inactivity:** "We miss you — here's what you missed" — re-engagement
|
|
206
|
+
5. **Triggered by marketing calendar:** "Check out our summer sale" — lowest relevance, highest opt-out
|
|
207
|
+
|
|
208
|
+
### Implementation steps
|
|
209
|
+
|
|
210
|
+
1. Build behavioral triggers first — instrument user actions that warrant notification
|
|
211
|
+
2. Create a notification preference system — let users control frequency and type
|
|
212
|
+
3. Implement "quiet hours" — never send at 2am
|
|
213
|
+
4. A/B test notification copy: personal, specific, and action-oriented outperforms generic
|
|
214
|
+
5. Track per-notification opt-out rates — a notification type with >10% opt-out rate is harming retention
|
|
215
|
+
6. Respect unsubscribes immediately and completely
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## 7. Endowed Progress Effect
|
|
220
|
+
|
|
221
|
+
### What it is
|
|
222
|
+
|
|
223
|
+
Giving users artificially "head start" progress before they have earned it — pre-filling a progress bar, awarding bonus points at signup, starting a loyalty card with 2 stamps already punched.
|
|
224
|
+
|
|
225
|
+
### Psychological basis
|
|
226
|
+
|
|
227
|
+
**Goal gradient hypothesis** (Hull, 1932): motivation to complete a goal increases as you get closer to it. The endowed progress effect accelerates this by moving users artificially closer to the goal from the start.
|
|
228
|
+
|
|
229
|
+
**Key research:** Nunes, J.C. & Drèze, X. (2006). "The Endowed Progress Effect: How Artificial Advancement Increases Effort." _Journal of Consumer Research_, 32(4), 504–512.
|
|
230
|
+
|
|
231
|
+
### Evidence
|
|
232
|
+
|
|
233
|
+
- **Nunes & Drèze (2006) car wash loyalty card study:** Customers given a loyalty card pre-stamped with 2 free stamps (requiring 10 total, so 8 more needed) completed the card at a significantly higher rate than customers given a card requiring 8 stamps with no head start — even though the effort required was identical. The "free" progress framing was enough to increase completion.
|
|
234
|
+
- **LinkedIn "Profile Strength" meter:** Starting new users with a "Beginner" rating (rather than empty/0) leverages endowed progress. Users feel they have something to build on rather than starting from nothing.
|
|
235
|
+
- **Welcome bonuses in apps:** Giving new users bonus currency, initial XP, or pre-loaded settings creates investment and leverages endowed progress.
|
|
236
|
+
|
|
237
|
+
### Implementation steps
|
|
238
|
+
|
|
239
|
+
1. Identify a progress mechanic in your product (profile completion, level, points, skills)
|
|
240
|
+
2. Give new users free initial progress that represents 10–20% of the goal
|
|
241
|
+
3. Frame it as a head start: "You're already at level 2" or "2 out of 10 steps complete"
|
|
242
|
+
4. Ensure the head start is real (don't show 10% on a progress bar that requires 100 real steps, then show nothing happening for a long time)
|
|
243
|
+
5. The effect is strongest for goals where users can see the distance remaining
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## 8. Loss Aversion Mechanics
|
|
248
|
+
|
|
249
|
+
### What it is
|
|
250
|
+
|
|
251
|
+
Mechanics that frame inaction as losing something the user already has, rather than framing action as gaining something new.
|
|
252
|
+
|
|
253
|
+
### Psychological basis
|
|
254
|
+
|
|
255
|
+
**Prospect Theory** (Kahneman & Tversky, 1979): in value function terms, losses are felt approximately 2× more intensely than equivalent gains. "You'll lose your streak" is psychologically twice as motivating as "You'll gain streak points."
|
|
256
|
+
|
|
257
|
+
**Research:** Kahneman, D. & Tversky, A. (1979). "Prospect Theory: An Analysis of Decision under Risk." _Econometrica_, 47(2), 263–292. _Nobel Prize in Economics, 2002._
|
|
258
|
+
|
|
259
|
+
### Evidence
|
|
260
|
+
|
|
261
|
+
- **Duolingo streak saver notification:** "You're about to lose your 45-day streak — complete a lesson now" is reported by Duolingo as one of their highest-converting notification messages. The loss framing dramatically outperforms "Maintain your streak" (gain framing).
|
|
262
|
+
- **LinkedIn "Your profile appeared in 8 searches this week":** Framing search visibility as something you have (and could have more of with a better profile) leverages loss aversion around missing out on opportunities.
|
|
263
|
+
- **Free trial → cancellation:** The period of free premium use creates the sensation of having premium features. The cancellation notification ("You will lose access to X, Y, Z in 3 days") leverages loss aversion. This is why free-to-paid conversion rates peak at trial end, not trial start.
|
|
264
|
+
- **"You have unread messages":** The badge on email/messaging apps frames not checking as accumulating something you'll lose track of — leveraging loss aversion around missed communication.
|
|
265
|
+
|
|
266
|
+
### Implementation steps
|
|
267
|
+
|
|
268
|
+
1. Identify what the user has accumulated (streaks, premium access, unread items, profile strength, saved content)
|
|
269
|
+
2. Frame retention-critical notifications as loss prevention, not gain opportunity
|
|
270
|
+
3. Use specific numbers: "You're about to lose your 23-day streak" outperforms "Keep your streak going"
|
|
271
|
+
4. Time notifications to fire before the loss moment, not after it (too late)
|
|
272
|
+
5. Offer a recovery mechanic: users who lose something are more likely to churn entirely; a recovery path keeps them engaged
|
|
273
|
+
|
|
274
|
+
### Ethical boundary
|
|
275
|
+
|
|
276
|
+
Loss aversion is the most manipulable mechanic on this list. The line between motivation and anxiety-inducing dark pattern is real.
|
|
277
|
+
|
|
278
|
+
- **Legitimate:** Loss framing for something the user genuinely values (their streak they built, their trial access to features they use)
|
|
279
|
+
- **Manipulation:** Fabricating loss ("Your account is about to be deleted" for minor inactivity), creating artificial stakes, manufactured urgency with no real consequence
|
package/content/plugins/psychology/skills/agileflow-retention/workflows/design-retention-feature.md
ADDED
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
# Workflow: Design a Retention Feature
|
|
2
|
+
|
|
3
|
+
**Follow this when:** the user wants to design a new retention mechanic — a streak system, notification strategy, progress indicator, social feature, reward loop, or any other habit-forming feature.
|
|
4
|
+
|
|
5
|
+
**Time estimate:** 30–60 minutes for a complete feature design with psychological rationale.
|
|
6
|
+
|
|
7
|
+
**Output:** A fully specified retention mechanic with trigger, action, reward, investment, ethical check, and measurement plan.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Before you start
|
|
12
|
+
|
|
13
|
+
Ask the user:
|
|
14
|
+
|
|
15
|
+
1. Which mechanic type are they considering? (streak, progress bar, notifications, social proof, variable reward, something else)
|
|
16
|
+
2. What user behavior do they want to become habitual? (be specific: "open the app daily", "complete a project update each Friday", "share work with a colleague weekly")
|
|
17
|
+
3. What is the target user segment? (new users / lapsed users / power users)
|
|
18
|
+
4. What does success look like? (D7 retention improvement, DAU/MAU increase, session frequency increase)
|
|
19
|
+
|
|
20
|
+
If the user doesn't know which mechanic to use, help them choose one using the model selection table in `references/psychology-models.md`.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Step 1: Choose the psychological model
|
|
25
|
+
|
|
26
|
+
**Goal:** Match the mechanic to the right model before designing any feature.
|
|
27
|
+
|
|
28
|
+
| Retention goal | Best model | Best mechanic |
|
|
29
|
+
| ----------------------------------- | -------------------------------------------- | ------------------------------------------------------ |
|
|
30
|
+
| Build a new daily habit | Hook Model + Habit Loop | Streak + daily content + notifications |
|
|
31
|
+
| Increase onboarding completion | Fogg B=MAP | Progress bar + endowed progress + facilitator prompts |
|
|
32
|
+
| Drive social engagement | Hook Model (Tribe rewards) + SDT Relatedness | Social features + variable social validation |
|
|
33
|
+
| Reduce churn among engaged users | Loss aversion + Investment | Streak mechanics + investment layer |
|
|
34
|
+
| Increase feature adoption | Fogg B=MAP (ability) + Endowed Progress | Guided flow + pre-filled defaults + progress indicator |
|
|
35
|
+
| Build intrinsic long-term retention | SDT | Autonomy + competence progression + community |
|
|
36
|
+
|
|
37
|
+
Select the primary model and note why it fits this specific challenge.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Step 2: Define the target behavior
|
|
42
|
+
|
|
43
|
+
**Goal:** Be precise about what behavior you want users to perform and how often.
|
|
44
|
+
|
|
45
|
+
Fill in this template:
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
Target behavior: [Specific, observable action]
|
|
49
|
+
Frequency: [Daily / Weekly / Per session / On trigger]
|
|
50
|
+
Target user state: [What emotion or context should trigger this?]
|
|
51
|
+
Minimum viable version: [The simplest version of the behavior]
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Examples:
|
|
55
|
+
|
|
56
|
+
- "Complete one lesson in the app. Daily. When the user has free time or is waiting. Minimum: answer 3 questions."
|
|
57
|
+
- "Update project status. Weekly on Friday afternoon. When wrapping up the work week. Minimum: one sentence."
|
|
58
|
+
- "Log a workout. After exercising. When arriving home from exercise. Minimum: tap 'I worked out today'."
|
|
59
|
+
|
|
60
|
+
The minimum viable behavior matters for Fogg's ability lever. The smaller the minimum behavior, the lower the motivation threshold required to perform it.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Step 3: Design the trigger
|
|
65
|
+
|
|
66
|
+
**Goal:** Design an external trigger that will eventually be replaced by an internal trigger.
|
|
67
|
+
|
|
68
|
+
**External trigger design:**
|
|
69
|
+
|
|
70
|
+
1. Identify the trigger delivery channel:
|
|
71
|
+
- Push notification (requires permission; most immediate)
|
|
72
|
+
- Email (no permission required; lower urgency)
|
|
73
|
+
- In-app badge or indicator (only reaches users already in app)
|
|
74
|
+
- SMS (highest open rates; highest friction to opt into)
|
|
75
|
+
|
|
76
|
+
2. Design the trigger timing:
|
|
77
|
+
- Behavioral: triggered by user action or inaction ("user hasn't logged in for 3 days")
|
|
78
|
+
- Time-based: tied to a specific time the user has indicated they prefer
|
|
79
|
+
- Calendar-based: tied to a recurring event (end of work week, before a deadline)
|
|
80
|
+
- Location-based: triggered by physical context if available
|
|
81
|
+
|
|
82
|
+
3. Write the trigger copy using these principles:
|
|
83
|
+
- Personal: use name or specific context ("Your 14-day streak is at risk")
|
|
84
|
+
- Loss framing: "You're about to lose X" outperforms "Keep your X going"
|
|
85
|
+
- Specific numbers: "You're on day 14" not "You have a streak"
|
|
86
|
+
- Single action: tell them exactly what to do ("Tap here to complete today's lesson")
|
|
87
|
+
|
|
88
|
+
4. Design for internal trigger formation:
|
|
89
|
+
- Which emotion should become associated with opening the product?
|
|
90
|
+
- How does the product reliably resolve that emotion?
|
|
91
|
+
- Document this: "We want users to associate [boredom / procrastination avoidance / productivity] with opening [product]"
|
|
92
|
+
- Check after 4–6 weeks of external triggers: are users opening without the notification?
|
|
93
|
+
|
|
94
|
+
**Trigger quality checklist:**
|
|
95
|
+
|
|
96
|
+
- [ ] Behavioral trigger, not scheduled blast
|
|
97
|
+
- [ ] Fires at the right motivation moment (not at 2am, not during user's known low-engagement hours)
|
|
98
|
+
- [ ] Loss-framed copy with specific numbers
|
|
99
|
+
- [ ] Single clear action
|
|
100
|
+
- [ ] Opt-out available and respected
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Step 4: Reduce friction in the action
|
|
105
|
+
|
|
106
|
+
**Goal:** Make the target behavior as easy as possible to perform in response to the trigger.
|
|
107
|
+
|
|
108
|
+
Apply Fogg's 6 simplicity factors to the path from trigger to completed behavior:
|
|
109
|
+
|
|
110
|
+
| Factor | Current state | Target state | Change required |
|
|
111
|
+
| --------------- | --------------------- | -------------------------- | ----------------------------------- |
|
|
112
|
+
| Time | [how long?] | < 2 minutes | [what to remove] |
|
|
113
|
+
| Money | [any cost?] | Free to perform | [if cost exists, justify or remove] |
|
|
114
|
+
| Physical effort | [taps/clicks] | < 3 taps from notification | [what to streamline] |
|
|
115
|
+
| Brain cycles | [decisions required?] | 0 decisions, 1 action | [what to default or remove] |
|
|
116
|
+
| Social deviance | [does it feel weird?] | Normal, expected | [normalize or destigmatize] |
|
|
117
|
+
| Non-routine | [familiar or new?] | Familiar pattern | [use existing UI patterns] |
|
|
118
|
+
|
|
119
|
+
**The one-tap principle:** Wherever possible, the notification should take users directly to the action — not to a home screen they have to navigate from. Deep link from notification to the specific action.
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Step 5: Design the reward
|
|
124
|
+
|
|
125
|
+
**Goal:** Deliver a variable, autonomy-preserving reward immediately after the target behavior.
|
|
126
|
+
|
|
127
|
+
**Choose the reward type:**
|
|
128
|
+
|
|
129
|
+
| Type | What it delivers | Best for |
|
|
130
|
+
| ---------------------- | ------------------------------------------ | ------------------------------- |
|
|
131
|
+
| **Tribe (social)** | Social validation from other users | Social products, community apps |
|
|
132
|
+
| **Hunt (information)** | Useful, surprising, or interesting content | News, education, productivity |
|
|
133
|
+
| **Self (mastery)** | Progress, completion, skill advancement | Learning, fitness, productivity |
|
|
134
|
+
|
|
135
|
+
**Variable reward design principles:**
|
|
136
|
+
|
|
137
|
+
1. Not every session delivers the same reward level — some are better than others
|
|
138
|
+
2. The anticipation of the reward is as motivating as the reward itself
|
|
139
|
+
3. Deliver the reward immediately after the action (not on the next session)
|
|
140
|
+
4. Add occasional "jackpot" moments: unexpected larger rewards
|
|
141
|
+
5. Never make the reward predictable (same reward every time → diminishing motivation)
|
|
142
|
+
|
|
143
|
+
**Autonomy preservation:** During the reward phase, the user should feel in control, not constrained. If getting the reward requires watching an ad, completing a survey, or navigating required steps, the reward experience becomes aversive.
|
|
144
|
+
|
|
145
|
+
**Reward examples by mechanic:**
|
|
146
|
+
|
|
147
|
+
- **Streak system:** Streak counter increment + animation + occasional celebration (jackpot at 7/30/100 days)
|
|
148
|
+
- **Progress bar:** Visual bar fill + "You're X% done" + next step suggestion
|
|
149
|
+
- **Social feature:** Variable social feedback (likes, comments, replies — timing is unpredictable)
|
|
150
|
+
- **Learning product:** Quiz result + "You got X/Y right" + occasional perfect score celebration
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Step 6: Design the investment layer
|
|
155
|
+
|
|
156
|
+
**Goal:** Ensure users leave something behind after each session that makes the product more valuable on the next visit.
|
|
157
|
+
|
|
158
|
+
Investment types to consider:
|
|
159
|
+
|
|
160
|
+
| Type | Example | Value increase mechanism |
|
|
161
|
+
| -------------------------- | ------------------------------------ | ----------------------------------- |
|
|
162
|
+
| **Data/personalization** | Watched content, completed lessons | Better recommendations next session |
|
|
163
|
+
| **User-generated content** | Posts, photos, notes, projects | History and portfolio building |
|
|
164
|
+
| **Social graph** | Followers, connections, team members | Social switching cost |
|
|
165
|
+
| **Reputation** | Badges, reviews, ratings, level | Public identity investment |
|
|
166
|
+
| **Settings/configuration** | Custom workflows, saved preferences | Painful to recreate |
|
|
167
|
+
| **History/progress** | Learning progress, activity log | Loss if they leave |
|
|
168
|
+
|
|
169
|
+
For the mechanic being designed, answer:
|
|
170
|
+
|
|
171
|
+
- What does the user leave behind after completing the target behavior?
|
|
172
|
+
- How does that accumulate over time?
|
|
173
|
+
- What would they lose if they switched to a competitor?
|
|
174
|
+
- Is the investment visible to the user (so they're aware of its value)?
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Step 7: Ethical check
|
|
179
|
+
|
|
180
|
+
**Goal:** Verify the mechanic delivers genuine value to users and doesn't exploit psychological vulnerabilities.
|
|
181
|
+
|
|
182
|
+
Answer each question honestly:
|
|
183
|
+
|
|
184
|
+
1. **The thank-you test:** "If a user understood exactly what psychological mechanism this feature uses, would they thank us for designing it this way?"
|
|
185
|
+
- If yes: proceed
|
|
186
|
+
- If uncertain: redesign until yes
|
|
187
|
+
|
|
188
|
+
2. **Value alignment:** Does the mechanic encourage behavior that genuinely improves the user's life or experience? Or does it maximize engagement at the expense of user wellbeing?
|
|
189
|
+
- Streak for learning a language: helps the user achieve their goal → proceed
|
|
190
|
+
- Streak for viewing ads: maximizes platform revenue without user benefit → do not ship
|
|
191
|
+
|
|
192
|
+
3. **Anxiety test:** Will this mechanic cause anxiety or distress for users who can't maintain it?
|
|
193
|
+
- If yes: add opt-out, recovery mechanics, or reduce the stakes framing
|
|
194
|
+
|
|
195
|
+
4. **Dark pattern check:** Does this mechanic make it harder to leave the product than easier to stay?
|
|
196
|
+
- Genuine retention: make the product so valuable users don't want to leave
|
|
197
|
+
- Dark pattern: hide cancel buttons, charge after free trial without clear warning, make account deletion difficult
|
|
198
|
+
- Dark patterns are off-limits regardless of retention impact
|
|
199
|
+
|
|
200
|
+
5. **Regulatory check:** Does this mechanic involve gambling mechanics (loot boxes), target children, or create addictive loops with no opt-out?
|
|
201
|
+
- These require legal review before implementation
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Step 8: Define the measurement plan
|
|
206
|
+
|
|
207
|
+
**Goal:** Define how you'll know if this mechanic is working.
|
|
208
|
+
|
|
209
|
+
**Primary metric:**
|
|
210
|
+
|
|
211
|
+
- What specific retention metric does this mechanic target?
|
|
212
|
+
- What is the current baseline?
|
|
213
|
+
- What is the target improvement (e.g., D7 retention from 22% to 28%)?
|
|
214
|
+
- How long will you run the test before evaluating?
|
|
215
|
+
|
|
216
|
+
**Measurement approach:**
|
|
217
|
+
|
|
218
|
+
- A/B test: control (no mechanic) vs. treatment (mechanic enabled) — preferred
|
|
219
|
+
- Cohort analysis: compare retention curves for users who engage with mechanic vs. those who don't
|
|
220
|
+
- Note: cohort analysis has selection bias (users who engage with mechanic are already more motivated); A/B test is cleaner
|
|
221
|
+
|
|
222
|
+
**Guardrail metrics:**
|
|
223
|
+
|
|
224
|
+
- Monitor these to ensure the mechanic doesn't harm other user behaviors:
|
|
225
|
+
- Notification opt-out rate (rising opt-outs = spam signal)
|
|
226
|
+
- Session quality (time in productive feature / total time) — don't optimize for empty engagement
|
|
227
|
+
- Support ticket volume (streak anxiety complaints, etc.)
|
|
228
|
+
- NPS / user satisfaction scores
|
|
229
|
+
|
|
230
|
+
**Leading indicators (check weekly):**
|
|
231
|
+
|
|
232
|
+
- % of target users who engaged with the mechanic
|
|
233
|
+
- Mechanic engagement rate (e.g., streak completion rate day-over-day)
|
|
234
|
+
|
|
235
|
+
**Lagging indicator (check at 4/8/12 weeks):**
|
|
236
|
+
|
|
237
|
+
- Primary retention metric vs. control group
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Step 9: Document and handoff
|
|
242
|
+
|
|
243
|
+
**Goal:** Create a complete feature spec the team can implement.
|
|
244
|
+
|
|
245
|
+
Feature spec template:
|
|
246
|
+
|
|
247
|
+
```
|
|
248
|
+
RETENTION MECHANIC: [Name]
|
|
249
|
+
|
|
250
|
+
Psychological model: [Hook / Fogg / Habit Loop / SDT]
|
|
251
|
+
Target behavior: [Specific action]
|
|
252
|
+
Target user segment: [New / Returning / At-risk]
|
|
253
|
+
Primary metric: [Metric] — Baseline: [X] — Target: [Y]
|
|
254
|
+
|
|
255
|
+
TRIGGER:
|
|
256
|
+
Type: [Behavioral / Time-based / Calendar-based]
|
|
257
|
+
Channel: [Push / Email / In-app]
|
|
258
|
+
Timing: [Specific logic]
|
|
259
|
+
Copy: [Notification text with loss framing]
|
|
260
|
+
|
|
261
|
+
ACTION PATH:
|
|
262
|
+
Steps from trigger to completion: [count]
|
|
263
|
+
Deep link target: [specific screen]
|
|
264
|
+
Friction removed: [what was simplified]
|
|
265
|
+
|
|
266
|
+
REWARD:
|
|
267
|
+
Type: [Tribe / Hunt / Self]
|
|
268
|
+
Variable? [Yes / No — if no, explain why]
|
|
269
|
+
Jackpot moment: [Description]
|
|
270
|
+
Timing: [Immediate on completion]
|
|
271
|
+
|
|
272
|
+
INVESTMENT:
|
|
273
|
+
What user leaves behind: [Description]
|
|
274
|
+
Value accumulation mechanism: [How it grows]
|
|
275
|
+
|
|
276
|
+
ETHICAL REVIEW:
|
|
277
|
+
Thank-you test: [Pass / Fail — notes]
|
|
278
|
+
Value alignment: [Pass / Fail — notes]
|
|
279
|
+
Anxiety risk: [Low / Medium — mitigation]
|
|
280
|
+
Recovery mechanic: [If streak: streak freeze. If other: describe]
|
|
281
|
+
|
|
282
|
+
MEASUREMENT:
|
|
283
|
+
Primary metric: [Metric]
|
|
284
|
+
Test approach: [A/B test / Cohort]
|
|
285
|
+
Test duration: [Weeks]
|
|
286
|
+
Guardrail metrics: [List]
|
|
287
|
+
```
|