bmad-plus 0.9.0 → 0.9.2

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 (192) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/LICENSE +21 -21
  3. package/README.md +106 -86
  4. package/osint-agent-package/README.md +88 -88
  5. package/osint-agent-package/SETUP_KEYS.md +108 -108
  6. package/osint-agent-package/agents/osint-investigator.md +80 -80
  7. package/osint-agent-package/install.ps1 +87 -87
  8. package/osint-agent-package/install.sh +76 -76
  9. package/osint-agent-package/skills/bmad-osint-investigate/SKILL.md +147 -147
  10. package/osint-agent-package/skills/bmad-osint-investigate/osint/references/enrichment-databases-fr.md +148 -148
  11. package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/_http.py +101 -101
  12. package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/apify.py +266 -266
  13. package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/brightdata.py +101 -101
  14. package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/diagnose.py +141 -141
  15. package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/exa.py +79 -79
  16. package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/jina.py +71 -71
  17. package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/parallel.py +85 -85
  18. package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/perplexity.py +102 -102
  19. package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/tavily.py +72 -72
  20. package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/volley.py +208 -208
  21. package/osint-agent-package/skills/bmad-osint-investigator/SKILL.md +15 -15
  22. package/package.json +30 -3
  23. package/readme-international/README.de.md +8 -3
  24. package/readme-international/README.es.md +8 -3
  25. package/readme-international/README.fr.md +8 -3
  26. package/src/bmad-plus/agents/agent-architect-dev/SKILL.md +96 -96
  27. package/src/bmad-plus/agents/agent-architect-dev/bmad-skill-manifest.yaml +13 -13
  28. package/src/bmad-plus/agents/agent-maker/SKILL.md +201 -201
  29. package/src/bmad-plus/agents/agent-maker/bmad-skill-manifest.yaml +13 -13
  30. package/src/bmad-plus/agents/agent-orchestrator/SKILL.md +137 -137
  31. package/src/bmad-plus/agents/agent-orchestrator/bmad-skill-manifest.yaml +13 -13
  32. package/src/bmad-plus/agents/agent-quality/SKILL.md +83 -83
  33. package/src/bmad-plus/agents/agent-quality/bmad-skill-manifest.yaml +13 -13
  34. package/src/bmad-plus/agents/agent-shadow/SKILL.md +71 -71
  35. package/src/bmad-plus/agents/agent-shadow/bmad-skill-manifest.yaml +13 -13
  36. package/src/bmad-plus/agents/agent-strategist/SKILL.md +80 -80
  37. package/src/bmad-plus/agents/agent-strategist/bmad-skill-manifest.yaml +13 -13
  38. package/src/bmad-plus/data/role-triggers.yaml +209 -209
  39. package/src/bmad-plus/module-help.csv +10 -10
  40. package/src/bmad-plus/packs/pack-memory/README.md +106 -106
  41. package/src/bmad-plus/packs/pack-memory/memory-orchestrator.md +79 -79
  42. package/src/bmad-plus/packs/pack-memory/shared/karpathy-guardrails.md +86 -86
  43. package/src/bmad-plus/packs/pack-memory/shared/memory-protocol.md +143 -143
  44. package/src/bmad-plus/packs/pack-memory/templates/context.md +39 -39
  45. package/src/bmad-plus/packs/pack-memory/templates/decisions.md +25 -25
  46. package/src/bmad-plus/packs/pack-memory/templates/identity.yaml +39 -39
  47. package/src/bmad-plus/packs/pack-memory/templates/lessons.md +31 -31
  48. package/src/bmad-plus/packs/pack-memory/templates/patterns.md +24 -24
  49. package/src/bmad-plus/packs/pack-memory/templates/session-handoff.md +25 -25
  50. package/src/bmad-plus/packs/pack-memory/zecher-agent.md +157 -157
  51. package/src/bmad-plus/packs/pack-seo/bmad-skill-manifest.yaml +13 -13
  52. package/src/bmad-plus/packs/pack-shield/README.md +110 -110
  53. package/src/bmad-plus/packs/pack-shield/SKILL.md +82 -82
  54. package/src/bmad-plus/packs/pack-shield/categories/accessibility-esg/csrd-agent.md +251 -251
  55. package/src/bmad-plus/packs/pack-shield/categories/accessibility-esg/section508-agent.md +168 -168
  56. package/src/bmad-plus/packs/pack-shield/categories/accessibility-esg/wcag-agent.md +190 -190
  57. package/src/bmad-plus/packs/pack-shield/categories/ai-governance/eu-ai-act-agent.md +86 -86
  58. package/src/bmad-plus/packs/pack-shield/categories/ai-governance/iso42001-agent.md +240 -240
  59. package/src/bmad-plus/packs/pack-shield/categories/ai-governance/nist-ai-rmf-agent.md +122 -122
  60. package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/cis-controls-agent.md +210 -210
  61. package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/ism-agent.md +139 -139
  62. package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/iso27001-agent.md +156 -156
  63. package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/nis2-agent.md +72 -72
  64. package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/nist-800-53-agent.md +239 -239
  65. package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/nist-csf-agent.md +207 -207
  66. package/src/bmad-plus/packs/pack-shield/categories/data-privacy/ccpa-agent.md +94 -94
  67. package/src/bmad-plus/packs/pack-shield/categories/data-privacy/dpdpa-agent.md +136 -136
  68. package/src/bmad-plus/packs/pack-shield/categories/data-privacy/gdpr-agent.md +296 -296
  69. package/src/bmad-plus/packs/pack-shield/categories/data-privacy/iso27701-agent.md +134 -134
  70. package/src/bmad-plus/packs/pack-shield/categories/data-privacy/lgpd-agent.md +129 -129
  71. package/src/bmad-plus/packs/pack-shield/categories/defense-export/cmmc-agent.md +116 -116
  72. package/src/bmad-plus/packs/pack-shield/categories/defense-export/ear-agent.md +261 -261
  73. package/src/bmad-plus/packs/pack-shield/categories/defense-export/itar-agent.md +191 -191
  74. package/src/bmad-plus/packs/pack-shield/categories/defense-export/tsa-agent.md +356 -356
  75. package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/dora-agent.md +499 -499
  76. package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/fedramp-agent.md +236 -236
  77. package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/hipaa-agent.md +162 -162
  78. package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/pci-dss-agent.md +228 -228
  79. package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/soc2-agent.md +255 -255
  80. package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/swift-csp-agent.md +153 -153
  81. package/src/bmad-plus/packs/pack-shield/categories/workflows/ai-act-classifier.md +131 -131
  82. package/src/bmad-plus/packs/pack-shield/categories/workflows/ai-act-fria.md +155 -155
  83. package/src/bmad-plus/packs/pack-shield/categories/workflows/ai-act-incidents.md +187 -187
  84. package/src/bmad-plus/packs/pack-shield/categories/workflows/ai-act-roles.md +113 -113
  85. package/src/bmad-plus/packs/pack-shield/categories/workflows/breach-sentinel.md +197 -197
  86. package/src/bmad-plus/packs/pack-shield/categories/workflows/cookie-policy-gen.md +180 -180
  87. package/src/bmad-plus/packs/pack-shield/categories/workflows/dpia-sentinel.md +235 -235
  88. package/src/bmad-plus/packs/pack-shield/categories/workflows/legitimate-interest.md +159 -159
  89. package/src/bmad-plus/packs/pack-shield/categories/workflows/privacy-advisor.md +133 -133
  90. package/src/bmad-plus/packs/pack-shield/categories/workflows/privacy-notice-gen.md +160 -160
  91. package/src/bmad-plus/packs/pack-shield/categories/workflows/privacy-policy-gen.md +135 -135
  92. package/src/bmad-plus/packs/pack-shield/references/ccpa/ccpa-gdpr-comparison.md +117 -117
  93. package/src/bmad-plus/packs/pack-shield/references/ccpa/consumer-rights-workflows.md +177 -177
  94. package/src/bmad-plus/packs/pack-shield/references/cis-controls/framework-mappings.md +162 -162
  95. package/src/bmad-plus/packs/pack-shield/references/cis-controls/implementation-guidance.md +235 -235
  96. package/src/bmad-plus/packs/pack-shield/references/cis-controls/safeguards-detail.md +252 -252
  97. package/src/bmad-plus/packs/pack-shield/references/cmmc/cmmc-assessment.md +170 -170
  98. package/src/bmad-plus/packs/pack-shield/references/cmmc/cmmc-levels.md +113 -113
  99. package/src/bmad-plus/packs/pack-shield/references/cmmc/cmmc-practices.md +211 -211
  100. package/src/bmad-plus/packs/pack-shield/references/csrd/compliance-program.md +281 -281
  101. package/src/bmad-plus/packs/pack-shield/references/csrd/double-materiality.md +253 -253
  102. package/src/bmad-plus/packs/pack-shield/references/csrd/esrs-standards.md +401 -401
  103. package/src/bmad-plus/packs/pack-shield/references/dora/article-reference.md +441 -441
  104. package/src/bmad-plus/packs/pack-shield/references/dora/incident-classification.md +297 -297
  105. package/src/bmad-plus/packs/pack-shield/references/dora/rts-its-guide.md +306 -306
  106. package/src/bmad-plus/packs/pack-shield/references/dora/third-party-risk.md +349 -349
  107. package/src/bmad-plus/packs/pack-shield/references/dpdpa/gdpr-comparison.md +173 -173
  108. package/src/bmad-plus/packs/pack-shield/references/dpdpa/rights-and-obligations.md +426 -426
  109. package/src/bmad-plus/packs/pack-shield/references/dpdpa/rules-2025.md +599 -599
  110. package/src/bmad-plus/packs/pack-shield/references/dpdpa/sections-reference.md +319 -319
  111. package/src/bmad-plus/packs/pack-shield/references/ear/ccl-eccn-guide.md +250 -250
  112. package/src/bmad-plus/packs/pack-shield/references/ear/compliance-program.md +280 -280
  113. package/src/bmad-plus/packs/pack-shield/references/ear/license-exceptions.md +207 -207
  114. package/src/bmad-plus/packs/pack-shield/references/eu-ai-act/gpai-governance.md +267 -267
  115. package/src/bmad-plus/packs/pack-shield/references/eu-ai-act/obligations-high-risk.md +287 -287
  116. package/src/bmad-plus/packs/pack-shield/references/eu-ai-act/risk-classification.md +182 -182
  117. package/src/bmad-plus/packs/pack-shield/references/fedramp/appendices-guide.md +209 -209
  118. package/src/bmad-plus/packs/pack-shield/references/fedramp/control-families.md +281 -281
  119. package/src/bmad-plus/packs/pack-shield/references/fedramp/poam-guide.md +93 -93
  120. package/src/bmad-plus/packs/pack-shield/references/fedramp/readiness-checklist.md +134 -134
  121. package/src/bmad-plus/packs/pack-shield/references/fedramp/sap-sar-guide.md +86 -86
  122. package/src/bmad-plus/packs/pack-shield/references/fedramp/ssp-guide.md +129 -129
  123. package/src/bmad-plus/packs/pack-shield/references/gdpr-compliance/documents.md +192 -192
  124. package/src/bmad-plus/packs/pack-shield/references/gdpr-compliance/dpa-template.md +121 -121
  125. package/src/bmad-plus/packs/pack-shield/references/gdpr-compliance/privacy-notice.md +87 -87
  126. package/src/bmad-plus/packs/pack-shield/references/hipaa-compliance/breach-notification.md +293 -293
  127. package/src/bmad-plus/packs/pack-shield/references/hipaa-compliance/privacy-rule.md +276 -276
  128. package/src/bmad-plus/packs/pack-shield/references/hipaa-compliance/security-rule.md +299 -299
  129. package/src/bmad-plus/packs/pack-shield/references/hipaa-compliance/templates.md +568 -568
  130. package/src/bmad-plus/packs/pack-shield/references/ism/control-applicability.md +181 -181
  131. package/src/bmad-plus/packs/pack-shield/references/ism/guidelines-overview.md +183 -183
  132. package/src/bmad-plus/packs/pack-shield/references/iso27001/annex-a-2013.md +203 -203
  133. package/src/bmad-plus/packs/pack-shield/references/iso27001/annex-a-2022.md +132 -132
  134. package/src/bmad-plus/packs/pack-shield/references/iso27001/control-mapping.md +153 -153
  135. package/src/bmad-plus/packs/pack-shield/references/iso27701/annex-a-controls.md +195 -195
  136. package/src/bmad-plus/packs/pack-shield/references/iso27701/regulatory-mapping.md +229 -229
  137. package/src/bmad-plus/packs/pack-shield/references/iso27701/transition-guide.md +219 -219
  138. package/src/bmad-plus/packs/pack-shield/references/iso42001/iso42001-ai-risk-assessment.md +258 -258
  139. package/src/bmad-plus/packs/pack-shield/references/iso42001/iso42001-clauses-requirements.md +279 -279
  140. package/src/bmad-plus/packs/pack-shield/references/iso42001/iso42001-controls-annex-a.md +155 -155
  141. package/src/bmad-plus/packs/pack-shield/references/itar/compliance-program.md +174 -174
  142. package/src/bmad-plus/packs/pack-shield/references/itar/licensing-guide.md +146 -146
  143. package/src/bmad-plus/packs/pack-shield/references/itar/usml-categories.md +93 -93
  144. package/src/bmad-plus/packs/pack-shield/references/lgpd/anpd-enforcement.md +147 -147
  145. package/src/bmad-plus/packs/pack-shield/references/lgpd/compliance-program.md +272 -272
  146. package/src/bmad-plus/packs/pack-shield/references/lgpd/lgpd-articles.md +271 -271
  147. package/src/bmad-plus/packs/pack-shield/references/nis2/article-21-measures.md +153 -153
  148. package/src/bmad-plus/packs/pack-shield/references/nis2/iso27001-nis2-mapping.md +68 -68
  149. package/src/bmad-plus/packs/pack-shield/references/nist-800-53/assessment-rmf.md +349 -349
  150. package/src/bmad-plus/packs/pack-shield/references/nist-800-53/baselines-tailoring.md +277 -277
  151. package/src/bmad-plus/packs/pack-shield/references/nist-800-53/control-families.md +450 -450
  152. package/src/bmad-plus/packs/pack-shield/references/nist-ai-rmf/rmf-core.md +361 -361
  153. package/src/bmad-plus/packs/pack-shield/references/nist-ai-rmf/rmf-profiles.md +192 -192
  154. package/src/bmad-plus/packs/pack-shield/references/nist-csf/csf-10-to-20-mapping.md +143 -143
  155. package/src/bmad-plus/packs/pack-shield/references/nist-csf/csf-20-functions-categories.md +278 -278
  156. package/src/bmad-plus/packs/pack-shield/references/nist-csf/csf-implementation-tiers.md +135 -135
  157. package/src/bmad-plus/packs/pack-shield/references/pci-compliance/pci-dss-requirements.md +366 -366
  158. package/src/bmad-plus/packs/pack-shield/references/pci-compliance/pci-dss-saq-guide.md +217 -217
  159. package/src/bmad-plus/packs/pack-shield/references/pci-compliance/pci-dss-v4-changes.md +190 -190
  160. package/src/bmad-plus/packs/pack-shield/references/section-508/wcag-mapping.md +160 -160
  161. package/src/bmad-plus/packs/pack-shield/references/soc2/controls.md +241 -241
  162. package/src/bmad-plus/packs/pack-shield/references/soc2/evidence.md +236 -236
  163. package/src/bmad-plus/packs/pack-shield/references/soc2/policies.md +254 -254
  164. package/src/bmad-plus/packs/pack-shield/references/soc2/vendor.md +276 -276
  165. package/src/bmad-plus/packs/pack-shield/references/swift-csp/swift-assessment.md +202 -202
  166. package/src/bmad-plus/packs/pack-shield/references/swift-csp/swift-controls.md +545 -545
  167. package/src/bmad-plus/packs/pack-shield/references/tsa-compliance/tsa-crmp-requirements.md +359 -359
  168. package/src/bmad-plus/packs/pack-shield/references/tsa-compliance/tsa-directives-overview.md +187 -187
  169. package/src/bmad-plus/packs/pack-shield/references/tsa-compliance/tsa-incident-reporting.md +187 -187
  170. package/src/bmad-plus/packs/pack-shield/references/wcag/criteria-detail.md +510 -510
  171. package/src/bmad-plus/packs/pack-shield/shared/audit-report-template.md +103 -103
  172. package/src/bmad-plus/packs/pack-shield/shared/cross-framework-mapper.md +103 -103
  173. package/src/bmad-plus/packs/pack-shield/shared/gap-analysis-template.md +83 -83
  174. package/src/bmad-plus/packs/pack-shield/shield-orchestrator.md +229 -229
  175. package/src/bmad-plus/packs/pack-shield/upstream-sync.yaml +68 -68
  176. package/src/bmad-plus/skills/bmad-plus-autopilot/SKILL.md +99 -99
  177. package/src/bmad-plus/skills/bmad-plus-parallel/SKILL.md +93 -93
  178. package/src/bmad-plus/skills/bmad-plus-sync/SKILL.md +69 -69
  179. package/tools/cli/bmad-plus-cli.js +5 -3
  180. package/tools/cli/commands/autoconfig.js +23 -59
  181. package/tools/cli/commands/doctor.js +14 -0
  182. package/tools/cli/commands/install.js +29 -128
  183. package/tools/cli/commands/memory.js +1 -0
  184. package/tools/cli/commands/scan.js +44 -42
  185. package/tools/cli/commands/uninstall.js +10 -5
  186. package/tools/cli/commands/update.js +21 -3
  187. package/tools/cli/lib/ide-config.js +259 -0
  188. package/tools/cli/lib/memory-init.js +0 -1
  189. package/tools/cli/lib/pack-copy.js +84 -84
  190. package/tools/cli/lib/packs.js +16 -8
  191. package/tools/cli/lib/stack-detect.js +102 -0
  192. package/tools/cli/lib/validate.js +50 -0
@@ -1,108 +1,108 @@
1
- # 🔑 Configuration des Clés API
2
-
3
- Ce guide explique comment configurer les clés API pour l'agent OSINT.
4
- **Tu n'as besoin que d'UNE SEULE clé pour démarrer.** Plus tu en configures, plus l'agent est puissant.
5
-
6
- ---
7
-
8
- ## Clés API par priorité
9
-
10
- ### 🥇 Essentielles (au moins 1 requise)
11
-
12
- #### JINA_API_KEY ⭐ Recommandée pour commencer
13
- - **Gratuit** : 1 million de tokens à l'inscription
14
- - **Coût** : ~$0.005/requête (search), ~$0.05 (deep)
15
- - **Fonctions** : Recherche web, lecture d'URLs, deep search
16
- - **Inscription** : https://jina.ai/api-key
17
- ```powershell
18
- # Windows (permanent)
19
- [System.Environment]::SetEnvironmentVariable("JINA_API_KEY", "jina_xxxx", "User")
20
- # Session uniquement
21
- $env:JINA_API_KEY = "jina_xxxx"
22
- ```
23
- ```bash
24
- # macOS/Linux
25
- echo 'export JINA_API_KEY="jina_xxxx"' >> ~/.bashrc
26
- source ~/.bashrc
27
- ```
28
-
29
- #### APIFY_API_TOKEN ⭐ Pour le scraping social
30
- - **Gratuit** : $5/mois de crédits offerts
31
- - **Fonctions** : LinkedIn, Instagram, Facebook, TikTok, YouTube, Google Maps (55+ scrapers)
32
- - **Inscription** : https://console.apify.com/account/integrations
33
- ```powershell
34
- [System.Environment]::SetEnvironmentVariable("APIFY_API_TOKEN", "apify_api_xxxx", "User")
35
- ```
36
- ```bash
37
- echo 'export APIFY_API_TOKEN="apify_api_xxxx"' >> ~/.bashrc
38
- ```
39
-
40
- ---
41
-
42
- ### 🥈 Recommandées (améliorent les résultats)
43
-
44
- #### PERPLEXITY_API_KEY
45
- - **Coût** : $0.005/requête (sonar), $0.05 (deep research)
46
- - **Fonctions** : Recherche IA avec citations, deep research
47
- - **Inscription** : https://perplexity.ai/settings/api
48
- ```powershell
49
- [System.Environment]::SetEnvironmentVariable("PERPLEXITY_API_KEY", "pplx-xxxx", "User")
50
- ```
51
-
52
- #### TAVILY_API_KEY
53
- - **Gratuit** : 1000 requêtes/mois
54
- - **Fonctions** : Recherche optimisée pour agents IA, extraction de contenu
55
- - **Inscription** : https://app.tavily.com/home
56
- ```powershell
57
- [System.Environment]::SetEnvironmentVariable("TAVILY_API_KEY", "tvly-xxxx", "User")
58
- ```
59
-
60
- #### EXA_API_KEY
61
- - **Gratuit** : 1000 requêtes/mois
62
- - **Fonctions** : Recherche sémantique, recherche de personnes/entreprises
63
- - **Inscription** : https://dashboard.exa.ai
64
- ```powershell
65
- [System.Environment]::SetEnvironmentVariable("EXA_API_KEY", "exa-xxxx", "User")
66
- ```
67
-
68
- ---
69
-
70
- ### 🥉 Optionnelles (pour aller plus loin)
71
-
72
- #### PARALLEL_API_KEY
73
- - **Gratuit** : Offre de lancement
74
- - **Fonctions** : Recherche IA, extraction de pages complexes (JS, PDF)
75
- - **Inscription** : https://platform.parallel.ai
76
- ```powershell
77
- [System.Environment]::SetEnvironmentVariable("PARALLEL_API_KEY", "xxxx", "User")
78
- ```
79
-
80
- #### BRIGHTDATA_MCP_URL
81
- - **Payant** : ~$0.01/requête
82
- - **Fonctions** : Scraping avec bypass CAPTCHA, Yandex, recherche géolocalisée
83
- - **Inscription** : https://brightdata.com/products/web-scraper/mcp
84
- ```powershell
85
- [System.Environment]::SetEnvironmentVariable("BRIGHTDATA_MCP_URL", "https://mcp.brightdata.com/xxxx", "User")
86
- ```
87
-
88
- ---
89
-
90
- ## Résumé des coûts
91
-
92
- | API | Plan gratuit | Coût par investigation |
93
- |-----|-------------|----------------------|
94
- | Jina | 1M tokens | ~$0.03-0.05 |
95
- | Apify | $5/mois | ~$0.01-0.10 |
96
- | Tavily | 1000 req/mois | ~$0.005-0.01 |
97
- | Exa | 1000 req/mois | ~$0.01-0.03 |
98
- | Perplexity | Pay-as-you-go | ~$0.01-0.05 |
99
- | **Total par investigation** | | **~$0.05-0.30** |
100
-
101
- ## Vérification
102
-
103
- Après avoir configuré tes clés, **redémarre ton terminal** puis lance le diagnostic :
104
- ```
105
- python skills/bmad-osint-investigate/osint/scripts/diagnose.py
106
- ```
107
-
108
- Tu devrais voir tes clés avec un ✅ dans la section "API Tokens".
1
+ # 🔑 Configuration des Clés API
2
+
3
+ Ce guide explique comment configurer les clés API pour l'agent OSINT.
4
+ **Tu n'as besoin que d'UNE SEULE clé pour démarrer.** Plus tu en configures, plus l'agent est puissant.
5
+
6
+ ---
7
+
8
+ ## Clés API par priorité
9
+
10
+ ### 🥇 Essentielles (au moins 1 requise)
11
+
12
+ #### JINA_API_KEY ⭐ Recommandée pour commencer
13
+ - **Gratuit** : 1 million de tokens à l'inscription
14
+ - **Coût** : ~$0.005/requête (search), ~$0.05 (deep)
15
+ - **Fonctions** : Recherche web, lecture d'URLs, deep search
16
+ - **Inscription** : https://jina.ai/api-key
17
+ ```powershell
18
+ # Windows (permanent)
19
+ [System.Environment]::SetEnvironmentVariable("JINA_API_KEY", "jina_xxxx", "User")
20
+ # Session uniquement
21
+ $env:JINA_API_KEY = "jina_xxxx"
22
+ ```
23
+ ```bash
24
+ # macOS/Linux
25
+ echo 'export JINA_API_KEY="jina_xxxx"' >> ~/.bashrc
26
+ source ~/.bashrc
27
+ ```
28
+
29
+ #### APIFY_API_TOKEN ⭐ Pour le scraping social
30
+ - **Gratuit** : $5/mois de crédits offerts
31
+ - **Fonctions** : LinkedIn, Instagram, Facebook, TikTok, YouTube, Google Maps (55+ scrapers)
32
+ - **Inscription** : https://console.apify.com/account/integrations
33
+ ```powershell
34
+ [System.Environment]::SetEnvironmentVariable("APIFY_API_TOKEN", "apify_api_xxxx", "User")
35
+ ```
36
+ ```bash
37
+ echo 'export APIFY_API_TOKEN="apify_api_xxxx"' >> ~/.bashrc
38
+ ```
39
+
40
+ ---
41
+
42
+ ### 🥈 Recommandées (améliorent les résultats)
43
+
44
+ #### PERPLEXITY_API_KEY
45
+ - **Coût** : $0.005/requête (sonar), $0.05 (deep research)
46
+ - **Fonctions** : Recherche IA avec citations, deep research
47
+ - **Inscription** : https://perplexity.ai/settings/api
48
+ ```powershell
49
+ [System.Environment]::SetEnvironmentVariable("PERPLEXITY_API_KEY", "pplx-xxxx", "User")
50
+ ```
51
+
52
+ #### TAVILY_API_KEY
53
+ - **Gratuit** : 1000 requêtes/mois
54
+ - **Fonctions** : Recherche optimisée pour agents IA, extraction de contenu
55
+ - **Inscription** : https://app.tavily.com/home
56
+ ```powershell
57
+ [System.Environment]::SetEnvironmentVariable("TAVILY_API_KEY", "tvly-xxxx", "User")
58
+ ```
59
+
60
+ #### EXA_API_KEY
61
+ - **Gratuit** : 1000 requêtes/mois
62
+ - **Fonctions** : Recherche sémantique, recherche de personnes/entreprises
63
+ - **Inscription** : https://dashboard.exa.ai
64
+ ```powershell
65
+ [System.Environment]::SetEnvironmentVariable("EXA_API_KEY", "exa-xxxx", "User")
66
+ ```
67
+
68
+ ---
69
+
70
+ ### 🥉 Optionnelles (pour aller plus loin)
71
+
72
+ #### PARALLEL_API_KEY
73
+ - **Gratuit** : Offre de lancement
74
+ - **Fonctions** : Recherche IA, extraction de pages complexes (JS, PDF)
75
+ - **Inscription** : https://platform.parallel.ai
76
+ ```powershell
77
+ [System.Environment]::SetEnvironmentVariable("PARALLEL_API_KEY", "xxxx", "User")
78
+ ```
79
+
80
+ #### BRIGHTDATA_MCP_URL
81
+ - **Payant** : ~$0.01/requête
82
+ - **Fonctions** : Scraping avec bypass CAPTCHA, Yandex, recherche géolocalisée
83
+ - **Inscription** : https://brightdata.com/products/web-scraper/mcp
84
+ ```powershell
85
+ [System.Environment]::SetEnvironmentVariable("BRIGHTDATA_MCP_URL", "https://mcp.brightdata.com/xxxx", "User")
86
+ ```
87
+
88
+ ---
89
+
90
+ ## Résumé des coûts
91
+
92
+ | API | Plan gratuit | Coût par investigation |
93
+ |-----|-------------|----------------------|
94
+ | Jina | 1M tokens | ~$0.03-0.05 |
95
+ | Apify | $5/mois | ~$0.01-0.10 |
96
+ | Tavily | 1000 req/mois | ~$0.005-0.01 |
97
+ | Exa | 1000 req/mois | ~$0.01-0.03 |
98
+ | Perplexity | Pay-as-you-go | ~$0.01-0.05 |
99
+ | **Total par investigation** | | **~$0.05-0.30** |
100
+
101
+ ## Vérification
102
+
103
+ Après avoir configuré tes clés, **redémarre ton terminal** puis lance le diagnostic :
104
+ ```
105
+ python skills/bmad-osint-investigate/osint/scripts/diagnose.py
106
+ ```
107
+
108
+ Tu devrais voir tes clés avec un ✅ dans la section "API Tokens".
@@ -1,80 +1,80 @@
1
- ---
2
- name: "osint-investigator"
3
- description: "OSINT Intelligence Analyst Agent"
4
- ---
5
-
6
- You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
7
-
8
- ```xml
9
- <agent id="osint-investigator.agent.yaml" name="Shadow" title="OSINT Intelligence Analyst" icon="🔍" capabilities="OSINT investigation, person research, social media intelligence, psychoprofiling, contact discovery">
10
- <activation critical="MANDATORY">
11
- <step n="1">Load persona from this current agent file (already in context)</step>
12
- <step n="2">🚨 IMMEDIATE ACTION REQUIRED - BEFORE ANY OUTPUT:
13
- - Load and read {project-root}/_bmad/bmm/config.yaml NOW
14
- - Store ALL fields as session variables: {user_name}, {communication_language}, {output_folder}
15
- - VERIFY: If config not loaded, STOP and report error to user
16
- - DO NOT PROCEED to step 3 until config is successfully loaded and variables stored
17
- </step>
18
- <step n="3">Remember: user's name is {user_name}</step>
19
- <step n="4">READ the OSINT skill file at {project-root}/.agents/skills/bmad-osint-investigate/osint/SKILL.md to understand the full investigation pipeline</step>
20
- <step n="5">Run the diagnostic script first if possible: bash {project-root}/.agents/skills/bmad-osint-investigate/osint/scripts/diagnose.sh — report available tools to the user</step>
21
- <step n="6">Show greeting using {user_name} from config, communicate in {communication_language}, then display numbered list of ALL menu items from menu section</step>
22
- <step n="7">Let {user_name} know they can invoke the `bmad-help` skill at any time to get advice on what to do next</step>
23
- <step n="8">STOP and WAIT for user input - do NOT execute menu items automatically - accept number or cmd trigger or fuzzy command match</step>
24
- <step n="9">On user input: Number → process menu item[n] | Text → case-insensitive substring match | Multiple matches → ask user to clarify | No match → show "Not recognized"</step>
25
- <step n="10">When processing a menu item: Check menu-handlers section below - extract any attributes from the selected menu item (exec, tmpl, data, action, multi) and follow the corresponding handler instructions</step>
26
-
27
- <menu-handlers>
28
- <handlers>
29
- <handler type="exec">
30
- When menu item or handler has: exec="path/to/file.md":
31
- 1. Read fully and follow the file at that path
32
- 2. Process the complete file and follow all instructions within it
33
- 3. If there is data="some/path/data-foo.md" with the same item, pass that data path to the executed file as context.
34
- </handler>
35
- </handlers>
36
- </menu-handlers>
37
-
38
- <rules>
39
- <r>ALWAYS communicate in {communication_language} UNLESS contradicted by communication_style.</r>
40
- <r>Stay in character until exit selected</r>
41
- <r>Display Menu items as the item dictates and in the order given.</r>
42
- <r>Load files ONLY when executing a user chosen workflow or a command requires it, EXCEPTION: agent activation step 2 config.yaml</r>
43
- <r>ALL investigation output files should be saved to {output_folder}/osint-reports/ with the target name and date as filename</r>
44
- <r>ALWAYS run diagnose.sh BEFORE any investigation to know which tools/APIs are available</r>
45
- <r>FOLLOW the budget rules: spend ≤$0.50 without asking, ASK permission above that</r>
46
- <r>NEVER hardcode API tokens — always load from environment variables</r>
47
- <r>For each fact discovered, assign a confidence grade: A (3+ sources), B (2 sources), C (1 source), D (unverified)</r>
48
- </rules>
49
- </activation>
50
-
51
- <persona>
52
- <role>Senior OSINT Intelligence Analyst</role>
53
- <identity>Shadow is a systematic intelligence specialist who conducts deep research on individuals. From a name or handle to a scored dossier with psychoprofile, career map, and entry points. Shadow follows a phased pipeline from quick search to deep research, always escalating from cheap to expensive, from fast to thorough.</identity>
54
- <communication_style>Professional but approachable. Uses intelligence terminology. Reports findings in structured, confidence-graded format. Always states source quality and limitations. Speaks in data points and cross-references.</communication_style>
55
- <principles>
56
- - Every fact must be cross-referenced and confidence-graded (A/B/C/D)
57
- - Always check internal intelligence BEFORE going external
58
- - Escalate from free/fast to paid/deep only when needed
59
- - Budget transparency: report costs as you go
60
- - Never fabricate or assume data — only report verified findings
61
- - Respect privacy boundaries — this tool is for legitimate business intelligence
62
- </principles>
63
- </persona>
64
-
65
- <menu>
66
- <item cmd="MH or fuzzy match on menu or help">[MH] Redisplay Menu Help</item>
67
- <item cmd="CH or fuzzy match on chat">[CH] Chat with the Agent about anything</item>
68
- <item cmd="INV or fuzzy match on investigate or research or dossier" exec="skill:bmad-osint-investigate">[INV] 🔍 Full Investigation: Run the complete OSINT pipeline (Phase 0→6) on a person. Produces a scored dossier with psychoprofile.</item>
69
- <item cmd="QS or fuzzy match on quick search or find">[QS] ⚡ Quick Search: Fast multi-engine search on a name/handle. Uses free APIs first (Jina, Parallel, Tavily). Returns links and summaries.</item>
70
- <item cmd="LI or fuzzy match on linkedin">[LI] 💼 LinkedIn Scrape: Extract LinkedIn profile data via Apify (requires APIFY_API_TOKEN).</item>
71
- <item cmd="IG or fuzzy match on instagram">[IG] 📸 Instagram Scrape: Extract Instagram profile data via Apify (requires APIFY_API_TOKEN).</item>
72
- <item cmd="FB or fuzzy match on facebook">[FB] 📘 Facebook Scrape: Extract Facebook profile data via Bright Data MCP (requires BRIGHTDATA_MCP_URL).</item>
73
- <item cmd="PP or fuzzy match on psychoprofile or personality">[PP] 🧠 Psychoprofile: Build MBTI/Big Five personality analysis from existing content (YouTube, blogs, posts).</item>
74
- <item cmd="CE or fuzzy match on contact or email or phone">[CE] 📞 Contact Enrichment: Find email, phone, and other contact info for a person using Apify enrichment actors.</item>
75
- <item cmd="DG or fuzzy match on diagnose or diagnostic or tools">[DG] 🔧 Diagnose Tools: Run diagnose.sh to check which APIs and tools are available.</item>
76
- <item cmd="PM or fuzzy match on party-mode" exec="skill:bmad-party-mode">[PM] Start Party Mode</item>
77
- <item cmd="DA or fuzzy match on exit, leave, goodbye or dismiss agent">[DA] Dismiss Agent</item>
78
- </menu>
79
- </agent>
80
- ```
1
+ ---
2
+ name: "osint-investigator"
3
+ description: "OSINT Intelligence Analyst Agent"
4
+ ---
5
+
6
+ You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
7
+
8
+ ```xml
9
+ <agent id="osint-investigator.agent.yaml" name="Shadow" title="OSINT Intelligence Analyst" icon="🔍" capabilities="OSINT investigation, person research, social media intelligence, psychoprofiling, contact discovery">
10
+ <activation critical="MANDATORY">
11
+ <step n="1">Load persona from this current agent file (already in context)</step>
12
+ <step n="2">🚨 IMMEDIATE ACTION REQUIRED - BEFORE ANY OUTPUT:
13
+ - Load and read {project-root}/_bmad/bmm/config.yaml NOW
14
+ - Store ALL fields as session variables: {user_name}, {communication_language}, {output_folder}
15
+ - VERIFY: If config not loaded, STOP and report error to user
16
+ - DO NOT PROCEED to step 3 until config is successfully loaded and variables stored
17
+ </step>
18
+ <step n="3">Remember: user's name is {user_name}</step>
19
+ <step n="4">READ the OSINT skill file at {project-root}/.agents/skills/bmad-osint-investigate/osint/SKILL.md to understand the full investigation pipeline</step>
20
+ <step n="5">Run the diagnostic script first if possible: bash {project-root}/.agents/skills/bmad-osint-investigate/osint/scripts/diagnose.sh — report available tools to the user</step>
21
+ <step n="6">Show greeting using {user_name} from config, communicate in {communication_language}, then display numbered list of ALL menu items from menu section</step>
22
+ <step n="7">Let {user_name} know they can invoke the `bmad-help` skill at any time to get advice on what to do next</step>
23
+ <step n="8">STOP and WAIT for user input - do NOT execute menu items automatically - accept number or cmd trigger or fuzzy command match</step>
24
+ <step n="9">On user input: Number → process menu item[n] | Text → case-insensitive substring match | Multiple matches → ask user to clarify | No match → show "Not recognized"</step>
25
+ <step n="10">When processing a menu item: Check menu-handlers section below - extract any attributes from the selected menu item (exec, tmpl, data, action, multi) and follow the corresponding handler instructions</step>
26
+
27
+ <menu-handlers>
28
+ <handlers>
29
+ <handler type="exec">
30
+ When menu item or handler has: exec="path/to/file.md":
31
+ 1. Read fully and follow the file at that path
32
+ 2. Process the complete file and follow all instructions within it
33
+ 3. If there is data="some/path/data-foo.md" with the same item, pass that data path to the executed file as context.
34
+ </handler>
35
+ </handlers>
36
+ </menu-handlers>
37
+
38
+ <rules>
39
+ <r>ALWAYS communicate in {communication_language} UNLESS contradicted by communication_style.</r>
40
+ <r>Stay in character until exit selected</r>
41
+ <r>Display Menu items as the item dictates and in the order given.</r>
42
+ <r>Load files ONLY when executing a user chosen workflow or a command requires it, EXCEPTION: agent activation step 2 config.yaml</r>
43
+ <r>ALL investigation output files should be saved to {output_folder}/osint-reports/ with the target name and date as filename</r>
44
+ <r>ALWAYS run diagnose.sh BEFORE any investigation to know which tools/APIs are available</r>
45
+ <r>FOLLOW the budget rules: spend ≤$0.50 without asking, ASK permission above that</r>
46
+ <r>NEVER hardcode API tokens — always load from environment variables</r>
47
+ <r>For each fact discovered, assign a confidence grade: A (3+ sources), B (2 sources), C (1 source), D (unverified)</r>
48
+ </rules>
49
+ </activation>
50
+
51
+ <persona>
52
+ <role>Senior OSINT Intelligence Analyst</role>
53
+ <identity>Shadow is a systematic intelligence specialist who conducts deep research on individuals. From a name or handle to a scored dossier with psychoprofile, career map, and entry points. Shadow follows a phased pipeline from quick search to deep research, always escalating from cheap to expensive, from fast to thorough.</identity>
54
+ <communication_style>Professional but approachable. Uses intelligence terminology. Reports findings in structured, confidence-graded format. Always states source quality and limitations. Speaks in data points and cross-references.</communication_style>
55
+ <principles>
56
+ - Every fact must be cross-referenced and confidence-graded (A/B/C/D)
57
+ - Always check internal intelligence BEFORE going external
58
+ - Escalate from free/fast to paid/deep only when needed
59
+ - Budget transparency: report costs as you go
60
+ - Never fabricate or assume data — only report verified findings
61
+ - Respect privacy boundaries — this tool is for legitimate business intelligence
62
+ </principles>
63
+ </persona>
64
+
65
+ <menu>
66
+ <item cmd="MH or fuzzy match on menu or help">[MH] Redisplay Menu Help</item>
67
+ <item cmd="CH or fuzzy match on chat">[CH] Chat with the Agent about anything</item>
68
+ <item cmd="INV or fuzzy match on investigate or research or dossier" exec="skill:bmad-osint-investigate">[INV] 🔍 Full Investigation: Run the complete OSINT pipeline (Phase 0→6) on a person. Produces a scored dossier with psychoprofile.</item>
69
+ <item cmd="QS or fuzzy match on quick search or find">[QS] ⚡ Quick Search: Fast multi-engine search on a name/handle. Uses free APIs first (Jina, Parallel, Tavily). Returns links and summaries.</item>
70
+ <item cmd="LI or fuzzy match on linkedin">[LI] 💼 LinkedIn Scrape: Extract LinkedIn profile data via Apify (requires APIFY_API_TOKEN).</item>
71
+ <item cmd="IG or fuzzy match on instagram">[IG] 📸 Instagram Scrape: Extract Instagram profile data via Apify (requires APIFY_API_TOKEN).</item>
72
+ <item cmd="FB or fuzzy match on facebook">[FB] 📘 Facebook Scrape: Extract Facebook profile data via Bright Data MCP (requires BRIGHTDATA_MCP_URL).</item>
73
+ <item cmd="PP or fuzzy match on psychoprofile or personality">[PP] 🧠 Psychoprofile: Build MBTI/Big Five personality analysis from existing content (YouTube, blogs, posts).</item>
74
+ <item cmd="CE or fuzzy match on contact or email or phone">[CE] 📞 Contact Enrichment: Find email, phone, and other contact info for a person using Apify enrichment actors.</item>
75
+ <item cmd="DG or fuzzy match on diagnose or diagnostic or tools">[DG] 🔧 Diagnose Tools: Run diagnose.sh to check which APIs and tools are available.</item>
76
+ <item cmd="PM or fuzzy match on party-mode" exec="skill:bmad-party-mode">[PM] Start Party Mode</item>
77
+ <item cmd="DA or fuzzy match on exit, leave, goodbye or dismiss agent">[DA] Dismiss Agent</item>
78
+ </menu>
79
+ </agent>
80
+ ```
@@ -1,87 +1,87 @@
1
- # OSINT Agent — Installation Script (Windows PowerShell)
2
- # Usage: .\install.ps1 [-ProjectRoot "path\to\bmad\project"]
3
-
4
- param(
5
- [string]$ProjectRoot = "."
6
- )
7
-
8
- $ErrorActionPreference = "Stop"
9
- $PackageDir = Split-Path -Parent $MyInvocation.MyCommand.Path
10
-
11
- Write-Host "========================================" -ForegroundColor Cyan
12
- Write-Host " OSINT Agent Installer for BMAD" -ForegroundColor Cyan
13
- Write-Host "========================================" -ForegroundColor Cyan
14
- Write-Host ""
15
-
16
- # Resolve project root
17
- $ProjectRoot = Resolve-Path $ProjectRoot
18
- Write-Host "Project root: $ProjectRoot" -ForegroundColor Yellow
19
-
20
- # Verify BMAD is installed
21
- $bmadDir = Join-Path $ProjectRoot "_bmad\bmm\agents"
22
- if (-not (Test-Path $bmadDir)) {
23
- Write-Host "ERROR: BMAD not found at $bmadDir" -ForegroundColor Red
24
- Write-Host "Make sure BMAD Method is installed in the target project." -ForegroundColor Red
25
- Write-Host "Run: npx bmad-method install" -ForegroundColor Yellow
26
- exit 1
27
- }
28
- Write-Host " BMAD found" -ForegroundColor Green
29
-
30
- # Verify Python
31
- $python = Get-Command python -ErrorAction SilentlyContinue
32
- if (-not $python) {
33
- Write-Host "ERROR: Python not found. Install Python 3.10+" -ForegroundColor Red
34
- exit 1
35
- }
36
- Write-Host " Python found: $($python.Source)" -ForegroundColor Green
37
-
38
- # 1. Copy agent definition
39
- Write-Host ""
40
- Write-Host "1. Installing agent definition..." -ForegroundColor Cyan
41
- $agentSrc = Join-Path $PackageDir "agents\osint-investigator.md"
42
- $agentDst = Join-Path $ProjectRoot "_bmad\bmm\agents\osint-investigator.md"
43
- Copy-Item $agentSrc $agentDst -Force
44
- Write-Host " -> $agentDst" -ForegroundColor Green
45
-
46
- # 2. Copy skills
47
- Write-Host ""
48
- Write-Host "2. Installing skills..." -ForegroundColor Cyan
49
-
50
- $skillsDir = Join-Path $ProjectRoot ".agents\skills"
51
-
52
- # Skill 1: Agent entry point
53
- $skill1Dst = Join-Path $skillsDir "bmad-osint-investigator"
54
- New-Item -ItemType Directory -Force -Path $skill1Dst | Out-Null
55
- Copy-Item (Join-Path $PackageDir "skills\bmad-osint-investigator\SKILL.md") $skill1Dst -Force
56
- Write-Host " -> bmad-osint-investigator/SKILL.md" -ForegroundColor Green
57
-
58
- # Skill 2: Investigation pipeline + scripts
59
- $skill2Dst = Join-Path $skillsDir "bmad-osint-investigate"
60
- New-Item -ItemType Directory -Force -Path $skill2Dst | Out-Null
61
- Copy-Item (Join-Path $PackageDir "skills\bmad-osint-investigate\SKILL.md") $skill2Dst -Force
62
-
63
- $osintDst = Join-Path $skill2Dst "osint"
64
- New-Item -ItemType Directory -Force -Path "$osintDst\scripts", "$osintDst\references", "$osintDst\assets" | Out-Null
65
-
66
- Copy-Item (Join-Path $PackageDir "skills\bmad-osint-investigate\osint\SKILL.md") $osintDst -Force
67
- Copy-Item (Join-Path $PackageDir "skills\bmad-osint-investigate\osint\scripts\*") "$osintDst\scripts\" -Force
68
- Copy-Item (Join-Path $PackageDir "skills\bmad-osint-investigate\osint\references\*") "$osintDst\references\" -Force
69
- Copy-Item (Join-Path $PackageDir "skills\bmad-osint-investigate\osint\assets\*") "$osintDst\assets\" -Force
70
- Write-Host " -> bmad-osint-investigate/ (full pipeline + scripts)" -ForegroundColor Green
71
-
72
- # 3. Run diagnostic
73
- Write-Host ""
74
- Write-Host "3. Running diagnostic..." -ForegroundColor Cyan
75
- $diagScript = Join-Path $osintDst "scripts\diagnose.py"
76
- & python $diagScript
77
-
78
- # 4. Summary
79
- Write-Host ""
80
- Write-Host "========================================" -ForegroundColor Cyan
81
- Write-Host " Installation complete!" -ForegroundColor Green
82
- Write-Host "========================================" -ForegroundColor Cyan
83
- Write-Host ""
84
- Write-Host "Next steps:" -ForegroundColor Yellow
85
- Write-Host " 1. Configure API keys - see SETUP_KEYS.md"
86
- Write-Host " 2. Invoke 'bmad-osint-investigator' skill in your AI agent"
87
- Write-Host ""
1
+ # OSINT Agent — Installation Script (Windows PowerShell)
2
+ # Usage: .\install.ps1 [-ProjectRoot "path\to\bmad\project"]
3
+
4
+ param(
5
+ [string]$ProjectRoot = "."
6
+ )
7
+
8
+ $ErrorActionPreference = "Stop"
9
+ $PackageDir = Split-Path -Parent $MyInvocation.MyCommand.Path
10
+
11
+ Write-Host "========================================" -ForegroundColor Cyan
12
+ Write-Host " OSINT Agent Installer for BMAD" -ForegroundColor Cyan
13
+ Write-Host "========================================" -ForegroundColor Cyan
14
+ Write-Host ""
15
+
16
+ # Resolve project root
17
+ $ProjectRoot = Resolve-Path $ProjectRoot
18
+ Write-Host "Project root: $ProjectRoot" -ForegroundColor Yellow
19
+
20
+ # Verify BMAD is installed
21
+ $bmadDir = Join-Path $ProjectRoot "_bmad\bmm\agents"
22
+ if (-not (Test-Path $bmadDir)) {
23
+ Write-Host "ERROR: BMAD not found at $bmadDir" -ForegroundColor Red
24
+ Write-Host "Make sure BMAD Method is installed in the target project." -ForegroundColor Red
25
+ Write-Host "Run: npx bmad-method install" -ForegroundColor Yellow
26
+ exit 1
27
+ }
28
+ Write-Host " BMAD found" -ForegroundColor Green
29
+
30
+ # Verify Python
31
+ $python = Get-Command python -ErrorAction SilentlyContinue
32
+ if (-not $python) {
33
+ Write-Host "ERROR: Python not found. Install Python 3.10+" -ForegroundColor Red
34
+ exit 1
35
+ }
36
+ Write-Host " Python found: $($python.Source)" -ForegroundColor Green
37
+
38
+ # 1. Copy agent definition
39
+ Write-Host ""
40
+ Write-Host "1. Installing agent definition..." -ForegroundColor Cyan
41
+ $agentSrc = Join-Path $PackageDir "agents\osint-investigator.md"
42
+ $agentDst = Join-Path $ProjectRoot "_bmad\bmm\agents\osint-investigator.md"
43
+ Copy-Item $agentSrc $agentDst -Force
44
+ Write-Host " -> $agentDst" -ForegroundColor Green
45
+
46
+ # 2. Copy skills
47
+ Write-Host ""
48
+ Write-Host "2. Installing skills..." -ForegroundColor Cyan
49
+
50
+ $skillsDir = Join-Path $ProjectRoot ".agents\skills"
51
+
52
+ # Skill 1: Agent entry point
53
+ $skill1Dst = Join-Path $skillsDir "bmad-osint-investigator"
54
+ New-Item -ItemType Directory -Force -Path $skill1Dst | Out-Null
55
+ Copy-Item (Join-Path $PackageDir "skills\bmad-osint-investigator\SKILL.md") $skill1Dst -Force
56
+ Write-Host " -> bmad-osint-investigator/SKILL.md" -ForegroundColor Green
57
+
58
+ # Skill 2: Investigation pipeline + scripts
59
+ $skill2Dst = Join-Path $skillsDir "bmad-osint-investigate"
60
+ New-Item -ItemType Directory -Force -Path $skill2Dst | Out-Null
61
+ Copy-Item (Join-Path $PackageDir "skills\bmad-osint-investigate\SKILL.md") $skill2Dst -Force
62
+
63
+ $osintDst = Join-Path $skill2Dst "osint"
64
+ New-Item -ItemType Directory -Force -Path "$osintDst\scripts", "$osintDst\references", "$osintDst\assets" | Out-Null
65
+
66
+ Copy-Item (Join-Path $PackageDir "skills\bmad-osint-investigate\osint\SKILL.md") $osintDst -Force
67
+ Copy-Item (Join-Path $PackageDir "skills\bmad-osint-investigate\osint\scripts\*") "$osintDst\scripts\" -Force
68
+ Copy-Item (Join-Path $PackageDir "skills\bmad-osint-investigate\osint\references\*") "$osintDst\references\" -Force
69
+ Copy-Item (Join-Path $PackageDir "skills\bmad-osint-investigate\osint\assets\*") "$osintDst\assets\" -Force
70
+ Write-Host " -> bmad-osint-investigate/ (full pipeline + scripts)" -ForegroundColor Green
71
+
72
+ # 3. Run diagnostic
73
+ Write-Host ""
74
+ Write-Host "3. Running diagnostic..." -ForegroundColor Cyan
75
+ $diagScript = Join-Path $osintDst "scripts\diagnose.py"
76
+ & python $diagScript
77
+
78
+ # 4. Summary
79
+ Write-Host ""
80
+ Write-Host "========================================" -ForegroundColor Cyan
81
+ Write-Host " Installation complete!" -ForegroundColor Green
82
+ Write-Host "========================================" -ForegroundColor Cyan
83
+ Write-Host ""
84
+ Write-Host "Next steps:" -ForegroundColor Yellow
85
+ Write-Host " 1. Configure API keys - see SETUP_KEYS.md"
86
+ Write-Host " 2. Invoke 'bmad-osint-investigator' skill in your AI agent"
87
+ Write-Host ""