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
@@ -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
@@ -0,0 +1,103 @@
1
+ # OpenCorporates — Global Corporate Registry
2
+
3
+ ## 1. Summary
4
+
5
+ OpenCorporates aggregates corporate registry data from 130+ jurisdictions
6
+ worldwide (~200M companies). Covers US state-level filings (NY DOS, Delaware
7
+ DOC, California SOS, etc.), UK Companies House, EU registries, and most
8
+ common-law jurisdictions.
9
+
10
+ ## 2. Access Methods
11
+
12
+ - **REST API:** `https://api.opencorporates.com/v0.4/`
13
+ - **HTML fallback:** `https://opencorporates.com/companies?q=...`
14
+ - **Auth:** API token required (free tier 500 calls/month, paid plans available)
15
+ - **Rate limit:** Token-bound; un-tokened requests return 401
16
+
17
+ Set `OPENCORPORATES_API_TOKEN` env var. Get a free token at
18
+ https://opencorporates.com/api_accounts/new.
19
+
20
+ ## 3. Data Schema
21
+
22
+ Key fields emitted by `fetch_opencorporates.py`:
23
+
24
+ | Column | Type | Description |
25
+ |--------|------|-------------|
26
+ | `name` | str | Company legal name |
27
+ | `company_number` | str | Registry-assigned number |
28
+ | `jurisdiction_code` | str | e.g. `us_ny`, `us_de`, `gb` |
29
+ | `jurisdiction_name` | str | Human-readable jurisdiction |
30
+ | `incorporation_date` | str | YYYY-MM-DD |
31
+ | `dissolution_date` | str | YYYY-MM-DD (empty if active) |
32
+ | `company_type` | str | Domestic LLC / Foreign Corp / etc. |
33
+ | `status` | str | Active / Inactive / Dissolved |
34
+ | `registered_address` | str | Registered office address |
35
+ | `opencorporates_url` | str | Link to OpenCorporates entity page |
36
+ | `officers_count` | str | Total officers on record |
37
+ | `source` | str | `api`, `html`, or `html-fallback` |
38
+
39
+ ## 4. Coverage
40
+
41
+ - US: all 50 states + DC at state level (LLCs, corps, LPs)
42
+ - International: UK, EU, Canada, Australia, NZ, many APAC + LATAM jurisdictions
43
+ - ~200M company records cumulative
44
+ - Update frequency varies by jurisdiction (UK CH is near-realtime; some
45
+ state registries lag months)
46
+
47
+ ## 5. Cross-Reference Potential
48
+
49
+ - **NYC ACRIS** ↔ `name` (LLC/corp owners of NYC property)
50
+ - **USAspending** ↔ `name` (corporate federal contractors)
51
+ - **SEC EDGAR** ↔ `name` (public companies + their subsidiaries)
52
+ - **ICIJ Offshore** ↔ `name` (international corporate structures)
53
+
54
+ Join key: normalized company name. Some entries have `previous_names` arrays
55
+ which are not currently exported by the fetch script — query OC directly
56
+ for that.
57
+
58
+ ## 6. Data Quality
59
+
60
+ - Company-name spellings vary across re-incorporations and renames
61
+ - Officer records are spottier than company records (many jurisdictions
62
+ don't require officer disclosure)
63
+ - Beneficial-ownership data is generally NOT here — most jurisdictions
64
+ don't require it. UK Companies House has PSC (people with significant
65
+ control) but that's not universal.
66
+ - Cross-jurisdictional links (parent / subsidiary) are based on registry
67
+ filings only; corporate trees are often incomplete
68
+
69
+ ## 7. Acquisition Script
70
+
71
+ Path: `scripts/fetch_opencorporates.py`
72
+
73
+ ```bash
74
+ # Search globally by name
75
+ python3 SKILL_DIR/scripts/fetch_opencorporates.py --query "Example Corp" \
76
+ --out data/oc.csv
77
+
78
+ # Restrict to a jurisdiction
79
+ python3 SKILL_DIR/scripts/fetch_opencorporates.py --query "Example Corp" \
80
+ --jurisdiction us_ny --out data/oc_ny.csv
81
+
82
+ # Set token via env or flag
83
+ OPENCORPORATES_API_TOKEN=xxx python3 SKILL_DIR/scripts/fetch_opencorporates.py \
84
+ --query "Microsoft" --out data/oc.csv
85
+ ```
86
+
87
+ Without a token the script falls back to scraping the HTML search page.
88
+ The fallback is brittle and only fills in `name`, `jurisdiction_code`,
89
+ `opencorporates_url` — set the token for serious work.
90
+
91
+ ## 8. Legal & Licensing
92
+
93
+ - OpenCorporates aggregates public records — the underlying facts are
94
+ public domain
95
+ - OpenCorporates own database is licensed CC-BY-SA-4.0; attribution required
96
+ - API ToS prohibits redistributing the full dataset; per-record reference
97
+ is fine
98
+
99
+ ## 9. References
100
+
101
+ - API docs: https://api.opencorporates.com/documentation/API-Reference
102
+ - Jurisdiction codes: https://api.opencorporates.com/v0.4/jurisdictions.json
103
+ - Schema: https://opencorporates.com/info/our_data
@@ -0,0 +1,83 @@
1
+ # SEC EDGAR — Corporate Filings
2
+
3
+ ## 1. Summary
4
+
5
+ EDGAR (Electronic Data Gathering, Analysis, and Retrieval) is the SEC's system
6
+ for corporate disclosure filings: 10-K (annual), 10-Q (quarterly), 8-K (current
7
+ events), DEF 14A (proxy), Form 4 (insider trading), 13F (institutional holdings).
8
+
9
+ ## 2. Access Methods
10
+
11
+ - **API:** `https://data.sec.gov/submissions/CIK<10-digit-padded>.json` (no auth)
12
+ - **Filing index:** `https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=...`
13
+ - **Full-text search:** `https://efts.sec.gov/LATEST/search-index?q=...`
14
+ - **Auth:** None — requires `User-Agent` header with contact info per SEC policy
15
+ - **Rate limit:** 10 requests/second per IP (enforced)
16
+
17
+ ## 3. Data Schema
18
+
19
+ Key fields emitted by `fetch_sec_edgar.py` (filings index):
20
+
21
+ | Column | Type | Description |
22
+ |--------|------|-------------|
23
+ | `cik` | str | Central Index Key (10-digit padded) |
24
+ | `company_name` | str | Registrant name |
25
+ | `form_type` | str | 10-K, 10-Q, 8-K, etc. |
26
+ | `filing_date` | str | YYYY-MM-DD |
27
+ | `accession_number` | str | Filing accession (e.g. 0000320193-24-000123) |
28
+ | `primary_document` | str | Filename of main document |
29
+ | `filing_url` | str | Direct URL to filing index |
30
+ | `reporting_period` | str | Period of report (where applicable) |
31
+
32
+ ## 4. Coverage
33
+
34
+ - All public US registrants from 1993 → present
35
+ - 1993-2000 has spotty coverage of older filings (paper-to-electronic migration)
36
+ - ~12M filings cumulative
37
+ - Updated within minutes of filing acceptance
38
+
39
+ ## 5. Cross-Reference Potential
40
+
41
+ - **USAspending** ↔ `company_name` (public companies as federal contractors)
42
+ - **Senate LD** ↔ `company_name` (public companies hire lobbyists)
43
+ - **OFAC SDN** ↔ `company_name` (sanctions screening of public registrants)
44
+
45
+ Join key: company name OR CIK if you have it. CIK is canonical and stable.
46
+
47
+ ## 6. Data Quality
48
+
49
+ - Subsidiaries often filed under parent CIK — be careful with name matches
50
+ - Name changes over time (rebrands, acquisitions) — CIK remains constant
51
+ - 10-K Item 1A Risk Factors are free-form text — useful for `web_extract`-style
52
+ parsing, not structured queries
53
+ - Foreign private issuers file 20-F instead of 10-K
54
+
55
+ ## 7. Acquisition Script
56
+
57
+ Path: `scripts/fetch_sec_edgar.py`
58
+
59
+ ```bash
60
+ # By CIK
61
+ python3 SKILL_DIR/scripts/fetch_sec_edgar.py --cik 0000320193 \
62
+ --types 10-K,10-Q --out data/edgar_filings.csv
63
+
64
+ # By company name (resolves to CIK first via name search)
65
+ python3 SKILL_DIR/scripts/fetch_sec_edgar.py --company "APPLE INC" \
66
+ --types 8-K --since 2024-01-01 --out data/edgar_filings.csv
67
+ ```
68
+
69
+ Set `SEC_USER_AGENT` env var with your contact email (SEC requirement).
70
+ Example: `SEC_USER_AGENT="Research example@example.com"`.
71
+
72
+ ## 8. Legal & Licensing
73
+
74
+ - Public record under SEC Rule 24b-2 / 17 CFR § 230.401
75
+ - No commercial use restrictions on filing content
76
+ - SEC asks all bulk users to include a `User-Agent` with contact info and to
77
+ respect 10 req/s — failure to do so can result in IP blocking
78
+
79
+ ## 9. References
80
+
81
+ - Developer docs: https://www.sec.gov/edgar/sec-api-documentation
82
+ - EDGAR full-text search: https://efts.sec.gov/LATEST/search-index
83
+ - Fair access policy: https://www.sec.gov/os/accessing-edgar-data