Skip to content
Security
Command

/cti-report

Render case deliverables — relationship graph (PNG/SVG/Mermaid) and a polished PDF/DOCX assessment. Usage: /cti-report <CASE-ID> [--graph|--pdf]

From plugin
cti-expert
6199 skills9 commands2 hooks
$ npx -y skills add 7onez/cti-expert --agent claude-code

Command definition

cti-report.md
name: cti-report
description: "Render case deliverables — relationship graph (PNG/SVG/Mermaid) and a polished PDF/DOCX assessment. Usage: /cti-report <CASE-ID> [--graph|--pdf]"
argument-hint: "<CASE-ID> [--graph|--pdf]"

/cti-report — render deliverables

Load the `cti-expert` skill, then render for: `$ARGUMENTS`

**Graph** (editable .mmd + SVG + hi-res/thumb PNG):

python3 scripts/backend/intel.py graph "$PWD/<case_graph.json>" "$PWD/<out-stem>" --legend

Pass **absolute paths** — the dispatcher runs with its own working directory and relative paths will not resolve.

**House report** (the editorial PDF + DOCX, composed deterministically from the case dir — sections I–XI, both confidence scales + confidence scatter, relationship graph + entity map, inference chain, temporal view + heatmaps, landing-page captures (web-scan / web-archive stand-ins for dead pages), per-domain dossiers, Appendices A–E incl. glossary; third-party selectors masked, internal tool/path names scrubbed; the landing-page step is the only egress — proxy-gated, `--no-screenshots` to skip, `--no-archive-fallback` to forbid the stand-ins):

python3 scripts/backend/intel.py house-report <CASE-ID>          # → cases/<CASE-ID>/report/CTI-REPORT-<CASE-ID>-<date>.{pdf,docx,house.md}

The house markdown is written as `.house.md` so it never overwrites the base bundle's analyst `.md`. Two optional analyst files in the case dir steer what a shareable report shows: `report_keep.json` — a JSON list of the operator's OWN identifiers that are not in WHOIS (tax id, support e-mail/phone) to keep in clear; `report_exclude.json` — values that must never become an IOC (e.g. an unverified "marketing partner" named on the page). Everything else outside the current-registration WHOIS identity is masked.

**Raw render** (when you have hand-authored house-rules markdown yourself):

python3 scripts/backend/intel.py report <assessment.md> <out-stem> --pdf --docx

`intel.py report` is the **IntelReport** renderer (xelatex/pandoc PDF + DOCX) applied to markdown you wrote; `house-report` composes that markdown for you from `assessment.json`/`assessment.md`, `whois/`, `raw/`, `clusters.json` and the ledgers. For the **flat-JSON deliverable bundle** — interactive HTML, the IOC/selector exports (STIX/CSV/JSONL/TXT), and the chart-rich dashboard DOCX/PDF for cases with no case dir — build the report JSON deterministically first, then run the generators (see SKILL.md §8):

uv run "$SKILL_DIR/scripts/build_report_data.py" "${INTEL_HOME:-$SKILL_DIR/intel_engine}/cases/<CASE-ID>" -o "CTI-REPORT-<CASE-ID>-<DATE>.json"

Before rendering, confirm the assessment: states confidence on both axes (Admiralty per finding, ICD-203 per judgment — High/Moderate/Low, no hyphenated hybrids); tags each link with its evidence rung; reports empty findings as empty; and includes alternative hypotheses wherever attribution reaches a named individual.

**Inherit the source's TLP marking.** A TLP:RED case must not be published to an Artifact or any hosted URL.

Read more
@7onez
Ships withcti-expert

CTI Expert — Cyber Threat Intelligence & OSINT analysis skill for Claude Code / Codex. 120+ commands, 57 techniques, 79 typed MCP tools, deterministic case pipeline + ICD-203 reports. No API keys required for core.

Stars on GitHub

Momentum

stars in total
619
Star history of 7onez/cti-expert on GitHub, a chart by star-history.com

Other commands on cti-expert.

cti-case

cti-case

Command

Run the full deterministic pipeline on one or more seeds: collect, ingest, prior-overlap, risk, cluster, ICD-203 assessment.…

@7onez@7onezInstall Command
cti-check

cti-check

Command

False-positive control — is this indicator a real operator link or shared noise? Run BEFORE clustering on anything. Usage:…

@7onez@7onezInstall Command
cti-cluster

cti-cluster

Command

Expand and correlate an existing case — peers, shared indicators, TLS overlap, reverse-WHOIS. Usage: /cti-cluster <domain|CASE-ID>

@7onez@7onezInstall Command
cti-pivot

cti-pivot

Command

Collect pivot artifacts from ONE target — favicon, trackers, wallets, emails, CORS, mail/SPF/DMARC, WHOIS, co-tenancy. Usage:…

@7onez@7onezInstall Command
cti-proxy

cti-proxy

Command

Manage the egress proxy / rotation pool for the skill's HTTP(S) requests (keyless crt.sh, Wayback, urlscan, CLD, WHOIS, /apikeys…

@7onez@7onezInstall Command
cti-recall

cti-recall

Command

Have I seen this before? Check a seed against every prior case BEFORE collecting. Always run this first. Usage: /cti-recall…

@7onez@7onezInstall Command

More commands from other plugins.

deslop-reborn

deslop-reborn

Command

One iteration of the IronClaw Reborn de-slop loop — take ONE Reborn crate, fan out parallel review sub-agents (thermo-nuclear…

ironclaw13d13k
@nearai@nearaiInstall Command
audit

audit

Command

Audit a file, directory, or whole repo for insecure default configuration: fallback secrets, default credentials, fail-open…

@trailofbits@trailofbitsInstall Command
arsenal

arsenal

Command

Show which external bug-bounty tools are installed on this machine and print install hints for the missing ones. Curated from…

@awarexone@awarexoneInstall Command