SecScanMonitor is an evidence-first cybersecurity operating system for AI agents.
It turns a contracted inspection into a bounded, traceable, advisory result. The platform inspects code, policy, architecture, authority, and evidence paths; preserves provenance; separates observations from conclusions; and states clearly what is confirmed, uncertain, inconclusive, or not validated.
This is both a cybersecurity firm model and its working platform foundation. It is built for agent-created systems that need security decisions they can audit—not opaque scans, silent mutations, or confident guesses.
SecScanMonitor gives every engagement an explicit operating boundary:
- Contract first: scope, pass type, authority, constraints, and evidence expectations are defined before work begins.
- Inspection by default: agents can inspect permitted targets, but they do not silently mutate them or bypass the authority model.
- Evidence before findings: the canonical chain is
EvidenceObject → Observation → Claim → Adjudication → Finding. - Provenance throughout: findings carry evidence references, rationale, severity, remediation guidance, verification steps, and confidence.
- Honest uncertainty: missing evidence produces an explicit
INCONCLUSIVE,NOT_VALIDATED, or refusal-to-infer state. - Safe public foundation: the public tree contains synthetic fixtures and metadata boundaries—not client material, raw evidence, recovery material, credentials, or private repository history.
| Area | Public foundation |
|---|---|
| Mission | Evidence-grounded cybersecurity review for agent-built systems |
| Operating model | Advisory-first, contract-bound, inspection-only by default |
| Product surface | Local/self-hosted API and a read-only synthetic preview UI |
| Decision path | Evidence → observation → claim → adjudication → finding |
| Current boundary | Local qualification foundation; hosted production is not validated |
| License | Apache License 2.0 |
flowchart LR
accTitle: SecScanMonitor evidence-to-finding path
accDescr: A contracted inspection moves through authority, bounded evidence, and adjudication before it becomes an advisory finding.
contract["Engagement contract"] --> authority["Authority and policy"]
authority --> inspection["Bounded inspection"]
inspection --> evidence["Evidence metadata"]
evidence --> observation["Observation"]
observation --> claim["Claim"]
claim --> adjudication["Adjudication"]
adjudication --> finding["Finding and advisory report"]
Agents do not construct findings directly. Adjudication is the control point that keeps evidence, rationale, severity, confidence, remediation, and verification together. When the chain is incomplete, the platform preserves the limitation instead of inventing a conclusion.
| Path | Role |
|---|---|
analysis/ |
Typed platform core: engagements, authority, capabilities, evidence, observations, claims, adjudication, findings, policy, and reports |
apps/web/ |
Desktop-first, read-only product surface with explicit preview and unavailable states |
contracts/ |
Engagement protocol, brigade contracts, and JSON schemas |
docs/ |
Architecture decisions, security model, evidence handling, development, deployment, and roadmap |
examples/ |
Synthetic inspection engagement and evidence fixtures |
templates/ |
Change, engagement, incident, validation, and reporting templates |
- Typed engagement and authority boundaries.
- Capability manifests with risk, approval, sandbox, network, timeout, and resource constraints.
- Metadata-first evidence handling with content-addressed references and sanitization state.
- Deterministic policy and sandbox boundaries.
- Evidence-backed adjudication and advisory report structure.
- Scientific-integrity lineage surfaces that keep security findings separate from unsupported scientific conclusions.
- A local API and synthetic read-only web preview for exploring the model.
The current public foundation is intentionally narrow. Managed hosted deployment, external identity providers, production Temporal operation, production object storage, and live-model execution remain NOT YET QUALIFIED here.
cd analysis
python -m venv .venv
python -m pip install -e '.[dev]'
python -m pytest -q
python -m mypy src
python -m ruff check src testscd apps/web
npm ci
npm test
npm run typecheck
npm run lint
npm run buildThe web application runs in PREVIEW mode with synthetic, non-personal, non-client data. Local API integration is explicit:
NEXT_PUBLIC_SECSCAN_MODE=LOCAL_INTEGRATED
SECSCAN_API_URL=http://127.0.0.1:8000
Read docs/DEVELOPMENT.md for the complete local loop and docs/DEPLOYMENT.md for the limits of self-hosted operation.
This project treats authority and evidence as security controls. Read SECURITY.md before reporting a vulnerability, then review the security model, agent authority model, and evidence and adjudication model before changing a load-bearing boundary.
The public release is deliberately sanitized and allowlisted. It does not publish client reports, raw evidence, private ledgers, recovery material, live credentials, or private repository history.
The documentation uses these labels precisely:
IMPLEMENTED— represented by code and covered by a public test or repeatable local check.QUALIFIED— exercised by an explicit qualification run with retained evidence.EXPERIMENTAL— available for inspection or local experimentation, not a service guarantee.PLANNED— direction, not an available capability.NOT YET QUALIFIED— the boundary exists, but required integration or evidence is absent.NOT VALIDATED— no evidence was collected for the claim.
SecScanMonitor is released under the Apache License 2.0. See LICENSE and NOTICE.
The foundation is intentionally inspectable and narrow today. The roadmap includes repeatable public dogfood, deeper adapter qualification, hosted identity and storage qualification, operational telemetry, and additional bounded service workflows.
There are many features to come, while the evidence, authority, and no-secrets boundaries remain non-negotiable.