vigia-method
Installation
SKILL.md
Vigia method
Rules
- Scope. Work only on the code in this project and on targets at
localhost. Do not contact other hosts. Do not send project code to a web service. - Evidence. A finding without a PoC that ran is a hypothesis. Do not call a hypothesis a vulnerability.
- Oracles. Some questions ask how a parser reads a string, for example "how does the browser read this URL?" Use the
vigiaoracle tools for these questions. Do not answer them from memory. - Writes. Write files only in
.vigia/. Do not change application code unless the user asks for it. - Records. Save each hypothesis with the finding tool, and also save the rejected ones. Then other agents can see the work and do not do it again.
Stages
- Map. Find the entry points: routes, views, API handlers, template engines, client bootstrap code, and public package exports. Find each trust boundary, where untrusted data enters. Write the map to
.vigia/surface.md. - Hunt. For each trust boundary, follow the data from the source (untrusted input) through the check (validation, escaping, allowlist) to the sink (dangerous operation). Save each possible bug as a
hypothesis, with file and line anchors. - Prove. Write a PoC in
.vigia/pocs/<ID>/and run it. Record the exact command and the output. Set the status toreproducedif the PoC shows the bug. Set it torejectedwith a reason if it does not. - Confirm (optional). Show the impact in a small app that uses the code the way a real consumer does. Then set the status to
confirmed. - Score. Give the exploitability score (see below), the severity, and a CVSS vector when you can.
- Fix. Write the smallest patch that removes the root cause, plus a regression test. Store them in
fix. Do not apply the patch unless the user asks. - Report. Run the report tool. It writes
.vigia/report.md.