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.
- context_map_ai-2.4.0/.agents/skills/contextmap/SKILL.md +37 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.github/copilot-instructions.md +1 -1
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.github/workflows/ci.yml +19 -1
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.gitignore +6 -0
- context_map_ai-2.4.0/.hermes/workflows/contextmap.yaml +21 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/AGENTS.md +9 -8
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/CHANGELOG.md +18 -0
- context_map_ai-2.4.0/CLAUDE.md +26 -0
- context_map_ai-2.4.0/PKG-INFO +205 -0
- context_map_ai-2.4.0/README.md +169 -0
- context_map_ai-2.4.0/README_EN.md +169 -0
- context_map_ai-2.4.0/README_TECNICO.md +197 -0
- context_map_ai-2.4.0/context_map/__tests__/test_analyzers_content.py +69 -0
- context_map_ai-2.4.0/context_map/__tests__/test_cargadores_chats.py +57 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_checker_frescura.py +26 -7
- context_map_ai-2.4.0/context_map/__tests__/test_clasificacion_chat.py +44 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_conexiones.py +5 -5
- context_map_ai-2.4.0/context_map/__tests__/test_dependencias_mcp.py +34 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_ecosistema.py +70 -0
- context_map_ai-2.4.0/context_map/__tests__/test_exclusiones_escaneo.py +76 -0
- context_map_ai-2.4.0/context_map/__tests__/test_export.py +99 -0
- context_map_ai-2.4.0/context_map/__tests__/test_fechas_conversaciones.py +98 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_hermes_clasificacion.py +30 -2
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_personal.py +143 -5
- context_map_ai-2.4.0/context_map/__tests__/test_personal_identidad.py +67 -0
- context_map_ai-2.4.0/context_map/__tests__/test_personal_panorama.py +301 -0
- context_map_ai-2.4.0/context_map/__tests__/test_personal_repair.py +218 -0
- context_map_ai-2.4.0/context_map/__tests__/test_personal_ruta.py +89 -0
- context_map_ai-2.4.0/context_map/__tests__/test_personal_sync.py +103 -0
- context_map_ai-2.4.0/context_map/__tests__/test_prompt_caching.py +67 -0
- context_map_ai-2.4.0/context_map/__tests__/test_readiness_signals.py +47 -0
- context_map_ai-2.4.0/context_map/__tests__/test_refresh_multicanal.py +104 -0
- context_map_ai-2.4.0/context_map/__tests__/test_scan_cache.py +57 -0
- context_map_ai-2.4.0/context_map/__tests__/test_templates_filenames.py +36 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_vault_consolidation.py +53 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/cli/parser.py +27 -2
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/build.py +1 -1
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/enrich.py +3 -6
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/export.py +11 -10
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/importers.py +2 -0
- context_map_ai-2.4.0/context_map/application/commands/personal/__init__.py +114 -0
- context_map_ai-2.4.0/context_map/application/commands/personal/common.py +255 -0
- context_map_ai-2.4.0/context_map/application/commands/personal/export.py +216 -0
- context_map_ai-2.4.0/context_map/application/commands/personal/panorama.py +39 -0
- context_map_ai-2.4.0/context_map/application/commands/personal/query.py +108 -0
- context_map_ai-2.4.0/context_map/application/commands/personal/repair.py +56 -0
- context_map_ai-2.4.0/context_map/application/commands/personal/sync.py +235 -0
- context_map_ai-2.4.0/context_map/application/commands/personal/timeline.py +38 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/refresh.py +92 -9
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/wrap.py +19 -3
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/parsing/cargadores.py +83 -1
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/parsing/clasificacion.py +16 -6
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/personal/bd.py +7 -2
- context_map_ai-2.4.0/context_map/core/personal/panorama.py +607 -0
- context_map_ai-2.4.0/context_map/core/personal/repair.py +410 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/tokenization.py +1 -1
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/analysis/signals.py +48 -17
- context_map_ai-2.4.0/context_map/domain/ecosystem/adaptador.py +365 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/ecosystem/detector.py +3 -1
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/ecosystem/rules_templates.py +79 -10
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/ingestion/ingest.py +3 -2
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/scanning/scanner.py +7 -27
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/storage/packer.py +2 -2
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/infrastructure/analyzers/content.py +120 -21
- context_map_ai-2.4.0/context_map/infrastructure/analyzers/exclusions.py +120 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/infrastructure/analyzers/structure.py +7 -6
- context_map_ai-2.4.0/context_map/infrastructure/integrations/antigravity.py +575 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/infrastructure/integrations/hermes.py +132 -12
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/infrastructure/integrations/ollama.py +2 -2
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/infrastructure/mcp_server.py +126 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/infrastructure/version_check.py +2 -1
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/briefs/brief.py +27 -9
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/briefs/extractors.py +1 -1
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/briefs/sections.py +35 -11
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/atomic.py +19 -8
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/consolidated/__init__.py +6 -2
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/consolidated/canvas.py +4 -2
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/consolidated/consolidado.py +64 -32
- context_map_ai-2.4.0/context_map/presentation/vault/consolidated/dominios.py +191 -0
- context_map_ai-2.4.0/context_map/presentation/vault/consolidated/escritura.py +52 -0
- context_map_ai-2.4.0/context_map/presentation/vault/consolidated/graph_style.py +190 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/consolidated/jerarquico.py +45 -8
- context_map_ai-2.4.0/context_map/presentation/vault/consolidated/nodos.py +46 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/consolidated/notas_ideas.py +7 -6
- context_map_ai-2.4.0/context_map/presentation/vault/consolidated/readme_extract.py +375 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/consolidated/secciones_backlog.py +1 -1
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/consolidated/secciones_estructura.py +2 -4
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/consolidated/secciones_historial.py +1 -1
- context_map_ai-2.4.0/context_map/presentation/vault/consolidated/secciones_ideas.py +428 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/consolidated/secciones_proposito.py +2 -2
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/consolidated/secciones_riesgos.py +9 -8
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/templates.py +17 -3
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/pyproject.toml +14 -3
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/uv.lock +2 -2
- context_map_ai-2.3.0/PKG-INFO +0 -281
- context_map_ai-2.3.0/README.md +0 -246
- context_map_ai-2.3.0/README_EN.md +0 -216
- context_map_ai-2.3.0/context_map/__tests__/test_export.py +0 -43
- context_map_ai-2.3.0/context_map/__tests__/test_scan_cache.py +0 -30
- context_map_ai-2.3.0/context_map/application/commands/personal.py +0 -578
- context_map_ai-2.3.0/context_map/domain/ecosystem/adaptador.py +0 -225
- context_map_ai-2.3.0/context_map/infrastructure/integrations/antigravity.py +0 -398
- context_map_ai-2.3.0/context_map/presentation/vault/consolidated/common.py +0 -586
- context_map_ai-2.3.0/context_map/presentation/vault/consolidated/secciones_ideas.py +0 -331
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.github/workflows/docs.yml +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.github/workflows/publish.yml +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.hermes/config.yaml +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.hermes/shields/pre-commit.md +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.hermes/triggers/post-commit.md +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.hermes/workflows/dev-loop.md +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/.pre-commit-hooks.yaml +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/CODE_OF_CONDUCT.md +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/CONTRIBUTING.md +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/LICENSE +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/Makefile +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/action.yml +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/conftest.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/smoke.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_ast_audit.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_ast_summary.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_cli.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_cyclomatic.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_diario_consolidado.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_doctor.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_domain_extractor.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_enrich.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_enterprise_features.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_hardware.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_hook_memoria_viva.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_hooks.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_ingest.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_mcp_server_seguridad.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_mermaid.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_metrica_memoria_viva.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_ollama.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_pack_unpack.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_parsing.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_refresh_temporales.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_reglas_catalogo.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_scanner.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_security.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_security_scanner.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_similarity.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_standardize.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_tokenization.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_topologia_arbol.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_watcher.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/__tests__/test_wrap.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/cli/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/cli/cli.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/_helpers.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/adapt.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/auto.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/doctor_cmd.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/hook.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/ingest.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/pack.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/scan.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/sync.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/tools.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/update.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/application/commands/watch.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/cli.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/generators/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/generators/generadores.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/generators/narrative_templates.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/logging_setup.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/models/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/models/config.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/models/models.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/normalization/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/normalization/cleaning.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/normalization/inference.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/normalization/mappings.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/normalization/standardize.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/parsing/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/parsing/dedup.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/parsing/grafo.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/personal/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/storage/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/storage/config_loader.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/core/storage/store.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/analysis/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/analysis/checker.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/analysis/models.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/analysis/reporting.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/analyzers/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/analyzers/ast_audit.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/analyzers/ast_summary.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/analyzers/cyclomatic.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/ecosystem/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/ecosystem/hooks.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/health/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/health/doctor.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/health/hardware.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/ingestion/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/normalization/domain_extractor.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/normalization/similarity.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/reglas/reglas.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/reporting/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/reporting/reporter.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/scanning/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/scanning/cache.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/scanning/security.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/synchronization/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/synchronization/relaciones.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/synchronization/sync.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/domain/synchronization/watcher.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/infrastructure/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/infrastructure/analyzers/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/infrastructure/integrations/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/infrastructure/integrations/chat_export.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/infrastructure/integrations/git.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/briefs/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/briefs/agents.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/briefs/skill.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/__init__.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/consolidated/rutas.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/mermaid.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/preservar.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/context_map/presentation/vault/writer.py +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/docs/LAUNCH_KIT.md +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/docs/plans/2026-08-10-mapa-mental-conectado.md +0 -0
- {context_map_ai-2.3.0 → context_map_ai-2.4.0}/docs/plans/PLAN-MEJORAS-CONTEXTO-VIVO-2026-08-14.md +0 -0
- {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.
|
|
@@ -9,7 +9,11 @@ on:
|
|
|
9
9
|
jobs:
|
|
10
10
|
test:
|
|
11
11
|
name: Tests (pytest)
|
|
12
|
-
runs-on:
|
|
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
|
+
|
|
@@ -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
|
|
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
|
|
64
|
-
y el diario más reciente (`7.0-MANUAL/Diario/`). Los pendientes conversados
|
|
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
|
|
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
|
+
[](CHANGELOG.md)
|
|
46
|
+
[](https://pypi.org/project/context-map-ai/)
|
|
47
|
+
[](pyproject.toml)
|
|
48
|
+
[](context_map/__tests__/)
|
|
49
|
+
[](.github/workflows/ci.yml)
|
|
50
|
+
[](context_map/presentation/briefs/)
|
|
51
|
+
[](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
|
+
[](CHANGELOG.md)
|
|
10
|
+
[](https://pypi.org/project/context-map-ai/)
|
|
11
|
+
[](pyproject.toml)
|
|
12
|
+
[](context_map/__tests__/)
|
|
13
|
+
[](.github/workflows/ci.yml)
|
|
14
|
+
[](context_map/presentation/briefs/)
|
|
15
|
+
[](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.
|