Skip to main content

The Six Types

Phylax analyses skill bundles in six categories. Each one has a different bundle structure, a different analysis approach, and a different scoring formula.
TypeBase weightSandbox requiredPrimary risk
rag_knowledge0.5NoHidden instructions in retrieved context
declarative0.7NoPrompt injection in agent instructions
executable_python1.0YesUntrusted Python with dependency tree
executable_script1.2YesShell escapes, command injection
mcp_server1.6YesTool poisoning, manifest tampering
agent_composition2.0Yes (cascading)Transitive risk across child skills
Miners pick which types they support and only get dispatched for those types. The validator does not assign types.

rag_knowledge

Documents and knowledge base content. No code. Used by agents that retrieve facts from a corpus at run time.
AspectDetail
BundlePlain text documents, structured snippets, optional embeddings
AnalysisContent scanning, prompt injection detection, hidden instruction detection
SandboxNone
Type axisρ injection recall against known hidden instructions in canary docs
Bundle file patternMarkdown, JSONL, or plain text
Canary handling: the validator injects a hidden instruction into the document set per canary_spec. The miner must detect and flag the canary in their findings for full ρ.

declarative

Natural language instructions for an agent. The text the agent receives as its system prompt.
AspectDetail
BundleA single prompt string, possibly with templating
AnalysisStatic text analysis for jailbreaks, role manipulation, secret extraction patterns
SandboxNone
Type axisNone (uses α, ε, π, η only)
Bundle file patternPlain text or YAML manifest
Canary handling: some tasks dispatch with an extra injection instruction at the end of the prompt. The miner must report it.

executable_python

A Python module with a declared entry point. Includes its requirements.txt and (optionally) pyproject.toml.
AspectDetail
BundlePython source tree, requirements.txt, optional pyproject.toml
AnalysisStatic AST, SBOM extraction, dependency CVE scan, sandbox detonation, behavioural trace
SandboxYes. Sandbox executes the entry point with a probe nonce and captures fs, network, process, secrets traces
Type axisNone (uses α, ε, π, η only)
Bundle file pattern*.py tree plus requirements.txt
The detonation step is the meat. The miner runs the code in a hermetic container, emits four trace JSONL files, hashes them, and signs the hashes into the SSSA.

executable_script

Shell scripts. Bash, sh, or POSIX shell.
AspectDetail
BundleOne or more .sh files
AnalysisShell taint analysis, command pattern matching, sandbox detonation
SandboxYes
Type axisσ shell coverage. Tracks the fraction of statically taintable commands that actually executed in the trace
Bundle file pattern*.sh
σ is one of the more sophisticated axes: it requires the miner to do enough static taint analysis to predict which commands will run, then verify those predictions against the actual trace.

mcp_server

A Model Context Protocol server. Exposes a tool list, accepts MCP requests, and returns structured results.
AspectDetail
BundleMCP server source plus manifest, dependency declarations, optional Dockerfile
AnalysisStart the server, enumerate tools, exercise each tool, check manifest integrity, check for poisoned tool descriptions
SandboxYes
Type axesψ manifest integrity, τ tool poison recall
Bundle file patternMix; manifest is manifest.json or mcp.json
The miner has to actually start the MCP server inside the sandbox and use the MCP client protocol to exercise it. ψ catches manifest tampering. τ catches tool descriptions designed to coerce the agent into harmful behaviour.

agent_composition

A composition manifest that orchestrates multiple child skills. The composition itself is just configuration; the analysis cascades into the child skills.
AspectDetail
BundleYAML composition manifest plus references to child skill bundles
AnalysisParse manifest, dispatch each child to generalist miners, aggregate risk across the tree
SandboxYes, recursively
Type axisχ transitive risk accuracy
Bundle file patternYAML manifest with referenced sub bundles
χ measures how well the miner’s reported transitive risk score matches the ground truth aggregation across child skills. Sub task dispatch routes through the network’s generalist miner pool. The cascading detonation is what makes agent_composition the highest base weight type: a single composition can fan out to many sub tasks.

Picking Skill Types as a Miner

There is no requirement to support every type. Many miners specialise in just one or two.

Start narrow

Pick one runtime type (executable_python is the gentlest) and master that pipeline before adding more.

High weight is high competition

agent_composition and mcp_server pay the most but have the fewest miners. Easier to climb the per type reputation table.

Document types are cheap

rag_knowledge and declarative do not need a sandbox and have low compute requirements. Good for getting first dispatch experience.

The validator dispatches to who declared

Only skill types your miner declared get dispatched to you. Edit ~/phylax/miner/.env PHYLAX_SUPPORTED_TYPES.

What’s Next

Skill Bundles

Structure of each skill type’s bundle and what files are expected.

SSSA Schema

The full Signed Skill Safety Attestation schema.

Scoring

Per type Q formulas and the full emission formula.

Miner Setup

Pick types and start mining.