agileflow 3.3.0 → 3.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +6 -6
  3. package/lib/skill-loader.js +0 -1
  4. package/package.json +1 -1
  5. package/scripts/agileflow-statusline.sh +81 -0
  6. package/scripts/agileflow-welcome.js +79 -0
  7. package/scripts/claude-tmux.sh +90 -23
  8. package/scripts/claude-watchdog.sh +225 -0
  9. package/scripts/generators/agent-registry.js +14 -1
  10. package/scripts/generators/inject-babysit.js +22 -9
  11. package/scripts/generators/inject-help.js +19 -9
  12. package/scripts/lib/ac-test-matcher.js +452 -0
  13. package/scripts/lib/audit-cleanup.js +250 -0
  14. package/scripts/lib/audit-registry.js +304 -0
  15. package/scripts/lib/configure-features.js +35 -0
  16. package/scripts/lib/feature-catalog.js +3 -3
  17. package/scripts/lib/gate-enforcer.js +295 -0
  18. package/scripts/lib/model-profiles.js +118 -0
  19. package/scripts/lib/quality-gates.js +163 -0
  20. package/scripts/lib/signal-detectors.js +44 -1
  21. package/scripts/lib/skill-catalog.js +557 -0
  22. package/scripts/lib/skill-recommender.js +311 -0
  23. package/scripts/lib/status-writer.js +255 -0
  24. package/scripts/lib/story-claiming.js +128 -45
  25. package/scripts/lib/task-sync.js +32 -38
  26. package/scripts/lib/tdd-phase-manager.js +455 -0
  27. package/scripts/lib/team-events.js +34 -3
  28. package/scripts/lib/tmux-audit-monitor.js +611 -0
  29. package/scripts/lib/tmux-group-colors.js +113 -0
  30. package/scripts/lib/tool-registry.yaml +241 -0
  31. package/scripts/lib/tool-shed.js +441 -0
  32. package/scripts/messaging-bridge.js +209 -1
  33. package/scripts/native-team-observer.js +219 -0
  34. package/scripts/obtain-context.js +14 -0
  35. package/scripts/ralph-loop.js +30 -5
  36. package/scripts/smart-detect.js +21 -0
  37. package/scripts/spawn-audit-sessions.js +877 -0
  38. package/scripts/team-manager.js +56 -16
  39. package/scripts/tmux-close-windows.sh +180 -0
  40. package/src/core/agents/a11y-analyzer-aria.md +155 -0
  41. package/src/core/agents/a11y-analyzer-forms.md +162 -0
  42. package/src/core/agents/a11y-analyzer-keyboard.md +175 -0
  43. package/src/core/agents/a11y-analyzer-semantic.md +153 -0
  44. package/src/core/agents/a11y-analyzer-visual.md +158 -0
  45. package/src/core/agents/a11y-consensus.md +248 -0
  46. package/src/core/agents/ads-audit-budget.md +181 -0
  47. package/src/core/agents/ads-audit-compliance.md +169 -0
  48. package/src/core/agents/ads-audit-creative.md +164 -0
  49. package/src/core/agents/ads-audit-google.md +226 -0
  50. package/src/core/agents/ads-audit-meta.md +183 -0
  51. package/src/core/agents/ads-audit-tracking.md +197 -0
  52. package/src/core/agents/ads-consensus.md +396 -0
  53. package/src/core/agents/ads-generate.md +145 -0
  54. package/src/core/agents/ads-performance-tracker.md +197 -0
  55. package/src/core/agents/api-quality-analyzer-conventions.md +148 -0
  56. package/src/core/agents/api-quality-analyzer-docs.md +176 -0
  57. package/src/core/agents/api-quality-analyzer-errors.md +183 -0
  58. package/src/core/agents/api-quality-analyzer-pagination.md +171 -0
  59. package/src/core/agents/api-quality-analyzer-versioning.md +143 -0
  60. package/src/core/agents/api-quality-consensus.md +214 -0
  61. package/src/core/agents/arch-analyzer-circular.md +148 -0
  62. package/src/core/agents/arch-analyzer-complexity.md +171 -0
  63. package/src/core/agents/arch-analyzer-coupling.md +146 -0
  64. package/src/core/agents/arch-analyzer-layering.md +151 -0
  65. package/src/core/agents/arch-analyzer-patterns.md +162 -0
  66. package/src/core/agents/arch-consensus.md +227 -0
  67. package/src/core/agents/brainstorm-analyzer-features.md +169 -0
  68. package/src/core/agents/brainstorm-analyzer-growth.md +161 -0
  69. package/src/core/agents/brainstorm-analyzer-integration.md +172 -0
  70. package/src/core/agents/brainstorm-analyzer-market.md +147 -0
  71. package/src/core/agents/brainstorm-analyzer-ux.md +167 -0
  72. package/src/core/agents/brainstorm-consensus.md +237 -0
  73. package/src/core/agents/completeness-consensus.md +5 -5
  74. package/src/core/agents/perf-consensus.md +2 -2
  75. package/src/core/agents/security-consensus.md +2 -2
  76. package/src/core/agents/seo-analyzer-content.md +167 -0
  77. package/src/core/agents/seo-analyzer-images.md +187 -0
  78. package/src/core/agents/seo-analyzer-performance.md +206 -0
  79. package/src/core/agents/seo-analyzer-schema.md +176 -0
  80. package/src/core/agents/seo-analyzer-sitemap.md +172 -0
  81. package/src/core/agents/seo-analyzer-technical.md +144 -0
  82. package/src/core/agents/seo-consensus.md +289 -0
  83. package/src/core/agents/test-consensus.md +2 -2
  84. package/src/core/commands/adr.md +1 -0
  85. package/src/core/commands/ads/audit.md +375 -0
  86. package/src/core/commands/ads/budget.md +97 -0
  87. package/src/core/commands/ads/competitor.md +112 -0
  88. package/src/core/commands/ads/creative.md +85 -0
  89. package/src/core/commands/ads/generate.md +238 -0
  90. package/src/core/commands/ads/google.md +112 -0
  91. package/src/core/commands/ads/health.md +327 -0
  92. package/src/core/commands/ads/landing.md +119 -0
  93. package/src/core/commands/ads/linkedin.md +112 -0
  94. package/src/core/commands/ads/meta.md +91 -0
  95. package/src/core/commands/ads/microsoft.md +115 -0
  96. package/src/core/commands/ads/plan.md +321 -0
  97. package/src/core/commands/ads/test-plan.md +317 -0
  98. package/src/core/commands/ads/tiktok.md +129 -0
  99. package/src/core/commands/ads/track.md +288 -0
  100. package/src/core/commands/ads/youtube.md +124 -0
  101. package/src/core/commands/ads.md +140 -0
  102. package/src/core/commands/assign.md +1 -0
  103. package/src/core/commands/audit.md +43 -6
  104. package/src/core/commands/babysit.md +315 -1266
  105. package/src/core/commands/baseline.md +1 -0
  106. package/src/core/commands/blockers.md +1 -0
  107. package/src/core/commands/board.md +1 -0
  108. package/src/core/commands/changelog.md +1 -0
  109. package/src/core/commands/choose.md +1 -0
  110. package/src/core/commands/ci.md +1 -0
  111. package/src/core/commands/code/accessibility.md +347 -0
  112. package/src/core/commands/code/api.md +297 -0
  113. package/src/core/commands/code/architecture.md +297 -0
  114. package/src/core/commands/{audit → code}/completeness.md +72 -25
  115. package/src/core/commands/{audit → code}/legal.md +63 -16
  116. package/src/core/commands/{audit → code}/logic.md +64 -16
  117. package/src/core/commands/{audit → code}/performance.md +67 -20
  118. package/src/core/commands/{audit → code}/security.md +69 -19
  119. package/src/core/commands/{audit → code}/test.md +67 -20
  120. package/src/core/commands/configure.md +1 -0
  121. package/src/core/commands/council.md +1 -0
  122. package/src/core/commands/deploy.md +1 -0
  123. package/src/core/commands/diagnose.md +1 -0
  124. package/src/core/commands/docs.md +1 -0
  125. package/src/core/commands/epic/edit.md +213 -0
  126. package/src/core/commands/epic.md +1 -0
  127. package/src/core/commands/export.md +238 -0
  128. package/src/core/commands/help.md +16 -1
  129. package/src/core/commands/{discovery → ideate}/brief.md +12 -12
  130. package/src/core/commands/{discovery/new.md → ideate/discover.md} +20 -16
  131. package/src/core/commands/ideate/features.md +496 -0
  132. package/src/core/commands/ideate/new.md +158 -124
  133. package/src/core/commands/impact.md +1 -0
  134. package/src/core/commands/learn/explain.md +118 -0
  135. package/src/core/commands/learn/glossary.md +135 -0
  136. package/src/core/commands/learn/patterns.md +138 -0
  137. package/src/core/commands/learn/tour.md +126 -0
  138. package/src/core/commands/migrate/codemods.md +151 -0
  139. package/src/core/commands/migrate/plan.md +131 -0
  140. package/src/core/commands/migrate/scan.md +114 -0
  141. package/src/core/commands/migrate/validate.md +119 -0
  142. package/src/core/commands/multi-expert.md +1 -0
  143. package/src/core/commands/pr.md +1 -0
  144. package/src/core/commands/review.md +1 -0
  145. package/src/core/commands/seo/audit.md +373 -0
  146. package/src/core/commands/seo/competitor.md +174 -0
  147. package/src/core/commands/seo/content.md +107 -0
  148. package/src/core/commands/seo/geo.md +229 -0
  149. package/src/core/commands/seo/hreflang.md +140 -0
  150. package/src/core/commands/seo/images.md +96 -0
  151. package/src/core/commands/seo/page.md +198 -0
  152. package/src/core/commands/seo/plan.md +163 -0
  153. package/src/core/commands/seo/programmatic.md +131 -0
  154. package/src/core/commands/seo/references/cwv-thresholds.md +64 -0
  155. package/src/core/commands/seo/references/eeat-framework.md +110 -0
  156. package/src/core/commands/seo/references/quality-gates.md +91 -0
  157. package/src/core/commands/seo/references/schema-types.md +102 -0
  158. package/src/core/commands/seo/schema.md +183 -0
  159. package/src/core/commands/seo/sitemap.md +97 -0
  160. package/src/core/commands/seo/technical.md +100 -0
  161. package/src/core/commands/seo.md +107 -0
  162. package/src/core/commands/skill/list.md +68 -212
  163. package/src/core/commands/skill/recommend.md +216 -0
  164. package/src/core/commands/sprint.md +1 -0
  165. package/src/core/commands/status/undo.md +191 -0
  166. package/src/core/commands/status.md +1 -0
  167. package/src/core/commands/story/edit.md +204 -0
  168. package/src/core/commands/story/view.md +29 -7
  169. package/src/core/commands/story-validate.md +1 -0
  170. package/src/core/commands/story.md +1 -0
  171. package/src/core/commands/tdd-next.md +238 -0
  172. package/src/core/commands/tdd.md +211 -0
  173. package/src/core/commands/team/start.md +10 -6
  174. package/src/core/commands/tests.md +1 -0
  175. package/src/core/commands/verify.md +27 -1
  176. package/src/core/commands/workflow.md +2 -0
  177. package/src/core/experts/_core-expertise.yaml +105 -0
  178. package/src/core/experts/analytics/expertise.yaml +5 -99
  179. package/src/core/experts/codebase-query/expertise.yaml +3 -72
  180. package/src/core/experts/compliance/expertise.yaml +6 -72
  181. package/src/core/experts/database/expertise.yaml +9 -52
  182. package/src/core/experts/documentation/expertise.yaml +7 -140
  183. package/src/core/experts/integrations/expertise.yaml +7 -127
  184. package/src/core/experts/mentor/expertise.yaml +8 -35
  185. package/src/core/experts/monitoring/expertise.yaml +7 -49
  186. package/src/core/experts/performance/expertise.yaml +1 -26
  187. package/src/core/experts/security/expertise.yaml +9 -34
  188. package/src/core/experts/ui/expertise.yaml +6 -36
  189. package/src/core/knowledge/ads/ad-audit-checklist-scoring.md +424 -0
  190. package/src/core/knowledge/ads/ad-optimization-logic.md +590 -0
  191. package/src/core/knowledge/ads/ad-technical-specifications.md +385 -0
  192. package/src/core/knowledge/ads/definitive-advertising-reference-2026.md +506 -0
  193. package/src/core/knowledge/ads/paid-advertising-research-2026.md +445 -0
  194. package/src/core/teams/backend.json +41 -0
  195. package/src/core/teams/frontend.json +41 -0
  196. package/src/core/teams/qa.json +41 -0
  197. package/src/core/teams/solo.json +35 -0
  198. package/src/core/templates/agileflow-metadata.json +20 -1
  199. package/tools/cli/commands/setup.js +85 -3
  200. package/tools/cli/commands/update.js +42 -0
  201. package/tools/cli/installers/ide/_base-ide.js +42 -5
  202. package/tools/cli/installers/ide/claude-code.js +71 -3
  203. package/tools/cli/lib/content-injector.js +160 -12
  204. package/tools/cli/lib/docs-setup.js +1 -1
  205. package/src/core/commands/skill/create.md +0 -698
  206. package/src/core/commands/skill/delete.md +0 -316
  207. package/src/core/commands/skill/edit.md +0 -359
  208. package/src/core/commands/skill/test.md +0 -394
  209. package/src/core/commands/skill/upgrade.md +0 -552
  210. package/src/core/templates/skill-template.md +0 -117
@@ -0,0 +1,96 @@
1
+ ---
2
+ description: Image optimization analysis - alt text quality, sizing for CLS, WebP/AVIF format detection, lazy loading, and responsive images
3
+ argument-hint: "URL"
4
+ compact_context:
5
+ priority: medium
6
+ preserve_rules:
7
+ - "ACTIVE COMMAND: /agileflow:seo:images - Image optimization analysis"
8
+ - "Deploy seo-analyzer-images for comprehensive image audit"
9
+ - "Check alt text, sizing, formats, lazy loading, LCP priority, responsive srcset"
10
+ state_fields:
11
+ - target_url
12
+ - image_count
13
+ - issues_found
14
+ ---
15
+
16
+ # /agileflow:seo:images
17
+
18
+ Analyze image optimization on a page: alt text quality, explicit sizing for CLS prevention, modern formats (WebP/AVIF), lazy loading, LCP image priority, and responsive images.
19
+
20
+ ---
21
+
22
+ ## Quick Reference
23
+
24
+ ```
25
+ /agileflow:seo:images https://example.com # Image audit for homepage
26
+ /agileflow:seo:images https://example.com/products/item # Product page images
27
+ ```
28
+
29
+ ---
30
+
31
+ ## Arguments
32
+
33
+ | Argument | Values | Default | Description |
34
+ |----------|--------|---------|-------------|
35
+ | URL | Any valid URL | Required | Page to analyze |
36
+
37
+ ---
38
+
39
+ ## Process
40
+
41
+ ### STEP 1: Deploy Image Analyzer
42
+
43
+ ```xml
44
+ <invoke name="Task">
45
+ <parameter name="description">Image optimization analysis</parameter>
46
+ <parameter name="prompt">TASK: Perform comprehensive image optimization analysis.
47
+
48
+ TARGET URL: {url}
49
+
50
+ For every image on the page, check:
51
+ 1. Alt text: Present, descriptive (10-125 chars), not filename-based, not keyword-stuffed
52
+ 2. Sizing: width and height attributes present (CLS prevention)
53
+ 3. Format: WebP/AVIF (modern) vs JPEG/PNG (legacy) vs BMP/TIFF (never)
54
+ 4. Lazy loading: Below-fold images have loading="lazy"
55
+ 5. LCP priority: Hero/above-fold image has fetchpriority="high"
56
+ 6. Responsive: srcset and sizes for responsive delivery
57
+ 7. Decorative: Decorative images correctly use alt=""
58
+
59
+ Also check for:
60
+ - CSS background images (can't have alt text)
61
+ - <picture> elements with format fallbacks
62
+ - Missing <link rel="preload"> for LCP image
63
+
64
+ OUTPUT: Image Optimization Score X/100 with per-image findings.</parameter>
65
+ <parameter name="subagent_type">seo-analyzer-images</parameter>
66
+ </invoke>
67
+ ```
68
+
69
+ ### STEP 2: Present Results
70
+
71
+ Show image-by-image findings table and prioritized fixes.
72
+
73
+ ---
74
+
75
+ ## What Gets Checked
76
+
77
+ | Aspect | Weight | Impact |
78
+ |--------|--------|--------|
79
+ | Alt text quality | 30% | Accessibility + image search rankings |
80
+ | Sizing (CLS) | 20% | Core Web Vitals - layout stability |
81
+ | Modern formats | 15% | Page speed + LCP |
82
+ | Lazy loading | 15% | Page speed |
83
+ | LCP optimization | 10% | Core Web Vitals - largest paint |
84
+ | Responsive images | 10% | Mobile performance |
85
+
86
+ ---
87
+
88
+ <!-- COMPACT_SUMMARY_START -->
89
+ ## Compact Summary
90
+
91
+ **Command**: `/agileflow:seo:images` - Image optimization analysis
92
+
93
+ **Checks**: Alt text, sizing/CLS, WebP/AVIF, lazy loading, LCP priority, responsive srcset
94
+
95
+ **Usage**: `/agileflow:seo:images URL`
96
+ <!-- COMPACT_SUMMARY_END -->
@@ -0,0 +1,198 @@
1
+ ---
2
+ description: Deep single-page SEO analysis across 6 dimensions - on-page, content, technical, schema, images, and performance
3
+ argument-hint: "URL [FOCUS=all|on-page|content|technical|schema|images|performance]"
4
+ compact_context:
5
+ priority: medium
6
+ preserve_rules:
7
+ - "ACTIVE COMMAND: /agileflow:seo:page - Single page SEO analysis"
8
+ - "Fetch the page with WebFetch, then analyze across 6 dimensions"
9
+ - "FOCUS parameter narrows analysis to specific dimension"
10
+ - "Output a scored report card per dimension"
11
+ state_fields:
12
+ - target_url
13
+ - focus
14
+ - page_scores
15
+ ---
16
+
17
+ # /agileflow:seo:page
18
+
19
+ Deep analysis of a single page across 6 SEO dimensions. More thorough than the full-site audit for individual pages.
20
+
21
+ ---
22
+
23
+ ## Quick Reference
24
+
25
+ ```
26
+ /agileflow:seo:page https://example.com/about # Full 6-dimension analysis
27
+ /agileflow:seo:page https://example.com/blog/post FOCUS=content # Content quality only
28
+ /agileflow:seo:page https://example.com/product FOCUS=schema # Schema markup only
29
+ /agileflow:seo:page https://example.com FOCUS=on-page # On-page SEO elements
30
+ ```
31
+
32
+ ---
33
+
34
+ ## Arguments
35
+
36
+ | Argument | Values | Default | Description |
37
+ |----------|--------|---------|-------------|
38
+ | URL | Any valid page URL | Required | Page to analyze |
39
+ | FOCUS | all, on-page, content, technical, schema, images, performance | all | Which dimension(s) to analyze |
40
+
41
+ ---
42
+
43
+ ## Analysis Dimensions
44
+
45
+ ### 1. On-Page SEO
46
+
47
+ Analyze the fundamental on-page elements:
48
+
49
+ | Element | Check | Good | Issue |
50
+ |---------|-------|------|-------|
51
+ | **Title tag** | Present, 30-60 chars, keyword-forward | Unique, relevant | Missing, duplicate, wrong length |
52
+ | **Meta description** | Present, 120-160 chars, has CTA | Compelling, keyword-rich | Missing, duplicate, wrong length |
53
+ | **H1** | Exactly 1, contains target keyword | Clear, descriptive | Missing, multiple, keyword-stuffed |
54
+ | **H2-H6** | Logical hierarchy, no skipped levels | Organized structure | Skipped levels, flat structure |
55
+ | **Internal links** | 2-10 per page, descriptive anchors | Relevant, contextual | None, generic "click here" |
56
+ | **External links** | Authoritative sources | Relevant citations | Broken, spammy |
57
+ | **URL** | Clean, short, keyword-relevant | Descriptive path | Parameters, long, irrelevant |
58
+ | **Canonical** | Self-referencing or correct target | Present, valid | Missing, pointing wrong |
59
+ | **Open Graph** | og:title, og:description, og:image | All present | Missing key tags |
60
+
61
+ ### 2. Content Quality
62
+
63
+ Assess using E-E-A-T framework (see eeat-framework.md reference):
64
+ - Word count vs page type minimum
65
+ - Content uniqueness (not boilerplate)
66
+ - Readability level
67
+ - Author attribution
68
+ - E-E-A-T signals present
69
+ - AI citation readiness (134-167 word blocks)
70
+
71
+ ### 3. Technical
72
+
73
+ Page-level technical checks:
74
+ - HTTP status code
75
+ - Response time / TTFB
76
+ - HTTPS
77
+ - Mobile viewport
78
+ - Canonical tag correctness
79
+ - Robots directives (index/noindex)
80
+ - Structured data presence
81
+ - Language declaration
82
+
83
+ ### 4. Schema
84
+
85
+ Structured data on this specific page:
86
+ - What JSON-LD/Microdata is present
87
+ - Validation of existing schema
88
+ - Missing schema opportunities for this page type
89
+ - Rich result eligibility
90
+
91
+ ### 5. Images
92
+
93
+ All images on the page:
94
+ - Alt text quality
95
+ - Width/height attributes
96
+ - Format (WebP/AVIF vs legacy)
97
+ - Lazy loading
98
+ - LCP image optimization
99
+
100
+ ### 6. Performance
101
+
102
+ Page-level performance indicators:
103
+ - Render-blocking resources
104
+ - Script loading (async/defer)
105
+ - Image optimization
106
+ - Third-party resources
107
+ - Font loading
108
+ - Estimated CWV impact
109
+
110
+ ---
111
+
112
+ ## Process
113
+
114
+ ### STEP 1: Fetch the Page
115
+
116
+ Use WebFetch to retrieve the target URL. Extract full HTML content.
117
+
118
+ ### STEP 2: Analyze Per Focus
119
+
120
+ If `FOCUS=all`, analyze all 6 dimensions. Otherwise, analyze only the specified dimension.
121
+
122
+ For each dimension, produce a score out of 100 and a findings list.
123
+
124
+ ### STEP 3: Generate Report Card
125
+
126
+ Output a report card:
127
+
128
+ ```markdown
129
+ # Page SEO Report: {URL}
130
+
131
+ ## Report Card
132
+
133
+ | Dimension | Score | Key Finding |
134
+ |-----------|-------|-------------|
135
+ | On-Page SEO | {X}/100 | {top issue or "All good"} |
136
+ | Content Quality | {X}/100 | {top issue or "All good"} |
137
+ | Technical | {X}/100 | {top issue or "All good"} |
138
+ | Schema | {X}/100 | {top issue or "All good"} |
139
+ | Images | {X}/100 | {top issue or "All good"} |
140
+ | Performance | {X}/100 | {top issue or "All good"} |
141
+
142
+ **Page Score: {average}/100**
143
+
144
+ ---
145
+
146
+ ## Detailed Findings
147
+
148
+ ### On-Page SEO ({X}/100)
149
+
150
+ | Element | Status | Details |
151
+ |---------|--------|---------|
152
+ | Title | {pass/fail} | "{actual title}" ({length} chars) |
153
+ | Meta Description | {pass/fail} | "{actual}" ({length} chars) |
154
+ | H1 | {pass/fail} | "{actual H1}" |
155
+ | ...
156
+
157
+ [Findings for each dimension]
158
+
159
+ ---
160
+
161
+ ## Quick Fixes
162
+
163
+ 1. {Highest impact, easiest fix}
164
+ 2. {Next priority}
165
+ 3. {Next priority}
166
+ ```
167
+
168
+ ### STEP 4: Offer Next Steps
169
+
170
+ ```xml
171
+ <invoke name="AskUserQuestion">
172
+ <parameter name="questions">[{
173
+ "question": "Page analysis complete: {URL} scored {X}/100. Lowest dimension: {dim} ({score}/100).",
174
+ "header": "Next steps",
175
+ "multiSelect": false,
176
+ "options": [
177
+ {"label": "Fix {top_issue} (Recommended)", "description": "{specific fix description}"},
178
+ {"label": "Generate schema markup", "description": "Create JSON-LD for this page type"},
179
+ {"label": "Run full site audit", "description": "/agileflow:seo:audit {domain}"},
180
+ {"label": "Analyze another page", "description": "Run /agileflow:seo:page on a different URL"}
181
+ ]
182
+ }]</parameter>
183
+ </invoke>
184
+ ```
185
+
186
+ ---
187
+
188
+ <!-- COMPACT_SUMMARY_START -->
189
+ ## Compact Summary
190
+
191
+ **Command**: `/agileflow:seo:page` - Single page SEO analysis across 6 dimensions
192
+
193
+ **Dimensions**: On-Page, Content, Technical, Schema, Images, Performance
194
+
195
+ **Usage**: `/agileflow:seo:page URL [FOCUS=dimension]`
196
+
197
+ **Output**: Scored report card per dimension + prioritized fixes
198
+ <!-- COMPACT_SUMMARY_END -->
@@ -0,0 +1,163 @@
1
+ ---
2
+ description: Strategic SEO planning with industry-specific templates, competitive positioning, and prioritized roadmap generation
3
+ argument-hint: "URL [TIMEFRAME=3mo|6mo|12mo]"
4
+ compact_context:
5
+ priority: medium
6
+ preserve_rules:
7
+ - "ACTIVE COMMAND: /agileflow:seo:plan - Strategic SEO planning"
8
+ - "Detect business type first, then apply industry template"
9
+ - "Generate prioritized roadmap with timeframe milestones"
10
+ - "Reference audit results if available"
11
+ state_fields:
12
+ - target_url
13
+ - business_type
14
+ - timeframe
15
+ ---
16
+
17
+ # /agileflow:seo:plan
18
+
19
+ Generate a strategic SEO plan with industry-specific templates, competitive positioning analysis, and a prioritized improvement roadmap.
20
+
21
+ ---
22
+
23
+ ## Quick Reference
24
+
25
+ ```
26
+ /agileflow:seo:plan https://example.com # 6-month SEO plan (default)
27
+ /agileflow:seo:plan https://example.com TIMEFRAME=3mo # 3-month sprint plan
28
+ /agileflow:seo:plan https://example.com TIMEFRAME=12mo # Annual SEO strategy
29
+ ```
30
+
31
+ ---
32
+
33
+ ## Arguments
34
+
35
+ | Argument | Values | Default | Description |
36
+ |----------|--------|---------|-------------|
37
+ | URL | Any valid URL | Required | Site to plan for |
38
+ | TIMEFRAME | 3mo, 6mo, 12mo | 6mo | Planning horizon |
39
+
40
+ ---
41
+
42
+ ## Process
43
+
44
+ ### STEP 1: Assess Current State
45
+
46
+ Fetch the site and determine:
47
+ - Business type (SaaS, Local, E-commerce, Publisher, Agency)
48
+ - Current SEO maturity (based on quick checks)
49
+ - Existing audit results (check `docs/08-project/seo-audits/`)
50
+
51
+ ### STEP 2: Apply Industry Template
52
+
53
+ | Business Type | Priority Areas | Key Strategies |
54
+ |--------------|---------------|----------------|
55
+ | **SaaS** | Content marketing, technical SEO, schema | Blog strategy, documentation SEO, product schema |
56
+ | **Local Business** | Local SEO, Google Business, reviews | NAP consistency, local schema, review generation |
57
+ | **E-commerce** | Product SEO, site structure, CWV | Product schema, faceted navigation, page speed |
58
+ | **Publisher** | Content quality, E-E-A-T, freshness | Author pages, topic clusters, article schema |
59
+ | **Agency** | Authority, portfolio SEO, local | Case studies, service pages, expertise signals |
60
+
61
+ ### STEP 3: Generate Roadmap
62
+
63
+ Break the plan into phases:
64
+
65
+ **3-Month Plan**:
66
+ - Month 1: Critical fixes (blocking issues)
67
+ - Month 2: Foundation (technical + schema)
68
+ - Month 3: Content optimization
69
+
70
+ **6-Month Plan**:
71
+ - Month 1-2: Critical fixes + technical foundation
72
+ - Month 3-4: Content strategy + schema implementation
73
+ - Month 5-6: Authority building + performance optimization
74
+
75
+ **12-Month Plan**:
76
+ - Q1: Foundation (technical + critical fixes)
77
+ - Q2: Content + schema
78
+ - Q3: Authority + link building
79
+ - Q4: Advanced optimization + monitoring
80
+
81
+ ### STEP 4: Output Plan
82
+
83
+ ```markdown
84
+ # SEO Strategy: {URL}
85
+
86
+ ## Business Type: {type}
87
+ ## Timeframe: {timeframe}
88
+ ## Current Maturity: {Beginner/Intermediate/Advanced}
89
+
90
+ ---
91
+
92
+ ## Executive Summary
93
+
94
+ {2-3 sentence overview of the site's SEO status and key opportunities}
95
+
96
+ ---
97
+
98
+ ## Phase 1: {title} (Month 1-X)
99
+
100
+ ### Goals
101
+ - {Goal 1}
102
+ - {Goal 2}
103
+
104
+ ### Actions
105
+ - [ ] {Specific action with expected impact}
106
+ - [ ] {Specific action}
107
+ - [ ] {Specific action}
108
+
109
+ ### KPIs
110
+ - {Metric to track}
111
+ - {Metric to track}
112
+
113
+ ---
114
+
115
+ ## Phase 2: {title} (Month X-Y)
116
+
117
+ [Same structure]
118
+
119
+ ---
120
+
121
+ ## Content Strategy
122
+
123
+ ### Topic Clusters
124
+ | Pillar | Supporting Content | Target Keywords |
125
+ |--------|-------------------|----------------|
126
+ | {topic} | {subtopics} | {keywords} |
127
+
128
+ ### Content Calendar
129
+ | Month | Content Type | Topic | Goal |
130
+ |-------|-------------|-------|------|
131
+ | 1 | {type} | {topic} | {goal} |
132
+
133
+ ---
134
+
135
+ ## Technical Priorities
136
+
137
+ [Ranked list from audit findings or quick assessment]
138
+
139
+ ---
140
+
141
+ ## Measurement Framework
142
+
143
+ | KPI | Current | Target ({timeframe}) |
144
+ |-----|---------|---------------------|
145
+ | Organic traffic | Baseline | +X% |
146
+ | Indexed pages | {N} | {target} |
147
+ | Core Web Vitals | {status} | All Good |
148
+ | Schema types | {N} | {target} |
149
+ ```
150
+
151
+ ---
152
+
153
+ <!-- COMPACT_SUMMARY_START -->
154
+ ## Compact Summary
155
+
156
+ **Command**: `/agileflow:seo:plan` - Strategic SEO planning
157
+
158
+ **Input**: URL + timeframe (3mo/6mo/12mo)
159
+
160
+ **Output**: Industry-specific roadmap with phases, content strategy, and KPIs
161
+
162
+ **Usage**: `/agileflow:seo:plan URL [TIMEFRAME=6mo]`
163
+ <!-- COMPACT_SUMMARY_END -->
@@ -0,0 +1,131 @@
1
+ ---
2
+ description: Programmatic SEO quality gates - validate bulk-generated pages for uniqueness, thin content, duplicate titles, and scale limits
3
+ argument-hint: "URL [MAX_SAMPLE=20]"
4
+ compact_context:
5
+ priority: medium
6
+ preserve_rules:
7
+ - "ACTIVE COMMAND: /agileflow:seo:programmatic - Programmatic SEO QA"
8
+ - "Check quality gates from quality-gates.md reference"
9
+ - "Sample pages to assess uniqueness and content quality"
10
+ - "Flag when thresholds are exceeded"
11
+ state_fields:
12
+ - target_url
13
+ - max_sample
14
+ - pages_sampled
15
+ - gate_violations
16
+ ---
17
+
18
+ # /agileflow:seo:programmatic
19
+
20
+ Quality gate enforcement for programmatic SEO. Validate bulk-generated pages for uniqueness, thin content, duplicate elements, and scale safety limits.
21
+
22
+ ---
23
+
24
+ ## Quick Reference
25
+
26
+ ```
27
+ /agileflow:seo:programmatic https://example.com # Sample 20 pages for QA
28
+ /agileflow:seo:programmatic https://example.com MAX_SAMPLE=50 # Larger sample
29
+ ```
30
+
31
+ ---
32
+
33
+ ## Arguments
34
+
35
+ | Argument | Values | Default | Description |
36
+ |----------|--------|---------|-------------|
37
+ | URL | Any valid URL | Required | Site with programmatic pages |
38
+ | MAX_SAMPLE | 5-100 | 20 | Number of pages to sample and analyze |
39
+
40
+ ---
41
+
42
+ ## Quality Gates (from quality-gates.md)
43
+
44
+ | Metric | Warning | Hard Stop |
45
+ |--------|---------|-----------|
46
+ | Pages without audit | 100+ | 500+ |
47
+ | Unique content per page | < 40% | < 20% |
48
+ | Location pages | 30+ | 50+ |
49
+ | Thin pages (< 300 words) | 10+ | 50+ |
50
+ | Duplicate title tags | 5+ | 20+ |
51
+ | Duplicate meta descriptions | 10+ | 30+ |
52
+ | Pages with no internal links in | 5+ | 20+ |
53
+ | 404 errors | 5+ | 20+ |
54
+
55
+ ---
56
+
57
+ ## Process
58
+
59
+ ### STEP 1: Discover Programmatic Pages
60
+
61
+ Fetch sitemap to identify programmatic page patterns:
62
+ - `/locations/*`, `/cities/*` (location pages)
63
+ - `/products/*`, `/categories/*` (product pages)
64
+ - `/topics/*`, `/tags/*` (topic pages)
65
+ - Any repeating URL pattern with varying slugs
66
+
67
+ ### STEP 2: Sample Pages
68
+
69
+ Select a representative sample:
70
+ - Random selection across the pattern
71
+ - Include first, middle, and last pages
72
+ - Include edge cases (short slugs, long slugs)
73
+
74
+ ### STEP 3: Analyze Each Sampled Page
75
+
76
+ For each page, check:
77
+
78
+ | Check | What | Threshold |
79
+ |-------|------|-----------|
80
+ | **Word count** | Total content words | ≥ 300 (product), ≥ 500 (location) |
81
+ | **Unique content %** | Content not shared with template | ≥ 40% |
82
+ | **Title uniqueness** | Not identical to other sampled pages | Unique |
83
+ | **Meta description** | Present and unique | Not duplicate |
84
+ | **Internal links** | Links pointing to this page | ≥ 1 |
85
+ | **Structured data** | Schema present and valid | Present |
86
+ | **Content quality** | Not just template with city name swapped | Substantive |
87
+
88
+ ### STEP 4: Aggregate and Report
89
+
90
+ ```markdown
91
+ # Programmatic SEO QA: {URL}
92
+
93
+ ## Pages Sampled: {N} of ~{total estimated}
94
+
95
+ ## Quality Gate Results
96
+
97
+ | Gate | Status | Value | Threshold |
98
+ |------|--------|-------|-----------|
99
+ | Unique content | PASS/WARN/FAIL | {avg}% | ≥ 40% |
100
+ | Thin content | PASS/WARN/FAIL | {N} pages < 300w | < 10 |
101
+ | Duplicate titles | PASS/WARN/FAIL | {N} duplicates | < 5 |
102
+ | Duplicate descriptions | PASS/WARN/FAIL | {N} duplicates | < 10 |
103
+ | Internal links | PASS/WARN/FAIL | {N} orphans | < 5 |
104
+ | Schema present | PASS/WARN/FAIL | {N} missing | 0 |
105
+
106
+ ## Sample Analysis
107
+
108
+ | Page | Words | Unique % | Title Unique | Schema |
109
+ |------|-------|----------|-------------|--------|
110
+ | /locations/new-york | 450 | 52% | Yes | Yes |
111
+ | /locations/los-angeles | 420 | 48% | Yes | Yes |
112
+ | /locations/chicago | 280 | 35% | No (dup) | No |
113
+
114
+ ## Recommendations
115
+
116
+ 1. {Priority recommendation}
117
+ 2. {Next priority}
118
+ 3. {Next priority}
119
+ ```
120
+
121
+ ---
122
+
123
+ <!-- COMPACT_SUMMARY_START -->
124
+ ## Compact Summary
125
+
126
+ **Command**: `/agileflow:seo:programmatic` - Programmatic SEO quality gates
127
+
128
+ **Checks**: Content uniqueness, thin pages, duplicate titles/descriptions, orphan pages
129
+
130
+ **Usage**: `/agileflow:seo:programmatic URL [MAX_SAMPLE=20]`
131
+ <!-- COMPACT_SUMMARY_END -->
@@ -0,0 +1,64 @@
1
+ # Core Web Vitals Thresholds
2
+
3
+ Reference data for SEO performance analysis. Updated February 2026.
4
+
5
+ ---
6
+
7
+ ## Primary Metrics (75th Percentile)
8
+
9
+ | Metric | Good | Needs Improvement | Poor |
10
+ |--------|------|-------------------|------|
11
+ | **LCP** (Largest Contentful Paint) | ≤ 2.5s | 2.5s - 4.0s | > 4.0s |
12
+ | **INP** (Interaction to Next Paint) | ≤ 200ms | 200ms - 500ms | > 500ms |
13
+ | **CLS** (Cumulative Layout Shift) | ≤ 0.1 | 0.1 - 0.25 | > 0.25 |
14
+
15
+ **Note**: INP replaced FID (First Input Delay) as of March 2024.
16
+
17
+ ---
18
+
19
+ ## LCP Component Breakdown
20
+
21
+ | Component | Target | Description |
22
+ |-----------|--------|-------------|
23
+ | TTFB (Time to First Byte) | < 800ms | Server response time |
24
+ | Resource load delay | Minimize | Time between TTFB and resource request |
25
+ | Resource load time | Minimize | Time to download LCP resource |
26
+ | Element render delay | Minimize | Time between download and render |
27
+
28
+ **Common LCP elements**: Hero images, heading text, video poster images, background images via CSS.
29
+
30
+ ---
31
+
32
+ ## Industry Adoption (Oct 2025)
33
+
34
+ | Device | Meeting All Three CWV |
35
+ |--------|----------------------|
36
+ | Desktop | 57% |
37
+ | Mobile | 50% |
38
+
39
+ ---
40
+
41
+ ## Mobile-Specific (Dec 2025 Update)
42
+
43
+ - Mobile CWV now weighted heavier in ranking
44
+ - Mobile performance is a critical ranking factor
45
+ - Test with 4G throttling (1.6 Mbps down, 750 Kbps up, 150ms RTT)
46
+
47
+ ---
48
+
49
+ ## Scoring Ranges (for SEO audit)
50
+
51
+ | Score | CWV Status | Meaning |
52
+ |-------|-----------|---------|
53
+ | 90-100 | All Good | All three metrics in "Good" range |
54
+ | 70-89 | Mostly Good | 2 of 3 metrics Good, 1 Needs Improvement |
55
+ | 50-69 | Needs Work | 1+ metrics in Needs Improvement |
56
+ | 0-49 | Poor | 1+ metrics in Poor range |
57
+
58
+ ---
59
+
60
+ ## Data Sources
61
+
62
+ - **Field data**: Chrome User Experience Report (CrUX), PageSpeed Insights API
63
+ - **Lab data**: Lighthouse, WebPageTest, Chrome DevTools
64
+ - **Recommendation**: Always prefer field data over lab data when available