context-map-ai 2.3.0__tar.gz → 2.4.0__tar.gz

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 (234) hide show
  1. context_map_ai-2.4.0/.agents/skills/contextmap/SKILL.md +37 -0
  2. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.github/copilot-instructions.md +1 -1
  3. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.github/workflows/ci.yml +19 -1
  4. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.gitignore +6 -0
  5. context_map_ai-2.4.0/.hermes/workflows/contextmap.yaml +21 -0
  6. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/AGENTS.md +9 -8
  7. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/CHANGELOG.md +18 -0
  8. context_map_ai-2.4.0/CLAUDE.md +26 -0
  9. context_map_ai-2.4.0/PKG-INFO +205 -0
  10. context_map_ai-2.4.0/README.md +169 -0
  11. context_map_ai-2.4.0/README_EN.md +169 -0
  12. context_map_ai-2.4.0/README_TECNICO.md +197 -0
  13. context_map_ai-2.4.0/context_map/__tests__/test_analyzers_content.py +69 -0
  14. context_map_ai-2.4.0/context_map/__tests__/test_cargadores_chats.py +57 -0
  15. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_checker_frescura.py +26 -7
  16. context_map_ai-2.4.0/context_map/__tests__/test_clasificacion_chat.py +44 -0
  17. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_conexiones.py +5 -5
  18. context_map_ai-2.4.0/context_map/__tests__/test_dependencias_mcp.py +34 -0
  19. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_ecosistema.py +70 -0
  20. context_map_ai-2.4.0/context_map/__tests__/test_exclusiones_escaneo.py +76 -0
  21. context_map_ai-2.4.0/context_map/__tests__/test_export.py +99 -0
  22. context_map_ai-2.4.0/context_map/__tests__/test_fechas_conversaciones.py +98 -0
  23. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_hermes_clasificacion.py +30 -2
  24. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_personal.py +143 -5
  25. context_map_ai-2.4.0/context_map/__tests__/test_personal_identidad.py +67 -0
  26. context_map_ai-2.4.0/context_map/__tests__/test_personal_panorama.py +301 -0
  27. context_map_ai-2.4.0/context_map/__tests__/test_personal_repair.py +218 -0
  28. context_map_ai-2.4.0/context_map/__tests__/test_personal_ruta.py +89 -0
  29. context_map_ai-2.4.0/context_map/__tests__/test_personal_sync.py +103 -0
  30. context_map_ai-2.4.0/context_map/__tests__/test_prompt_caching.py +67 -0
  31. context_map_ai-2.4.0/context_map/__tests__/test_readiness_signals.py +47 -0
  32. context_map_ai-2.4.0/context_map/__tests__/test_refresh_multicanal.py +104 -0
  33. context_map_ai-2.4.0/context_map/__tests__/test_scan_cache.py +57 -0
  34. context_map_ai-2.4.0/context_map/__tests__/test_templates_filenames.py +36 -0
  35. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_vault_consolidation.py +53 -0
  36. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/cli/parser.py +27 -2
  37. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/build.py +1 -1
  38. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/enrich.py +3 -6
  39. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/export.py +11 -10
  40. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/importers.py +2 -0
  41. context_map_ai-2.4.0/context_map/application/commands/personal/__init__.py +114 -0
  42. context_map_ai-2.4.0/context_map/application/commands/personal/common.py +255 -0
  43. context_map_ai-2.4.0/context_map/application/commands/personal/export.py +216 -0
  44. context_map_ai-2.4.0/context_map/application/commands/personal/panorama.py +39 -0
  45. context_map_ai-2.4.0/context_map/application/commands/personal/query.py +108 -0
  46. context_map_ai-2.4.0/context_map/application/commands/personal/repair.py +56 -0
  47. context_map_ai-2.4.0/context_map/application/commands/personal/sync.py +235 -0
  48. context_map_ai-2.4.0/context_map/application/commands/personal/timeline.py +38 -0
  49. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/refresh.py +92 -9
  50. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/wrap.py +19 -3
  51. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/parsing/cargadores.py +83 -1
  52. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/parsing/clasificacion.py +16 -6
  53. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/personal/bd.py +7 -2
  54. context_map_ai-2.4.0/context_map/core/personal/panorama.py +607 -0
  55. context_map_ai-2.4.0/context_map/core/personal/repair.py +410 -0
  56. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/tokenization.py +1 -1
  57. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/analysis/signals.py +48 -17
  58. context_map_ai-2.4.0/context_map/domain/ecosystem/adaptador.py +365 -0
  59. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/ecosystem/detector.py +3 -1
  60. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/ecosystem/rules_templates.py +79 -10
  61. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/ingestion/ingest.py +3 -2
  62. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/scanning/scanner.py +7 -27
  63. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/storage/packer.py +2 -2
  64. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/infrastructure/analyzers/content.py +120 -21
  65. context_map_ai-2.4.0/context_map/infrastructure/analyzers/exclusions.py +120 -0
  66. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/infrastructure/analyzers/structure.py +7 -6
  67. context_map_ai-2.4.0/context_map/infrastructure/integrations/antigravity.py +575 -0
  68. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/infrastructure/integrations/hermes.py +132 -12
  69. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/infrastructure/integrations/ollama.py +2 -2
  70. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/infrastructure/mcp_server.py +126 -0
  71. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/infrastructure/version_check.py +2 -1
  72. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/briefs/brief.py +27 -9
  73. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/briefs/extractors.py +1 -1
  74. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/briefs/sections.py +35 -11
  75. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/atomic.py +19 -8
  76. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/consolidated/__init__.py +6 -2
  77. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/consolidated/canvas.py +4 -2
  78. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/consolidated/consolidado.py +64 -32
  79. context_map_ai-2.4.0/context_map/presentation/vault/consolidated/dominios.py +191 -0
  80. context_map_ai-2.4.0/context_map/presentation/vault/consolidated/escritura.py +52 -0
  81. context_map_ai-2.4.0/context_map/presentation/vault/consolidated/graph_style.py +190 -0
  82. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/consolidated/jerarquico.py +45 -8
  83. context_map_ai-2.4.0/context_map/presentation/vault/consolidated/nodos.py +46 -0
  84. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/consolidated/notas_ideas.py +7 -6
  85. context_map_ai-2.4.0/context_map/presentation/vault/consolidated/readme_extract.py +375 -0
  86. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/consolidated/secciones_backlog.py +1 -1
  87. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/consolidated/secciones_estructura.py +2 -4
  88. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/consolidated/secciones_historial.py +1 -1
  89. context_map_ai-2.4.0/context_map/presentation/vault/consolidated/secciones_ideas.py +428 -0
  90. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/consolidated/secciones_proposito.py +2 -2
  91. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/consolidated/secciones_riesgos.py +9 -8
  92. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/templates.py +17 -3
  93. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/pyproject.toml +14 -3
  94. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/uv.lock +2 -2
  95. context_map_ai-2.3.0/PKG-INFO +0 -281
  96. context_map_ai-2.3.0/README.md +0 -246
  97. context_map_ai-2.3.0/README_EN.md +0 -216
  98. context_map_ai-2.3.0/context_map/__tests__/test_export.py +0 -43
  99. context_map_ai-2.3.0/context_map/__tests__/test_scan_cache.py +0 -30
  100. context_map_ai-2.3.0/context_map/application/commands/personal.py +0 -578
  101. context_map_ai-2.3.0/context_map/domain/ecosystem/adaptador.py +0 -225
  102. context_map_ai-2.3.0/context_map/infrastructure/integrations/antigravity.py +0 -398
  103. context_map_ai-2.3.0/context_map/presentation/vault/consolidated/common.py +0 -586
  104. context_map_ai-2.3.0/context_map/presentation/vault/consolidated/secciones_ideas.py +0 -331
  105. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  106. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  107. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  108. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.github/workflows/docs.yml +0 -0
  109. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.github/workflows/publish.yml +0 -0
  110. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.hermes/config.yaml +0 -0
  111. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.hermes/shields/pre-commit.md +0 -0
  112. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.hermes/triggers/post-commit.md +0 -0
  113. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.hermes/workflows/dev-loop.md +0 -0
  114. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.pre-commit-hooks.yaml +0 -0
  115. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/CODE_OF_CONDUCT.md +0 -0
  116. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/CONTRIBUTING.md +0 -0
  117. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/LICENSE +0 -0
  118. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/Makefile +0 -0
  119. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/action.yml +0 -0
  120. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__init__.py +0 -0
  121. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/conftest.py +0 -0
  122. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/smoke.py +0 -0
  123. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_ast_audit.py +0 -0
  124. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_ast_summary.py +0 -0
  125. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_cli.py +0 -0
  126. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_cyclomatic.py +0 -0
  127. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_diario_consolidado.py +0 -0
  128. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_doctor.py +0 -0
  129. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_domain_extractor.py +0 -0
  130. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_enrich.py +0 -0
  131. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_enterprise_features.py +0 -0
  132. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_hardware.py +0 -0
  133. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_hook_memoria_viva.py +0 -0
  134. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_hooks.py +0 -0
  135. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_ingest.py +0 -0
  136. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_mcp_server_seguridad.py +0 -0
  137. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_mermaid.py +0 -0
  138. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_metrica_memoria_viva.py +0 -0
  139. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_ollama.py +0 -0
  140. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_pack_unpack.py +0 -0
  141. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_parsing.py +0 -0
  142. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_refresh_temporales.py +0 -0
  143. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_reglas_catalogo.py +0 -0
  144. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_scanner.py +0 -0
  145. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_security.py +0 -0
  146. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_security_scanner.py +0 -0
  147. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_similarity.py +0 -0
  148. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_standardize.py +0 -0
  149. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_tokenization.py +0 -0
  150. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_topologia_arbol.py +0 -0
  151. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_watcher.py +0 -0
  152. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_wrap.py +0 -0
  153. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/__init__.py +0 -0
  154. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/cli/__init__.py +0 -0
  155. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/cli/cli.py +0 -0
  156. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/__init__.py +0 -0
  157. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/_helpers.py +0 -0
  158. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/adapt.py +0 -0
  159. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/auto.py +0 -0
  160. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/doctor_cmd.py +0 -0
  161. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/hook.py +0 -0
  162. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/ingest.py +0 -0
  163. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/pack.py +0 -0
  164. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/scan.py +0 -0
  165. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/sync.py +0 -0
  166. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/tools.py +0 -0
  167. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/update.py +0 -0
  168. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/watch.py +0 -0
  169. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/cli.py +0 -0
  170. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/__init__.py +0 -0
  171. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/generators/__init__.py +0 -0
  172. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/generators/generadores.py +0 -0
  173. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/generators/narrative_templates.py +0 -0
  174. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/logging_setup.py +0 -0
  175. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/models/__init__.py +0 -0
  176. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/models/config.py +0 -0
  177. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/models/models.py +0 -0
  178. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/normalization/__init__.py +0 -0
  179. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/normalization/cleaning.py +0 -0
  180. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/normalization/inference.py +0 -0
  181. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/normalization/mappings.py +0 -0
  182. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/normalization/standardize.py +0 -0
  183. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/parsing/__init__.py +0 -0
  184. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/parsing/dedup.py +0 -0
  185. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/parsing/grafo.py +0 -0
  186. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/personal/__init__.py +0 -0
  187. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/storage/__init__.py +0 -0
  188. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/storage/config_loader.py +0 -0
  189. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/storage/store.py +0 -0
  190. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/__init__.py +0 -0
  191. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/analysis/__init__.py +0 -0
  192. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/analysis/checker.py +0 -0
  193. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/analysis/models.py +0 -0
  194. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/analysis/reporting.py +0 -0
  195. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/analyzers/__init__.py +0 -0
  196. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/analyzers/ast_audit.py +0 -0
  197. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/analyzers/ast_summary.py +0 -0
  198. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/analyzers/cyclomatic.py +0 -0
  199. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/ecosystem/__init__.py +0 -0
  200. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/ecosystem/hooks.py +0 -0
  201. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/health/__init__.py +0 -0
  202. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/health/doctor.py +0 -0
  203. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/health/hardware.py +0 -0
  204. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/ingestion/__init__.py +0 -0
  205. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/normalization/domain_extractor.py +0 -0
  206. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/normalization/similarity.py +0 -0
  207. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/reglas/reglas.py +0 -0
  208. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/reporting/__init__.py +0 -0
  209. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/reporting/reporter.py +0 -0
  210. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/scanning/__init__.py +0 -0
  211. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/scanning/cache.py +0 -0
  212. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/scanning/security.py +0 -0
  213. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/synchronization/__init__.py +0 -0
  214. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/synchronization/relaciones.py +0 -0
  215. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/synchronization/sync.py +0 -0
  216. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/synchronization/watcher.py +0 -0
  217. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/infrastructure/__init__.py +0 -0
  218. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/infrastructure/analyzers/__init__.py +0 -0
  219. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/infrastructure/integrations/__init__.py +0 -0
  220. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/infrastructure/integrations/chat_export.py +0 -0
  221. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/infrastructure/integrations/git.py +0 -0
  222. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/__init__.py +0 -0
  223. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/briefs/__init__.py +0 -0
  224. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/briefs/agents.py +0 -0
  225. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/briefs/skill.py +0 -0
  226. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/__init__.py +0 -0
  227. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/consolidated/rutas.py +0 -0
  228. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/mermaid.py +0 -0
  229. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/preservar.py +0 -0
  230. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/writer.py +0 -0
  231. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/docs/LAUNCH_KIT.md +0 -0
  232. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/docs/plans/2026-08-10-mapa-mental-conectado.md +0 -0
  233. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/docs/plans/PLAN-MEJORAS-CONTEXTO-VIVO-2026-08-14.md +0 -0
  234. {context_map_ai-2.3.0 → context_map_ai-2.4.0}/mkdocs.yml +0 -0
@@ -0,0 +1,37 @@
1
+ ---
2
+ name: contextmap
3
+ description: Protocolo, flujos y comandos esenciales para gobernar el contexto, consultar la memoria permanente y mantener vivo el grafo del proyecto con ContextMap IA.
4
+ ---
5
+
6
+ # Skill de ContextMap IA — ContextMap
7
+
8
+ Esta skill proporciona las directivas operativas para interactuar con la memoria permanente, los documentos de referencia y el grafo conceptual de **ContextMap**.
9
+
10
+ ## Comandos Esenciales
11
+
12
+ ```bash
13
+ # 1. Poner todo el contexto al día en un solo paso (scan + build con preservación + auto-ingesta + check)
14
+ ctxmap refresh .
15
+
16
+ # 2. Ingerir documentos brutos manualmente (MD, TXT, PDF)
17
+ ctxmap ingest .context-map/raw/docs/
18
+
19
+ # 3. Verificar la salud, integridad y enlaces rotos del vault
20
+ ctxmap check .
21
+
22
+ # 4. Sincronizar memoria personal / multi-proyecto
23
+ ctxmap personal sync
24
+
25
+ # 5. Consultar decisiones o conocimiento histórico
26
+ ctxmap personal query "tema de consulta"
27
+ ```
28
+
29
+ ## Protocolo de Inicio y Memoria Viva para Agentes
30
+
31
+ 1. **Inspeccionar Brief**: Leer `.context-map/CONTEXT.md` (identidad, propósito, métricas y estado).
32
+ 2. **Consultar Documentos y Backlog**: Revisar `.context-map/vault-ContextMap/3.2-DOCUMENTOS/`, `7.0-MANUAL/BACKLOG.md` y notas de diario recientes.
33
+ 3. **Memoria Viva Multicanal**: Para incorporar contexto externo (conversaciones, transcripciones o especificaciones), colócalos en `.context-map/chats/` o `.context-map/raw/docs/`. `ctxmap refresh .` los asimilará automáticamente.
34
+ 4. **Verificar Antes de Commit**:
35
+ - Tests: `python -m pytest`
36
+ - Refrescar grafo y vault: `ctxmap refresh .`
37
+ - Sin archivos sueltos en raíz.
@@ -18,7 +18,7 @@
18
18
 
19
19
  # GitHub Copilot — Instrucciones para ContextMap
20
20
 
21
- > Generado automáticamente por **ContextMap** (2026-08-21).
21
+ > Generado automáticamente por **ContextMap** (2026-09-23).
22
22
 
23
23
  ## Antes de sugerir código
24
24
 
@@ -9,7 +9,11 @@ on:
9
9
  jobs:
10
10
  test:
11
11
  name: Tests (pytest)
12
- runs-on: ubuntu-latest
12
+ runs-on: ${{ matrix.os }}
13
+ strategy:
14
+ fail-fast: false
15
+ matrix:
16
+ os: [ubuntu-latest, windows-latest]
13
17
  steps:
14
18
  - uses: actions/checkout@v4
15
19
  - uses: astral-sh/setup-uv@v5
@@ -32,3 +36,17 @@ jobs:
32
36
  run: uv sync --dev --all-extras
33
37
  - name: Ruff check
34
38
  run: uv run ruff check context_map/
39
+
40
+ typecheck:
41
+ name: Type check (mypy · bloqueante)
42
+ runs-on: ubuntu-latest
43
+ steps:
44
+ - uses: actions/checkout@v4
45
+ - uses: astral-sh/setup-uv@v5
46
+ with:
47
+ python-version: "3.12"
48
+ - name: Instalar dependencias
49
+ run: uv sync --dev --all-extras
50
+ - name: mypy
51
+ run: uv run mypy context_map/
52
+
@@ -52,5 +52,11 @@ Thumbs.db
52
52
  # Context Map (generated)
53
53
  .context-map/
54
54
 
55
+ # Respaldos automáticos de `ctxmap adapt --overwrite`
56
+ *.bak
57
+
55
58
  # Logs
56
59
  *.log
60
+
61
+ # Scratch and test workspace
62
+ .work/
@@ -0,0 +1,21 @@
1
+ # Hermes Workflow — ContextMap IA Governance
2
+ version: "1.0"
3
+ name: "contextmap-governance"
4
+ description: "Flujo automatizado de contexto y calidad para ContextMap"
5
+
6
+ steps:
7
+ - name: "Ponerse en contexto"
8
+ action: "read_file"
9
+ target: ".context-map/CONTEXT.md"
10
+
11
+ - name: "Ejecutar pruebas unitarias"
12
+ action: "run_command"
13
+ command: "python -m pytest"
14
+
15
+ - name: "Sincronizar memoria viva"
16
+ action: "run_command"
17
+ command: "ctxmap refresh ."
18
+
19
+ - name: "Control de calidad"
20
+ action: "run_command"
21
+ command: "ctxmap check ."
@@ -55,24 +55,25 @@ Cualquier agente que tome una tarea en este proyecto **DEBE** seguir estos pasos
55
55
  mi-app-utm) o por un vault que no es este, dilo ANTES de responder — nunca
56
56
  respondas con el contexto de otro proyecto.
57
57
  2. **Leer el Brief Ejecutivo**:
58
- Consultar [.context-map/CONTEXT.md](file:///c:/Users/jose.cespedes/Desktop/PruebaContext/.context-map/CONTEXT.md) para conocer las métricas, riesgos críticos y tareas pendientes.
58
+ Consultar [.context-map/CONTEXT.md](file:///.context-map/CONTEXT.md) para conocer las métricas, riesgos críticos y tareas pendientes.
59
59
  3. **Comprobar la FRESCURA del contexto**: si el brief avisa que el diario manual
60
60
  es más nuevo que el build (sección "Estado del Contexto"), ejecuta
61
61
  `ctxmap refresh .` ANTES de responder sobre el estado del proyecto.
62
- 4. **Leer los PENDIENTES REALES**: además del backlog generado (5.0-BACKLOG),
63
- revisa SIEMPRE `.context-map/vault-ContextMap/7.0-MANUAL/BACKLOG.md` (si existe)
64
- y el diario más reciente (`7.0-MANUAL/Diario/`). Los pendientes conversados con
65
- el usuario viven ahí.
62
+ 4. **Leer los PENDIENTES REALES y DOCUMENTOS**: además del backlog generado (5.0-BACKLOG),
63
+ revisa SIEMPRE `.context-map/vault-ContextMap/7.0-MANUAL/BACKLOG.md`, los documentos de dominio en `.context-map/vault-ContextMap/3.2-DOCUMENTOS/`
64
+ y el diario más reciente (`7.0-MANUAL/Diario/`). Los pendientes conversados y el conocimiento documental viven ahí.
66
65
  5. **Revisar el Backlog y Vault**:
67
66
  Inspeccionar `.context-map/vault-ContextMap/2.0-IDEAS/2.1-Ideas-Pendientes/` y `5.0-BACKLOG/5.1-Tareas.md`.
68
67
  6. **No Suponer Rutas o Lógica**:
69
68
  Inspeccionar el código fuente antes de formular hipótesis de cambio.
70
- 7. **Captura Autónoma del Dominio**:
71
- Al inicializar o ponerse en contexto en un proyecto, inspeccionar los submódulos de lógica nuclear (algoritmos, ecuaciones implícitas, reglas de negocio) y documentar lo descubierto en `7.0-MANUAL/DOMINIO.md` o en las notas del Vault, ejecutando `ctxmap refresh .` para que el brief y el Vault contengan el alma matemática y funcional del sistema.
69
+ 7. **Captura Autónoma del Dominio y Documentación**:
70
+ Al inicializar o ponerse en contexto en un proyecto, inspeccionar los submódulos de lógica nuclear (algoritmos, ecuaciones implícitas, reglas de negocio) y documentar lo descubierto en `7.0-MANUAL/DOMINIO.md` o en las notas del Vault. Para fuentes documentales externas (.pdf, .md, .txt), depositarlas en `.context-map/raw/docs/` y ejecutar `ctxmap refresh .`.
71
+ 8. **Memoria Viva Multicanal**:
72
+ Todo chat de Antigravity IDE, Hermes o exportación depositada en `.context-map/chats/` se procesa automáticamente en `ctxmap refresh .` para preservar decisiones y evitar pérdida de contexto histórico.
72
73
 
73
74
  > ⚠️ **NUNCA respondas "¿qué quedó pendiente?" basándote solo en un documento
74
75
  > suelto (auditoría, CHANGELOG, docs/)** — cruza SIEMPRE el brief + backlog manual
75
- > + diario más reciente. Esa es la fuente de verdad del proyecto.
76
+ > + diario más reciente + documentos ingeridos. Esa es la fuente de verdad del proyecto.
76
77
 
77
78
  ---
78
79
 
@@ -5,6 +5,24 @@ Todas las notas de versión y cambios destacables en este proyecto serán docume
5
5
  El formato está basado en [Keep a Changelog](https://keepachangelog.com/es-ES/1.0.0/),
6
6
  y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [2.4.0] — 2026-09-23
9
+
10
+ ### 🚀 Evolución Arquitectónica, Modularización, Prompt Caching Determinista & Skills Nativas
11
+
12
+ - **refactor(`personal`)**: Modularización completa del módulo monolítico `personal.py` (1.054 líneas) en el subpaquete desacoplado `context_map/application/commands/personal/` (`common.py`, `sync.py`, `export.py`, `query.py`, `panorama.py`, `timeline.py`, `repair.py` e `__init__.py`) bajo Clean Architecture y principio de responsabilidad única (SRP), garantizando retrocompatibilidad y soporte dinámico de monkeypatching en tests.
13
+ - **feat(`brief`/`caching`)**: Optimizador determinista de Prompt Caching para Claude 3.7 Sonnet, Gemini 2.5 Pro/Flash y GPT-4o en `CONTEXT.md`. Congela un prefijo invariante estático de 1.005 tokens (identidad, propósito y reglas inmutables) sin marcas de tiempo volátiles al inicio, inyecta el delimitador formal `<!-- PROMPT_CACHE_BOUNDARY: INVARIANT_PREFIX -->` y sitúa el bloque dinámico al final, logrando una tasa de Cache Hit >90%, reducción de latencia de 4s a <500ms y recorte de costos en 90%.
14
+ - **feat(`ecosystem`/`antigravity`)**: Generador nativo de la skill oficial de Antigravity en `.agents/skills/contextmap/SKILL.md` con frontmatter YAML estándar (`name: contextmap`) y directivas de memoria viva, complementado con el flujo declarativo `.hermes/workflows/contextmap.yaml`.
15
+ - **perf(`scanner`)**: Acelerador de escaneo incremental en `infrastructure/analyzers/content.py` con persistencia de caché sintáctica `.context-map/.scan_cache.json` basada en huellas `(mtime_ns, size)`, permitiendo re-escaneos sub-150ms.
16
+ - **ci(`mypy`)**: Saneamiento de 39 inconsistencias de tipado estricto (0 errores en 190 archivos) y promoción de MyPy a verificación 100% bloqueante en `.github/workflows/ci.yml`.
17
+ - **feat(`personal`)**: Nuevo comando `ctxmap personal panorama` para visualización ejecutiva del estado de actividad real de todos los proyectos con semáforo inteligente (`max(max_ts_ses, max_ts_ev)`), conteo de pendientes y directrices activas.
18
+ - **feat(`personal`)**: Nuevo comando `ctxmap personal timeline` para inspección cronológica unificada de sesiones de IA, commits y cambios relevantes con filtros por días, proyecto o tipo de evento.
19
+ - **feat(`personal`)**: Nuevo comando `ctxmap personal repair` para saneamiento automatizado de eventos de ruido técnico, deduplicación/fusión de proyectos duplicados, optimización de índices FTS5 y `VACUUM` de SQLite con respaldo previo `.bak`.
20
+ - **feat(`personal`)**: Exportación del Vault Personal v2 con notas ricas por proyecto, manejo determinista de colisiones de slugs y saneamiento de enlaces para 0 wikilinks rotos.
21
+ - **feat(`memory`/`multichannel`)**: Auto-importación multicanal de memoria viva en `ctxmap refresh .`: integración automática y tolerante de sesiones de Antigravity IDE (`~/.gemini/antigravity-ide/brain/`), exportaciones de chat externas en `.context-map/chats/` y auto-ingesta de documentos de dominio en `.context-map/raw/docs/` (`.md`, `.txt`, `.pdf`) como nodos `DOCUMENTO` en el grafo y Vault (`3.2-DOCUMENTOS/`), garantizando preservación histórica total.
22
+ - **test**: 264/264 pruebas unitarias pasando al 100% con suite de verificación de auto-ingesta multicanal, Prompt Caching y caché de escaneo incremental.
23
+
24
+ ---
25
+
8
26
  ## [2.3.0] — 2026-08-21
9
27
 
10
28
  ### 🛡️ Novedades y Mejoras — Escáner de Secretos Avanzado, Entropía Shannon, Opt-Out Ollama & Automatización Release
@@ -0,0 +1,26 @@
1
+ # CLAUDE.md — ContextMap
2
+
3
+ > Generado automáticamente por **ContextMap** — adaptado al stack real (2026-08-24 12:41).
4
+
5
+ ## Contexto del proyecto
6
+
7
+ Este proyecto usa **ContextMap** para gobernanza de contexto. Antes de modificar código:
8
+
9
+ 1. Lee `.context-map/CONTEXT.md` (brief ejecutivo: métricas, riesgos, tareas).
10
+ 2. Explora el vault en `.context-map/vault-ContextMap/` para entender el grafo del proyecto.
11
+ 3. No supongas lógica: inspecciona el código fuente antes de proponer cambios.
12
+ 4. Para contexto histórico global (otros proyectos): `ctxmap personal query "términos" --limite 5` (BD personal FTS5, pocos tokens).
13
+
14
+ ## Comandos de verificación
15
+
16
+ ```bash
17
+ python -m pytest
18
+ python -m context_map.cli build --clean --brief
19
+ python -m context_map.cli check .
20
+ ```
21
+
22
+ ## Convenciones
23
+
24
+ - Commits: Conventional Commits en español (`feat:`, `fix:`, `refactor:`, `docs:`).
25
+ - Respuestas y docstrings en Español Técnico Profesional.
26
+ - Respetar la arquitectura modular existente; no crear archivos sueltos en la raíz.
@@ -0,0 +1,205 @@
1
+ Metadata-Version: 2.5
2
+ Name: context-map-ai
3
+ Version: 2.4.0
4
+ Summary: ContextMap IA — Memoria permanente y mapa mental narrativo para agentes de IA
5
+ Project-URL: Homepage, https://github.com/kudawasama/ContextMap
6
+ Project-URL: Repository, https://github.com/kudawasama/ContextMap
7
+ Project-URL: Issues, https://github.com/kudawasama/ContextMap/issues
8
+ Author-email: kudawasama <cespedes.jac@gmail.com>
9
+ License-Expression: MIT
10
+ License-File: LICENSE
11
+ Keywords: agent,ai,context,mindmap,obsidian
12
+ Classifier: Development Status :: 5 - Production/Stable
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Natural Language :: English
16
+ Classifier: Natural Language :: Spanish
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Topic :: Software Development :: Documentation
23
+ Requires-Python: >=3.10
24
+ Requires-Dist: tomli>=2.0.0; python_version < '3.11'
25
+ Provides-Extra: dev
26
+ Requires-Dist: isort>=5.13.0; extra == 'dev'
27
+ Requires-Dist: mypy>=1.10.0; extra == 'dev'
28
+ Requires-Dist: pytest>=7.0; extra == 'dev'
29
+ Requires-Dist: ruff>=0.5.0; extra == 'dev'
30
+ Provides-Extra: mcp
31
+ Requires-Dist: mcp<2.0.0,>=1.2.0; extra == 'mcp'
32
+ Requires-Dist: pydantic<3,>=2.13; extra == 'mcp'
33
+ Provides-Extra: pdf
34
+ Requires-Dist: pymupdf>=1.24.0; extra == 'pdf'
35
+ Description-Content-Type: text/markdown
36
+
37
+ # 🗺️ ContextMap
38
+
39
+ <div align="center">
40
+
41
+ # La Memoria Permanente para tus Asistentes de IA
42
+
43
+ ### *Evita que tu IA olvide tus decisiones, gaste dinero en tokens y rompa tu código.*
44
+
45
+ [![Release](https://img.shields.io/badge/version-v2.4.0-blue.svg?style=for-the-badge)](CHANGELOG.md)
46
+ [![PyPI](https://img.shields.io/pypi/v/context-map-ai.svg?style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/context-map-ai/)
47
+ [![Python](https://img.shields.io/badge/python-3.10+-3776AB.svg?style=for-the-badge&logo=python&logoColor=white)](pyproject.toml)
48
+ [![Tests: 264 Passing](https://img.shields.io/badge/tests-264%2F264%20passing-brightgreen.svg?style=for-the-badge)](context_map/__tests__/)
49
+ [![Type Check: Strict MyPy](https://img.shields.io/badge/mypy-100%25%20strict-00599C.svg?style=for-the-badge&logo=python&logoColor=white)](.github/workflows/ci.yml)
50
+ [![Prompt Cache: Optimized](https://img.shields.io/badge/Prompt%20Cache->90%25%20Hit%20Rate-orange.svg?style=for-the-badge)](context_map/presentation/briefs/)
51
+ [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg?style=for-the-badge)](LICENSE)
52
+
53
+ [English Version 🇬🇧](README_EN.md) • [📖 Documentación Técnica y Arquitectura 🏛️](README_TECNICO.md) • [Historial de Versiones](CHANGELOG.md)
54
+
55
+ </div>
56
+
57
+ ---
58
+
59
+ ## 😫 El Gran Problema al Programar con Inteligencia Artificial
60
+
61
+ Si usas **Cursor, Claude, Copilot, ChatGPT, Antigravity o Windsurf**, seguro te ha pasado esto:
62
+
63
+ 1. 🧠 **Amnesia Constante**: Abres un nuevo chat y la IA olvidó todo lo que conversaron ayer. Tienes que volver a explicarle el proyecto desde cero.
64
+ 2. 💸 **Desperdicio de Tokens y Dinero**: Copiar y pegar 100 archivos en cada pregunta satura el límite de contexto, cuesta caro y confunde al modelo.
65
+ 3. 💥 **Refactorizaciones a Ciegas**: La IA cambia código que ya funcionaba porque desconoce las decisiones pasadas y las reglas de negocio.
66
+ 4. 🔒 **Vendor Lock-in**: Si cambias de editor (de Cursor a Claude o a VS Code), pierdes todo el contexto acumulado.
67
+
68
+ ---
69
+
70
+ ## 💡 La Solución: ContextMap
71
+
72
+ **ContextMap es como darle un "disco duro de memoria viva" a tus IAs.**
73
+
74
+ Escanea tu proyecto, entiende su estructura y propósito, y genera dos cosas mágicas:
75
+ 1. 🗺️ **Un Mapa Mental Visual en Obsidian**: Una bóveda interactiva hermosa donde puedes ver en tiempo real cómo se conectan las ideas, módulos, riesgos y decisiones.
76
+ 2. 📄 **Un Brief Ejecutivo Ultra-Compacto (`CONTEXT.md`)**: Un resumen de alta densidad de solo **~1.600 tokens** que le enseña al instante a cualquier IA todo lo que necesita saber sin saturar su memoria (**>99% de ahorro de tokens**).
77
+
78
+ ```
79
+ ┌───────────────────────────────────────────────────────────────┐
80
+ │ TU PROYECTO DE SOFTWARE │
81
+ └───────────────────────────────┬───────────────────────────────┘
82
+ │
83
+ [ ctxmap refresh ]
84
+ │
85
+ ┌─────────────────┴─────────────────┐
86
+ ▼ ▼
87
+ 🗺️ BÓVEDA OBSIDIAN 📄 BRIEF EJECUTIVO
88
+ (Visual, Interactiva, (Solo ~1.600 tokens,
89
+ Conexiones y Grafos) Ahorro >99% en LLMs)
90
+ │ │
91
+ └─────────────────┬─────────────────┘
92
+ ▼
93
+ 🤖 COMPATIBLE CON CUALQUIER ASISTENTE DE IA
94
+ Cursor · Claude Code · Copilot · Antigravity · Hermes
95
+ ```
96
+
97
+ ---
98
+
99
+ ## 🚀 Inicio Rápido en 3 Pasos
100
+
101
+ ### 1. Instálalo en 1 comando
102
+ ```bash
103
+ pip install context-map-ai
104
+ ```
105
+ *(O con `uv`: `uv tool install context-map-ai`)*
106
+
107
+ ### 2. Inicializa tu proyecto
108
+ Dentro de la carpeta de tu proyecto, dile a tu IA en el chat:
109
+ > 💬 *"Inicializa ContextMap para este proyecto"*
110
+
111
+ O ejecútalo tú mismo en la terminal:
112
+ ```bash
113
+ ctxmap auto .
114
+ ```
115
+
116
+ ### 3. ¡Listo! Mantén el contexto al día tras hacer cambios
117
+ Cada vez que avances en tu código o tomes acuerdos importantes:
118
+ ```bash
119
+ ctxmap refresh .
120
+ ```
121
+
122
+ ---
123
+
124
+ ## ✨ ¿Por Qué ContextMap Enamora a los Desarrolladores?
125
+
126
+ ### 🧠 1. Memoria Indestructible (`7.0-MANUAL/`)
127
+ ¿Tomaste una decisión crítica con el cliente o tu equipo? Anótala en tu diario o notas manuales. El motor de ContextMap **jamás borrará tus notas** (`preserve: true`). La IA recordará ese acuerdo para siempre.
128
+
129
+ ### 🌐 2. Tablero de Control Multi-Proyecto (`ctxmap personal panorama`)
130
+ ¿Trabajas en 5, 10 o 20 proyectos a la vez? Con un solo comando tienes un semáforo visual de qué proyectos están activos, cuáles dormidos y qué tareas urgentes tienen pendientes:
131
+
132
+ ```text
133
+ ============================================================================
134
+ 🌐 PANORAMA MULTI-PROYECTO
135
+ ============================================================================
136
+ Proyecto Semáforo Inactivo Eventos Lecc/Dec Sesiones
137
+ ----------------------------------------------------------------------------
138
+ Mi-Tienda-Online 🟢 Activo 1d 582 4/2 3
139
+ App-Finanzas 🟢 Activo 5d 336 4/0 1
140
+ Bot-Automatizacion 🟡 Tibio 21d 32 2/1 0
141
+ ----------------------------------------------------------------------------
142
+ ```
143
+
144
+ ### 🔌 3. Control Directo para Agentes de IA (Servidor MCP Nativo & Skills)
145
+ ContextMap incluye un servidor **MCP nativo (16 herramientas)** y generador de **Skills para Antigravity**. Asistentes como **Antigravity, Hermes Agent, Claude Desktop, Cursor o Windsurf** pueden sincronizar el mapa, consultar lecciones y registrar decisiones de forma completamente autónoma sin que toques la terminal.
146
+
147
+ ### 🛡️ 4. Reglas y Skills Universales para 10+ Editores e IAs
148
+ Escribe tus normas una sola vez y ContextMap las inyecta en el formato nativo de cada herramienta:
149
+ * **Google Antigravity**: `.agents/skills/contextmap/SKILL.md`
150
+ * **Hermes Agent**: `.hermes/workflows/contextmap.yaml` y `.hermes/config.yaml`
151
+ * **Universal**: `AGENTS.md`
152
+ * **Claude Code**: `CLAUDE.md`
153
+ * **Cursor**: `.cursor/rules/contextmap.mdc` y `.cursorrules`
154
+ * **GitHub Copilot**: `.github/copilot-instructions.md`
155
+ * **Windsurf**: `.windsurfrules`
156
+ * **Cline / Roo Code**: `.clinerules`
157
+
158
+ ---
159
+
160
+ ## ⚖️ Comparativa: ContextMap vs. Otras Soluciones
161
+
162
+ | ¿Qué necesitas? | Copiar y Pegar Todo<br>*(Repomix / Gitingest)* | Indexadores de Editor<br>*(Cursor / Windsurf)* | **ContextMap v2.4.0** |
163
+ | :--- | :---: | :---: | :---: |
164
+ | **Gasto de Tokens** | 🔴 Altísimo (quema tu dinero) | 🟡 Medio | 🟢 **Mínimo (>99% de ahorro)** |
165
+ | **Prompt Caching Determinista** | ❌ Incompatible (cambia el hash) | 🟡 Parcial | **✅ Prefijo congelado (>90% Hit Rate)** |
166
+ | **Mapa Visual Interactivo** | ❌ No existe | ❌ No existe | **✅ Bóveda en Obsidian** |
167
+ | **No Olvidar Acuerdos** | ❌ Pierde todo al cerrar chat | 🟡 Parcial | **✅ Memoria Permanente** |
168
+ | **Cambiar de Editor sin Perder Datos** | ❌ No | ❌ Atrapado en su app | **✅ Totalmente Portable** |
169
+ | **Visión de Múltiples Proyectos** | ❌ No | ❌ No | **✅ Base SQLite Consolidada** |
170
+ | **Herramientas MCP & Skills Nativas** | ❌ No | 🟡 Cerradas | **✅ 16 Tools stdio + Antigravity Skill** |
171
+
172
+ ---
173
+
174
+ ## 💻 Comandos Principales
175
+
176
+ ```bash
177
+ # 🚀 Día a día: sincroniza y actualiza todo el contexto
178
+ ctxmap refresh .
179
+
180
+ # 🌐 Vista global: semáforo de todos tus proyectos
181
+ ctxmap personal panorama
182
+
183
+ # ⏱️ Línea de tiempo: qué se trabajó en los últimos días
184
+ ctxmap personal timeline --dias 7
185
+
186
+ # 🔍 Búsqueda ultra-rápida: consulta lecciones y decisiones pasadas
187
+ ctxmap personal query "autenticación jwt"
188
+
189
+ # 🏥 Diagnóstico: revisa la salud de tu contexto
190
+ ctxmap check .
191
+ ```
192
+
193
+ ---
194
+
195
+ ## 📚 Documentación Técnica Avanzada
196
+
197
+ Si eres arquitecto de software o desarrollador y quieres conocer los detalles de bajo nivel (inspección AST de Python, cálculo de Complejidad Ciclomática de McCabe, Entropía de Shannon para escaneo de secretos, protocolo MCP stdio y topología acíclica de grafos):
198
+
199
+ 👉 **[Consulta la Documentación Técnica y de Arquitectura (README_TECNICO.md)](README_TECNICO.md)**
200
+
201
+ ---
202
+
203
+ ## 📄 Licencia
204
+
205
+ Este proyecto está liberado bajo la Licencia **MIT**. Eres libre de usarlo, modificarlo e integrarlo en proyectos personales o comerciales.
@@ -0,0 +1,169 @@
1
+ # 🗺️ ContextMap
2
+
3
+ <div align="center">
4
+
5
+ # La Memoria Permanente para tus Asistentes de IA
6
+
7
+ ### *Evita que tu IA olvide tus decisiones, gaste dinero en tokens y rompa tu código.*
8
+
9
+ [![Release](https://img.shields.io/badge/version-v2.4.0-blue.svg?style=for-the-badge)](CHANGELOG.md)
10
+ [![PyPI](https://img.shields.io/pypi/v/context-map-ai.svg?style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/context-map-ai/)
11
+ [![Python](https://img.shields.io/badge/python-3.10+-3776AB.svg?style=for-the-badge&logo=python&logoColor=white)](pyproject.toml)
12
+ [![Tests: 264 Passing](https://img.shields.io/badge/tests-264%2F264%20passing-brightgreen.svg?style=for-the-badge)](context_map/__tests__/)
13
+ [![Type Check: Strict MyPy](https://img.shields.io/badge/mypy-100%25%20strict-00599C.svg?style=for-the-badge&logo=python&logoColor=white)](.github/workflows/ci.yml)
14
+ [![Prompt Cache: Optimized](https://img.shields.io/badge/Prompt%20Cache->90%25%20Hit%20Rate-orange.svg?style=for-the-badge)](context_map/presentation/briefs/)
15
+ [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg?style=for-the-badge)](LICENSE)
16
+
17
+ [English Version 🇬🇧](README_EN.md) • [📖 Documentación Técnica y Arquitectura 🏛️](README_TECNICO.md) • [Historial de Versiones](CHANGELOG.md)
18
+
19
+ </div>
20
+
21
+ ---
22
+
23
+ ## 😫 El Gran Problema al Programar con Inteligencia Artificial
24
+
25
+ Si usas **Cursor, Claude, Copilot, ChatGPT, Antigravity o Windsurf**, seguro te ha pasado esto:
26
+
27
+ 1. 🧠 **Amnesia Constante**: Abres un nuevo chat y la IA olvidó todo lo que conversaron ayer. Tienes que volver a explicarle el proyecto desde cero.
28
+ 2. 💸 **Desperdicio de Tokens y Dinero**: Copiar y pegar 100 archivos en cada pregunta satura el límite de contexto, cuesta caro y confunde al modelo.
29
+ 3. 💥 **Refactorizaciones a Ciegas**: La IA cambia código que ya funcionaba porque desconoce las decisiones pasadas y las reglas de negocio.
30
+ 4. 🔒 **Vendor Lock-in**: Si cambias de editor (de Cursor a Claude o a VS Code), pierdes todo el contexto acumulado.
31
+
32
+ ---
33
+
34
+ ## 💡 La Solución: ContextMap
35
+
36
+ **ContextMap es como darle un "disco duro de memoria viva" a tus IAs.**
37
+
38
+ Escanea tu proyecto, entiende su estructura y propósito, y genera dos cosas mágicas:
39
+ 1. 🗺️ **Un Mapa Mental Visual en Obsidian**: Una bóveda interactiva hermosa donde puedes ver en tiempo real cómo se conectan las ideas, módulos, riesgos y decisiones.
40
+ 2. 📄 **Un Brief Ejecutivo Ultra-Compacto (`CONTEXT.md`)**: Un resumen de alta densidad de solo **~1.600 tokens** que le enseña al instante a cualquier IA todo lo que necesita saber sin saturar su memoria (**>99% de ahorro de tokens**).
41
+
42
+ ```
43
+ ┌───────────────────────────────────────────────────────────────┐
44
+ │ TU PROYECTO DE SOFTWARE │
45
+ └───────────────────────────────┬───────────────────────────────┘
46
+ │
47
+ [ ctxmap refresh ]
48
+ │
49
+ ┌─────────────────┴─────────────────┐
50
+ ▼ ▼
51
+ 🗺️ BÓVEDA OBSIDIAN 📄 BRIEF EJECUTIVO
52
+ (Visual, Interactiva, (Solo ~1.600 tokens,
53
+ Conexiones y Grafos) Ahorro >99% en LLMs)
54
+ │ │
55
+ └─────────────────┬─────────────────┘
56
+ ▼
57
+ 🤖 COMPATIBLE CON CUALQUIER ASISTENTE DE IA
58
+ Cursor · Claude Code · Copilot · Antigravity · Hermes
59
+ ```
60
+
61
+ ---
62
+
63
+ ## 🚀 Inicio Rápido en 3 Pasos
64
+
65
+ ### 1. Instálalo en 1 comando
66
+ ```bash
67
+ pip install context-map-ai
68
+ ```
69
+ *(O con `uv`: `uv tool install context-map-ai`)*
70
+
71
+ ### 2. Inicializa tu proyecto
72
+ Dentro de la carpeta de tu proyecto, dile a tu IA en el chat:
73
+ > 💬 *"Inicializa ContextMap para este proyecto"*
74
+
75
+ O ejecútalo tú mismo en la terminal:
76
+ ```bash
77
+ ctxmap auto .
78
+ ```
79
+
80
+ ### 3. ¡Listo! Mantén el contexto al día tras hacer cambios
81
+ Cada vez que avances en tu código o tomes acuerdos importantes:
82
+ ```bash
83
+ ctxmap refresh .
84
+ ```
85
+
86
+ ---
87
+
88
+ ## ✨ ¿Por Qué ContextMap Enamora a los Desarrolladores?
89
+
90
+ ### 🧠 1. Memoria Indestructible (`7.0-MANUAL/`)
91
+ ¿Tomaste una decisión crítica con el cliente o tu equipo? Anótala en tu diario o notas manuales. El motor de ContextMap **jamás borrará tus notas** (`preserve: true`). La IA recordará ese acuerdo para siempre.
92
+
93
+ ### 🌐 2. Tablero de Control Multi-Proyecto (`ctxmap personal panorama`)
94
+ ¿Trabajas en 5, 10 o 20 proyectos a la vez? Con un solo comando tienes un semáforo visual de qué proyectos están activos, cuáles dormidos y qué tareas urgentes tienen pendientes:
95
+
96
+ ```text
97
+ ============================================================================
98
+ 🌐 PANORAMA MULTI-PROYECTO
99
+ ============================================================================
100
+ Proyecto Semáforo Inactivo Eventos Lecc/Dec Sesiones
101
+ ----------------------------------------------------------------------------
102
+ Mi-Tienda-Online 🟢 Activo 1d 582 4/2 3
103
+ App-Finanzas 🟢 Activo 5d 336 4/0 1
104
+ Bot-Automatizacion 🟡 Tibio 21d 32 2/1 0
105
+ ----------------------------------------------------------------------------
106
+ ```
107
+
108
+ ### 🔌 3. Control Directo para Agentes de IA (Servidor MCP Nativo & Skills)
109
+ ContextMap incluye un servidor **MCP nativo (16 herramientas)** y generador de **Skills para Antigravity**. Asistentes como **Antigravity, Hermes Agent, Claude Desktop, Cursor o Windsurf** pueden sincronizar el mapa, consultar lecciones y registrar decisiones de forma completamente autónoma sin que toques la terminal.
110
+
111
+ ### 🛡️ 4. Reglas y Skills Universales para 10+ Editores e IAs
112
+ Escribe tus normas una sola vez y ContextMap las inyecta en el formato nativo de cada herramienta:
113
+ * **Google Antigravity**: `.agents/skills/contextmap/SKILL.md`
114
+ * **Hermes Agent**: `.hermes/workflows/contextmap.yaml` y `.hermes/config.yaml`
115
+ * **Universal**: `AGENTS.md`
116
+ * **Claude Code**: `CLAUDE.md`
117
+ * **Cursor**: `.cursor/rules/contextmap.mdc` y `.cursorrules`
118
+ * **GitHub Copilot**: `.github/copilot-instructions.md`
119
+ * **Windsurf**: `.windsurfrules`
120
+ * **Cline / Roo Code**: `.clinerules`
121
+
122
+ ---
123
+
124
+ ## ⚖️ Comparativa: ContextMap vs. Otras Soluciones
125
+
126
+ | ¿Qué necesitas? | Copiar y Pegar Todo<br>*(Repomix / Gitingest)* | Indexadores de Editor<br>*(Cursor / Windsurf)* | **ContextMap v2.4.0** |
127
+ | :--- | :---: | :---: | :---: |
128
+ | **Gasto de Tokens** | 🔴 Altísimo (quema tu dinero) | 🟡 Medio | 🟢 **Mínimo (>99% de ahorro)** |
129
+ | **Prompt Caching Determinista** | ❌ Incompatible (cambia el hash) | 🟡 Parcial | **✅ Prefijo congelado (>90% Hit Rate)** |
130
+ | **Mapa Visual Interactivo** | ❌ No existe | ❌ No existe | **✅ Bóveda en Obsidian** |
131
+ | **No Olvidar Acuerdos** | ❌ Pierde todo al cerrar chat | 🟡 Parcial | **✅ Memoria Permanente** |
132
+ | **Cambiar de Editor sin Perder Datos** | ❌ No | ❌ Atrapado en su app | **✅ Totalmente Portable** |
133
+ | **Visión de Múltiples Proyectos** | ❌ No | ❌ No | **✅ Base SQLite Consolidada** |
134
+ | **Herramientas MCP & Skills Nativas** | ❌ No | 🟡 Cerradas | **✅ 16 Tools stdio + Antigravity Skill** |
135
+
136
+ ---
137
+
138
+ ## 💻 Comandos Principales
139
+
140
+ ```bash
141
+ # 🚀 Día a día: sincroniza y actualiza todo el contexto
142
+ ctxmap refresh .
143
+
144
+ # 🌐 Vista global: semáforo de todos tus proyectos
145
+ ctxmap personal panorama
146
+
147
+ # ⏱️ Línea de tiempo: qué se trabajó en los últimos días
148
+ ctxmap personal timeline --dias 7
149
+
150
+ # 🔍 Búsqueda ultra-rápida: consulta lecciones y decisiones pasadas
151
+ ctxmap personal query "autenticación jwt"
152
+
153
+ # 🏥 Diagnóstico: revisa la salud de tu contexto
154
+ ctxmap check .
155
+ ```
156
+
157
+ ---
158
+
159
+ ## 📚 Documentación Técnica Avanzada
160
+
161
+ Si eres arquitecto de software o desarrollador y quieres conocer los detalles de bajo nivel (inspección AST de Python, cálculo de Complejidad Ciclomática de McCabe, Entropía de Shannon para escaneo de secretos, protocolo MCP stdio y topología acíclica de grafos):
162
+
163
+ 👉 **[Consulta la Documentación Técnica y de Arquitectura (README_TECNICO.md)](README_TECNICO.md)**
164
+
165
+ ---
166
+
167
+ ## 📄 Licencia
168
+
169
+ Este proyecto está liberado bajo la Licencia **MIT**. Eres libre de usarlo, modificarlo e integrarlo en proyectos personales o comerciales.