What is SecHelix
SecHelix is an evidence-first application-security Agent Skill: it treats every scanner alert and model suspicion as a hypothesis until an evidence chain survives independent verification.
A finding is a claim until it survives verification
SecHelix is an open-source Agent Skill and orchestration methodology for repositories and environments you are authorized to test. It coordinates code-reading agents, security tools, browser and runtime evidence, and an independent verifier under one shared standard.
Those three lines are why the workflow has a verification phase at all. A trusted finding has to establish attacker control, reachability, a failed security boundary, a bounded safe reproduction, concrete impact, a root cause, a fix, and regression proof. Anything short of that is reported as what it actually is.
The pipeline
- ScopeRecord the target, execution mode, authorization, exclusions, and stop conditions before hunting.
- MapBuild entrypoints, identities, assets, trust boundaries, and state machines from evidence.
- SelectLabel every catalog hypothesis applicable, not applicable, unknown, or blocked.
- HuntSpecialist lanes produce candidates. Scanner labels never become verdicts on their own.
- VerifyAn independent verifier receives the claim and tries to refute it.
- FixRepair the canonical invariant rather than each symptom.
- RegressAdd a test that fails against the vulnerable control and passes after the fix.
- RetestRe-run the original claim against the built application, not the source text.
- Report and gateEmit the canonical report and a fail-closed release decision.
Four honest outcomes
Applicability, verification, and release each have their own closed vocabulary. Nothing in the workflow can quietly convert uncertainty into success.
| Layer | Vocabulary |
|---|---|
| Applicability | APPLICABLE · NOT_APPLICABLE · UNKNOWN · BLOCKED |
| Verification | VERIFIED · LIKELY_BUT_UNPROVEN · FALSE_POSITIVE · DUPLICATE_ROOT_CAUSE · BLOCKED_BY_ENVIRONMENT |
| Release | PASS · PASS_WITH_KNOWN_RISK · BLOCKED · INCOMPLETE |
Missing evidence is never treated as absence. An unconfirmed or partly unauthorized scope blocks execution; it does not make checks inapplicable.
What is different
- Verification is first-class
- Important candidates go to a verifier whose job is to disprove them. Compensating controls, unreachable states, missing attacker control, or impossible prerequisites are all valid reasons to reject a candidate.
- Business logic is first-class
- Security bugs live between individually valid actions: refund plus late provider success, delivery plus cancellation, cost edit plus finalized payout, two admins plus one assignment. Exact-once behaviour, state machines, and accounting truth are treated as security surfaces.
- Runtime proof can outrank static confidence
- A typecheck can be green while the browser flow is broken. Unit tests can be green while a database constraint or an authorization boundary behaves differently. Proof is required at the layer where the invariant lives.
- AI-built code gets normal scrutiny
- Built with AI is not itself a vulnerability class. The implementation is checked for missing server-side authorization, client-controlled identity and price fields, dynamic queries, unsafe HTML, SSRF, weak upload validation, permissive CORS, home-grown auth logic, missing replay controls, and overprivileged agent tools.
What it is not
- Not a scanner wrapper. Adapters normalize tool output into candidate evidence; they never assign a verdict.
- Not a hosted service. The framework is a portable skill plus contracts, and it runs inside your coding agent.
- Not a licence to test third-party systems. Authorization is an explicit prerequisite recorded in the scope.
- Not a benchmarked accuracy claim for the workflow. One blind label-only run is published; applicability, verification, regression-proof and release-gate performance remain NOT_MEASURED.
The framework is Apache-2.0. The methodology lives in SKILL.md, and every structural claim on this site is traceable to a file in that repository.