mindforge-cc 11.8.2 → 11.9.0

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 (361) hide show
  1. package/.agent/mindforge/wf-orchestrate-review.md +35 -0
  2. package/.agent/mindforge/wf-verification-loop.md +45 -0
  3. package/.agent/mindforge/wf-workflow-optimizer.md +51 -0
  4. package/.agent/skills/article-illustrator/SKILL.md +7 -7
  5. package/.agent/skills/arxiv/SKILL.md +6 -6
  6. package/.agent/skills/code-wiki/SKILL.md +11 -11
  7. package/.agent/skills/concept-diagrams/SKILL.md +6 -6
  8. package/.agent/skills/concept-diagrams/examples/apartment-floor-plan-conversion.md +244 -0
  9. package/.agent/skills/concept-diagrams/examples/automated-password-reset-flow.md +276 -0
  10. package/.agent/skills/concept-diagrams/examples/autonomous-llm-research-agent-flow.md +240 -0
  11. package/.agent/skills/concept-diagrams/examples/banana-journey-tree-to-smoothie.md +161 -0
  12. package/.agent/skills/concept-diagrams/examples/commercial-aircraft-structure.md +209 -0
  13. package/.agent/skills/concept-diagrams/examples/cpu-ooo-microarchitecture.md +236 -0
  14. package/.agent/skills/concept-diagrams/examples/electricity-grid-flow.md +182 -0
  15. package/.agent/skills/concept-diagrams/examples/feature-film-production-pipeline.md +172 -0
  16. package/.agent/skills/concept-diagrams/examples/hospital-emergency-department-flow.md +165 -0
  17. package/.agent/skills/concept-diagrams/examples/ml-benchmark-grouped-bar-chart.md +114 -0
  18. package/.agent/skills/concept-diagrams/examples/place-order-uml-sequence.md +325 -0
  19. package/.agent/skills/concept-diagrams/examples/smart-city-infrastructure.md +173 -0
  20. package/.agent/skills/concept-diagrams/examples/smartphone-layer-anatomy.md +154 -0
  21. package/.agent/skills/concept-diagrams/examples/sn2-reaction-mechanism.md +247 -0
  22. package/.agent/skills/concept-diagrams/examples/wind-turbine-structure.md +338 -0
  23. package/.agent/skills/concept-diagrams/templates/template.html +174 -0
  24. package/.agent/skills/domain-intel/SKILL.md +7 -7
  25. package/.agent/skills/duckduckgo-search/SKILL.md +17 -17
  26. package/.agent/skills/github-auth/scripts/gh-env.sh +66 -0
  27. package/.agent/skills/github-code-review/SKILL.md +9 -9
  28. package/.agent/skills/github-pr-workflow/SKILL.md +3 -3
  29. package/.agent/skills/godmode/SKILL.md +8 -8
  30. package/.agent/skills/jupyter-live-kernel/SKILL.md +3 -3
  31. package/.agent/skills/kanban-orchestrator/SKILL.md +10 -10
  32. package/.agent/skills/kanban-worker/SKILL.md +6 -6
  33. package/.agent/skills/llm-wiki/SKILL.md +7 -7
  34. package/.agent/skills/mindforge-autonomous/SKILL.md +1 -1
  35. package/.agent/skills/mindforge-complete-milestone/SKILL.md +1 -1
  36. package/.agent/skills/mindforge-discuss-phase/SKILL.md +1 -1
  37. package/.agent/skills/mindforge-do/SKILL.md +1 -1
  38. package/.agent/skills/mindforge-execute-phase/SKILL.md +1 -1
  39. package/.agent/skills/mindforge-list-workspaces/SKILL.md +1 -1
  40. package/.agent/skills/mindforge-manager/SKILL.md +1 -1
  41. package/.agent/skills/mindforge-neural-orchestrator/SKILL.md +1 -1
  42. package/.agent/skills/mindforge-new-milestone/SKILL.md +4 -4
  43. package/.agent/skills/mindforge-new-project/SKILL.md +4 -4
  44. package/.agent/skills/mindforge-new-workspace/SKILL.md +1 -1
  45. package/.agent/skills/mindforge-note/SKILL.md +1 -1
  46. package/.agent/skills/mindforge-plan-phase/SKILL.md +1 -1
  47. package/.agent/skills/mindforge-profile-user/SKILL.md +1 -1
  48. package/.agent/skills/mindforge-remove-workspace/SKILL.md +1 -1
  49. package/.agent/skills/mindforge-research-phase/SKILL.md +1 -1
  50. package/.agent/skills/mindforge-ui-phase/SKILL.md +1 -1
  51. package/.agent/skills/mindforge-ui-review/SKILL.md +1 -1
  52. package/.agent/skills/mindforge-verify-work/SKILL.md +1 -1
  53. package/.agent/skills/mindforge-workspace-isolated/SKILL.md +1 -1
  54. package/.agent/skills/node-inspect-debugger/SKILL.md +1 -1
  55. package/.agent/skills/obsidian/SKILL.md +15 -15
  56. package/.agent/skills/osint-investigation/SKILL.md +3 -2
  57. package/.agent/skills/osint-investigation/references/sources/courtlistener.md +98 -0
  58. package/.agent/skills/osint-investigation/references/sources/gdelt.md +104 -0
  59. package/.agent/skills/osint-investigation/references/sources/icij-offshore.md +104 -0
  60. package/.agent/skills/osint-investigation/references/sources/nyc-acris.md +90 -0
  61. package/.agent/skills/osint-investigation/references/sources/ofac-sdn.md +92 -0
  62. package/.agent/skills/osint-investigation/references/sources/opencorporates.md +103 -0
  63. package/.agent/skills/osint-investigation/references/sources/sec-edgar.md +83 -0
  64. package/.agent/skills/osint-investigation/references/sources/senate-ld.md +89 -0
  65. package/.agent/skills/osint-investigation/references/sources/usaspending.md +97 -0
  66. package/.agent/skills/osint-investigation/references/sources/wayback.md +93 -0
  67. package/.agent/skills/osint-investigation/references/sources/wikipedia.md +107 -0
  68. package/.agent/skills/osint-investigation/scripts/_http.py +82 -0
  69. package/.agent/skills/osint-investigation/scripts/_normalize.py +67 -0
  70. package/.agent/skills/osint-investigation/scripts/build_findings.py +221 -0
  71. package/.agent/skills/osint-investigation/scripts/entity_resolution.py +228 -0
  72. package/.agent/skills/osint-investigation/scripts/fetch_courtlistener.py +149 -0
  73. package/.agent/skills/osint-investigation/scripts/fetch_gdelt.py +161 -0
  74. package/.agent/skills/osint-investigation/scripts/fetch_icij_offshore.py +234 -0
  75. package/.agent/skills/osint-investigation/scripts/fetch_nyc_acris.py +203 -0
  76. package/.agent/skills/osint-investigation/scripts/fetch_ofac_sdn.py +175 -0
  77. package/.agent/skills/osint-investigation/scripts/fetch_opencorporates.py +191 -0
  78. package/.agent/skills/osint-investigation/scripts/fetch_sec_edgar.py +184 -0
  79. package/.agent/skills/osint-investigation/scripts/fetch_senate_ld.py +146 -0
  80. package/.agent/skills/osint-investigation/scripts/fetch_usaspending.py +170 -0
  81. package/.agent/skills/osint-investigation/scripts/fetch_wayback.py +142 -0
  82. package/.agent/skills/osint-investigation/scripts/fetch_wikipedia.py +266 -0
  83. package/.agent/skills/osint-investigation/scripts/timing_analysis.py +252 -0
  84. package/.agent/skills/oss-forensics/SKILL.md +10 -9
  85. package/.agent/skills/oss-forensics/scripts/evidence-store.py +313 -0
  86. package/.agent/skills/parallel-cli/SKILL.md +2 -2
  87. package/.agent/skills/pinggy-tunnel/SKILL.md +3 -3
  88. package/.agent/skills/pixel-art/SKILL.md +2 -2
  89. package/.agent/skills/plan/SKILL.md +10 -10
  90. package/.agent/skills/requesting-code-review/SKILL.md +4 -6
  91. package/.agent/skills/research-paper-writing/SKILL.md +32 -32
  92. package/.agent/skills/rest-graphql-debug/SKILL.md +31 -32
  93. package/.agent/skills/s6-container-supervision/SKILL.md +1 -1
  94. package/.agent/skills/scrapling/SKILL.md +1 -1
  95. package/.agent/skills/sherlock/SKILL.md +1 -1
  96. package/.agent/skills/simplify-code/SKILL.md +5 -7
  97. package/.agent/skills/skill-authoring/SKILL.md +4 -4
  98. package/.agent/skills/spike/SKILL.md +11 -13
  99. package/.agent/skills/subagent-driven-development/SKILL.md +7 -11
  100. package/.agent/skills/systematic-debugging/SKILL.md +13 -14
  101. package/.agent/skills/test-driven-development/SKILL.md +6 -7
  102. package/.agent/skills/video-orchestrator/SKILL.md +1 -1
  103. package/.agent/skills/web-pentest/SKILL.md +7 -7
  104. package/.mindforge/config.json +3 -2
  105. package/.mindforge/dynamic-workflows/REGISTRY.md +4 -1
  106. package/.mindforge/dynamic-workflows/index.json +910 -840
  107. package/.mindforge/dynamic-workflows/scripts/accessibility-audit.js +88 -90
  108. package/.mindforge/dynamic-workflows/scripts/ai-model-eval.js +59 -61
  109. package/.mindforge/dynamic-workflows/scripts/api-contract-test.js +87 -85
  110. package/.mindforge/dynamic-workflows/scripts/api-migration.js +120 -122
  111. package/.mindforge/dynamic-workflows/scripts/architecture-modernization.js +84 -86
  112. package/.mindforge/dynamic-workflows/scripts/code-audit.js +75 -77
  113. package/.mindforge/dynamic-workflows/scripts/code-explainer.js +99 -101
  114. package/.mindforge/dynamic-workflows/scripts/competitive-analysis.js +62 -64
  115. package/.mindforge/dynamic-workflows/scripts/competitive-teardown.js +106 -108
  116. package/.mindforge/dynamic-workflows/scripts/cost-analysis.js +78 -80
  117. package/.mindforge/dynamic-workflows/scripts/data-pipeline-validate.js +47 -49
  118. package/.mindforge/dynamic-workflows/scripts/database-migration.js +85 -87
  119. package/.mindforge/dynamic-workflows/scripts/debug-detective.js +97 -99
  120. package/.mindforge/dynamic-workflows/scripts/dependency-health.js +81 -83
  121. package/.mindforge/dynamic-workflows/scripts/design-system-audit.js +84 -86
  122. package/.mindforge/dynamic-workflows/scripts/documentation-gen.js +65 -67
  123. package/.mindforge/dynamic-workflows/scripts/feature-planner.js +78 -80
  124. package/.mindforge/dynamic-workflows/scripts/incident-response.js +81 -83
  125. package/.mindforge/dynamic-workflows/scripts/multi-repo-sync.js +49 -51
  126. package/.mindforge/dynamic-workflows/scripts/mutation-testing.js +113 -115
  127. package/.mindforge/dynamic-workflows/scripts/onboard-codebase.js +79 -81
  128. package/.mindforge/dynamic-workflows/scripts/orchestrate-review.js +115 -0
  129. package/.mindforge/dynamic-workflows/scripts/perf-optimize.js +97 -99
  130. package/.mindforge/dynamic-workflows/scripts/pr-review.js +61 -63
  131. package/.mindforge/dynamic-workflows/scripts/refactor-plan.js +88 -90
  132. package/.mindforge/dynamic-workflows/scripts/release-prep.js +79 -81
  133. package/.mindforge/dynamic-workflows/scripts/security-hardening.js +117 -119
  134. package/.mindforge/dynamic-workflows/scripts/security-threat-model.js +119 -121
  135. package/.mindforge/dynamic-workflows/scripts/tdd-sprint.js +80 -82
  136. package/.mindforge/dynamic-workflows/scripts/tech-evaluation.js +50 -52
  137. package/.mindforge/dynamic-workflows/scripts/test-coverage-gap.js +68 -70
  138. package/.mindforge/dynamic-workflows/scripts/ux-heuristic-audit.js +89 -91
  139. package/.mindforge/dynamic-workflows/scripts/verification-loop.js +138 -0
  140. package/.mindforge/dynamic-workflows/scripts/workflow-optimizer.js +136 -0
  141. package/.mindforge/dynamic-workflows/scripts/writer-reviewer.js +63 -65
  142. package/.mindforge/memory/sync-manifest.json +1 -1
  143. package/.mindforge/personas/advisor-researcher.md +2 -2
  144. package/.mindforge/personas/api-load-tester.md +1 -1
  145. package/.mindforge/personas/authentication-architect.md +1 -1
  146. package/.mindforge/personas/backup-recovery-specialist.md +1 -1
  147. package/.mindforge/personas/build-optimizer.md +1 -1
  148. package/.mindforge/personas/caching-strategist.md +1 -1
  149. package/.mindforge/personas/chaos-engineer.md +1 -1
  150. package/.mindforge/personas/compliance-auditor.md +1 -1
  151. package/.mindforge/personas/config-management-expert.md +1 -1
  152. package/.mindforge/personas/coverage-specialist.md +1 -1
  153. package/.mindforge/personas/debug-specialist.md +2 -2
  154. package/.mindforge/personas/debugger.md +2 -2
  155. package/.mindforge/personas/dependency-auditor.md +1 -1
  156. package/.mindforge/personas/developer.md +1 -1
  157. package/.mindforge/personas/devops-engineer.md +1 -1
  158. package/.mindforge/personas/executor.md +1 -1
  159. package/.mindforge/personas/go-specialist.md +1 -1
  160. package/.mindforge/personas/incident-commander.md +1 -1
  161. package/.mindforge/personas/java-specialist.md +1 -1
  162. package/.mindforge/personas/kubernetes-debugger.md +1 -1
  163. package/.mindforge/personas/logging-architect.md +1 -1
  164. package/.mindforge/personas/mf-planner.md +1 -1
  165. package/.mindforge/personas/mf-researcher.md +1 -1
  166. package/.mindforge/personas/mf-reviewer.md +1 -1
  167. package/.mindforge/personas/nyquist-auditor.md +1 -1
  168. package/.mindforge/personas/observability-engineer.md +1 -1
  169. package/.mindforge/personas/performance-optimizer.md +1 -1
  170. package/.mindforge/personas/phase-researcher.md +5 -5
  171. package/.mindforge/personas/planner.md +1 -1
  172. package/.mindforge/personas/project-researcher.md +2 -2
  173. package/.mindforge/personas/python-specialist.md +1 -1
  174. package/.mindforge/personas/qa-engineer.md +1 -1
  175. package/.mindforge/personas/release-manager.md +1 -1
  176. package/.mindforge/personas/research-agent.md +4 -4
  177. package/.mindforge/personas/roadmapper-extend.md +1 -1
  178. package/.mindforge/personas/rust-specialist.md +1 -1
  179. package/.mindforge/personas/security-reviewer.md +1 -1
  180. package/.mindforge/personas/tech-writer.md +1 -1
  181. package/.mindforge/personas/typescript-wizard.md +1 -1
  182. package/.mindforge/personas/ui-researcher.md +1 -1
  183. package/.mindforge/skills/accessibility/SKILL.md +3 -3
  184. package/.mindforge/skills/agent-architecture-audit/SKILL.md +11 -0
  185. package/.mindforge/skills/agent-loops/SKILL.md +1 -1
  186. package/.mindforge/skills/arxiv/SKILL.md +6 -6
  187. package/.mindforge/skills/arxiv/scripts/search_arxiv.py +114 -0
  188. package/.mindforge/skills/code-tour/SKILL.md +2 -2
  189. package/.mindforge/skills/code-wiki/SKILL.md +11 -11
  190. package/.mindforge/skills/code-wiki/templates/README.md +31 -0
  191. package/.mindforge/skills/code-wiki/templates/architecture.md +30 -0
  192. package/.mindforge/skills/code-wiki/templates/getting-started.md +47 -0
  193. package/.mindforge/skills/code-wiki/templates/module.md +38 -0
  194. package/.mindforge/skills/concept-diagrams/SKILL.md +6 -6
  195. package/.mindforge/skills/concept-diagrams/examples/apartment-floor-plan-conversion.md +244 -0
  196. package/.mindforge/skills/concept-diagrams/examples/automated-password-reset-flow.md +276 -0
  197. package/.mindforge/skills/concept-diagrams/examples/autonomous-llm-research-agent-flow.md +240 -0
  198. package/.mindforge/skills/concept-diagrams/examples/banana-journey-tree-to-smoothie.md +161 -0
  199. package/.mindforge/skills/concept-diagrams/examples/commercial-aircraft-structure.md +209 -0
  200. package/.mindforge/skills/concept-diagrams/examples/cpu-ooo-microarchitecture.md +236 -0
  201. package/.mindforge/skills/concept-diagrams/examples/electricity-grid-flow.md +182 -0
  202. package/.mindforge/skills/concept-diagrams/examples/feature-film-production-pipeline.md +172 -0
  203. package/.mindforge/skills/concept-diagrams/examples/hospital-emergency-department-flow.md +165 -0
  204. package/.mindforge/skills/concept-diagrams/examples/ml-benchmark-grouped-bar-chart.md +114 -0
  205. package/.mindforge/skills/concept-diagrams/examples/place-order-uml-sequence.md +325 -0
  206. package/.mindforge/skills/concept-diagrams/examples/smart-city-infrastructure.md +173 -0
  207. package/.mindforge/skills/concept-diagrams/examples/smartphone-layer-anatomy.md +154 -0
  208. package/.mindforge/skills/concept-diagrams/examples/sn2-reaction-mechanism.md +247 -0
  209. package/.mindforge/skills/concept-diagrams/examples/wind-turbine-structure.md +338 -0
  210. package/.mindforge/skills/concept-diagrams/references/dashboard-patterns.md +43 -0
  211. package/.mindforge/skills/concept-diagrams/references/infrastructure-patterns.md +144 -0
  212. package/.mindforge/skills/concept-diagrams/references/physical-shape-cookbook.md +42 -0
  213. package/.mindforge/skills/concept-diagrams/templates/template.html +174 -0
  214. package/.mindforge/skills/creative-ideation/references/full-prompt-library.md +110 -0
  215. package/.mindforge/skills/documentation/SKILL.md +1 -1
  216. package/.mindforge/skills/domain-intel/SKILL.md +7 -7
  217. package/.mindforge/skills/domain-intel/scripts/domain_intel.py +397 -0
  218. package/.mindforge/skills/duckduckgo-search/SKILL.md +17 -17
  219. package/.mindforge/skills/duckduckgo-search/scripts/duckduckgo.sh +28 -0
  220. package/.mindforge/skills/environment-management/SKILL.md +1 -1
  221. package/.mindforge/skills/github-code-review/SKILL.md +9 -9
  222. package/.mindforge/skills/github-code-review/references/review-output-template.md +74 -0
  223. package/.mindforge/skills/github-issues/templates/bug-report.md +35 -0
  224. package/.mindforge/skills/github-issues/templates/feature-request.md +31 -0
  225. package/.mindforge/skills/github-pr-workflow/SKILL.md +3 -3
  226. package/.mindforge/skills/github-pr-workflow/references/ci-troubleshooting.md +183 -0
  227. package/.mindforge/skills/github-pr-workflow/references/conventional-commits.md +71 -0
  228. package/.mindforge/skills/github-pr-workflow/templates/pr-body-bugfix.md +35 -0
  229. package/.mindforge/skills/github-pr-workflow/templates/pr-body-feature.md +33 -0
  230. package/.mindforge/skills/incident-response/SKILL.md +1 -1
  231. package/.mindforge/skills/jupyter-live-kernel/SKILL.md +3 -3
  232. package/.mindforge/skills/kanban-orchestrator/SKILL.md +10 -10
  233. package/.mindforge/skills/kanban-worker/SKILL.md +6 -6
  234. package/.mindforge/skills/meme-generation/SKILL.md +1 -1
  235. package/.mindforge/skills/meme-generation/scripts/generate_meme.py +470 -0
  236. package/.mindforge/skills/meme-generation/scripts/templates.json +97 -0
  237. package/.mindforge/skills/obsidian/SKILL.md +15 -15
  238. package/.mindforge/skills/orch-pipeline/SKILL.md +2 -2
  239. package/.mindforge/skills/osint-investigation/SKILL.md +3 -2
  240. package/.mindforge/skills/osint-investigation/references/sources/courtlistener.md +98 -0
  241. package/.mindforge/skills/osint-investigation/references/sources/gdelt.md +104 -0
  242. package/.mindforge/skills/osint-investigation/references/sources/icij-offshore.md +104 -0
  243. package/.mindforge/skills/osint-investigation/references/sources/nyc-acris.md +90 -0
  244. package/.mindforge/skills/osint-investigation/references/sources/ofac-sdn.md +92 -0
  245. package/.mindforge/skills/osint-investigation/references/sources/opencorporates.md +103 -0
  246. package/.mindforge/skills/osint-investigation/references/sources/sec-edgar.md +83 -0
  247. package/.mindforge/skills/osint-investigation/references/sources/senate-ld.md +89 -0
  248. package/.mindforge/skills/osint-investigation/references/sources/usaspending.md +97 -0
  249. package/.mindforge/skills/osint-investigation/references/sources/wayback.md +93 -0
  250. package/.mindforge/skills/osint-investigation/references/sources/wikipedia.md +107 -0
  251. package/.mindforge/skills/osint-investigation/scripts/_http.py +82 -0
  252. package/.mindforge/skills/osint-investigation/scripts/_normalize.py +67 -0
  253. package/.mindforge/skills/osint-investigation/scripts/build_findings.py +221 -0
  254. package/.mindforge/skills/osint-investigation/scripts/entity_resolution.py +228 -0
  255. package/.mindforge/skills/osint-investigation/scripts/fetch_courtlistener.py +149 -0
  256. package/.mindforge/skills/osint-investigation/scripts/fetch_gdelt.py +161 -0
  257. package/.mindforge/skills/osint-investigation/scripts/fetch_icij_offshore.py +234 -0
  258. package/.mindforge/skills/osint-investigation/scripts/fetch_nyc_acris.py +203 -0
  259. package/.mindforge/skills/osint-investigation/scripts/fetch_ofac_sdn.py +175 -0
  260. package/.mindforge/skills/osint-investigation/scripts/fetch_opencorporates.py +191 -0
  261. package/.mindforge/skills/osint-investigation/scripts/fetch_sec_edgar.py +184 -0
  262. package/.mindforge/skills/osint-investigation/scripts/fetch_senate_ld.py +146 -0
  263. package/.mindforge/skills/osint-investigation/scripts/fetch_usaspending.py +170 -0
  264. package/.mindforge/skills/osint-investigation/scripts/fetch_wayback.py +142 -0
  265. package/.mindforge/skills/osint-investigation/scripts/fetch_wikipedia.py +266 -0
  266. package/.mindforge/skills/osint-investigation/scripts/timing_analysis.py +252 -0
  267. package/.mindforge/skills/osint-investigation/templates/source-template.md +59 -0
  268. package/.mindforge/skills/oss-forensics/SKILL.md +6 -6
  269. package/.mindforge/skills/oss-forensics/references/evidence-types.md +89 -0
  270. package/.mindforge/skills/oss-forensics/references/github-archive-guide.md +184 -0
  271. package/.mindforge/skills/oss-forensics/references/investigation-templates.md +131 -0
  272. package/.mindforge/skills/oss-forensics/references/recovery-techniques.md +164 -0
  273. package/.mindforge/skills/oss-forensics/scripts/evidence-store.py +313 -0
  274. package/.mindforge/skills/oss-forensics/templates/forensic-report.md +151 -0
  275. package/.mindforge/skills/oss-forensics/templates/malicious-package-report.md +43 -0
  276. package/.mindforge/skills/pixel-art/SKILL.md +2 -2
  277. package/.mindforge/skills/pixel-art/references/palettes.md +49 -0
  278. package/.mindforge/skills/plan/SKILL.md +10 -10
  279. package/.mindforge/skills/requesting-code-review/SKILL.md +4 -6
  280. package/.mindforge/skills/research-paper-writing/SKILL.md +32 -32
  281. package/.mindforge/skills/research-paper-writing/references/autoreason-methodology.md +394 -0
  282. package/.mindforge/skills/research-paper-writing/references/checklists.md +434 -0
  283. package/.mindforge/skills/research-paper-writing/references/citation-workflow.md +563 -0
  284. package/.mindforge/skills/research-paper-writing/references/experiment-patterns.md +728 -0
  285. package/.mindforge/skills/research-paper-writing/references/human-evaluation.md +476 -0
  286. package/.mindforge/skills/research-paper-writing/references/paper-types.md +481 -0
  287. package/.mindforge/skills/research-paper-writing/references/reviewer-guidelines.md +433 -0
  288. package/.mindforge/skills/research-paper-writing/references/sources.md +191 -0
  289. package/.mindforge/skills/research-paper-writing/references/writing-guide.md +474 -0
  290. package/.mindforge/skills/research-paper-writing/templates/README.md +251 -0
  291. package/.mindforge/skills/scrapling/SKILL.md +1 -1
  292. package/.mindforge/skills/security-review/SKILL.md +1 -1
  293. package/.mindforge/skills/sherlock/SKILL.md +1 -1
  294. package/.mindforge/skills/simplify-code/SKILL.md +5 -7
  295. package/.mindforge/skills/spike/SKILL.md +11 -13
  296. package/.mindforge/skills/subagent-driven-development/SKILL.md +7 -11
  297. package/.mindforge/skills/subagent-driven-development/references/context-budget-discipline.md +53 -0
  298. package/.mindforge/skills/subagent-driven-development/references/gates-taxonomy.md +93 -0
  299. package/.mindforge/skills/systematic-debugging/SKILL.md +13 -14
  300. package/.mindforge/skills/test-driven-development/SKILL.md +7 -8
  301. package/.mindforge/skills/testing-standards/SKILL.md +1 -1
  302. package/.mindforge/skills/web-pentest/SKILL.md +2 -2
  303. package/.mindforge/skills/web-pentest/references/bypass-techniques.md +133 -0
  304. package/.mindforge/skills/web-pentest/references/exploitation-techniques.md +204 -0
  305. package/.mindforge/skills/web-pentest/references/scope-enforcement.md +110 -0
  306. package/.mindforge/skills/web-pentest/references/vuln-taxonomy.md +81 -0
  307. package/.mindforge/skills/web-pentest/templates/authorization.md +69 -0
  308. package/.mindforge/skills/web-pentest/templates/pentest-report.md +178 -0
  309. package/.mindforge/skills/writing-skills/SKILL.md +4 -3
  310. package/CHANGELOG.md +35 -0
  311. package/MINDFORGE.md +3 -3
  312. package/README.md +9 -7
  313. package/RELEASENOTES.md +65 -2
  314. package/SECURITY.md +5 -3
  315. package/bin/autonomous/auto-runner.js +5 -2
  316. package/bin/engine/skill-loader.js +4 -0
  317. package/bin/governance/rbac.js +4 -0
  318. package/bin/memory/eis-client.js +1 -0
  319. package/bin/mindforge-cli.js +5 -0
  320. package/bin/models/bedrock-provider.js +192 -0
  321. package/bin/models/model-client.js +19 -0
  322. package/bin/spawn-agent.js +9 -2
  323. package/docs/commands-reference.md +68 -6
  324. package/docs/faq.md +38 -1
  325. package/docs/getting-started.md +27 -12
  326. package/docs/sdk-reference.md +36 -3
  327. package/docs/troubleshooting.md +59 -1
  328. package/docs/user-guide.md +7 -4
  329. package/package.json +3 -3
  330. package/.claude/commands/mindforge/skill-tdd.md +0 -53
  331. package/.claude/commands/mindforge/skills-index.md +0 -118
  332. package/.claude/commands/mindforge/systematic-debug.md +0 -60
  333. package/.claude/commands/mindforge/wf-accessibility-audit.md +0 -31
  334. package/.claude/commands/mindforge/wf-ai-model-eval.md +0 -31
  335. package/.claude/commands/mindforge/wf-api-migration.md +0 -31
  336. package/.claude/commands/mindforge/wf-architecture-modernization.md +0 -32
  337. package/.claude/commands/mindforge/wf-catalog.md +0 -59
  338. package/.claude/commands/mindforge/wf-code-audit.md +0 -31
  339. package/.claude/commands/mindforge/wf-code-explainer.md +0 -31
  340. package/.claude/commands/mindforge/wf-competitive-analysis.md +0 -31
  341. package/.claude/commands/mindforge/wf-competitive-teardown.md +0 -31
  342. package/.claude/commands/mindforge/wf-cost-analysis.md +0 -31
  343. package/.claude/commands/mindforge/wf-data-pipeline-validate.md +0 -31
  344. package/.claude/commands/mindforge/wf-database-migration.md +0 -31
  345. package/.claude/commands/mindforge/wf-debug-detective.md +0 -32
  346. package/.claude/commands/mindforge/wf-design-system-audit.md +0 -31
  347. package/.claude/commands/mindforge/wf-documentation-gen.md +0 -31
  348. package/.claude/commands/mindforge/wf-feature-planner.md +0 -31
  349. package/.claude/commands/mindforge/wf-incident-response.md +0 -31
  350. package/.claude/commands/mindforge/wf-multi-repo-sync.md +0 -31
  351. package/.claude/commands/mindforge/wf-mutation-testing.md +0 -31
  352. package/.claude/commands/mindforge/wf-onboard-codebase.md +0 -31
  353. package/.claude/commands/mindforge/wf-perf-optimize.md +0 -31
  354. package/.claude/commands/mindforge/wf-pr-review.md +0 -31
  355. package/.claude/commands/mindforge/wf-refactor-plan.md +0 -31
  356. package/.claude/commands/mindforge/wf-release-prep.md +0 -31
  357. package/.claude/commands/mindforge/wf-security-threat-model.md +0 -31
  358. package/.claude/commands/mindforge/wf-tdd-sprint.md +0 -31
  359. package/.claude/commands/mindforge/wf-tech-evaluation.md +0 -31
  360. package/.claude/commands/mindforge/wf-ux-heuristic-audit.md +0 -31
  361. package/.claude/commands/mindforge/wf-writer-reviewer.md +0 -30
@@ -13,7 +13,7 @@ Output: {phase_num}-UAT.md tracking all test results. If issues found: diagnosed
13
13
 
14
14
  <execution_context>
15
15
  @.agent/workflows/mindforge-verify-work.md
16
- @.agent/templates/UAT.md
16
+ @docs/Templates/Quality/UAT.md
17
17
  </execution_context>
18
18
 
19
19
  <context>
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: "using-git-worktrees"
2
+ name: "mindforge-workspace-isolated"
3
3
  description: "Use when starting feature work that needs isolation from current workspace or before executing implementation plans - creates isolated git worktrees with smart directory selection and safety verification"
4
4
  ---
5
5
 
@@ -267,7 +267,7 @@ require('fs').writeFileSync('/tmp/heap.heapsnapshot', chunks.join(''));
267
267
 
268
268
  5. **Background kills.** If you `Ctrl+C` out of `node inspect` while the target is paused, the target stays paused. Either `cont` first, or `kill` the target explicitly.
269
269
 
270
- 6. **Running `node inspect` through an agent terminal.** It's a PTY-friendly REPL. In the agent, launch it with `terminal(pty=true)` or `background=true` + `process(action='submit', data='...')`. Non-PTY foreground mode will work for one-shot commands but not for interactive stepping.
270
+ 6. **Running `node inspect` through an agent terminal.** It's a PTY-friendly REPL. In the agent, launch it with `Bash(pty=true)` or `background=true` + `process(action='submit', data='...')`. Non-PTY foreground mode will work for one-shot commands but not for interactive stepping.
271
271
 
272
272
  7. **Security.** `--inspect=0.0.0.0:9229` exposes arbitrary code execution. Always bind to `127.0.0.1` (the default) unless you have an isolated network.
273
273
 
@@ -11,49 +11,49 @@ Use this skill for filesystem-first Obsidian vault work: reading notes, listing
11
11
 
12
12
  Use a known or resolved vault path before calling file tools.
13
13
 
14
- The documented vault-path convention is the `OBSIDIAN_VAULT_PATH` environment variable, for example from `${HERMES_HOME:-~/.hermes}/.env`. If it is unset, use `~/Documents/Obsidian Vault`.
14
+ The documented vault-path convention is the `OBSIDIAN_VAULT_PATH` environment variable, for example from `${MINDFORGE_HOME:-~/.mindforge}/.env`. If it is unset, use `~/Documents/Obsidian Vault`.
15
15
 
16
- File tools do not expand shell variables. Do not pass paths containing `$OBSIDIAN_VAULT_PATH` to `read_file`, `write_file`, `patch`, or `search_files`; resolve the vault path first and pass a concrete absolute path. Vault paths may contain spaces, which is another reason to prefer file tools over shell commands.
16
+ File tools do not expand shell variables. Do not pass paths containing `$OBSIDIAN_VAULT_PATH` to `Read`, `Write`, `Edit`, or `Grep`; resolve the vault path first and pass a concrete absolute path. Vault paths may contain spaces, which is another reason to prefer file tools over shell commands.
17
17
 
18
- If the vault path is unknown, `terminal` is acceptable for resolving `OBSIDIAN_VAULT_PATH` or checking whether the fallback path exists. Once the path is known, switch back to file tools.
18
+ If the vault path is unknown, `Bash` is acceptable for resolving `OBSIDIAN_VAULT_PATH` or checking whether the fallback path exists. Once the path is known, switch back to file tools.
19
19
 
20
20
  ## Read a note
21
21
 
22
- Use `read_file` with the resolved absolute path to the note. Prefer this over `cat` because it provides line numbers and pagination.
22
+ Use `Read` with the resolved absolute path to the note. Prefer this over `cat` because it provides line numbers and pagination.
23
23
 
24
24
  ## List notes
25
25
 
26
- Use `search_files` with `target: "files"` and the resolved vault path. Prefer this over `find` or `ls`.
26
+ Use `Grep` with `target: "files"` and the resolved vault path. Prefer this over `find` or `ls`.
27
27
 
28
28
  - To list all markdown notes, use `pattern: "*.md"` under the vault path.
29
29
  - To list a subfolder, search under that subfolder's absolute path.
30
30
 
31
31
  ## Search
32
32
 
33
- Use `search_files` for both filename and content searches. Prefer this over `grep`, `find`, or `ls`.
33
+ Use `Grep` for both filename and content searches. Prefer this over `grep`, `find`, or `ls`.
34
34
 
35
- - For filenames, use `search_files` with `target: "files"` and a filename `pattern`.
36
- - For note contents, use `search_files` with `target: "content"`, the content regex as `pattern`, and `file_glob: "*.md"` when you want to restrict matches to markdown notes.
35
+ - For filenames, use `Grep` with `target: "files"` and a filename `pattern`.
36
+ - For note contents, use `Grep` with `target: "content"`, the content regex as `pattern`, and `file_glob: "*.md"` when you want to restrict matches to markdown notes.
37
37
 
38
38
  ## Create a note
39
39
 
40
- Use `write_file` with the resolved absolute path and the full markdown content. Prefer this over shell heredocs or `echo` because it avoids shell quoting issues and returns structured results.
40
+ Use `Write` with the resolved absolute path and the full markdown content. Prefer this over shell heredocs or `echo` because it avoids shell quoting issues and returns structured results.
41
41
 
42
42
  ## Append to a note
43
43
 
44
44
  Prefer a native file-tool workflow when it is not awkward:
45
45
 
46
- - Read the target note with `read_file`.
47
- - Use `patch` for an anchored append when there is stable context, such as adding a section after an existing heading or appending before a known trailing block.
48
- - Use `write_file` when rewriting the whole note is clearer than constructing a fragile patch.
46
+ - Read the target note with `Read`.
47
+ - Use `Edit` for an anchored append when there is stable context, such as adding a section after an existing heading or appending before a known trailing block.
48
+ - Use `Write` when rewriting the whole note is clearer than constructing a fragile patch.
49
49
 
50
- For an anchored append with `patch`, replace the anchor with the anchor plus the new content.
50
+ For an anchored append with `Edit`, replace the anchor with the anchor plus the new content.
51
51
 
52
- For a simple append with no stable context, `terminal` is acceptable if it is the clearest safe option.
52
+ For a simple append with no stable context, `Bash` is acceptable if it is the clearest safe option.
53
53
 
54
54
  ## Targeted edits
55
55
 
56
- Use `patch` for focused note changes when the current content gives you stable context. Prefer this over shell text rewriting.
56
+ Use `Edit` for focused note changes when the current content gives you stable context. Prefer this over shell text rewriting.
57
57
 
58
58
  ## Wikilinks
59
59
 
@@ -17,6 +17,7 @@ chains.
17
17
  sources work with no API key (OpenCorporates has an optional free token
18
18
  that raises rate limits).
19
19
 
20
+ Adapted from the MIT-licensed ShinMegamiBoson/OpenPlanter project; expanded
20
21
  to cover identity / property / litigation / archives / news sources that
21
22
  the original didn't address.
22
23
 
@@ -40,7 +41,7 @@ Use when the user asks for:
40
41
 
41
42
  Do NOT use this skill for:
42
43
 
43
- - general web research → `web_search` / `web_extract`
44
+ - general web research → `WebSearch` / `WebFetch`
44
45
  - domain/infrastructure OSINT → `domain-intel` skill
45
46
  - academic literature → `arxiv` skill
46
47
  - social-media profile discovery → `sherlock` skill (optional)
@@ -51,7 +52,7 @@ Do NOT use this skill for:
51
52
 
52
53
  ## Workflow
53
54
 
54
- The agent runs scripts via the `terminal` tool. `SKILL_DIR` is the directory
55
+ The agent runs scripts via the `Bash` tool. `SKILL_DIR` is the directory
55
56
  holding this SKILL.md.
56
57
 
57
58
  ### 1. Identify which sources apply
@@ -0,0 +1,98 @@
1
+ # CourtListener — Free Law Project
2
+
3
+ ## 1. Summary
4
+
5
+ CourtListener (Free Law Project) aggregates court opinions, dockets, oral
6
+ arguments, and judge data. Covers ~10M federal and state court opinions
7
+ back to colonial America, plus PACER docket data from RECAP submissions.
8
+
9
+ ## 2. Access Methods
10
+
11
+ - **REST API v4:** `https://www.courtlistener.com/api/rest/v4/`
12
+ - **Auth:** Anonymous reads allowed on most endpoints; token raises rate
13
+ limits and unlocks bulk export
14
+ - **Rate limit:** ~5,000 req/hour unauthenticated for search; higher with token
15
+
16
+ Set `COURTLISTENER_TOKEN` env var. Get a free token at
17
+ https://www.courtlistener.com/sign-in/ then create an API key.
18
+
19
+ ## 3. Data Schema
20
+
21
+ Key fields emitted by `fetch_courtlistener.py`:
22
+
23
+ | Column | Type | Description |
24
+ |--------|------|-------------|
25
+ | `case_name` | str | Case name |
26
+ | `court` | str | Court name |
27
+ | `court_id` | str | Court ID (e.g. `nysd`, `scotus`, `ca9`) |
28
+ | `date_filed` | str | YYYY-MM-DD |
29
+ | `docket_number` | str | Court docket number |
30
+ | `judge` | str | Judge name(s) |
31
+ | `citation` | str | Reporter citation(s) |
32
+ | `result_type` | str | opinions / dockets / oral / people |
33
+ | `snippet` | str | Search-match snippet (up to 500 chars) |
34
+ | `absolute_url` | str | Direct CourtListener URL |
35
+
36
+ ## 4. Coverage
37
+
38
+ - Federal: all circuit and district courts, SCOTUS
39
+ - State: all 50 state supreme/appellate courts, many trial courts
40
+ - Opinions: ~10M back to 1600s (colonial), full coverage 1950 → present
41
+ - Dockets via RECAP: ~3M+ from user-submitted PACER PDFs
42
+ - Updated continuously
43
+
44
+ ## 5. Cross-Reference Potential
45
+
46
+ - **OpenCorporates** ↔ `case_name` (corporate litigation)
47
+ - **SEC EDGAR** ↔ `case_name` (securities class actions)
48
+ - **OFAC SDN** ↔ `case_name` (sanctions-related civil/criminal cases)
49
+
50
+ Join key: party name from `case_name`. Note: `case_name` often abbreviates
51
+ ("Smith v. Jones" rather than full party names) — use the full case URL
52
+ to get all parties.
53
+
54
+ ## 6. Data Quality
55
+
56
+ - Older opinions (pre-1990) often lack docket numbers and judges
57
+ - State coverage is more uneven than federal
58
+ - PACER docket coverage depends on RECAP user submissions — not exhaustive
59
+ - Sealed documents are excluded
60
+ - Party names in case captions don't always match filing names exactly
61
+
62
+ ## 7. Acquisition Script
63
+
64
+ Path: `scripts/fetch_courtlistener.py`
65
+
66
+ ```bash
67
+ # Search opinions for a party / keyword
68
+ python3 SKILL_DIR/scripts/fetch_courtlistener.py --query "Example Corp" \
69
+ --out data/cl.csv
70
+
71
+ # PACER dockets (best for recent litigation)
72
+ python3 SKILL_DIR/scripts/fetch_courtlistener.py --query "Example Corp" \
73
+ --type dockets --out data/cl_dockets.csv
74
+
75
+ # Restrict to a court
76
+ python3 SKILL_DIR/scripts/fetch_courtlistener.py --query "Microsoft" \
77
+ --court ca9 --out data/cl_9th.csv
78
+
79
+ # Date range
80
+ python3 SKILL_DIR/scripts/fetch_courtlistener.py --query "Example Corp" \
81
+ --date-from 2020-01-01 --date-to 2024-12-31 --out data/cl.csv
82
+ ```
83
+
84
+ Pass `--token` or set `COURTLISTENER_TOKEN`.
85
+
86
+ ## 8. Legal & Licensing
87
+
88
+ - Court opinions are public domain
89
+ - Free Law Project provides the data under CC0 / public domain dedication
90
+ - No commercial use restrictions on opinion text or metadata
91
+ - Some PACER PDFs have copyright on layout (not text) — fair use applies
92
+
93
+ ## 9. References
94
+
95
+ - API docs: https://www.courtlistener.com/help/api/rest/
96
+ - Court IDs: https://www.courtlistener.com/api/jurisdictions/
97
+ - RECAP archive: https://www.courtlistener.com/recap/
98
+ - Bulk data: https://www.courtlistener.com/help/api/bulk-data/
@@ -0,0 +1,104 @@
1
+ # GDELT — Global News Monitoring
2
+
3
+ ## 1. Summary
4
+
5
+ GDELT (Global Database of Events, Language, and Tone) monitors world news
6
+ in 100+ languages with full-text indexing. Updated every 15 minutes.
7
+ ~2015 → present, ~1B+ articles indexed. Free anonymous access.
8
+
9
+ GDELT is wider than Google News (more international, more long-tail
10
+ sources) and indexed by tone/sentiment, themes (CAMEO codes), people, and
11
+ organizations.
12
+
13
+ ## 2. Access Methods
14
+
15
+ - **DOC 2.0 API:** `https://api.gdeltproject.org/api/v2/doc/doc`
16
+ - **Events / GKG 2.0:** `https://api.gdeltproject.org/api/v2/events/events`
17
+ - **Auth:** None
18
+ - **Rate limit:** **1 request per 5 seconds** for the DOC API — strict
19
+
20
+ The fetch script automatically retries after a 6-second sleep when a
21
+ 429 is received.
22
+
23
+ ## 3. Data Schema
24
+
25
+ Key fields emitted by `fetch_gdelt.py`:
26
+
27
+ | Column | Type | Description |
28
+ |--------|------|-------------|
29
+ | `title` | str | Article title |
30
+ | `url` | str | Article URL |
31
+ | `seen_date` | str | When GDELT first saw the article (UTC) |
32
+ | `domain` | str | Publisher domain |
33
+ | `language` | str | Source language |
34
+ | `source_country` | str | 2-letter country code |
35
+ | `tone` | str | GDELT-computed tone score (negative = negative coverage) |
36
+ | `social_image` | str | Open Graph image URL when available |
37
+
38
+ ## 4. Coverage
39
+
40
+ - Worldwide news in 100+ languages
41
+ - ~2015 → present (Events back to 1979 via a separate stream)
42
+ - Update frequency: 15 minutes
43
+ - Bias: heavily Anglophone in volume but very wide source list overall
44
+
45
+ ## 5. Cross-Reference Potential
46
+
47
+ - **All sources** ↔ `title` / `url` (news context for any subject)
48
+ - **Wikipedia** ↔ event timeline for notable entities
49
+ - **Wayback Machine** ↔ recover articles whose URLs have died
50
+ - **OFAC SDN** ↔ news context for sanctions designations
51
+ - **SEC EDGAR** ↔ news context for 8-K material events
52
+
53
+ Join key: entity name appearing in article title or full-text. GDELT also
54
+ extracts named entities into a separate stream (GKG) not exposed by this
55
+ fetcher — query GDELT directly for entity-level filtering.
56
+
57
+ ## 6. Data Quality
58
+
59
+ - Title extraction is automated and can be wrong (sometimes captures the
60
+ site name + delimiter + article title; sometimes a generic page title)
61
+ - Sentiment / tone is computed by GDELT, not source-supplied
62
+ - Some domains are oversampled (newswires, aggregators)
63
+ - Source country is inferred from domain registration / TLD — can be
64
+ wrong for international news sites with country-neutral domains
65
+ - Article URLs can rot — pair with Wayback Machine to preserve content
66
+
67
+ ## 7. Acquisition Script
68
+
69
+ Path: `scripts/fetch_gdelt.py`
70
+
71
+ ```bash
72
+ # Recent news mentioning an entity
73
+ python3 SKILL_DIR/scripts/fetch_gdelt.py --query "Nous Research" \
74
+ --timespan 6m --out data/gdelt.csv
75
+
76
+ # Phrase-exact (use double quotes inside single quotes for the shell)
77
+ python3 SKILL_DIR/scripts/fetch_gdelt.py --query '"Dillon Rolnick"' \
78
+ --timespan 1y --out data/gdelt.csv
79
+
80
+ # Filter to a country / language
81
+ python3 SKILL_DIR/scripts/fetch_gdelt.py --query "Microsoft" \
82
+ --source-country US --source-lang English --out data/gdelt.csv
83
+
84
+ # Date range
85
+ python3 SKILL_DIR/scripts/fetch_gdelt.py --query "Microsoft" \
86
+ --start 2024-01-01 --end 2024-12-31 --out data/gdelt.csv
87
+ ```
88
+
89
+ GDELT supports its own query operators: phrase quoting, AND/OR/NOT,
90
+ `sourcecountry:US`, `theme:ECON_BANKRUPTCY`, `tone<-5`, etc.
91
+ See https://blog.gdeltproject.org/gdelt-doc-2-0-api-debuts/ for syntax.
92
+
93
+ ## 8. Legal & Licensing
94
+
95
+ - GDELT data is provided free for academic and journalistic use
96
+ - Article URLs link out to original publishers — copyright remains with
97
+ the publisher
98
+ - GDELT is NOT a content archive; it's a metadata index
99
+
100
+ ## 9. References
101
+
102
+ - DOC 2.0 API: https://blog.gdeltproject.org/gdelt-doc-2-0-api-debuts/
103
+ - Themes & query syntax: https://blog.gdeltproject.org/gkg-2-0-our-global-knowledge-graph-2-0-amazing-data-at-your-fingertips/
104
+ - Project home: https://www.gdeltproject.org/
@@ -0,0 +1,104 @@
1
+ # ICIJ Offshore Leaks Database
2
+
3
+ ## 1. Summary
4
+
5
+ The International Consortium of Investigative Journalists (ICIJ) publishes a
6
+ combined database of offshore entities from the Panama Papers, Paradise Papers,
7
+ Pandora Papers, Bahamas Leaks, and Offshore Leaks. ~800,000+ offshore entities
8
+ with their officers, intermediaries, and addresses.
9
+
10
+ ## 2. Access Methods
11
+
12
+ - **Bulk download (primary):** `https://offshoreleaks-data.icij.org/offshoreleaks/csv/full-oldb.LATEST.zip` (~70 MB ZIP, refreshed periodically)
13
+ - **Search UI (human):** `https://offshoreleaks.icij.org/`
14
+ - **Auth:** None
15
+ - **Note:** The previous Open Refine reconciliation endpoint at
16
+ `/reconcile` now returns 404. ICIJ has removed it. The bulk ZIP is the
17
+ remaining stable access path. The skill's `fetch_icij_offshore.py` caches
18
+ the ZIP locally (default `~/.cache/hermes-osint/icij/`, refreshes after
19
+ 30 days) and searches it offline.
20
+
21
+ ## 3. Data Schema
22
+
23
+ Key fields emitted by `fetch_icij_offshore.py`:
24
+
25
+ | Column | Type | Description |
26
+ |--------|------|-------------|
27
+ | `node_id` | int | ICIJ canonical node ID |
28
+ | `name` | str | Entity / officer / intermediary name |
29
+ | `node_type` | str | entity / officer / intermediary / address |
30
+ | `country_codes` | str | Semicolon-separated ISO codes |
31
+ | `countries` | str | Country names |
32
+ | `jurisdiction` | str | Offshore jurisdiction (BVI, Panama, etc.) |
33
+ | `incorporation_date` | str | YYYY-MM-DD |
34
+ | `inactivation_date` | str | YYYY-MM-DD (if struck) |
35
+ | `source` | str | Panama Papers / Paradise Papers / Pandora Papers / etc. |
36
+ | `entity_url` | str | Link to ICIJ page |
37
+ | `connections` | str | Semicolon-separated node IDs of related entities |
38
+
39
+ ## 4. Coverage
40
+
41
+ - Worldwide offshore entity records
42
+ - Earliest records: 1970s (Bahamas Leaks). Most data 1990–2018.
43
+ - NOT updated in real-time — new leaks added when ICIJ publishes them
44
+ - ~810,000 offshore entities + ~750,000 officers + ~150,000 intermediaries
45
+
46
+ ## 5. Cross-Reference Potential
47
+
48
+ - **SEC EDGAR** ↔ `name` (public companies with offshore arms)
49
+ - **USAspending** ↔ `name` (federal contractors with offshore structure)
50
+ - **OFAC SDN** ↔ `name` (sanctioned entities using offshore vehicles)
51
+
52
+ Join key: normalized entity/officer name. `node_id` is canonical for cross-
53
+ referencing within ICIJ. Connections graph traversal is in-script (BFS over
54
+ `connections`).
55
+
56
+ ## 6. Data Quality
57
+
58
+ - Offshore entity names sometimes appear in multiple leaks with slight variations
59
+ - Officers may be nominees (front persons), not beneficial owners
60
+ - Some entries have minimal info (just a name + jurisdiction)
61
+ - The connections graph is incomplete — some relationships are documented in
62
+ source materials but not in the structured database
63
+ - Inactive/struck-off entities are still included with `inactivation_date`
64
+
65
+ ## 7. Acquisition Script
66
+
67
+ Path: `scripts/fetch_icij_offshore.py`
68
+
69
+ ```bash
70
+ # Search by entity name (case-insensitive substring across the bulk DB)
71
+ python3 SKILL_DIR/scripts/fetch_icij_offshore.py --entity "EXAMPLE CORP" \
72
+ --out data/icij.csv
73
+
74
+ # Search by officer (individual person)
75
+ python3 SKILL_DIR/scripts/fetch_icij_offshore.py --officer "SMITH JOHN" \
76
+ --out data/icij.csv
77
+
78
+ # Search by jurisdiction (filter on cached results)
79
+ python3 SKILL_DIR/scripts/fetch_icij_offshore.py --officer "SMITH" \
80
+ --jurisdiction "BRITISH VIRGIN ISLANDS" --out data/icij_bvi.csv
81
+
82
+ # Force a fresh download (default refresh window is 30 days)
83
+ python3 SKILL_DIR/scripts/fetch_icij_offshore.py --entity "EXAMPLE CORP" \
84
+ --force-refresh --out data/icij.csv
85
+ ```
86
+
87
+ First call downloads the ~70 MB ZIP under `~/.cache/hermes-osint/icij/`
88
+ (or `$HERMES_OSINT_CACHE/icij/`). Subsequent calls reuse the cache for 30 days.
89
+
90
+ ## 8. Legal & Licensing
91
+
92
+ - Public record as published by ICIJ under explicit publication
93
+ - No copyright on the underlying facts (entity names, jurisdictions)
94
+ - ICIJ asks for attribution if used in derivative reporting
95
+ - **Ethical note**: Presence in this database does NOT imply wrongdoing. Many
96
+ offshore structures are legal. The database is a research tool, not a list of
97
+ criminals.
98
+
99
+ ## 9. References
100
+
101
+ - Database: https://offshoreleaks.icij.org/
102
+ - About the data: https://offshoreleaks.icij.org/pages/about
103
+ - Methodology: https://www.icij.org/investigations/panama-papers/
104
+ - API hints: Open Refine reconciliation endpoint at `https://offshoreleaks.icij.org/reconcile`
@@ -0,0 +1,90 @@
1
+ # NYC ACRIS — NYC Real Property Records
2
+
3
+ ## 1. Summary
4
+
5
+ The Automated City Register Information System (ACRIS) is NYC's index of
6
+ recorded property documents: deeds, mortgages, satisfactions, liens, UCC
7
+ filings. Covers Manhattan, Bronx, Brooklyn, Queens, Staten Island.
8
+ Published as 4 linked Socrata datasets on the NYC Open Data portal.
9
+
10
+ ## 2. Access Methods
11
+
12
+ - **Socrata API:** `https://data.cityofnewyork.us/resource/636b-3b5g.json` (Parties)
13
+ - **Other datasets:** `bnx9-e6tj` (Master), `8h5j-fqxa` (Legal), `uqqa-hym2` (References)
14
+ - **Auth:** None for read access (Socrata `$app_token` raises rate limits if needed)
15
+ - **Rate limit:** Generous (~1000 req/hour unauthenticated)
16
+
17
+ ## 3. Data Schema
18
+
19
+ Key fields emitted by `fetch_nyc_acris.py` (Parties joined to Master):
20
+
21
+ | Column | Type | Description |
22
+ |--------|------|-------------|
23
+ | `document_id` | str | ACRIS document ID |
24
+ | `name` | str | Party name as recorded (often "LAST, FIRST" but varies) |
25
+ | `party_type` | str | 1=grantor, 2=grantee, 3=other |
26
+ | `party_role` | str | Human-readable role label |
27
+ | `address_1` | str | Property or party address line 1 |
28
+ | `city`, `state`, `zip`, `country` | str | Address parts |
29
+ | `doc_type` | str | DEED, MTGE (mortgage), SAT (satisfaction), AGMT, etc. |
30
+ | `doc_date`, `recorded_date` | str | YYYY-MM-DD |
31
+ | `borough` | str | Manhattan / Bronx / Brooklyn / Queens / Staten Island |
32
+ | `amount` | str | Document amount (USD, when applicable) |
33
+ | `filing_url` | str | Direct ACRIS DocumentImageView link |
34
+
35
+ ## 4. Coverage
36
+
37
+ - NYC 5 boroughs only — other counties have their own recorders
38
+ - 1966 → present (older filings exist on microfilm at the County Clerk)
39
+ - Updated nightly
40
+ - ~70M+ party records cumulative
41
+
42
+ ## 5. Cross-Reference Potential
43
+
44
+ - **SEC EDGAR** ↔ `name` (insider filers with NYC property)
45
+ - **USAspending** ↔ `name` (federal contractors with NYC property)
46
+ - **Senate LDA** ↔ `name` (lobbyists / clients with NYC property)
47
+ - **ICIJ Offshore** ↔ `name` (NYC properties owned via offshore vehicles)
48
+
49
+ Join key: normalized party name. NYC property records typically store names
50
+ as "LAST, FIRST" or full LLC names — use `entity_resolution.py`.
51
+
52
+ ## 6. Data Quality
53
+
54
+ - Same person appears with multiple name formats over time
55
+ - LLC and trust ownership obscures beneficial owners
56
+ - Recording lag can be 2-4 weeks after closing
57
+ - Older documents have spottier address data
58
+ - Sealed records (e.g. domestic violence shelters) are excluded by law
59
+
60
+ ## 7. Acquisition Script
61
+
62
+ Path: `scripts/fetch_nyc_acris.py`
63
+
64
+ ```bash
65
+ # By party name
66
+ python3 SKILL_DIR/scripts/fetch_nyc_acris.py --name "ROLNICK" --out data/acris.csv
67
+
68
+ # By address (useful when you know the property but not the names)
69
+ python3 SKILL_DIR/scripts/fetch_nyc_acris.py --address "571 HUDSON" --out data/acris.csv
70
+
71
+ # Restrict to grantees (buyers / mortgagees)
72
+ python3 SKILL_DIR/scripts/fetch_nyc_acris.py --name "ROLNICK" --party-type 2 \
73
+ --out data/acris_buyers.csv
74
+ ```
75
+
76
+ The script joins Parties → Master to populate doc_type, dates, borough, and
77
+ amount. Pass `--no-enrich` to skip the join (faster, fewer columns).
78
+
79
+ ## 8. Legal & Licensing
80
+
81
+ - Public record under NYS Real Property Law and NYC Charter
82
+ - No commercial use restrictions on the data
83
+ - All ACRIS data is public information by statute
84
+
85
+ ## 9. References
86
+
87
+ - ACRIS portal: https://a836-acris.nyc.gov/CP/
88
+ - NYC Open Data: https://data.cityofnewyork.us/
89
+ - Parties dataset: https://data.cityofnewyork.us/City-Government/ACRIS-Real-Property-Parties/636b-3b5g
90
+ - Document type codes: https://www1.nyc.gov/site/finance/taxes/acris.page
@@ -0,0 +1,92 @@
1
+ # OFAC SDN — Specially Designated Nationals List
2
+
3
+ ## 1. Summary
4
+
5
+ The Office of Foreign Assets Control (OFAC) publishes the Specially Designated
6
+ Nationals and Blocked Persons List (SDN). US persons are generally prohibited
7
+ from dealing with individuals and entities on this list. Also published:
8
+ non-SDN consolidated lists (BIS Denied Persons, FSE, etc.).
9
+
10
+ ## 2. Access Methods
11
+
12
+ - **Full XML:** `https://www.treasury.gov/ofac/downloads/sdn.xml`
13
+ - **Delimited:** `https://www.treasury.gov/ofac/downloads/sdn.csv`
14
+ - **Consolidated:** `https://www.treasury.gov/ofac/downloads/consolidated/consolidated.xml`
15
+ - **Auth:** None
16
+ - **Rate limit:** None (static file downloads). Updated continuously.
17
+
18
+ ## 3. Data Schema
19
+
20
+ Key fields emitted by `fetch_ofac_sdn.py`:
21
+
22
+ | Column | Type | Description |
23
+ |--------|------|-------------|
24
+ | `entity_id` | int | OFAC unique ID |
25
+ | `name` | str | Primary name |
26
+ | `entity_type` | str | individual / entity / vessel / aircraft |
27
+ | `program_list` | str | Semicolon-separated sanctions programs (e.g. SDGT;IRAN) |
28
+ | `title` | str | For individuals: title/role |
29
+ | `nationalities` | str | Semicolon-separated country codes |
30
+ | `aka_list` | str | Semicolon-separated "also known as" names |
31
+ | `addresses` | str | Semicolon-separated known addresses |
32
+ | `dob` | str | Date of birth (individuals) |
33
+ | `pob` | str | Place of birth (individuals) |
34
+ | `remarks` | str | OFAC's free-text remarks |
35
+ | `last_updated` | str | YYYY-MM-DD (publication date) |
36
+
37
+ ## 4. Coverage
38
+
39
+ - Worldwide — all entities sanctioned by US Treasury
40
+ - ~10,000 entries on SDN, ~15,000 on consolidated lists
41
+ - Updated continuously (sometimes daily during active enforcement)
42
+ - Includes AKAs (very common, can be 10+ per entity)
43
+
44
+ ## 5. Cross-Reference Potential
45
+
46
+ - **SEC EDGAR** ↔ `name` (public companies sanctioned)
47
+ - **USAspending** ↔ `name` (sanctioned entity as federal contractor — should
48
+ be impossible but verify)
49
+ - **ICIJ Offshore** ↔ `name` (offshore entities also sanctioned)
50
+
51
+ Join key: normalized name. **CRITICAL**: must match against `aka_list` too.
52
+ Many sanctioned entities are caught only via aliases.
53
+
54
+ ## 6. Data Quality
55
+
56
+ - Names are transliterated from many scripts — multiple romanizations possible
57
+ - AKAs often differ wildly from primary name
58
+ - Some entries have minimal info (no DOB, no address) for individuals
59
+ - Free-text `remarks` contain critical context — read them
60
+ - "Specially Designated Global Terrorists" (SDGT) and "Cyber-related" (CYBER2)
61
+ programs add and remove entries frequently
62
+
63
+ ## 7. Acquisition Script
64
+
65
+ Path: `scripts/fetch_ofac_sdn.py`
66
+
67
+ ```bash
68
+ # Full snapshot
69
+ python3 SKILL_DIR/scripts/fetch_ofac_sdn.py --out data/ofac_sdn.csv
70
+
71
+ # Filter to specific program
72
+ python3 SKILL_DIR/scripts/fetch_ofac_sdn.py --program SDGT --out data/sdn_sdgt.csv
73
+
74
+ # Entities only (skip individuals, vessels, aircraft)
75
+ python3 SKILL_DIR/scripts/fetch_ofac_sdn.py --entity-type entity --out data/sdn_entities.csv
76
+ ```
77
+
78
+ ## 8. Legal & Licensing
79
+
80
+ - Public record under Executive Order authority and statutory sanctions programs
81
+ - US persons MUST screen against this list — it is enforced
82
+ - No restrictions on the data itself; restrictions are on transactions with
83
+ the listed entities
84
+ - ZERO penalty for "over-matching" — false positives must be cleared but are not
85
+ prohibited
86
+
87
+ ## 9. References
88
+
89
+ - OFAC home: https://ofac.treasury.gov/
90
+ - SDN list: https://ofac.treasury.gov/specially-designated-nationals-and-blocked-persons-list-sdn-human-readable-lists
91
+ - Data formats: https://ofac.treasury.gov/sdn-list/sanctions-list-search-tool
92
+ - Compliance guidance: https://ofac.treasury.gov/recent-actions