Three agent skills for EQTY lineage manifests — signed, content-addressed records of what a computation did: its inputs, tool calls, model calls and outputs, checkable by a third party without trusting anyone's word for it.
| Skill | Fires when | What it does |
|---|---|---|
eqty-manifest |
a manifest is in hand | parses it, verifies its signatures, content addresses, statement integrity and hardware attestation evidence, and writes a report |
eqty-instrument |
you want your code to emit one | makes a repo emit a manifest, delivered as a patch for a human to review |
eqty-explorer |
you want to see one | shows a manifest's lineage graph in your browser and drives it while the agent answers: shows only the nodes an answer is about, filters, and selects |
eqty-instrument produces a manifest and points at it; eqty-manifest reads it
back; eqty-explorer draws it. Answers always come from eqty-manifest, and the
picture only illustrates them.
All three skills install together, in Claude Code or Codex.
Claude Code plugin:
/plugin marketplace add eqtylab/eqty-skills
/plugin install eqty-skills@eqty-lab
Codex plugin:
codex plugin marketplace add eqtylab/eqty-skills
codex plugin add eqty-skills@eqty-labManually — copy the three skill directories from plugins/eqty-skills/ into a
skills folder, side by side (eqty-instrument and eqty-explorer call
eqty-manifest as their sibling):
| Agent | For you, in every project | For one project |
|---|---|---|
| Claude Code | ~/.claude/skills/ |
.claude/skills/ |
| Codex | ~/.agents/skills/ |
.agents/skills/ |
cp -R plugins/eqty-skills/eqty-manifest plugins/eqty-skills/eqty-instrument plugins/eqty-skills/eqty-explorer ~/.claude/skills/ # or ~/.agents/skills/ for CodexNew versions are listed in CHANGELOG.md. After updating,
restart the agent so it loads the new skills.
Claude Code — refresh the marketplace, then update the plugin:
claude plugin marketplace update eqty-lab
claude plugin update eqty-skills@eqty-labCodex — refresh the marketplace, which updates the plugin from it:
codex plugin marketplace upgrade eqty-labclaude plugin list and codex plugin list show the installed version.
Manually, copy the three skill directories again, over the old ones.
Each skill is self-contained: its directory carries everything its SKILL.md
tells an agent to read or run, and refers to its own files relative to that
directory. An install copies plugins/eqty-skills/ and nothing else: the three
skills, the plugin manifests, LICENSE and NOTICE. The rest of this
repository (examples/, docs/, this README) is for people
and is never installed.
- Python 3.10+.
eqty-manifestneedseqty-sdk(2.5.0 or later),cryptographyandbase58to verify. With uv,uv runinstalls them per script; otherwisepip install -r plugins/eqty-skills/eqty-manifest/requirements.txt. Without them the scripts still parse and report, and every check they cannot run says not checked — never a pass.eqty-instrumentneeds nothing installed to run: its scripts (detect.py,check_graph.py) use the standard library only. What it produces is a patch to your code, and that patch addseqty-sdkto your project's dependencies, because the instrumented code imports it. In Mode 1 the patch also adds EQTY's LangChain or DeepAgents handler package (eqty-lineage-langchainoreqty-lineage-deepagents), also on public PyPI.eqty-explorerneeds a browser, and nothing installed:explorer.pyuses the standard library only. It loads the lineage explorer's code from jsDelivr (@eqtylab/explorer, pinned by version and hash); the manifest stays on your machine.
The skills build on the open-source EQTY SDK (eqty_sdk):
eqtylab/integrity-py, installed with
pip install eqty-sdk.
A real manifest comes with the examples. Verify it:
uv run plugins/eqty-skills/eqty-manifest/summary.py \
examples/mode1/deepagent/research_agent/research_agent_manifest.jsonSummary
=======
173 / 173 MetadataRegistration verified
120 / 120 DataRegistration verified
52 / 52 ComputationRegistration verified
Signers:
- did:key:z6MkqWiZdvahw5qQMBvrJfgTh7sLafRq18VpubrhnGnkRsrj signed 366 / 366 valid credentials
- 366 / 366 credentials: issuer is the registration's signer
Hashes:
- Total of 163 hashes
- 163 have pre-images attached
- 163 / 163 verified
- No tampering detected
- No missing pre-image blobs
Or ask Claude about it — "what does this manifest show?" — and
eqty-manifest takes over. Then "show me the graph", and eqty-explorer
opens it in your browser.
- Mode 1 — repos built on LangChain, LangGraph or DeepAgents. The
framework already fixed the node boundaries, so the edit is the same every
time: initialise the SDK once, attach one callback handler per run, fingerprint
the repo's own tools, export.
detect.pyplans it. - Mode 2 — arbitrary Python. No framework has decided which operations
deserve nodes, so the skill derives a control-flow graph first, you choose
auto or human-in-the-loop node selection, and only then does it touch
code.
check_graph.pychecks the result.
examples/ holds runs of both modes, for people to read; the agent
does not use them. Start with examples/README.md. The
Mode 1 examples show the current edit. The Mode 2
examples, lora_banking77 and
pygit, show the current flow: blind CFG, data flow read
with pyright, the two joined, the node selection, the patch and the prediction,
with nothing run. More on the skill in docs/eqty-instrument.md.
See LIMITATIONS.md.
Apache License 2.0 — see LICENSE. Third-party material under
plugins/eqty-skills/eqty-instrument/references/upstream/ and examples/
carries its own license beside it; see NOTICE.