bmad-plus 0.4.1 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +4 -2
  3. package/package.json +5 -4
  4. package/readme-international/README.de.md +1 -1
  5. package/readme-international/README.es.md +1 -1
  6. package/readme-international/README.fr.md +1 -1
  7. package/src/bmad-plus/agents/pack-animated/animated-website-agent.md +325 -0
  8. package/src/bmad-plus/agents/pack-animated/templates/animated-website-workflow.md +55 -0
  9. package/src/bmad-plus/agents/pack-backup/backup-agent.md +71 -0
  10. package/src/bmad-plus/agents/pack-backup/templates/backup-workflow.md +51 -0
  11. package/src/bmad-plus/agents/pack-seo/SKILL.md +171 -0
  12. package/src/bmad-plus/agents/pack-seo/checklist.md +140 -0
  13. package/src/bmad-plus/agents/pack-seo/pagespeed-playbook.md +320 -0
  14. package/src/bmad-plus/agents/pack-seo/ref/audit-schema.json +187 -0
  15. package/src/bmad-plus/agents/pack-seo/ref/cwv-thresholds.md +87 -0
  16. package/src/bmad-plus/agents/pack-seo/ref/eeat-criteria.md +123 -0
  17. package/src/bmad-plus/agents/pack-seo/ref/geo-signals.md +167 -0
  18. package/src/bmad-plus/agents/pack-seo/ref/hreflang-rules.md +153 -0
  19. package/src/bmad-plus/agents/pack-seo/ref/quality-gates.md +133 -0
  20. package/src/bmad-plus/agents/pack-seo/ref/schema-catalog.md +91 -0
  21. package/src/bmad-plus/agents/pack-seo/ref/schema-templates.json +356 -0
  22. package/src/bmad-plus/agents/pack-seo/seo-chief.md +294 -0
  23. package/src/bmad-plus/agents/pack-seo/seo-judge.md +241 -0
  24. package/src/bmad-plus/agents/pack-seo/seo-scout.md +171 -0
  25. package/src/bmad-plus/agents/pack-seo/templates/seo-audit-workflow.md +241 -0
  26. package/src/bmad-plus/module.yaml +29 -0
  27. package/tools/cli/bmad-plus-cli.js +23 -0
  28. package/tools/cli/commands/doctor.js +175 -0
  29. package/tools/cli/commands/install.js +54 -16
  30. package/tools/cli/commands/uninstall.js +34 -8
  31. package/tools/cli/commands/update.js +172 -0
  32. package/tools/cli/i18n.js +425 -303
@@ -0,0 +1,356 @@
1
+ {
2
+ "meta": {
3
+ "author": "Laurent Rochetta",
4
+ "engine": "BMAD+ SEO Engine v2.0",
5
+ "schema_org_version": "29.4",
6
+ "last_updated": "2026-03-19"
7
+ },
8
+ "templates": [
9
+ {
10
+ "type": "Organization",
11
+ "use_case": "Company/brand homepage",
12
+ "template": {
13
+ "@context": "https://schema.org",
14
+ "@type": "Organization",
15
+ "name": "[Company Name]",
16
+ "url": "[Website URL]",
17
+ "logo": "[Logo URL]",
18
+ "description": "[Company description]",
19
+ "foundingDate": "[YYYY]",
20
+ "contactPoint": {
21
+ "@type": "ContactPoint",
22
+ "telephone": "[Phone]",
23
+ "contactType": "customer service",
24
+ "availableLanguage": ["English", "French"]
25
+ },
26
+ "sameAs": [
27
+ "[Facebook URL]",
28
+ "[LinkedIn URL]",
29
+ "[Twitter URL]",
30
+ "[YouTube URL]"
31
+ ]
32
+ }
33
+ },
34
+ {
35
+ "type": "LocalBusiness",
36
+ "use_case": "Physical business location",
37
+ "template": {
38
+ "@context": "https://schema.org",
39
+ "@type": "LocalBusiness",
40
+ "name": "[Business Name]",
41
+ "url": "[Website URL]",
42
+ "image": "[Photo URL]",
43
+ "telephone": "[Phone]",
44
+ "priceRange": "[$$]",
45
+ "address": {
46
+ "@type": "PostalAddress",
47
+ "streetAddress": "[Street]",
48
+ "addressLocality": "[City]",
49
+ "addressRegion": "[State/Region]",
50
+ "postalCode": "[ZIP]",
51
+ "addressCountry": "[Country Code]"
52
+ },
53
+ "geo": {
54
+ "@type": "GeoCoordinates",
55
+ "latitude": "[Lat]",
56
+ "longitude": "[Long]"
57
+ },
58
+ "openingHoursSpecification": [
59
+ {
60
+ "@type": "OpeningHoursSpecification",
61
+ "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
62
+ "opens": "09:00",
63
+ "closes": "18:00"
64
+ }
65
+ ]
66
+ }
67
+ },
68
+ {
69
+ "type": "Article",
70
+ "use_case": "Blog posts, articles",
71
+ "template": {
72
+ "@context": "https://schema.org",
73
+ "@type": "Article",
74
+ "headline": "[Title - max 110 chars]",
75
+ "description": "[Summary]",
76
+ "author": {
77
+ "@type": "Person",
78
+ "name": "[Author Name]",
79
+ "url": "[Author Profile URL]"
80
+ },
81
+ "datePublished": "[YYYY-MM-DD]",
82
+ "dateModified": "[YYYY-MM-DD]",
83
+ "image": "[Featured Image URL]",
84
+ "publisher": {
85
+ "@type": "Organization",
86
+ "name": "[Publisher Name]",
87
+ "logo": {
88
+ "@type": "ImageObject",
89
+ "url": "[Logo URL]"
90
+ }
91
+ },
92
+ "mainEntityOfPage": {
93
+ "@type": "WebPage",
94
+ "@id": "[Page URL]"
95
+ }
96
+ }
97
+ },
98
+ {
99
+ "type": "Product",
100
+ "use_case": "E-commerce product pages",
101
+ "template": {
102
+ "@context": "https://schema.org",
103
+ "@type": "Product",
104
+ "name": "[Product Name]",
105
+ "image": "[Product Image URL]",
106
+ "description": "[Product Description]",
107
+ "sku": "[SKU]",
108
+ "brand": {
109
+ "@type": "Brand",
110
+ "name": "[Brand Name]"
111
+ },
112
+ "offers": {
113
+ "@type": "Offer",
114
+ "url": "[Product URL]",
115
+ "price": "[Price]",
116
+ "priceCurrency": "[Currency Code]",
117
+ "availability": "https://schema.org/InStock",
118
+ "seller": {
119
+ "@type": "Organization",
120
+ "name": "[Seller Name]"
121
+ }
122
+ },
123
+ "aggregateRating": {
124
+ "@type": "AggregateRating",
125
+ "ratingValue": "[4.5]",
126
+ "reviewCount": "[120]"
127
+ }
128
+ }
129
+ },
130
+ {
131
+ "type": "WebSite",
132
+ "use_case": "Site-level with sitelinks search box",
133
+ "template": {
134
+ "@context": "https://schema.org",
135
+ "@type": "WebSite",
136
+ "name": "[Site Name]",
137
+ "url": "[Homepage URL]",
138
+ "potentialAction": {
139
+ "@type": "SearchAction",
140
+ "target": {
141
+ "@type": "EntryPoint",
142
+ "urlTemplate": "[Search URL]?q={search_term_string}"
143
+ },
144
+ "query-input": "required name=search_term_string"
145
+ }
146
+ }
147
+ },
148
+ {
149
+ "type": "BreadcrumbList",
150
+ "use_case": "Navigation breadcrumbs",
151
+ "template": {
152
+ "@context": "https://schema.org",
153
+ "@type": "BreadcrumbList",
154
+ "itemListElement": [
155
+ {
156
+ "@type": "ListItem",
157
+ "position": 1,
158
+ "name": "Home",
159
+ "item": "[Homepage URL]"
160
+ },
161
+ {
162
+ "@type": "ListItem",
163
+ "position": 2,
164
+ "name": "[Category]",
165
+ "item": "[Category URL]"
166
+ },
167
+ {
168
+ "@type": "ListItem",
169
+ "position": 3,
170
+ "name": "[Current Page]"
171
+ }
172
+ ]
173
+ }
174
+ },
175
+ {
176
+ "type": "Person",
177
+ "use_case": "Author/team member profiles (E-E-A-T)",
178
+ "template": {
179
+ "@context": "https://schema.org",
180
+ "@type": "Person",
181
+ "name": "[Full Name]",
182
+ "jobTitle": "[Job Title]",
183
+ "url": "[Profile URL]",
184
+ "image": "[Photo URL]",
185
+ "description": "[Professional bio]",
186
+ "worksFor": {
187
+ "@type": "Organization",
188
+ "name": "[Company Name]"
189
+ },
190
+ "sameAs": [
191
+ "[LinkedIn URL]",
192
+ "[Twitter URL]",
193
+ "[GitHub URL]"
194
+ ]
195
+ }
196
+ },
197
+ {
198
+ "type": "Service",
199
+ "use_case": "Service business pages",
200
+ "template": {
201
+ "@context": "https://schema.org",
202
+ "@type": "Service",
203
+ "name": "[Service Name]",
204
+ "description": "[Service Description]",
205
+ "provider": {
206
+ "@type": "Organization",
207
+ "name": "[Provider Name]",
208
+ "url": "[Provider URL]"
209
+ },
210
+ "areaServed": {
211
+ "@type": "City",
212
+ "name": "[Service Area]"
213
+ },
214
+ "offers": {
215
+ "@type": "Offer",
216
+ "price": "[Starting Price]",
217
+ "priceCurrency": "[Currency]"
218
+ }
219
+ }
220
+ },
221
+ {
222
+ "type": "VideoObject",
223
+ "use_case": "Video content pages",
224
+ "template": {
225
+ "@context": "https://schema.org",
226
+ "@type": "VideoObject",
227
+ "name": "[Video Title]",
228
+ "description": "[Video Description]",
229
+ "thumbnailUrl": "[Thumbnail URL]",
230
+ "uploadDate": "[YYYY-MM-DD]",
231
+ "duration": "[PT1H30M]",
232
+ "contentUrl": "[Video File URL]",
233
+ "embedUrl": "[Embed URL]",
234
+ "publisher": {
235
+ "@type": "Organization",
236
+ "name": "[Publisher]"
237
+ }
238
+ }
239
+ },
240
+ {
241
+ "type": "Event",
242
+ "use_case": "Events and conferences",
243
+ "template": {
244
+ "@context": "https://schema.org",
245
+ "@type": "Event",
246
+ "name": "[Event Name]",
247
+ "description": "[Event Description]",
248
+ "startDate": "[YYYY-MM-DDTHH:MM]",
249
+ "endDate": "[YYYY-MM-DDTHH:MM]",
250
+ "location": {
251
+ "@type": "Place",
252
+ "name": "[Venue Name]",
253
+ "address": {
254
+ "@type": "PostalAddress",
255
+ "streetAddress": "[Street]",
256
+ "addressLocality": "[City]",
257
+ "addressCountry": "[Country]"
258
+ }
259
+ },
260
+ "organizer": {
261
+ "@type": "Organization",
262
+ "name": "[Organizer Name]",
263
+ "url": "[Organizer URL]"
264
+ },
265
+ "offers": {
266
+ "@type": "Offer",
267
+ "price": "[Price]",
268
+ "priceCurrency": "[Currency]",
269
+ "url": "[Ticket URL]",
270
+ "availability": "https://schema.org/InStock"
271
+ }
272
+ }
273
+ },
274
+ {
275
+ "type": "SoftwareApplication",
276
+ "use_case": "SaaS and app pages",
277
+ "template": {
278
+ "@context": "https://schema.org",
279
+ "@type": "SoftwareApplication",
280
+ "name": "[App Name]",
281
+ "description": "[App Description]",
282
+ "applicationCategory": "[Category]",
283
+ "operatingSystem": "[OS]",
284
+ "offers": {
285
+ "@type": "Offer",
286
+ "price": "[Price or 0]",
287
+ "priceCurrency": "[Currency]"
288
+ },
289
+ "aggregateRating": {
290
+ "@type": "AggregateRating",
291
+ "ratingValue": "[Rating]",
292
+ "ratingCount": "[Count]"
293
+ }
294
+ }
295
+ },
296
+ {
297
+ "type": "ProfilePage",
298
+ "use_case": "Author/creator profile pages (E-E-A-T)",
299
+ "template": {
300
+ "@context": "https://schema.org",
301
+ "@type": "ProfilePage",
302
+ "mainEntity": {
303
+ "@type": "Person",
304
+ "name": "[Author Name]",
305
+ "url": "[Profile URL]",
306
+ "description": "[Bio and expertise]",
307
+ "sameAs": ["[LinkedIn]", "[Twitter]"]
308
+ }
309
+ }
310
+ },
311
+ {
312
+ "type": "ProductGroup",
313
+ "use_case": "E-commerce product variants",
314
+ "template": {
315
+ "@context": "https://schema.org",
316
+ "@type": "ProductGroup",
317
+ "name": "[Product Name]",
318
+ "description": "[Group description]",
319
+ "productGroupID": "[Group ID]",
320
+ "variesBy": ["https://schema.org/size", "https://schema.org/color"],
321
+ "hasVariant": [
322
+ {
323
+ "@type": "Product",
324
+ "name": "[Variant Name]",
325
+ "sku": "[SKU]",
326
+ "color": "[Color]",
327
+ "size": "[Size]",
328
+ "offers": {
329
+ "@type": "Offer",
330
+ "price": "[Price]",
331
+ "priceCurrency": "[Currency]",
332
+ "availability": "https://schema.org/InStock"
333
+ }
334
+ }
335
+ ]
336
+ }
337
+ },
338
+ {
339
+ "type": "Certification",
340
+ "use_case": "Product certifications (April 2025)",
341
+ "template": {
342
+ "@context": "https://schema.org",
343
+ "@type": "Product",
344
+ "name": "[Product Name]",
345
+ "hasCertification": {
346
+ "@type": "Certification",
347
+ "certificationIdentification": "[Certification Name]",
348
+ "issuedBy": {
349
+ "@type": "Organization",
350
+ "name": "[Issuing Organization]"
351
+ }
352
+ }
353
+ }
354
+ }
355
+ ]
356
+ }
@@ -0,0 +1,294 @@
1
+ # SEO Chief — Strategist & Reporter Agent
2
+
3
+ > *"I turn raw data into scored insights and actionable roadmaps."*
4
+
5
+ ## Identity
6
+
7
+ You are **Chief**, the strategist and reporting agent of the BMAD+ SEO Engine. You aggregate findings from Scout and Judge, compute the SEO Health Score, generate prioritized action plans, and produce publication-ready reports.
8
+
9
+ ## Roles
10
+
11
+ ### Role: Scorer
12
+ **Trigger**: Score calculation, audit synthesis, category aggregation
13
+ - Compute the **SEO Health Score (0–100)** from weighted category inputs
14
+ - Break down scores per category with visual indicators
15
+ - Compare against industry benchmarks
16
+ - Flag score changes when monitoring is active
17
+
18
+ ### Role: Strategist
19
+ **Trigger**: Action plan, roadmap, quick wins, fix generation
20
+ - Generate prioritized issue lists (Critical → High → Medium → Low)
21
+ - Identify quick wins (highest impact/effort ratio)
22
+ - Create 30/60/90-day roadmaps
23
+ - **Auto-generate code fixes** for common issues (meta tags, schema JSON-LD, robots.txt improvements)
24
+ - Estimate impact and effort for each recommendation
25
+
26
+ ### Role: Reporter
27
+ **Trigger**: Report generation, export, summary
28
+ - Produce structured Markdown reports
29
+ - Generate executive summary for non-technical stakeholders
30
+ - Create monitoring comparison reports (vs previous audit)
31
+ - Format reports for different audiences (developer, marketing, executive)
32
+ - Generate **HTML reports** via `scripts/seo_report.py` from audit JSON
33
+
34
+ ### Role: Benchmarker
35
+ **Trigger**: `/seo competitor`, competitive analysis, benchmark
36
+ - Run full audit on **two sites simultaneously** (Scout + Judge on each)
37
+ - Compare scores side-by-side with delta indicators:
38
+
39
+ | Metric | My Site | Competitor | Delta |
40
+ |--------|---------|-----------|-------|
41
+ | SEO Score | 72 | 85 | -13 🔴 |
42
+ | E-E-A-T | 65 | 78 | -13 🔴 |
43
+ | Schema types | 3 | 7 | -4 🟠 |
44
+ | GEO/AI Score | 55 | 70 | -15 🔴 |
45
+ | PageSpeed | 92 | 88 | +4 🟢 |
46
+
47
+ - Identify **competitive gaps** (where rival is better)
48
+ - Identify **competitive advantages** (where we're better)
49
+ - Generate actionable plan: "To match competitor, prioritize: ..."
50
+ - Output: Markdown comparison report + optional HTML via `seo_report.py`
51
+
52
+ ---
53
+
54
+ ## SEO Health Score — Weighting System
55
+
56
+ | Category | Weight | Source Agent | Phase |
57
+ |----------|--------|-------------|-------|
58
+ | Technical SEO | 20% | Scout | Phase 2 |
59
+ | Content & E-E-A-T | 22% | Judge | Phase 2 |
60
+ | On-Page SEO | 18% | Scout + Judge | Phase 2 |
61
+ | Schema & Structured Data | 10% | Judge | Phase 2 |
62
+ | Performance (CWV) | 12% | Scout | Phase 2 |
63
+ | AI Search Readiness (GEO) | 12% | Judge | Phase 3 |
64
+ | Images & Media | 6% | Judge | Phase 2 |
65
+
66
+ ### Score Interpretation
67
+ | Score Range | Rating | Actions Required |
68
+ |-------------|--------|-----------------|
69
+ | 90–100 | 🟢 Excellent | Monitoring + minor optimizations |
70
+ | 75–89 | 🔵 Good | Targeted improvements recommended |
71
+ | 60–74 | 🟡 Needs Work | Significant optimizations required |
72
+ | 40–59 | 🟠 Poor | Major overhaul needed |
73
+ | 0–39 | 🔴 Critical | Fundamental issues blocking performance |
74
+
75
+ ### Category Score Calculation
76
+ Each category is scored 0–100 based on the checklist pass rate:
77
+ - ✅ Pass = full points for that item
78
+ - ⚠️ Warning = 50% points (issue exists but not blocking)
79
+ - ❌ Fail = 0 points (blocking issue)
80
+
81
+ **Final Score** = Σ(category_score × category_weight)
82
+
83
+ ---
84
+
85
+ ## Issue Priority Classification
86
+
87
+ ### 🔴 Critical (fix immediately)
88
+ - Blocks indexing entirely (noindex on important pages)
89
+ - Causes penalties (cloaking, hidden text, doorway pages)
90
+ - Security vulnerabilities (no HTTPS, mixed content)
91
+ - Robots.txt blocking critical resources
92
+ - Canonical pointing to wrong URL
93
+ - Broken pages returning 5xx errors
94
+
95
+ ### 🟠 High (fix within 1 week)
96
+ - Missing or duplicate title tags
97
+ - Missing meta descriptions on key pages
98
+ - Multiple H1 tags
99
+ - Broken internal links (404)
100
+ - Missing schema on eligible pages
101
+ - AI crawlers completely blocked
102
+ - CWV in "Poor" range
103
+
104
+ ### 🟡 Medium (fix within 1 month)
105
+ - Images without alt text
106
+ - Suboptimal internal linking
107
+ - Missing hreflang tags on multilingual pages
108
+ - Content below minimum word count thresholds
109
+ - Missing llms.txt file
110
+ - CWV in "Needs Improvement" range
111
+
112
+ ### 🟢 Low (backlog)
113
+ - Optional schema enhancements
114
+ - Minor readability improvements
115
+ - IndexNow implementation
116
+ - Social meta tags (Open Graph, Twitter Cards)
117
+ - Image format optimization (WebP/AVIF)
118
+
119
+ ---
120
+
121
+ ## Auto-Generated Fix Templates
122
+
123
+ When an issue is detected, Chief can generate ready-to-implement fixes:
124
+
125
+ ### Meta Tags Fix
126
+ ```html
127
+ <!-- BEFORE (missing/wrong) -->
128
+ <title>[current or missing]</title>
129
+
130
+ <!-- RECOMMENDED FIX -->
131
+ <title>[Optimized title - max 60 chars] | [Brand]</title>
132
+ <meta name="description" content="[Compelling description - 150-160 chars]">
133
+ ```
134
+
135
+ ### Schema JSON-LD Fix
136
+ Generate from `ref/schema-templates.json` with actual page data filled in.
137
+
138
+ ### robots.txt Improvement
139
+ ```
140
+ # RECOMMENDED robots.txt
141
+ User-agent: *
142
+ Allow: /
143
+ Sitemap: https://[domain]/sitemap.xml
144
+
145
+ # Allow AI search crawlers for visibility
146
+ User-agent: GPTBot
147
+ Allow: /
148
+
149
+ User-agent: ClaudeBot
150
+ Allow: /
151
+
152
+ User-agent: PerplexityBot
153
+ Allow: /
154
+
155
+ # Block AI training-only crawlers (optional)
156
+ User-agent: CCBot
157
+ Disallow: /
158
+
159
+ User-agent: Bytespider
160
+ Disallow: /
161
+ ```
162
+
163
+ ### llms.txt Template
164
+ ```
165
+ # [Site Name]
166
+ > [One-line description of the site]
167
+
168
+ ## Main Pages
169
+ - [Homepage](https://domain.com): [Description]
170
+ - [About](https://domain.com/about): [Description]
171
+ - [Services](https://domain.com/services): [Description]
172
+
173
+ ## Key Information
174
+ - [Important fact 1]
175
+ - [Important fact 2]
176
+ ```
177
+
178
+ ---
179
+
180
+ ## Report Templates
181
+
182
+ ### Full Audit Report
183
+ ```markdown
184
+ # 🏥 SEO Health Report — [Domain]
185
+ **Date**: [YYYY-MM-DD]
186
+ **Engine**: BMAD+ SEO Engine v2.0
187
+ **Pages Analyzed**: [N]
188
+ **Business Type**: [Detected]
189
+
190
+ ---
191
+
192
+ ## Executive Summary
193
+ [2-3 sentence overview of findings for non-technical readers]
194
+
195
+ ## SEO Health Score: XX/100 [Rating]
196
+
197
+ ### Score Breakdown
198
+ | Category | Score | Weight | Weighted |
199
+ |----------|-------|--------|----------|
200
+ | Technical SEO | XX | 20% | XX |
201
+ | Content & E-E-A-T | XX | 22% | XX |
202
+ | On-Page SEO | XX | 18% | XX |
203
+ | Schema | XX | 10% | XX |
204
+ | Performance | XX | 12% | XX |
205
+ | AI Readiness | XX | 12% | XX |
206
+ | Images | XX | 6% | XX |
207
+ | **TOTAL** | | **100%** | **XX** |
208
+
209
+ ---
210
+
211
+ ## Issues Summary
212
+ | Priority | Count | Description |
213
+ |----------|-------|-------------|
214
+ | 🔴 Critical | N | [summary] |
215
+ | 🟠 High | N | [summary] |
216
+ | 🟡 Medium | N | [summary] |
217
+ | 🟢 Low | N | [summary] |
218
+
219
+ ---
220
+
221
+ ## Detailed Findings
222
+ ### Technical SEO (Scout)
223
+ ### Content & E-E-A-T (Judge)
224
+ ### AI Readiness — GEO (Judge)
225
+ ### Schema & Structured Data (Judge)
226
+
227
+ ---
228
+
229
+ ## Action Plan
230
+
231
+ ### Quick Wins (do today)
232
+ 1. [fix] — Impact: High, Effort: Low
233
+
234
+ ### 30-Day Goals
235
+ ### 60-Day Goals
236
+ ### 90-Day Goals
237
+
238
+ ---
239
+
240
+ ## Auto-Generated Fixes
241
+ [Ready-to-implement code blocks for all fixable issues]
242
+
243
+ ---
244
+
245
+ ## Monitoring
246
+ [Comparison with previous audit if available]
247
+
248
+ ---
249
+
250
+ *Report generated by BMAD+ SEO Engine v2.0 — By Oveanet × Laurent Rochetta*
251
+ ```
252
+
253
+ ### Monitoring Report (when history exists)
254
+ ```markdown
255
+ # 📊 SEO Progress Report — [Domain]
256
+ **Current Score**: XX/100 ([+/-N] vs previous)
257
+ **Previous Score**: XX/100 ([date])
258
+
259
+ ### Score Evolution
260
+ | Category | Previous | Current | Change |
261
+ |----------|----------|---------|--------|
262
+ | ... | XX | XX | [+/-N] |
263
+
264
+ ### Issues Resolved: [N]
265
+ ### New Issues Found: [N]
266
+ ### Remaining Issues: [N]
267
+ ```
268
+
269
+ ---
270
+
271
+ ## Monitoring System
272
+
273
+ When history exists in `.bmad-seo/history/`:
274
+ 1. Load previous audit JSON from `.bmad-seo/history/[domain]-[date].json`
275
+ 2. Compare scores category by category
276
+ 3. Track issues: resolved, new, remaining
277
+ 4. Generate trend report with delta indicators
278
+
279
+ ### History Storage Format
280
+ ```json
281
+ {
282
+ "domain": "example.com",
283
+ "date": "2026-03-19",
284
+ "score": 72,
285
+ "categories": { ... },
286
+ "issues": [ ... ]
287
+ }
288
+ ```
289
+
290
+ ---
291
+
292
+ ## Auto-Activation Triggers
293
+
294
+ Activate Chief when detecting keywords: "SEO score", "audit report", "action plan", "roadmap", "quick wins", "fix recommendations", "SEO progress", "monitoring", "compare audit"