Security Policy

Reporting contact, supported versions, threat model summary, and capability boundaries for aidokit. The canonical, long-form threat model lives at .docs/docs/specs/security-model.md; this file is the short, repo-root surface required by GitHub and by standard supply-chain hygiene.


1. Reporting a vulnerability

Email george@aicenter.ae with the details below. Do not open a public GitHub issue, discussion, or pull request that describes an unpatched vulnerability.

A useful report includes:

Please do not:

1.1 Disclosure window

We aim for coordinated disclosure within 90 days of an acknowledged report. The per-severity targets in .docs/docs/specs/security-model.md §15 are tighter for High-severity issues; the 90-day window is the outer bound across all severities and the public commitment.

Expected response cadence:

Reporters are credited in the resulting advisory unless they request anonymity.


2. Supported versions

aidokit is pre-1.0 and pre-alpha at the time of writing. The policy below takes effect once published versions exist.

2.1 Pre-1.0 (current)

Only the latest minor receives security fixes. Older minors will not be back-patched. Users on an older minor should upgrade to receive fixes.

2.2 Post-1.0

Once aidokit reaches v1.0:

Line Status (pre-1.0) Status (post-1.0)
Current major, latest two minors Latest minor only Supported
Previous major, last minor n/a Supported for 6 months post-GA
Anything older Unsupported Unsupported

3. Threat model summary

aidokit is a deterministic scaffolder. It writes files into a project directory and, when invoked by the user, prints shell commands the user's AI coding CLI or package manager will run. It does not:

3.1 Trust boundaries

Boundary Trust profile
The user's machine Trusted. aidokit runs as the user; we make no claims against an attacker who already has shell.
The project directory (--cwd) Trusted for read; scoped for write — see §4.
$AIDO_HOME (default ~/.aido) Limited. Only this path under $HOME is touched.
First-party @aidokit/* packages Trusted, verifiable. npm provenance from v1.0.
Third-party adapters / stack packs Untrusted by default. Trust signals come from conformance CI and signed provenance.
MCP servers Untrusted, gated by the securitySensitive flag in the catalog.
The npm registry Relied upon. Compromise of npm itself is out of scope.

Anything aidokit emits to disk inherits the user's own filesystem permissions. Adapter and stack-pack packages run with full Node.js privileges at install and emit time — the same as any other dependency in the user's project. There is no sandbox.

For the full threat enumeration (T01–T17) and per-threat mitigations, see .docs/docs/specs/security-model.md §6–§7.


4. Capability boundaries

These are the boundaries aidokit enforces today, and the ones it will enforce at v1.0.

4.1 Filesystem

4.2 Shell execution

4.3 Network

4.4 Prerequisites

4.5 Confirmation bypass

--yes skips routine prompts but must not bypass:

See .docs/docs/specs/security-model.md §7.7.


5. Capability declarations (v1.0)

v1.0 requires every adapter manifest to declare, ahead of time, via the capabilities field (see CapabilitiesSchema in packages/core/src/schema.ts):

The conformance harness verifies presence and shape via AD-MIN-13 (see packages/core/src/conformance/adapter-checks.ts). A missing or malformed capabilities field is a Minimum-level conformance failure that blocks publication.

The legacy capabilityDeclarations field remains in the manifest schema for v0.5 compatibility; both fields are present in first-party adapters and report the same surface from different angles.

First-party adapters covered by these declarations:


6. Dependency hygiene


7. Supply chain


8. Hardening checklist for adapter authors

If you are building a third-party adapter, the short version is:

The long version, with rationale and per-mistake guidance, is at .docs/docs/specs/security-model.md §11.


9. See also