Stop re-explaining your project to AI agents every session. One memory layer for Claude Code, Cursor, Windsurf, Antigravity — local, MIT, no signup.
Drift inferred · capture-to-capture
tool count over time
06-13 08:07 08-12 08:26 now
0t
5t
0t
transport stdio · streamable-http · http counts 8 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
add_phase
-
complete_phase
-
defer_phase
-
get_impact
-
get_node
-
get_phase
-
get_roadmap
-
update_phase_status
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 65e69c6 · analyzer v33 · 6d ago
skills & prompt files 10
- skill sachinshelke-codevira-65e69c6/.claude/skills/development-discipline/SKILL.md
- skill sachinshelke-codevira-65e69c6/.claude/skills/epistemic-honesty/SKILL.md
- skill sachinshelke-codevira-65e69c6/.claude/skills/foolproof-product/SKILL.md
- skill sachinshelke-codevira-65e69c6/.claude/skills/open-source-quality/SKILL.md
- skill sachinshelke-codevira-65e69c6/.claude/skills/release-readiness/SKILL.md
- agent-rules sachinshelke-codevira-65e69c6/.windsurfrules
- agent-rules sachinshelke-codevira-65e69c6/AGENTS.md
- agent-rules sachinshelke-codevira-65e69c6/CLAUDE.md
- agent-rules sachinshelke-codevira-65e69c6/GEMINI.md
- agent-rules sachinshelke-codevira-65e69c6/tests/e2e/fixtures/polyglot/CLAUDE.md
danger signals3
- dynamic code execution __import__() sachinshelke-codevira-65e69c6/tests/conftest.py :118
__import__(_pkg) - dynamic code execution __import__() sachinshelke-codevira-65e69c6/tests/test_background_degrades.py :102
lambda: __import__( - committed secret Anthropic key sachinshelke-codevira-65e69c6/tests/test_path_glob_and_scrub.py :93
sk-ant…(61 chars, redacted)
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 324
filesystem 198
- fs (weak) sachinshelke-codevira-65e69c6/docs/demo/record.py :13
import shutil - fs sachinshelke-codevira-65e69c6/indexer/_dedupe_migration.py :34
from pathlib import Path - fs sachinshelke-codevira-65e69c6/indexer/_sqlite_util.py :29
from pathlib import Path - fs sachinshelke-codevira-65e69c6/indexer/fix_history.py :31
from pathlib import Path - fs sachinshelke-codevira-65e69c6/indexer/global_db.py :14
from pathlib import Path - fs sachinshelke-codevira-65e69c6/indexer/graph_generator.py :7
from pathlib import Path - fs sachinshelke-codevira-65e69c6/indexer/imports.py :26
from pathlib import Path - fs sachinshelke-codevira-65e69c6/indexer/index_codebase.py :9
from pathlib import Path - fs sachinshelke-codevira-65e69c6/indexer/outcome_classifier.py :25
from pathlib import Path - fs sachinshelke-codevira-65e69c6/indexer/sqlite_graph.py :5
from pathlib import Path - fs sachinshelke-codevira-65e69c6/indexer/treesitter_parser.py :21
from pathlib import Path - fs sachinshelke-codevira-65e69c6/mcp_server/_mcp_registry.py :34
from pathlib import Path
show 28 more
- fs sachinshelke-codevira-65e69c6/mcp_server/_project_inventory.py :33
from pathlib import Path - fs sachinshelke-codevira-65e69c6/mcp_server/_repair_init.py :35
from pathlib import Path - fs sachinshelke-codevira-65e69c6/mcp_server/auto_init.py :22
from pathlib import Path - fs sachinshelke-codevira-65e69c6/mcp_server/cli.py :32
from pathlib import Path - fs sachinshelke-codevira-65e69c6/mcp_server/cli_export.py :45
from pathlib import Path - fs sachinshelke-codevira-65e69c6/mcp_server/cli_graph.py :28
from pathlib import Path - fs sachinshelke-codevira-65e69c6/mcp_server/cli_hooks_admin.py :19
import shutil - fs sachinshelke-codevira-65e69c6/mcp_server/cli_init.py :41
from pathlib import Path - fs sachinshelke-codevira-65e69c6/mcp_server/cli_memory.py :26
from pathlib import Path - fs sachinshelke-codevira-65e69c6/mcp_server/cli_projects.py :19
from pathlib import Path - fs sachinshelke-codevira-65e69c6/mcp_server/cli_repair.py :23
from pathlib import Path - fs sachinshelke-codevira-65e69c6/mcp_server/cli_replay.py :20
from pathlib import Path - fs sachinshelke-codevira-65e69c6/mcp_server/cli_transfer.py :41
from pathlib import Path - fs sachinshelke-codevira-65e69c6/mcp_server/cli_uninstall.py :49
import shutil - fs sachinshelke-codevira-65e69c6/mcp_server/crash_logger.py :23
from pathlib import Path - fs sachinshelke-codevira-65e69c6/mcp_server/decision_replay.py :32
import shutil - fs sachinshelke-codevira-65e69c6/mcp_server/detect.py :12
from pathlib import Path - fs sachinshelke-codevira-65e69c6/mcp_server/doctor.py :501
import shutil - fs sachinshelke-codevira-65e69c6/mcp_server/engine/audit.py :48
from pathlib import Path - fs sachinshelke-codevira-65e69c6/mcp_server/engine/events.py :22
from pathlib import Path - fs sachinshelke-codevira-65e69c6/mcp_server/engine/memory_fanout.py :220
from pathlib import Path as _P - fs sachinshelke-codevira-65e69c6/mcp_server/engine/policies/_region_detect.py :35
from pathlib import Path - fs sachinshelke-codevira-65e69c6/mcp_server/engine/policies/relevance_inject.py :49
from pathlib import Path - fs sachinshelke-codevira-65e69c6/mcp_server/engine/policies/session_log_enforcer.py :69
from pathlib import Path - fs sachinshelke-codevira-65e69c6/mcp_server/engine/signals.py :27
from pathlib import Path - fs sachinshelke-codevira-65e69c6/mcp_server/engine/token_meter.py :26
from pathlib import Path - fs sachinshelke-codevira-65e69c6/mcp_server/engine/wiring/_diff_envelope.py :24
from pathlib import Path - fs sachinshelke-codevira-65e69c6/mcp_server/engine/wiring/claude_code_hooks.py :39
from pathlib import Path
158 more not shown — this panel samples each group; the count above is the real total.
shell / exec 66
- shell (weak) sachinshelke-codevira-65e69c6/docs/demo/record.py :14
import subprocess - shell sachinshelke-codevira-65e69c6/indexer/fix_history.py :546
import subprocess - shell sachinshelke-codevira-65e69c6/indexer/graph_generator.py :6
import subprocess - shell sachinshelke-codevira-65e69c6/indexer/outcome_classifier.py :24
import subprocess - shell sachinshelke-codevira-65e69c6/mcp_server/cli_repair.py :22
import subprocess - shell sachinshelke-codevira-65e69c6/mcp_server/doctor.py :502
import subprocess - shell sachinshelke-codevira-65e69c6/mcp_server/engine/policies/session_log_enforcer.py :67
import subprocess - shell sachinshelke-codevira-65e69c6/mcp_server/engine/wiring/git_hooks.py :35
import subprocess - shell sachinshelke-codevira-65e69c6/mcp_server/http_server.py :24
import subprocess - shell sachinshelke-codevira-65e69c6/mcp_server/ide_inject.py :187
import subprocess - shell sachinshelke-codevira-65e69c6/mcp_server/launchd.py :18
import subprocess - shell sachinshelke-codevira-65e69c6/mcp_server/paths.py :29
import subprocess
show 28 more
- shell sachinshelke-codevira-65e69c6/mcp_server/roadmap_drift.py :62
import subprocess - shell sachinshelke-codevira-65e69c6/mcp_server/storage/outcomes_writer.py :44
import subprocess - shell sachinshelke-codevira-65e69c6/mcp_server/update_check.py :151
import subprocess - shell (weak) sachinshelke-codevira-65e69c6/scripts/chaos_smoke.py :24
import subprocess - shell (weak) sachinshelke-codevira-65e69c6/scripts/system_test_agentstore.py :24
import subprocess - shell (weak) sachinshelke-codevira-65e69c6/tests/e2e/test_first_contact.py :59
import subprocess - shell (weak) sachinshelke-codevira-65e69c6/tests/e2e/test_product_invariants.py :28
import subprocess - shell (weak) sachinshelke-codevira-65e69c6/tests/e2e/test_qa_round_v2_completion.py :43
import subprocess - shell (weak) sachinshelke-codevira-65e69c6/tests/e2e/test_v2_release_candidate.py :666
import subprocess - shell (weak) sachinshelke-codevira-65e69c6/tests/e2e/test_v350_acceptance.py :33
import subprocess - shell (weak) sachinshelke-codevira-65e69c6/tests/engine/test_evidence_reaches_readers.py :88
import subprocess - shell (weak) sachinshelke-codevira-65e69c6/tests/engine/test_git_hook_enforcement.py :20
import subprocess - shell (weak) sachinshelke-codevira-65e69c6/tests/engine/test_qa_round3.py :19
import subprocess - shell (weak) sachinshelke-codevira-65e69c6/tests/engine/test_session_log_enforcer.py :12
import subprocess - shell (weak) sachinshelke-codevira-65e69c6/tests/engine/test_signals_project_scoping.py :21
import subprocess - shell (weak) sachinshelke-codevira-65e69c6/tests/engine/test_week2_edge_cases.py :15
import subprocess - shell (weak) sachinshelke-codevira-65e69c6/tests/integration/test_sandboxed_parent.py :35
import subprocess - shell (weak) sachinshelke-codevira-65e69c6/tests/storage/test_amendment_provenance.py :25
import subprocess - shell (weak) sachinshelke-codevira-65e69c6/tests/storage/test_anchor_derivation.py :20
import subprocess - shell (weak) sachinshelke-codevira-65e69c6/tests/storage/test_device_identity.py :21
import subprocess - shell (weak) sachinshelke-codevira-65e69c6/tests/storage/test_score_breakdown.py :14
import subprocess - shell (weak) sachinshelke-codevira-65e69c6/tests/storage/test_search_perf_caches.py :21
import subprocess - shell (weak) sachinshelke-codevira-65e69c6/tests/storage/test_session_identity.py :21
import subprocess - shell (weak) sachinshelke-codevira-65e69c6/tests/storage/test_stranded_parameters.py :17
import subprocess - shell (weak) sachinshelke-codevira-65e69c6/tests/storage/test_uid.py :18
import subprocess - shell (weak) sachinshelke-codevira-65e69c6/tests/storage/test_uid_edges.py :19
import subprocess - shell (weak) sachinshelke-codevira-65e69c6/tests/test_classifier_is_shared.py :35
import subprocess - shell (weak) sachinshelke-codevira-65e69c6/tests/test_cli_graph.py :12
import subprocess
26 more not shown — this panel samples each group; the count above is the real total.
network 5
- net sachinshelke-codevira-65e69c6/mcp_server/egress.py :6
nothing stopped a future module from adding an ``import httpx`` and quietly - net sachinshelke-codevira-65e69c6/mcp_server/project_binding.py :24
from urllib.parse import unquote, urlparse - net sachinshelke-codevira-65e69c6/mcp_server/server.py :260
from urllib.parse import unquote - net (weak) sachinshelke-codevira-65e69c6/tests/test_egress_boundary.py :5
stopped a future module from adding `import httpx` and quietly turning a - net (weak) sachinshelke-codevira-65e69c6/tests/test_update_check.py :158
"urllib.request.urlopen",
secrets 2
- secrets sachinshelke-codevira-65e69c6/mcp_server/storage/origin.py :101
import getpass - secrets (weak) sachinshelke-codevira-65e69c6/tests/storage/test_origin.py :86
import getpass
database 34
- db sachinshelke-codevira-65e69c6/indexer/_dedupe_migration.py :33
import sqlite3 - db sachinshelke-codevira-65e69c6/indexer/_sqlite_util.py :27
import sqlite3 - db sachinshelke-codevira-65e69c6/indexer/fix_history.py :28
import sqlite3 - db sachinshelke-codevira-65e69c6/indexer/global_db.py :13
import sqlite3 - db sachinshelke-codevira-65e69c6/indexer/index_codebase.py :901
import sqlite3 as _sqlite3 - db sachinshelke-codevira-65e69c6/indexer/sqlite_graph.py :3
import sqlite3 - db sachinshelke-codevira-65e69c6/mcp_server/_project_inventory.py :31
import sqlite3 - db sachinshelke-codevira-65e69c6/mcp_server/auto_init.py :154
import sqlite3 as _sqlite3 - db sachinshelke-codevira-65e69c6/mcp_server/cli.py :2380
import sqlite3 as _sqlite3 - db sachinshelke-codevira-65e69c6/mcp_server/cli_export.py :43
import sqlite3 - db sachinshelke-codevira-65e69c6/mcp_server/cli_graph.py :63
import sqlite3 - db sachinshelke-codevira-65e69c6/mcp_server/cli_projects.py :276
import sqlite3
show 22 more
- db sachinshelke-codevira-65e69c6/mcp_server/cli_transfer.py :36
import sqlite3 - db sachinshelke-codevira-65e69c6/mcp_server/doctor.py :40
import sqlite3 - db sachinshelke-codevira-65e69c6/mcp_server/log_retention.py :162
import sqlite3 - db sachinshelke-codevira-65e69c6/mcp_server/migrate.py :20
import sqlite3 - db sachinshelke-codevira-65e69c6/mcp_server/storage/anchor.py :25
import sqlite3 - db sachinshelke-codevira-65e69c6/mcp_server/storage/fts5_index.py :41
import sqlite3 - db (weak) sachinshelke-codevira-65e69c6/tests/storage/test_anchor_derivation.py :19
import sqlite3 - db (weak) sachinshelke-codevira-65e69c6/tests/test_auto_init.py :256
import sqlite3 as _sqlite3 - db (weak) sachinshelke-codevira-65e69c6/tests/test_cli_export.py :18
import sqlite3 - db (weak) sachinshelke-codevira-65e69c6/tests/test_cli_projects.py :25
import sqlite3 - db (weak) sachinshelke-codevira-65e69c6/tests/test_cli_transfer.py :11
import sqlite3 - db (weak) sachinshelke-codevira-65e69c6/tests/test_dedupe_migration.py :26
import sqlite3 - db (weak) sachinshelke-codevira-65e69c6/tests/test_g3_hermetic.py :25
import sqlite3 - db (weak) sachinshelke-codevira-65e69c6/tests/test_ghost_check.py :26
import sqlite3 - db (weak) sachinshelke-codevira-65e69c6/tests/test_global_db.py :28
import sqlite3 - db (weak) sachinshelke-codevira-65e69c6/tests/test_log_retention.py :7
import sqlite3 - db (weak) sachinshelke-codevira-65e69c6/tests/test_migrate.py :30
import sqlite3 - db (weak) sachinshelke-codevira-65e69c6/tests/test_project_inventory.py :35
import sqlite3 - db (weak) sachinshelke-codevira-65e69c6/tests/test_repair_init.py :30
import sqlite3 - db (weak) sachinshelke-codevira-65e69c6/tests/test_sqlite_util.py :13
import sqlite3 - db (weak) sachinshelke-codevira-65e69c6/tests/test_startup_migrations.py :101
import sqlite3 - db (weak) sachinshelke-codevira-65e69c6/tests/test_tenant_isolation.py :22
import sqlite3
tool registrations 8
- get_node sachinshelke-codevira-65e69c6/mcp_server/server.py :305
- get_impact sachinshelke-codevira-65e69c6/mcp_server/server.py :328
- get_roadmap sachinshelke-codevira-65e69c6/mcp_server/server.py :356
- get_phase sachinshelke-codevira-65e69c6/mcp_server/server.py :372
- add_phase sachinshelke-codevira-65e69c6/mcp_server/server.py :386
- update_phase_status sachinshelke-codevira-65e69c6/mcp_server/server.py :427
- defer_phase sachinshelke-codevira-65e69c6/mcp_server/server.py :452
- complete_phase sachinshelke-codevira-65e69c6/mcp_server/server.py :470
declared dependencies 15
- mcp@>=1.0,<2
- pyyaml@>=6.0
- watchdog@>=3.0.0
- tomli@>=2.0; python_version <
- uvicorn@>=0.27.0
- starlette@>=0.36.0
- pytest@>=7.0
- pytest-asyncio@>=0.21
- pytest-timeout@>=2.1
- pytest-randomly@>=3.12
- ruff@==0.15.14
- mypy@>=1.10
show 3 more
- types-PyYAML@*
- pre-commit@>=3.5
- build@>=1.0
transport_posture 2
- binds all interfaces (0.0.0.0) sachinshelke-codevira-65e69c6/tests/test_http_server.py :462
run_http_server(host="0.0.0.0", port=7007) - network-listening, binds all interfaces, no auth detected sachinshelke-codevira-65e69c6/tests/test_launchd.py :106
install_launchd(port=8080, host="0.0.0.0")