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,116 +1,116 @@
1
- 🔍 **OSINT: {FULL_NAME}**
2
- *{one_line_summary}*
3
-
4
- ---
5
-
6
- **контакты и соцсети**
7
- - telegram: {handle} {status}
8
- - linkedin: {url} {status}
9
- - instagram: {handle} {status}
10
- - facebook: {url} {status}
11
- - email: {email} {status}
12
- - телефон: {phone} {status}
13
- - другое: {any_other}
14
-
15
- ---
16
-
17
- **биография**
18
-
19
- - дата рождения: {dob_only_if_confirmed_A_or_B}
20
- - возраст: {age}
21
- - место рождения: {birthplace}
22
- - образование: {education}
23
-
24
- **карьера:**
25
- - **{year}** — {role}, {company} ({age_at_time})
26
- - **{year}** — {role}, {company}
27
- - ...
28
- - **сейчас** — {current_role}, {current_company}
29
-
30
- паттерн карьеры: {career_pattern_description}
31
-
32
- ---
33
-
34
- **текущая ситуация**
35
- - роль: {current_role}
36
- - компания: {current_company} — {company_description}
37
- - локация: {current_location}
38
-
39
- ---
40
-
41
- **из переписки** 🔒
42
- *секция на основе Telegram/email — не для внешнего использования*
43
-
44
- - характер общения: {formal_informal_emoji_patterns}
45
- - темы: {what_they_discuss_ask_about}
46
- - стиль: {response_speed_active_hours_language}
47
- - контекст отношений: {cold_warm_hot_business_personal}
48
- - упомянутые люди: {colleagues_partners_from_conversations}
49
- - {any_deal_terms_pricing_discussed}
50
-
51
- ---
52
-
53
- **психопрофиль**
54
-
55
- **MBTI: {type} ({confidence})**
56
- - E/I: {assessment} — {evidence}
57
- - S/N: {assessment} — {evidence}
58
- - T/F: {assessment} — {evidence}
59
- - J/P: {assessment} — {evidence}
60
-
61
- **стиль коммуникации:**
62
- - голос: {voice_description}
63
- - ритм: {rhythm_description}
64
- - эмодзи: {emoji_pattern}
65
- - формальный vs неформальный: {delta_between_linkedin_and_telegram}
66
- - ключевые маркеры: {markers}
67
-
68
- **ценности (по действиям):**
69
- - {value_1}
70
- - {value_2}
71
- - {value_3}
72
-
73
- ---
74
-
75
- **личное**
76
- - семья: {family_only_confirmed}
77
- - питомцы: {pets_only_confirmed}
78
- - увлечения: {hobbies}
79
- - стиль жизни: {lifestyle}
80
-
81
- ---
82
-
83
- **наблюдения**
84
- - {observation_1_contradictions_or_patterns}
85
- - {observation_2}
86
- - {observation_3}
87
-
88
- ---
89
-
90
- **карта достоверности**
91
- - A (подтверждено, 2+ источника): {list_of_A_facts}
92
- - B (вероятно, 1 надёжный источник): {list_of_B_facts}
93
- - C (выведено, косвенные данные): {list_of_C_facts}
94
- - D (не подтверждено): {list_of_D_facts}
95
-
96
- ---
97
-
98
- **точки входа**
99
- - {approach_1_shared_connections_or_topics}
100
- - {approach_2}
101
- - {approach_3}
102
-
103
- ---
104
-
105
- **пробелы**
106
- - {gap_1_what_not_found}
107
- - {gap_2}
108
-
109
- ---
110
-
111
- **метрики**
112
- - depth score: {score}/10
113
- - coverage: {passed}/{total} checks
114
- - источников: {source_count} ({source_types_list})
115
- - внутренняя разведка: {yes_no_what_checked}
116
- - потрачено: ${total_cost}
1
+ 🔍 **OSINT: {FULL_NAME}**
2
+ *{one_line_summary}*
3
+
4
+ ---
5
+
6
+ **контакты и соцсети**
7
+ - telegram: {handle} {status}
8
+ - linkedin: {url} {status}
9
+ - instagram: {handle} {status}
10
+ - facebook: {url} {status}
11
+ - email: {email} {status}
12
+ - телефон: {phone} {status}
13
+ - другое: {any_other}
14
+
15
+ ---
16
+
17
+ **биография**
18
+
19
+ - дата рождения: {dob_only_if_confirmed_A_or_B}
20
+ - возраст: {age}
21
+ - место рождения: {birthplace}
22
+ - образование: {education}
23
+
24
+ **карьера:**
25
+ - **{year}** — {role}, {company} ({age_at_time})
26
+ - **{year}** — {role}, {company}
27
+ - ...
28
+ - **сейчас** — {current_role}, {current_company}
29
+
30
+ паттерн карьеры: {career_pattern_description}
31
+
32
+ ---
33
+
34
+ **текущая ситуация**
35
+ - роль: {current_role}
36
+ - компания: {current_company} — {company_description}
37
+ - локация: {current_location}
38
+
39
+ ---
40
+
41
+ **из переписки** 🔒
42
+ *секция на основе Telegram/email — не для внешнего использования*
43
+
44
+ - характер общения: {formal_informal_emoji_patterns}
45
+ - темы: {what_they_discuss_ask_about}
46
+ - стиль: {response_speed_active_hours_language}
47
+ - контекст отношений: {cold_warm_hot_business_personal}
48
+ - упомянутые люди: {colleagues_partners_from_conversations}
49
+ - {any_deal_terms_pricing_discussed}
50
+
51
+ ---
52
+
53
+ **психопрофиль**
54
+
55
+ **MBTI: {type} ({confidence})**
56
+ - E/I: {assessment} — {evidence}
57
+ - S/N: {assessment} — {evidence}
58
+ - T/F: {assessment} — {evidence}
59
+ - J/P: {assessment} — {evidence}
60
+
61
+ **стиль коммуникации:**
62
+ - голос: {voice_description}
63
+ - ритм: {rhythm_description}
64
+ - эмодзи: {emoji_pattern}
65
+ - формальный vs неформальный: {delta_between_linkedin_and_telegram}
66
+ - ключевые маркеры: {markers}
67
+
68
+ **ценности (по действиям):**
69
+ - {value_1}
70
+ - {value_2}
71
+ - {value_3}
72
+
73
+ ---
74
+
75
+ **личное**
76
+ - семья: {family_only_confirmed}
77
+ - питомцы: {pets_only_confirmed}
78
+ - увлечения: {hobbies}
79
+ - стиль жизни: {lifestyle}
80
+
81
+ ---
82
+
83
+ **наблюдения**
84
+ - {observation_1_contradictions_or_patterns}
85
+ - {observation_2}
86
+ - {observation_3}
87
+
88
+ ---
89
+
90
+ **карта достоверности**
91
+ - A (подтверждено, 2+ источника): {list_of_A_facts}
92
+ - B (вероятно, 1 надёжный источник): {list_of_B_facts}
93
+ - C (выведено, косвенные данные): {list_of_C_facts}
94
+ - D (не подтверждено): {list_of_D_facts}
95
+
96
+ ---
97
+
98
+ **точки входа**
99
+ - {approach_1_shared_connections_or_topics}
100
+ - {approach_2}
101
+ - {approach_3}
102
+
103
+ ---
104
+
105
+ **пробелы**
106
+ - {gap_1_what_not_found}
107
+ - {gap_2}
108
+
109
+ ---
110
+
111
+ **метрики**
112
+ - depth score: {score}/10
113
+ - coverage: {passed}/{total} checks
114
+ - источников: {source_count} ({source_types_list})
115
+ - внутренняя разведка: {yes_no_what_checked}
116
+ - потрачено: ${total_cost}
@@ -1,100 +1,100 @@
1
- # Content Extraction Guide
2
-
3
- When you find a content platform (YouTube, podcast, blog, conference talks) -
4
- **extract everything immediately.** Don't just note the URL and move on.
5
-
6
- ## Principle
7
-
8
- Content platforms are the richest source for psychoprofile and real personality.
9
- LinkedIn is a resume. Instagram is a highlight reel. YouTube/podcasts are unfiltered.
10
-
11
- A person talking for 20 minutes on camera reveals more than 100 LinkedIn posts.
12
-
13
- ## YouTube
14
-
15
- ### Discovery
16
- ```bash
17
- # Search for channel
18
- web_search "site:youtube.com <Name> <context>"
19
- bash skills/osint/scripts/exa.sh search "<Name> youtube channel"
20
- ```
21
-
22
- ### Channel metadata
23
- ```bash
24
- # Fetch channel page - subscriber count, video count, about
25
- web_fetch "https://www.youtube.com/@<handle>"
26
- # Or channel page
27
- bash skills/osint/scripts/jina.sh read "https://www.youtube.com/@<handle>/about"
28
- ```
29
-
30
- ### Transcript extraction (CRITICAL)
31
- Pick 3-5 most viewed or most recent videos. Extract transcripts:
32
- ```bash
33
- # Fetch video page - title, description, comments
34
- web_fetch "https://www.youtube.com/watch?v=<id>"
35
- # Get auto-generated transcript via Jina
36
- bash skills/osint/scripts/jina.sh read "https://www.youtube.com/watch?v=<id>"
37
- ```
38
-
39
- If transcripts unavailable via fetch, try:
40
- ```bash
41
- bash skills/osint/scripts/brightdata.sh scrape "https://www.youtube.com/watch?v=<id>"
42
- ```
43
-
44
- ### What to extract from YouTube:
45
- - **Topics** - what they talk about = what they care about
46
- - **Speaking style** - formal/casual, speed, filler words, humor
47
- - **Vocabulary** - jargon level, code-switching between languages
48
- - **Self-presentation** - humble/confident/arrogant, claims vs evidence
49
- - **Recurring themes** - across videos, what keeps coming back
50
- - **Guest interactions** - how they treat guests, who they invite
51
- - **Comment section** - audience demographics, sentiment
52
- - **Upload frequency** - consistency = discipline trait
53
- - **Video titles** - clickbait vs informative = marketing approach
54
- - **Playlists** - how they organize knowledge = thinking structure
55
-
56
- ### Budget: 3-5 video transcripts via Jina = ~$0.02-0.05
57
-
58
- ## Podcasts / Audio Appearances
59
-
60
- Search for podcast appearances:
61
- ```bash
62
- web_search "<Name> podcast interview"
63
- bash skills/osint/scripts/exa.sh search "<Name> podcast episode guest"
64
- ```
65
-
66
- Podcast interviews are gold - the host asks personal questions.
67
- Look for: origin story, career pivots, failures mentioned, mentors named.
68
-
69
- ## Blog / Personal Website
70
-
71
- ```bash
72
- web_fetch "<personal-site>"
73
- bash skills/osint/scripts/jina.sh read "<blog-url>"
74
- # Crawl multiple pages
75
- bash skills/osint/scripts/exa.sh crawl "<blog-url>"
76
- ```
77
-
78
- Extract: writing style, topics, frequency, tone evolution over time.
79
-
80
- ## Conference Talks / Speaker Bios
81
-
82
- ```bash
83
- web_search "<Name> speaker conference talk"
84
- web_search "site:youtube.com <Name> conference keynote"
85
- ```
86
-
87
- Speaker bios at conferences are often more honest than LinkedIn -
88
- written for specific audience, include unique details.
89
-
90
- ## Rule: Immediate Deep Extraction
91
-
92
- When you discover ANY content platform during Phase 1-2:
93
-
94
- 1. **STOP** current task
95
- 2. **Extract** 3-5 pieces of content immediately
96
- 3. **Analyze** for psychoprofile signals
97
- 4. **Resume** original task with enriched data
98
-
99
- Do NOT bookmark for later. Later = never.
100
- The insight from 3 YouTube transcripts outweighs 10 LinkedIn connections.
1
+ # Content Extraction Guide
2
+
3
+ When you find a content platform (YouTube, podcast, blog, conference talks) -
4
+ **extract everything immediately.** Don't just note the URL and move on.
5
+
6
+ ## Principle
7
+
8
+ Content platforms are the richest source for psychoprofile and real personality.
9
+ LinkedIn is a resume. Instagram is a highlight reel. YouTube/podcasts are unfiltered.
10
+
11
+ A person talking for 20 minutes on camera reveals more than 100 LinkedIn posts.
12
+
13
+ ## YouTube
14
+
15
+ ### Discovery
16
+ ```bash
17
+ # Search for channel
18
+ web_search "site:youtube.com <Name> <context>"
19
+ bash skills/osint/scripts/exa.sh search "<Name> youtube channel"
20
+ ```
21
+
22
+ ### Channel metadata
23
+ ```bash
24
+ # Fetch channel page - subscriber count, video count, about
25
+ web_fetch "https://www.youtube.com/@<handle>"
26
+ # Or channel page
27
+ bash skills/osint/scripts/jina.sh read "https://www.youtube.com/@<handle>/about"
28
+ ```
29
+
30
+ ### Transcript extraction (CRITICAL)
31
+ Pick 3-5 most viewed or most recent videos. Extract transcripts:
32
+ ```bash
33
+ # Fetch video page - title, description, comments
34
+ web_fetch "https://www.youtube.com/watch?v=<id>"
35
+ # Get auto-generated transcript via Jina
36
+ bash skills/osint/scripts/jina.sh read "https://www.youtube.com/watch?v=<id>"
37
+ ```
38
+
39
+ If transcripts unavailable via fetch, try:
40
+ ```bash
41
+ bash skills/osint/scripts/brightdata.sh scrape "https://www.youtube.com/watch?v=<id>"
42
+ ```
43
+
44
+ ### What to extract from YouTube:
45
+ - **Topics** - what they talk about = what they care about
46
+ - **Speaking style** - formal/casual, speed, filler words, humor
47
+ - **Vocabulary** - jargon level, code-switching between languages
48
+ - **Self-presentation** - humble/confident/arrogant, claims vs evidence
49
+ - **Recurring themes** - across videos, what keeps coming back
50
+ - **Guest interactions** - how they treat guests, who they invite
51
+ - **Comment section** - audience demographics, sentiment
52
+ - **Upload frequency** - consistency = discipline trait
53
+ - **Video titles** - clickbait vs informative = marketing approach
54
+ - **Playlists** - how they organize knowledge = thinking structure
55
+
56
+ ### Budget: 3-5 video transcripts via Jina = ~$0.02-0.05
57
+
58
+ ## Podcasts / Audio Appearances
59
+
60
+ Search for podcast appearances:
61
+ ```bash
62
+ web_search "<Name> podcast interview"
63
+ bash skills/osint/scripts/exa.sh search "<Name> podcast episode guest"
64
+ ```
65
+
66
+ Podcast interviews are gold - the host asks personal questions.
67
+ Look for: origin story, career pivots, failures mentioned, mentors named.
68
+
69
+ ## Blog / Personal Website
70
+
71
+ ```bash
72
+ web_fetch "<personal-site>"
73
+ bash skills/osint/scripts/jina.sh read "<blog-url>"
74
+ # Crawl multiple pages
75
+ bash skills/osint/scripts/exa.sh crawl "<blog-url>"
76
+ ```
77
+
78
+ Extract: writing style, topics, frequency, tone evolution over time.
79
+
80
+ ## Conference Talks / Speaker Bios
81
+
82
+ ```bash
83
+ web_search "<Name> speaker conference talk"
84
+ web_search "site:youtube.com <Name> conference keynote"
85
+ ```
86
+
87
+ Speaker bios at conferences are often more honest than LinkedIn -
88
+ written for specific audience, include unique details.
89
+
90
+ ## Rule: Immediate Deep Extraction
91
+
92
+ When you discover ANY content platform during Phase 1-2:
93
+
94
+ 1. **STOP** current task
95
+ 2. **Extract** 3-5 pieces of content immediately
96
+ 3. **Analyze** for psychoprofile signals
97
+ 4. **Resume** original task with enriched data
98
+
99
+ Do NOT bookmark for later. Later = never.
100
+ The insight from 3 YouTube transcripts outweighs 10 LinkedIn connections.