Hypothesis-first experiment tracking for agent-driven ML research, wired into Claude Code.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio counts 31 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
airgapped_fetch
-
airgapped_pull
-
airgapped_push
-
airgapped_rebase
-
airgapped_repo_status
-
airgapped_status
-
airgapped_wandb_sync
-
bind_tracker
-
close_thread
-
jupyter_introspect_current
-
jupyter_parse_introspection
-
link_run
-
list_batches
-
list_runs
-
list_threads
-
new_experiment
-
new_finding
-
new_hypothesis
-
new_run
-
new_thread
-
queue_add
-
queue_clear
-
queue_list
-
queue_materialize
-
queue_remove
-
queue_stop
-
show_batch
-
show_run
-
show_thread
-
sync_offline
-
validate
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit a3f7a23 · analyzer v33 · 1w ago
skills & prompt files 6
- agent-rules KadenMc-agentic-experiments-a3f7a23/src/aexp/scaffold/AGENTS.md
- agent-rules KadenMc-agentic-experiments-a3f7a23/src/aexp/scaffold/CLAUDE.md
- skill KadenMc-agentic-experiments-a3f7a23/src/aexp/scaffold/skills/build-maintainable-software/SKILL.md
- skill KadenMc-agentic-experiments-a3f7a23/src/aexp/scaffold/skills/experiment-rigor/SKILL.md
- skill KadenMc-agentic-experiments-a3f7a23/src/aexp/scaffold/skills/exploratory-sota-research/SKILL.md
- skill KadenMc-agentic-experiments-a3f7a23/src/aexp/scaffold/skills/research-devil-advocate/SKILL.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 66
filesystem 53
- fs KadenMc-agentic-experiments-a3f7a23/src/aexp/airgapped/_relay.py :47
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/airgapped/client.py :34
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/artifacts.py :29
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/backlinks.py :15
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/cli.py :12
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/hooks/_parse_hook_input.py :14
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/hooks/enforce_hef_chain.py :18
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/hooks/kb_write_guard.py :19
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/hooks/session_start.py :11
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/hooks/stop_validate.py :10
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/install.py :25
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/jupyter.py :33
import shutil - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/kb_io.py :12
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/kb_validate.py :19
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/ledger.py :41
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/linking.py :18
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :18
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/queue.py :40
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/runs.py :19
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/runs_index.py :40
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/sandbox.py :35
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/trackers/base.py :15
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/trackers/noop_adapter.py :12
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/trackers/wandb_adapter.py :13
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/utils/atomic.py :13
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/utils/git.py :10
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/utils/linklease.py :9
Why ``link()`` and not ``open(O_CREAT|O_EXCL)`` or ``flock`` - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/utils/paths.py :13
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/validate.py :22
from pathlib import Path - fs KadenMc-agentic-experiments-a3f7a23/src/aexp/workpool.py :56
from pathlib import Path - fs (weak) KadenMc-agentic-experiments-a3f7a23/tests/conftest.py :4
import shutil - fs (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_airgapped.py :23
from pathlib import Path - fs (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_artifacts.py :5
from pathlib import Path - fs (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_cli.py :5
from pathlib import Path - fs (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_cross_machine_e2e.py :15
from pathlib import Path - fs (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_e2e_smoke.py :19
from pathlib import Path - fs (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_hooks_python.py :19
from pathlib import Path - fs (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_install.py :6
from pathlib import Path - fs (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_kb_io.py :4
from pathlib import Path - fs (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_ledger.py :12
from pathlib import Path - fs (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_linking.py :5
from pathlib import Path - fs (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_linklease.py :14
from pathlib import Path - fs (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_mcp_server.py :12
from pathlib import Path - fs (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_queue.py :12
from pathlib import Path - fs (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_runs.py :5
from pathlib import Path - fs (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_sandbox.py :7
from pathlib import Path - fs (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_trackers_context.py :13
from pathlib import Path - fs (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_trackers_noop.py :6
from pathlib import Path - fs (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_trackers_wandb.py :10
from pathlib import Path - fs (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_utils.py :6
from pathlib import Path - fs (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_validate.py :5
from pathlib import Path - fs (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_validate_cross_machine.py :15
from pathlib import Path - fs (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_workpool.py :27
from pathlib import Path
shell / exec 26
- shell KadenMc-agentic-experiments-a3f7a23/src/aexp/airgapped/_relay.py :42
import subprocess - shell KadenMc-agentic-experiments-a3f7a23/src/aexp/cli.py :1045
import subprocess - shell KadenMc-agentic-experiments-a3f7a23/src/aexp/jupyter.py :35
import subprocess - shell KadenMc-agentic-experiments-a3f7a23/src/aexp/queue.py :35
import subprocess - shell KadenMc-agentic-experiments-a3f7a23/src/aexp/trackers/wandb_adapter.py :9
import subprocess - shell KadenMc-agentic-experiments-a3f7a23/src/aexp/utils/git.py :9
import subprocess - shell (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_airgapped.py :22
import subprocess - shell (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_artifacts.py :4
import subprocess - shell (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_cli.py :4
import subprocess - shell (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_cross_machine_e2e.py :14
import subprocess - shell (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_e2e_smoke.py :18
import subprocess - shell (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_hooks_python.py :18
import subprocess - shell (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_install.py :5
import subprocess - shell (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_jupyter_connect_postuse.py :5
import subprocess - shell (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_ledger.py :11
import subprocess - shell (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_linking.py :4
import subprocess - shell (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_mcp_server.py :11
import subprocess - shell (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_queue.py :6
import subprocess - shell (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_runs.py :4
import subprocess - shell (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_sandbox.py :4
import subprocess - shell (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_trackers_context.py :11
import subprocess - shell (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_trackers_noop.py :5
import subprocess - shell (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_trackers_wandb.py :8
import subprocess - shell (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_utils.py :5
import subprocess - shell (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_validate.py :4
import subprocess - shell (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_validate_cross_machine.py :14
import subprocess
network 6
- net KadenMc-agentic-experiments-a3f7a23/src/aexp/jupyter.py :34
import socket - net KadenMc-agentic-experiments-a3f7a23/src/aexp/queue.py :34
import socket - net KadenMc-agentic-experiments-a3f7a23/src/aexp/utils/paths.py :153
import socket - net (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_install.py :1097
import socket - net (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_jupyter_introspect.py :182
import socket - net (weak) KadenMc-agentic-experiments-a3f7a23/tests/test_queue.py :1511
import socket as _socket
tool registrations 31
- new_hypothesis KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :152
- new_experiment KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :186
- new_finding KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :216
- new_thread KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :258
- list_threads KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :287
- show_thread KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :327
- close_thread KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :349
- new_run KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :386
- list_runs KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :423
- list_batches KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :447
- show_run KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :473
- show_batch KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :485
- link_run KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :520
- bind_tracker KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :544
- validate KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :600
- sync_offline KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :638
- queue_add KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :696
- queue_list KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :771
- queue_remove KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :796
- queue_stop KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :808
- queue_clear KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :844
- queue_materialize KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :859
- jupyter_introspect_current KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :923
- jupyter_parse_introspection KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :952
- airgapped_status KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :1062
- airgapped_pull KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :1078
- airgapped_fetch KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :1090
- airgapped_repo_status KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :1102
- airgapped_rebase KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :1114
- airgapped_push KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :1130
- airgapped_wandb_sync KadenMc-agentic-experiments-a3f7a23/src/aexp/mcp_server.py :1151
declared dependencies 11
- mcp@(>=1.2,<2.0)
- signac@(>=2.3.0,<3.0.0)
- python-frontmatter@(>=1.1.0,<2.0.0)
- pydantic@(>=2.5,<3.0)
- pyyaml@(>=6.0,<7.0)
- typer@(>=0.12,<1.0)
- rich@(>=13.0,<15.0)
- wandb@(>=0.16,<1.0)
- jupyter-collaboration@(>=4.0.0,<5.0.0)
- jupyter-mcp-tools@(>=0.1.6,<0.2.0)
- jupyter-mcp-server@(>=1.0.2,<2.0.0)