bmad-plus 0.3.3 → 0.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 (62) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +12 -56
  3. package/osint-agent-package/skills/bmad-osint-investigate/osint/SKILL.md +452 -452
  4. package/osint-agent-package/skills/bmad-osint-investigate/osint/assets/dossier-template.md +116 -116
  5. package/osint-agent-package/skills/bmad-osint-investigate/osint/references/content-extraction.md +100 -100
  6. package/osint-agent-package/skills/bmad-osint-investigate/osint/references/platforms.md +130 -130
  7. package/osint-agent-package/skills/bmad-osint-investigate/osint/references/psychoprofile.md +69 -69
  8. package/osint-agent-package/skills/bmad-osint-investigate/osint/references/tools.md +281 -281
  9. package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/mcp-client.py +136 -136
  10. package/package.json +1 -1
  11. package/readme-international/README.de.md +1 -1
  12. package/readme-international/README.es.md +1 -1
  13. package/readme-international/README.fr.md +1 -1
  14. package/tools/cli/commands/install.js +74 -46
  15. package/tools/cli/i18n.js +501 -0
  16. package/oveanet-pack/animated-website/DEPLOYMENT.md +0 -104
  17. package/oveanet-pack/animated-website/README.md +0 -63
  18. package/oveanet-pack/animated-website/agent/animated-website-agent.md +0 -325
  19. package/oveanet-pack/animated-website/agent.yaml +0 -63
  20. package/oveanet-pack/animated-website/templates/animated-website-workflow.md +0 -55
  21. package/oveanet-pack/seo-audit-360/DEPLOYMENT.md +0 -115
  22. package/oveanet-pack/seo-audit-360/README.md +0 -66
  23. package/oveanet-pack/seo-audit-360/SKILL.md +0 -171
  24. package/oveanet-pack/seo-audit-360/agent/seo-chief.md +0 -294
  25. package/oveanet-pack/seo-audit-360/agent/seo-judge.md +0 -241
  26. package/oveanet-pack/seo-audit-360/agent/seo-scout.md +0 -171
  27. package/oveanet-pack/seo-audit-360/agent.yaml +0 -70
  28. package/oveanet-pack/seo-audit-360/checklist.md +0 -140
  29. package/oveanet-pack/seo-audit-360/hooks/seo-check.sh +0 -95
  30. package/oveanet-pack/seo-audit-360/pagespeed-playbook.md +0 -320
  31. package/oveanet-pack/seo-audit-360/ref/audit-schema.json +0 -187
  32. package/oveanet-pack/seo-audit-360/ref/cwv-thresholds.md +0 -87
  33. package/oveanet-pack/seo-audit-360/ref/eeat-criteria.md +0 -123
  34. package/oveanet-pack/seo-audit-360/ref/geo-signals.md +0 -167
  35. package/oveanet-pack/seo-audit-360/ref/hreflang-rules.md +0 -153
  36. package/oveanet-pack/seo-audit-360/ref/quality-gates.md +0 -133
  37. package/oveanet-pack/seo-audit-360/ref/schema-catalog.md +0 -91
  38. package/oveanet-pack/seo-audit-360/ref/schema-templates.json +0 -356
  39. package/oveanet-pack/seo-audit-360/requirements.txt +0 -14
  40. package/oveanet-pack/seo-audit-360/scripts/__pycache__/seo_crawl.cpython-314.pyc +0 -0
  41. package/oveanet-pack/seo-audit-360/scripts/__pycache__/seo_parse.cpython-314.pyc +0 -0
  42. package/oveanet-pack/seo-audit-360/scripts/install.ps1 +0 -53
  43. package/oveanet-pack/seo-audit-360/scripts/install.sh +0 -48
  44. package/oveanet-pack/seo-audit-360/scripts/seo_apis.py +0 -464
  45. package/oveanet-pack/seo-audit-360/scripts/seo_crawl.py +0 -282
  46. package/oveanet-pack/seo-audit-360/scripts/seo_fetch.py +0 -231
  47. package/oveanet-pack/seo-audit-360/scripts/seo_parse.py +0 -255
  48. package/oveanet-pack/seo-audit-360/scripts/seo_report.py +0 -403
  49. package/oveanet-pack/seo-audit-360/scripts/seo_screenshot.py +0 -202
  50. package/oveanet-pack/seo-audit-360/templates/seo-audit-workflow.md +0 -241
  51. package/oveanet-pack/seo-audit-360/tests/__pycache__/test_crawl.cpython-314-pytest-9.0.2.pyc +0 -0
  52. package/oveanet-pack/seo-audit-360/tests/__pycache__/test_parse.cpython-314-pytest-9.0.2.pyc +0 -0
  53. package/oveanet-pack/seo-audit-360/tests/fixtures/sample_page.html +0 -62
  54. package/oveanet-pack/seo-audit-360/tests/test_apis.py +0 -75
  55. package/oveanet-pack/seo-audit-360/tests/test_crawl.py +0 -121
  56. package/oveanet-pack/seo-audit-360/tests/test_fetch.py +0 -70
  57. package/oveanet-pack/seo-audit-360/tests/test_parse.py +0 -184
  58. package/oveanet-pack/universal-backup/DEPLOYMENT.md +0 -80
  59. package/oveanet-pack/universal-backup/README.md +0 -58
  60. package/oveanet-pack/universal-backup/agent/backup-agent.md +0 -71
  61. package/oveanet-pack/universal-backup/agent.yaml +0 -45
  62. package/oveanet-pack/universal-backup/templates/backup-workflow.md +0 -51
@@ -1,356 +0,0 @@
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
- }
@@ -1,14 +0,0 @@
1
- # BMAD+ SEO Engine — Python Dependencies
2
- # Install: pip install -r requirements.txt
3
- # Author: Laurent Rochetta
4
-
5
- # Core (required)
6
- requests>=2.31.0
7
- beautifulsoup4>=4.12.0
8
-
9
- # Fast HTML parser (recommended)
10
- lxml>=5.0.0
11
-
12
- # Screenshot capture (optional — only for seo_screenshot.py)
13
- # Uncomment and run: playwright install chromium
14
- # playwright>=1.40.0
@@ -1,53 +0,0 @@
1
- # BMAD+ SEO Engine — Dependency Installer (Windows)
2
- # Author: Laurent Rochetta
3
-
4
- $ErrorActionPreference = "Stop"
5
-
6
- $ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
7
- $ParentDir = Split-Path -Parent $ScriptDir
8
-
9
- Write-Host "🔧 BMAD+ SEO Engine — Installing dependencies..." -ForegroundColor Cyan
10
- Write-Host ""
11
-
12
- # Check Python
13
- $Python = $null
14
- if (Get-Command python -ErrorAction SilentlyContinue) {
15
- $Python = "python"
16
- } elseif (Get-Command py -ErrorAction SilentlyContinue) {
17
- $Python = "py -3"
18
- } else {
19
- Write-Host "❌ Python not found. Please install Python 3.10+" -ForegroundColor Red
20
- exit 1
21
- }
22
-
23
- Write-Host "Using: $(& $Python --version)"
24
-
25
- # Create venv if not exists
26
- $VenvPath = Join-Path $ParentDir ".venv"
27
- if (-not (Test-Path $VenvPath)) {
28
- Write-Host "📦 Creating virtual environment..."
29
- & $Python -m venv $VenvPath
30
- }
31
-
32
- # Activate venv
33
- $ActivateScript = Join-Path $VenvPath "Scripts\Activate.ps1"
34
- if (Test-Path $ActivateScript) {
35
- & $ActivateScript
36
- }
37
-
38
- # Install dependencies
39
- Write-Host "📥 Installing core dependencies..."
40
- $RequirementsPath = Join-Path $ParentDir "requirements.txt"
41
- & $Python -m pip install --quiet -r $RequirementsPath
42
-
43
- Write-Host ""
44
- Write-Host "✅ Core dependencies installed!" -ForegroundColor Green
45
- Write-Host ""
46
- Write-Host "Optional: To enable screenshots (seo_screenshot.py):"
47
- Write-Host " pip install playwright; playwright install chromium"
48
- Write-Host ""
49
- Write-Host "Set your Google API key for live data:"
50
- Write-Host ' $env:GOOGLE_API_KEY = "your_key_here"'
51
- Write-Host " Get one free: https://console.cloud.google.com/apis/credentials"
52
- Write-Host ""
53
- Write-Host "🚀 Ready! — BMAD+ SEO Engine by Laurent Rochetta" -ForegroundColor Cyan
@@ -1,48 +0,0 @@
1
- #!/bin/bash
2
- # BMAD+ SEO Engine — Dependency Installer (Linux/macOS)
3
- # Author: Laurent Rochetta
4
-
5
- set -e
6
-
7
- SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
8
- PARENT_DIR="$(dirname "$SCRIPT_DIR")"
9
-
10
- echo "🔧 BMAD+ SEO Engine — Installing dependencies..."
11
- echo ""
12
-
13
- # Check Python
14
- if command -v python3 &>/dev/null; then
15
- PYTHON=python3
16
- elif command -v python &>/dev/null; then
17
- PYTHON=python
18
- else
19
- echo "❌ Python not found. Please install Python 3.10+"
20
- exit 1
21
- fi
22
-
23
- echo "Using: $($PYTHON --version)"
24
-
25
- # Create venv if not exists
26
- if [ ! -d "$PARENT_DIR/.venv" ]; then
27
- echo "📦 Creating virtual environment..."
28
- $PYTHON -m venv "$PARENT_DIR/.venv"
29
- fi
30
-
31
- # Activate venv
32
- source "$PARENT_DIR/.venv/bin/activate" 2>/dev/null || true
33
-
34
- # Install core dependencies
35
- echo "📥 Installing core dependencies..."
36
- $PYTHON -m pip install --quiet -r "$PARENT_DIR/requirements.txt"
37
-
38
- echo ""
39
- echo "✅ Core dependencies installed!"
40
- echo ""
41
- echo "Optional: To enable screenshots (seo_screenshot.py):"
42
- echo " pip install playwright && playwright install chromium"
43
- echo ""
44
- echo "Set your Google API key for live data:"
45
- echo " export GOOGLE_API_KEY=your_key_here"
46
- echo " Get one free: https://console.cloud.google.com/apis/credentials"
47
- echo ""
48
- echo "🚀 Ready! — BMAD+ SEO Engine by Laurent Rochetta"