x-ray
Generates an x-ray.md pre-audit report covering overview, enhanced threat model (protocol-type profiling, git-weighted attack surfaces, temporal risk…
Skill by idchain-world
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/idchain-world-x-ray
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, testing, security
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/x-ray
What's inside
- Skill name
x-ray- Description
- Generates an x-ray.md pre-audit report covering overview, enhanced threat model (protocol-type profiling, git-weighted attack surfaces, temporal risk analysis, composability dependency mapping), invariants, integrations, docs quality, test analysis, and developer/git history. Triggers on 'x-ray', 'audit readiness', 'readiness report', 'pre-audit report', 'prep this protocol', 'protocol prep', 'summarize this protocol'.
- License
- MIT
- Instructions
- 282 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
- Instructions call the network
Files (8)
- README.md
- SKILL.md
- VERSION
- templates.md · references/
- threats.md · references/
- analyze_git_security.py · scripts/
- enumerate.sh · scripts/
- generate_svg.py · scripts/
SKILL.md (first lines)
# X-Ray
Generate an `x-ray/` folder at the project root containing all output files. Pipeline: 3 steps, always sequential.
`$SKILL_DIR` = the directory containing this SKILL.md file. Resolve it from the path you loaded this skill from (e.g. if this file is at `/path/to/x-ray/SKILL.md`, then `$SKILL_DIR` = `/path/to/x-ray`).
## Step 1: Enumerate & Measure
If the user specifies a path, use it as project root. Otherwise use cwd. If no `.sol` files or `foundry.toml`/`hardhat.config.*` at root, check one level deep.
**Source directory detection**: Auto-detect from `foundry.toml` (`src = "..."`) or `hardhat.config.*`. If no config, try both `src/` and `contracts/`. Read `foundry.toml` first if present.
**Run enumeration** (single Bash call — includes output directory creation):
```bash
mkdir -p [project-root]/x-ray && bash $SKILL_DIR/scripts/enumerate.sh [project-root] [src-dir]
```
**Immediately after**, launch ALL of the following in a single message (parallel):
**0. Version check** (foreground):
- Read the local `VERSION` file from `$SKILL_DIR/VERSION`
- Bash `curl -sf https://raw.githubusercontent.com/pashov/skills/main/x-ray/VERSION`
- If the remote VERSION fetch succeeds and differs from local, print `⚠️ You are not using the latest version. Please upgrade for best security coverage. See https://github.com/pashov/skills`. If it fails, skip silently.
**1. Coverage** (`run_in_background: true`):
For Foundry:
```bash
cd [project-root] && forge coverage 2>&1 || (echo "RETRYING_WITH_IR_MINIMUM" && forge coverage --ir-minimum 2>&1)
```
For Hardhat:
```bash
cd [project-root] && npx hardhat coverage 2>&1
```
If toolchain is not installed (e.g., `forge: command not found`, `npx: command not found`, missing `node_modules/`), the coverage command will fail. This is expected — test *existence* is already captured by enumeration in the step above. Coverage failure does NOT mean tests are absent.
**2. Git security analysis + JSON read** (foreground, single Bash call):
```bash
cd [project-root] && python3 $SKILL_DIR/scripts/analyze_git_security.py --repo . --src-dir [src-dir] --json x-ray/git-security-analysis.json 2>&1 && cat x-ray/git-security-analysis.json
```
The JSON has 7 sections: `repo_shape`, `fix_candidates`, `dangerous_area_changes`, `late_changes`, `forked_deps`, `tech_debt`, `dev_patterns`.
**3. Preload reference files** (2 parallel Read calls — these must be in context before Step 2d/3a):
- `$SKILL_DIR/references/threats.md` — threat profiles, temporal threats, composability threats
- `$SKILL_DIR/references/templates.md` — output template, entry points template, architecture guide
**4. Spec/whitepaper detection** (1 Glob: `**/{whitepaper,spec,design,protocol}*.{pdf,md}` excluding `node_modules/`, `lib/`, `x-ray/`). If spec or design docs are found (max 3, skip user-facing docs like tutorials/READMEs/API refs), include them as Reads in Step 2's parallel message. Extract only: stated invariants, actor definitions, cross-system flows, trust assumptions, economic properties. Tag all spec-derived claims in the report with `(per spec)` so auditors know what is code-verified vs spec-stated.
ALL calls (coverage, git analysis, reference reads, spec glob) MUST appear in the same message. Proceed to Step 2 without waiting for forge coverage.
## Step 2: Read Source Files + Entry Point Scan (SINGLE message, ALL tool calls parallel)
CRITICAL: Every tool call — Bash, Agent, Read, Grep — MUST be issued in ONE message so they run concurrently. This includes source file reads, the entry point grep scan, and any spec doc detected in Step 1 (they are all independent).
### Scope Filtering
- Skip interfaces: `interfaces/` dirs or filenames `I` + uppercase letter
- Skip vendored libs: Uniswap FullMath/TickMath, OZ copies
- When uncertain, include it but exclude from scope table
### Path A: ≤20 source files (direct reads)
One Read call per file. Do NOT read README, docs, or foundry.toml (already read in Step 1).
**Extract per file:** contract type & inheritance, roles & access control, value-holding state vars, external calls, fund flows, invariant comments, assert/require, backwards-compatibility indicators (see below).
### Path B: >20 source files (parallel subagents)
**Tier 1 — Small files (≤120 lines):** Batch into single Bash `cat` call.
**Tier 2 — Large files (>120 lines):** Group by subsystem. Launch **one subagent per subsystem** (`model: "sonnet"`, up to 5, max ~10 files each). Subagent prompt:
```
Read each file listed below and return a structured summary. Do NOT analyze — just extract facts.
Files: [list of file paths]
For EACH file, return this exact format:
### [filename]
- **Type**: contract | library | abstract
- **Inherits**: [parent contracts]
- **Imports**: [imported libraries/contracts]
- **Roles/Access**: [onlyOwner, role constants, modifiers]
- **State vars (value-holding)**: [mappings/vars that hold balances, collateral, etc.]
- **External calls**: [calls to other contracts, ERC20 transfers, etc.]
- **Fund flows**: [deposit/withdraw/mint/burn/transfer paths]
- **Invariants**: [require/assert statements, NatSpec invariant comments]
- **Key logic**: [1-2 sentences on what the contract does]
- **Function-level access map** (REQUIRED for contracts, skip for libraries):
List every public/external non-view non-pure function with its access control:
- `functionName()` — [modifier name, e.g. `onlyRole(OCT_KEEPER)`] or [NONE — permissionless]
For functions with NO modifier, also list which external calls they make:
- `functionName()` — NONE — calls `ContractName.method()`
```
### Entry Point Grep Scan (INCLUDED in the same parallel message as source reads)
Launch these two **Bash** calls (not Grep tool — these patterns use PCRE lookaheads which ripgrep doesn't support) in the SAME message as the source file reads above — they are independent and can run concurrently:
```bash
# 1. Single-line signatures: function name and visibility on same line
grep -rnP 'function\s+\w+\s*\([^)]*\)\s+(external|public)(?!.*\b(view|pure)\b)' [src-dir]/ --include='*.sol' | grep -v '/interfaces/' | grep -v '/mock/'
```
```bash
# 2. Multiline signatures: visibility keyword on the closing-paren line (covers 90%+ of multiline cases)
grep -rnP '^\s*\)\s+(external|public)(?!.*\b(view|pure)\b)' [src-dir]/ --include='*.sol' -B5 | grep -v '/interfaces/' | grep -v '/mock/'
```
Combine results from both. The multiline grep is critical — Solidity functions often split parameters across lines, putting `external`/`public` on the `)` line while `function name(` is lines above.
ALL tool calls (source reads/Bash/subagents, BOTH grep scans) MUST be in ONE message.
Do NOT read test files or documentation files.
### Step 2b: Entry Point Classification
Using the grep results already returned from Step 2's parallel message, classify ALL entry points. Do NOT rely solely on subagent summaries — subagents extract facts at the contract level and can misattribute which function makes which external call or which function has which modifier.
**Exclude** from entry points: view/pure functions, interface-only declarations, library internal functions (they're downstream calls, not entry points), mock contracts.
**For each result, classify into one of three categories:**From idchain-world/id-agents, MIT.
More from idchain-world/id-agents
- 0.639score
task-discipline
idchain-world
Required lifecycle for non-trivial work.
SkillAFreshness: A★ 18Claude Code +9 - 0.598score
idagents-team-builder
idchain-world
Build an id-agents team correctly from scratch.
SkillBFreshness: B★ 18Claude Code +9 - 0.589score
idagents-admin-control
idchain-world
Programmatically manage an ID Agents team — add/remove agents, export/import team configs, rebuild and restart the manager, dispatch work to agents and poll…
SkillBFreshness: B★ 18Claude Code +9 - 0.552score
inter-agent
idchain-world
Communicate with other agents in your team — send messages, delegate tasks, list agents, check news.
SkillCFreshness: C★ 18Claude Code +9 - 0.552score
sound-symbolism
idchain-world
Analyze and choose names based on the perceptual qualities that letters and sounds carry.
SkillCFreshness: C★ 18Claude Code +9 - 0.542score
catalog
idchain-world
Update your REST-AP catalog to describe your role, expertise, and status to other agents and the manager.
SkillCFreshness: C★ 18Claude Code +9 - 0.541score
identity
idchain-world
Your agent identity — name and team.
SkillCFreshness: C★ 18Claude Code +9 - 0.492score
solidity-auditor
idchain-world
Security audit of Solidity code while you develop.
SkillDFreshness: D★ 18Claude Code +9 - 0.492score
k8s-troubleshooter
idchain-world
Systematic Kubernetes troubleshooting and incident response.
SkillDFreshness: D★ 18Claude Code +9 - 0.488score
iac-terraform
idchain-world
Infrastructure as Code with Terraform and Terragrunt.
SkillDFreshness: D★ 18Claude Code +9 - 0.488score
ci-cd
idchain-world
CI/CD pipeline design, optimization, DevSecOps security scanning, and troubleshooting.
SkillDFreshness: D★ 18Claude Code +9 - 0.487score
wallet
idchain-world
OWS wallet — view addresses, sign transactions/messages, check balances, manage agent access.
SkillDFreshness: D★ 18Claude Code +9
Signals
- Stars
- 18
- Forks
- 4
- Open issues
- 0
- Last commit (this folder)
- Apr 25, 2026 (6 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/idchain-world/id-agents
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from idchain-world
- 0.639score
task-discipline
idchain-world
Required lifecycle for non-trivial work.
SkillAFreshness: A★ 18Claude Code +9 - 0.598score
idagents-team-builder
idchain-world
Build an id-agents team correctly from scratch.
SkillBFreshness: B★ 18Claude Code +9 - 0.589score
idagents-admin-control
idchain-world
Programmatically manage an ID Agents team — add/remove agents, export/import team configs, rebuild and restart the manager, dispatch work to agents and poll…
SkillBFreshness: B★ 18Claude Code +9 - 0.552score
inter-agent
idchain-world
Communicate with other agents in your team — send messages, delegate tasks, list agents, check news.
SkillCFreshness: C★ 18Claude Code +9 - 0.552score
sound-symbolism
idchain-world
Analyze and choose names based on the perceptual qualities that letters and sounds carry.
SkillCFreshness: C★ 18Claude Code +9 - 0.542score
catalog
idchain-world
Update your REST-AP catalog to describe your role, expertise, and status to other agents and the manager.
SkillCFreshness: C★ 18Claude Code +9
Cite this page
x-ray skill. Agent Mart. https://agentmart.dev/skills/idchain-world-x-ray (last updated 2026-10-24)