Agent repository for scientific research, including knowledge, feed ranking, and experiment tracking MCPs
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http counts 46 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
cite.check
-
cite.lookup
-
cite.search
-
cite.sources
-
feed.ask
-
feed.digest
-
feed.explain
-
feed.harvest_engagement
-
feed.list
-
feed.persona_create
-
feed.persona_delete
-
feed.persona_reset
-
feed.persona_status
-
feed.persona_suggest_interests
-
feed.persona_update
-
feed.rate
-
feed.read
-
feed.search
-
feed.simulate_ratings
-
feed.source_add
-
feed.source_preview
-
feed.source_remove
-
feed.source_suggest
-
feed.sources
-
kg.ask
-
kg.central
-
kg.communities
-
kg.concepts
-
kg.neighbors
-
kg.path
-
runs.ask
-
runs.claims_check
-
runs.claims_coverage
-
runs.compare
-
runs.detail
-
runs.list
-
runs.record
-
runs.scan
-
sym.ask
-
sym.derivation
-
sym.differentiate
-
sym.evaluate
-
sym.integrate
-
sym.simplify
-
sym.solve
-
sym.verify
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 5f3e5bf · analyzer v33 · 1d ago
skills & prompt files 19
- agent-rules mgoldey-attestation-5f3e5bf/.claude/agents/attestation-feed.md
- agent-rules mgoldey-attestation-5f3e5bf/.claude/agents/attestation-knowledge.md
- agent-rules mgoldey-attestation-5f3e5bf/.claude/agents/attestation-provenance.md
- agent-rules mgoldey-attestation-5f3e5bf/.claude/agents/attestation-symbolic.md
- agent-rules mgoldey-attestation-5f3e5bf/CLAUDE.md
- agent-rules mgoldey-attestation-5f3e5bf/docs/guides/agents.md
- prompt-file mgoldey-attestation-5f3e5bf/evals/prompts/transfer-2026-08-27.md
- prompt-file mgoldey-attestation-5f3e5bf/evals/prompts/transfer-2026-08-28.md
- prompt-file mgoldey-attestation-5f3e5bf/evals/prompts/transfer-feed-2026-09-03.md
- prompt-file mgoldey-attestation-5f3e5bf/evals/prompts/transfer-symbolic-2026-09-03.md
- prompt-file mgoldey-attestation-5f3e5bf/evals/prompts/write-side-2026-09-01.md
- prompt-file mgoldey-attestation-5f3e5bf/evals/prompts/write-side-2026-09-02.md
- skill mgoldey-attestation-5f3e5bf/src/attestation/skills/attestation-annotate/SKILL.md
- skill mgoldey-attestation-5f3e5bf/src/attestation/skills/attestation-feed/SKILL.md
- skill mgoldey-attestation-5f3e5bf/src/attestation/skills/attestation-knowledge/SKILL.md
- skill mgoldey-attestation-5f3e5bf/src/attestation/skills/attestation-provenance/SKILL.md
- skill mgoldey-attestation-5f3e5bf/src/attestation/skills/attestation-record/SKILL.md
- skill mgoldey-attestation-5f3e5bf/src/attestation/skills/attestation-setup/SKILL.md
- skill mgoldey-attestation-5f3e5bf/src/attestation/skills/attestation-symbolic/SKILL.md
danger signals1
- dynamic code execution __import__() mgoldey-attestation-5f3e5bf/tests/test_package_surface.py :46
__import__(f"attestation.{name}")
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 167
filesystem 91
- fs mgoldey-attestation-5f3e5bf/demos/feed/record.py :24
from pathlib import Path - fs mgoldey-attestation-5f3e5bf/demos/feed/seed_feed_db.py :14
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/demos/kg-symbolic/demo.py :20
from pathlib import Path - fs mgoldey-attestation-5f3e5bf/demos/kg-symbolic/seed_kg_db.py :20
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/docs/_hooks.py :18
from pathlib import Path - fs mgoldey-attestation-5f3e5bf/evals/annotate_eval.py :29
import pathlib - fs mgoldey-attestation-5f3e5bf/evals/explanation_eval.py :20
import pathlib - fs mgoldey-attestation-5f3e5bf/evals/optimize_skill_triggers.py :46
import pathlib - fs mgoldey-attestation-5f3e5bf/evals/optimize_tagging.py :44
import pathlib - fs mgoldey-attestation-5f3e5bf/evals/reaction_eval.py :21
import pathlib - fs mgoldey-attestation-5f3e5bf/evals/record_eval.py :34
import pathlib - fs mgoldey-attestation-5f3e5bf/evals/run_annotate_eval.py :42
import pathlib - fs mgoldey-attestation-5f3e5bf/evals/run_explanation_eval.py :23
import pathlib - fs mgoldey-attestation-5f3e5bf/evals/run_reaction_eval.py :24
import pathlib - fs mgoldey-attestation-5f3e5bf/evals/run_record_eval.py :54
import pathlib - fs mgoldey-attestation-5f3e5bf/evals/run_skill_trigger_eval.py :28
import pathlib - fs mgoldey-attestation-5f3e5bf/evals/run_tagging_eval.py :24
import pathlib - fs mgoldey-attestation-5f3e5bf/evals/skill_trigger_eval.py :33
import pathlib - fs mgoldey-attestation-5f3e5bf/evals/tagging_eval.py :17
import pathlib - fs mgoldey-attestation-5f3e5bf/evals/transfer_matrix.py :26
import pathlib - fs mgoldey-attestation-5f3e5bf/evals/transfer_skill_triggers.py :20
import pathlib - fs (weak) mgoldey-attestation-5f3e5bf/examples/citations/check_citations.py :24
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/examples/citations/generate.py :27
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/examples/dvc/train.py :26
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/examples/flows/_common.py :9
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/examples/flows/mcp_e2e.py :26
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/examples/flows/persona_eval.py :25
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/examples/flows/run_all.py :19
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/examples/flows/training/train_mlflow.py :46
import shutil - fs (weak) mgoldey-attestation-5f3e5bf/examples/hydra/scrub.py :29
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/examples/hydra/train.py :61
with open("metrics.json", "w") as f: - fs (weak) mgoldey-attestation-5f3e5bf/examples/model-servers/with_server.py :18
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/examples/sacred/generate.py :62
import shutil - fs (weak) mgoldey-attestation-5f3e5bf/examples/tensorflow/generate.py :68
import shutil - fs (weak) mgoldey-attestation-5f3e5bf/examples/wandb/generate.py :73
import shutil - fs (weak) mgoldey-attestation-5f3e5bf/scripts/mutate.py :20
import shutil - fs (weak) mgoldey-attestation-5f3e5bf/scripts/render_cli_reference.py :25
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/scripts/render_spec_index.py :15
from pathlib import Path - fs mgoldey-attestation-5f3e5bf/src/attestation/citations.py :36
from pathlib import Path - fs mgoldey-attestation-5f3e5bf/src/attestation/claims.py :38
from pathlib import Path - fs mgoldey-attestation-5f3e5bf/src/attestation/cli.py :10
from pathlib import Path - fs mgoldey-attestation-5f3e5bf/src/attestation/corpus.py :26
from pathlib import Path - fs mgoldey-attestation-5f3e5bf/src/attestation/db.py :7
from pathlib import Path - fs mgoldey-attestation-5f3e5bf/src/attestation/emit.py :26
from pathlib import Path - fs mgoldey-attestation-5f3e5bf/src/attestation/features.py :14
from pathlib import Path - fs mgoldey-attestation-5f3e5bf/src/attestation/feeds.py :22
from pathlib import Path - fs mgoldey-attestation-5f3e5bf/src/attestation/ingest.py :10
from pathlib import Path - fs mgoldey-attestation-5f3e5bf/src/attestation/install.py :15
import shutil - fs mgoldey-attestation-5f3e5bf/src/attestation/kg.py :26
from pathlib import Path - fs mgoldey-attestation-5f3e5bf/src/attestation/ledger.py :33
from pathlib import Path - fs mgoldey-attestation-5f3e5bf/src/attestation/ledger_adapters/generic.py :28
from pathlib import Path - fs mgoldey-attestation-5f3e5bf/src/attestation/llm.py :10
from pathlib import Path - fs mgoldey-attestation-5f3e5bf/src/attestation/mcp/citation.py :47
from pathlib import Path - fs mgoldey-attestation-5f3e5bf/src/attestation/mcp/claims_tools.py :13
from pathlib import Path - fs mgoldey-attestation-5f3e5bf/src/attestation/record.py :32
from pathlib import Path - fs mgoldey-attestation-5f3e5bf/src/attestation/server.py :5
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_annotate_eval.py :12
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_architecture.py :24
import pathlib - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_claims.py :6
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_cli.py :975
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_db.py :2
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_docs_site.py :18
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_docstring_ratchet.py :40
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_emit.py :368
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_examples.py :11
import pathlib - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_explain.py :2
import pathlib - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_explanation_eval.py :11
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_flows_fixture.py :5
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_flows_mcp_plan.py :7
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_flows_runner.py :4
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_flows_scoring.py :5
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_flows_stub.py :7
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_golden_paths.py :10
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_ingest.py :1
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_install.py :10
import pathlib - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_install_e2e.py :18
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_install_skills.py :18
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_ledger.py :13
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_ledger_adapters.py :10
import shutil - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_ledger_mcp.py :4
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_llm.py :172
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_package_surface.py :11
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_rank_relevance.py :25
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_reaction_eval.py :13
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_record.py :11
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_record_eval.py :9
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_skill_files.py :21
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_symbolic.py :1
import pathlib - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_tag_prompt.py :12
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_tagging_eval.py :11
from pathlib import Path - fs (weak) mgoldey-attestation-5f3e5bf/tests/test_tracker_adapters.py :48
from pathlib import Path
shell / exec 11
- shell mgoldey-attestation-5f3e5bf/demos/feed/record.py :21
import subprocess - shell mgoldey-attestation-5f3e5bf/evals/run_record_eval.py :55
import subprocess - shell (weak) mgoldey-attestation-5f3e5bf/examples/flows/run_all.py :16
import subprocess - shell (weak) mgoldey-attestation-5f3e5bf/examples/model-servers/with_server.py :15
import subprocess - shell (weak) mgoldey-attestation-5f3e5bf/scripts/check_complexity.py :18
import subprocess - shell mgoldey-attestation-5f3e5bf/src/attestation/cli.py :322
import subprocess - shell mgoldey-attestation-5f3e5bf/src/attestation/install.py :16
import subprocess - shell (weak) mgoldey-attestation-5f3e5bf/tests/test_architecture.py :26
import subprocess - shell (weak) mgoldey-attestation-5f3e5bf/tests/test_docs_site.py :16
import subprocess - shell (weak) mgoldey-attestation-5f3e5bf/tests/test_golden_paths.py :9
import subprocess - shell (weak) mgoldey-attestation-5f3e5bf/tests/test_install.py :11
import subprocess
network 20
- net mgoldey-attestation-5f3e5bf/demos/feed/record.py :34
import httpx - net mgoldey-attestation-5f3e5bf/evals/run_annotate_eval.py :45
import httpx - net mgoldey-attestation-5f3e5bf/src/attestation/citations.py :353
import httpx - net mgoldey-attestation-5f3e5bf/src/attestation/cli.py :12
import httpx - net mgoldey-attestation-5f3e5bf/src/attestation/explain.py :181
# (httpx.ConnectError/ConnectTimeout), not on a bare - net mgoldey-attestation-5f3e5bf/src/attestation/install.py :21
from urllib.parse import urlparse - net mgoldey-attestation-5f3e5bf/src/attestation/llm.py :12
import httpx - net mgoldey-attestation-5f3e5bf/src/attestation/ports.py :160
import httpx - net mgoldey-attestation-5f3e5bf/src/attestation/server.py :6
from urllib.parse import quote - net (weak) mgoldey-attestation-5f3e5bf/tests/test_citations.py :94
import httpx - net (weak) mgoldey-attestation-5f3e5bf/tests/test_cli.py :114
import httpx as _httpx - net (weak) mgoldey-attestation-5f3e5bf/tests/test_embed.py :3
import httpx - net (weak) mgoldey-attestation-5f3e5bf/tests/test_explain.py :97
"""A genuinely dead backend raises `httpx.ConnectError`/`ConnectTimeout` - net (weak) mgoldey-attestation-5f3e5bf/tests/test_features.py :435
import httpx - net (weak) mgoldey-attestation-5f3e5bf/tests/test_flows_stub.py :6
import urllib.request - net (weak) mgoldey-attestation-5f3e5bf/tests/test_ingest.py :271
import httpx - net (weak) mgoldey-attestation-5f3e5bf/tests/test_install_e2e.py :127
warmup() degrade gracefully via its own httpx.HTTPError catch — the same - net (weak) mgoldey-attestation-5f3e5bf/tests/test_llm.py :3
import httpx - net (weak) mgoldey-attestation-5f3e5bf/tests/test_ports.py :12
import httpx - net (weak) mgoldey-attestation-5f3e5bf/tests/test_server.py :315
from urllib.parse import parse_qs, urlparse
secrets 1
- secrets mgoldey-attestation-5f3e5bf/src/attestation/llm.py :72
key = api_key if api_key is not None else os.environ.get("LLM_API_KEY")
database 22
- db mgoldey-attestation-5f3e5bf/src/attestation/citations.py :33
import sqlite3 - db mgoldey-attestation-5f3e5bf/src/attestation/claims.py :34
import sqlite3 - db mgoldey-attestation-5f3e5bf/src/attestation/cli.py :36
import sqlite3 - db mgoldey-attestation-5f3e5bf/src/attestation/db.py :5
import sqlite3 - db mgoldey-attestation-5f3e5bf/src/attestation/explain.py :10
import sqlite3 - db mgoldey-attestation-5f3e5bf/src/attestation/features.py :13
import sqlite3 - db mgoldey-attestation-5f3e5bf/src/attestation/feeds.py :20
import sqlite3 - db mgoldey-attestation-5f3e5bf/src/attestation/implicit.py :29
import sqlite3 - db mgoldey-attestation-5f3e5bf/src/attestation/ingest.py :7
import sqlite3 - db mgoldey-attestation-5f3e5bf/src/attestation/kg.py :22
import sqlite3 - db mgoldey-attestation-5f3e5bf/src/attestation/ledger.py :29
import sqlite3 - db mgoldey-attestation-5f3e5bf/src/attestation/mcp/_tool.py :33
import sqlite3 - db mgoldey-attestation-5f3e5bf/src/attestation/personas.py :32
import sqlite3 - db mgoldey-attestation-5f3e5bf/src/attestation/rank.py :7
import sqlite3 - db mgoldey-attestation-5f3e5bf/src/attestation/server.py :3
import sqlite3 - db mgoldey-attestation-5f3e5bf/src/attestation/simulate.py :28
import sqlite3 - db (weak) mgoldey-attestation-5f3e5bf/tests/test_citations.py :16
import sqlite3 - db (weak) mgoldey-attestation-5f3e5bf/tests/test_cli.py :829
import sqlite3 - db (weak) mgoldey-attestation-5f3e5bf/tests/test_db.py :1
import sqlite3 - db (weak) mgoldey-attestation-5f3e5bf/tests/test_kg.py :299
import sqlite3 - db (weak) mgoldey-attestation-5f3e5bf/tests/test_search.py :157
import sqlite3 - db (weak) mgoldey-attestation-5f3e5bf/tests/test_tool_envelope.py :326
import sqlite3
tool registrations 46
- feed.ask mgoldey-attestation-5f3e5bf/src/attestation/mcp/ask.py :418
- runs.ask mgoldey-attestation-5f3e5bf/src/attestation/mcp/ask.py :437
- kg.ask mgoldey-attestation-5f3e5bf/src/attestation/mcp/ask.py :455
- sym.ask mgoldey-attestation-5f3e5bf/src/attestation/mcp/ask.py :464
- cite.lookup mgoldey-attestation-5f3e5bf/src/attestation/mcp/citation.py :102
- cite.search mgoldey-attestation-5f3e5bf/src/attestation/mcp/citation.py :114
- cite.check mgoldey-attestation-5f3e5bf/src/attestation/mcp/citation.py :127
- cite.sources mgoldey-attestation-5f3e5bf/src/attestation/mcp/citation.py :139
- feed.list mgoldey-attestation-5f3e5bf/src/attestation/mcp/feed.py :54
- feed.rate mgoldey-attestation-5f3e5bf/src/attestation/mcp/feed.py :94
- feed.read mgoldey-attestation-5f3e5bf/src/attestation/mcp/feed.py :105
- feed.explain mgoldey-attestation-5f3e5bf/src/attestation/mcp/feed.py :118
- feed.persona_create mgoldey-attestation-5f3e5bf/src/attestation/mcp/feed.py :130
- feed.persona_update mgoldey-attestation-5f3e5bf/src/attestation/mcp/feed.py :140
- feed.persona_suggest_interests mgoldey-attestation-5f3e5bf/src/attestation/mcp/feed.py :145
- feed.persona_status mgoldey-attestation-5f3e5bf/src/attestation/mcp/feed.py :150
- feed.search mgoldey-attestation-5f3e5bf/src/attestation/mcp/feed.py :161
- feed.persona_delete mgoldey-attestation-5f3e5bf/src/attestation/mcp/feed.py :210
- feed.persona_reset mgoldey-attestation-5f3e5bf/src/attestation/mcp/feed.py :215
- feed.harvest_engagement mgoldey-attestation-5f3e5bf/src/attestation/mcp/feed.py :220
- feed.simulate_ratings mgoldey-attestation-5f3e5bf/src/attestation/mcp/feed.py :243
- feed.digest mgoldey-attestation-5f3e5bf/src/attestation/mcp/feed.py :267
- kg.neighbors mgoldey-attestation-5f3e5bf/src/attestation/mcp/knowledge.py :25
- kg.path mgoldey-attestation-5f3e5bf/src/attestation/mcp/knowledge.py :40
- kg.central mgoldey-attestation-5f3e5bf/src/attestation/mcp/knowledge.py :53
- kg.communities mgoldey-attestation-5f3e5bf/src/attestation/mcp/knowledge.py :68
- kg.concepts mgoldey-attestation-5f3e5bf/src/attestation/mcp/knowledge.py :89
- runs.scan mgoldey-attestation-5f3e5bf/src/attestation/mcp/provenance.py :70
- runs.record mgoldey-attestation-5f3e5bf/src/attestation/mcp/provenance.py :89
- runs.list mgoldey-attestation-5f3e5bf/src/attestation/mcp/provenance.py :129
- runs.compare mgoldey-attestation-5f3e5bf/src/attestation/mcp/provenance.py :144
- runs.detail mgoldey-attestation-5f3e5bf/src/attestation/mcp/provenance.py :178
- runs.claims_coverage mgoldey-attestation-5f3e5bf/src/attestation/mcp/provenance.py :192
- runs.claims_check mgoldey-attestation-5f3e5bf/src/attestation/mcp/provenance.py :212
- feed.source_add mgoldey-attestation-5f3e5bf/src/attestation/mcp/subscriptions.py :24
- feed.sources mgoldey-attestation-5f3e5bf/src/attestation/mcp/subscriptions.py :34
- feed.source_remove mgoldey-attestation-5f3e5bf/src/attestation/mcp/subscriptions.py :39
- feed.source_preview mgoldey-attestation-5f3e5bf/src/attestation/mcp/subscriptions.py :48
- feed.source_suggest mgoldey-attestation-5f3e5bf/src/attestation/mcp/subscriptions.py :53
- sym.simplify mgoldey-attestation-5f3e5bf/src/attestation/mcp/symbolic.py :65
- sym.solve mgoldey-attestation-5f3e5bf/src/attestation/mcp/symbolic.py :75
- sym.differentiate mgoldey-attestation-5f3e5bf/src/attestation/mcp/symbolic.py :86
- sym.integrate mgoldey-attestation-5f3e5bf/src/attestation/mcp/symbolic.py :93
- sym.derivation mgoldey-attestation-5f3e5bf/src/attestation/mcp/symbolic.py :104
- sym.verify mgoldey-attestation-5f3e5bf/src/attestation/mcp/symbolic.py :120
- sym.evaluate mgoldey-attestation-5f3e5bf/src/attestation/mcp/symbolic.py :131
declared dependencies 15
- mcp@==1.28.1
- feedparser@>=6.0
- sqlite-vec@>=0.1.6
- httpx@>=0.27
- scikit-learn@>=1.5
- numpy@>=1.26
- langgraph@>=0.2
- pydantic@>=2.7
- fastapi@>=0.115
- uvicorn@>=0.30
- jinja2@>=3.1
- python-multipart@>=0.0.6
- tqdm@>=4.66
- python-dotenv@>=1.0
- sympy@>=1.13