github Python analyzed 5f3e5bf

mgoldey/attestation

github

Agent repository for scientific research, including knowledge, feed ranking, and experiment tracking MCPs

maintainer
mgoldey
license
MIT
first seen
2026-09-02
last seen
2026-09-04
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 46 tools
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
skills & danger signals github-tarball
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

danger signals1

code evidence vHEAD · github-tarball
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