How reverse-skill Structures Security Findings Using the Evidence→Finding→Path Methodology
reverse-skill enforces a strict, contract-driven workflow where immutable Evidence feeds validated Findings, which are then woven into reproducible Paths that document attack flows, call chains, or solution sequences.
The Evidence→Finding→Path framework is the core methodology defined in zhaoxuya520/reverse-skill for transforming raw security observations into auditable, reproducible narratives. This three-layer architecture ensures that every conclusion can be traced back to source data, every path can be rebuilt from its components, and every report meets mandatory validation standards.
The Three-Layer Architecture
Evidence: Immutable Observations
Evidence represents a single, unchangeable observation—command output, screenshot, file hash, network capture, or manual note. Each piece lives in its own Markdown file following the naming convention E-{nnn}.md.
Required fields per the contract in skills/ops/evidence-finding-path.md:
title– Human-readable descriptionobserved_at– ISO 8601 timestampsource_type– Category of observation (command, screenshot, hash, etc.)source_ref– Path to original datacontent_hash– Cryptographic hash for integrityrepro_command– Exact command to regenerateraw_excerpt– Relevant snippetlinked_workitem– Traceability to work itemsupersedes– Prior evidence this replaces, if any
The contract enforces that every Finding must reference at least one Evidence entry via evidence_ids—this field cannot be empty.
Create Evidence manually or use the CLI helper:
powershell -File skills/scripts/append-evidence.ps1 -CaseRoot work/target1 `
-Id E-001 -Title "Initial nmap scan" `
-ReproCommand "nmap -sV -p- 10.10.10.5" `
-Severity info -Status observed
This generates work/target1/evidence/E-001.md with proper front matter.
Finding: Security Conclusions
Finding documents a concise security conclusion—vulnerability, misconfiguration, or reverse-engineering insight. Stored as F-{nnn}.md with strict validation rules.
Required fields:
title,severity,category,statusevidence_ids– Links to supporting Evidence (array, minimum one)location– Where the issue existsimpact– Business/technical consequencesconfidence– high/medium/lowrepro_steps– Numbered reproduction procedureremediation– Fix guidanceoptional_attack– MITRE ATT&CK technique tags
Critical validation rule: when status=validated, confidence must not be low unless residual risk is explicitly noted. This prevents weakly-supported conclusions from appearing as validated findings.
Example Finding referencing Evidence:
### F-001
- title: "Unauthenticated HTTP service exposure"
- severity: high
- category: misconfig
- status: validated
- evidence_ids: [E-001]
- location: 10.10.10.5:80
- impact: Allows attackers to enumerate web resources
- confidence: high
- repro_steps:
1. Run the nmap command from E-001
2. Browse to http://10.10.10.5
- remediation: Restrict access to the HTTP service via firewall rules
- optional_attack: T1046
Path: Attack and Analysis Flows
Path weaves Evidence and Finding items into coherent narratives—attack chains, call flows, or solution sequences. Defined in P-{nnn}.md with three supported path_type values: attack, callflow, or solve.
Required fields:
title,path_type,start,goalsteps– Array of actions with optional Evidence/Finding citationsresidual_risks– Optional remaining concerns
Step syntax enables bidirectional traceability:
### P-001
- title: "Web Exposure Attack Path"
- path_type: attack
- start: External Network
- goal: Gain foothold on target host
- steps:
1. action: "Port scan" — evidence: E-001 — finding: F-001 | none
2. action: "Exploit unauthenticated HTTP endpoint" — evidence: none — finding: none | none
Mandatory linking rule: if the final step claims privilege acquisition or data exfiltration, the corresponding Finding must be backed by validated Evidence.
Report Generation Integration
The docs-generator automatically folds all three artefacts into the final security report. The template at skills/docs-generator/references/security-report-templates.md enforces mandatory sections:
| Section | Requirement |
|---|---|
| 0.1 Scope | Engagement boundaries |
| 0.2 Evidence | All E-* files linked |
| 0.3 Findings | All F-* entries with status |
| 0.4 Path | At least one P-* entry |
| 0.5 Timeline | Work item integration |
This guarantees every published deliverable contains a reproducible evidence chain. Generated reports include cross-references like:
## 0.2 Evidence
- **E-001** – Initial nmap scan of target (see `work/target1/evidence/E-001.md`)
## 0.3 Findings
- **F-001** – Unauthenticated HTTP service exposure (validated)
## 0.4 Path
- **P-001** – Web Exposure Attack Path (see `work/target1/path/P-001.md`)
Supporting Governance Contracts
The methodology relies on additional contracts for accountability:
skills/ops/role-map.mdandskills/ops/IDENTITY.md– Define who may create or modify Evidence/Finding/Path entriesskills/ops/timeline-workitem.md– Links Evidence to work items vialinked_workitemfield for full traceabilityskills/ops/evidence-finding-path.md– Master contract defining all schema and validation rules
These contracts collectively enforce a transparent, reproducible, and auditable security investigation pipeline usable across reverse engineering, penetration testing, and CTF documentation.
Summary
- Evidence→Finding→Path is a mandatory, contract-enforced methodology in reverse-skill, not an optional convention
- Evidence files (
E-*.md) are immutable observations with cryptographic hashes and reproduction commands - Findings (
F-*.md) require at least one Evidence reference and enforce confidence rules for validated status - Paths (
P-*.md) string together steps with optional Evidence/Finding citations, supporting attack, callflow, and solve narratives - The docs-generator report template mandates all three artefact types, ensuring reproducible security reporting
Frequently Asked Questions
What happens if a Finding references no Evidence?
The contract in skills/ops/evidence-finding-path.md explicitly prohibits this. The evidence_ids field must contain at least one entry, and validation scripts will reject non-compliant Findings.
How does reverse-skill prevent Evidence tampering after creation?
Each Evidence file includes a content_hash field and an observed_at timestamp. While the methodology assumes trusted storage, these fields enable integrity verification. The supersedes field allows creating new Evidence that obsoletes prior entries without deletion.
Can Paths reference other Paths?
The current contract in evidence-finding-path.md does not define Path-to-Path references. Paths reference Evidence and Finding entries directly via their step syntax, creating a two-level linkage rather than recursive nesting.
Who is authorized to create Evidence and Findings?
The skills/ops/role-map.md and skills/ops/IDENTITY.md contracts define role-based permissions. Typically, Evidence creation is open to all operators, while Finding validation requires elevated privileges, and Path finalization may need lead investigator sign-off.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →