Skip to content

Local Security and Privacy Baseline — v1

Status: active Version: 1.0.0 Effective: 2026-05-04 Owners: security + compliance

This baseline applies to every local project that runs in this workspace. Each project must declare conformance and pass attestation periodically. Versioning follows SPB-15.

Purpose

Provide a single, versioned, auditable answer to "is this project safe to operate from this workspace?". The baseline is compact (15 controls), high-leverage, and changes only through the controlled SPB-15 process.

Scope

  • All local projects executed via Cursor agents on this workspace's laptop.
  • All Cursor skills, subagents, plugins, and MCP servers active in any of those projects.
  • All credentials and tokens used by any of those agents.

How to attest

Each project keeps a small security-attestation.md with:

  • baseline version it conforms to (e.g., v1),
  • date of last attestation,
  • per-control evaluation (pass / partial / fail / n/a),
  • evidence pointers,
  • approver.

The security-checklist skill produces the per-control evaluation portion automatically.

Audit cadence

  • Every project: at least quarterly attestation, or any time the baseline version changes.
  • Every credential lifecycle event: per credential-lifecycle-policy.yaml.
  • Every privileged orchestration action: per audit-log-spec.md.

Control catalog (v1)

SPB-01 — Data classification required

Every project must classify the data it handles (private_sensitive, internal, low_sensitive) and map controls by class. The classification is recorded in the project README, in any AnyType Project object, and respected by all routing/runtime decisions.

SPB-02 — Agent credential isolation

Agent-readable credentials must be unique per agent or task scope. Shared user credentials are prohibited in agent runtimes. Each agent integration carries a labeled, agent-scoped credential.

SPB-03 — User-only secret store

User-level credentials must be stored in a location that is inaccessible to agents. The store is excluded from all agent runtime mounts and prompt context. The agent does not know the store's path; the user provisions agent-scoped derivatives manually.

SPB-04 — Least-privilege credential scopes

Every credential documents its minimum allowed actions and resources, with deny-by-default boundaries. Scopes are reviewed at provisioning and at every rotation.

SPB-05 — Time-bounded credentials and token TTL

Long-lived credentials are discouraged. Token lifetimes are bounded and documented. Default agent-scoped credential TTL is ≤ 90 days; JIT tokens default to ≤ 1 hour.

SPB-06 — JIT access for privileged operations

Privileged operations (release tagging, credential rotation, governance changes) require JIT grants with explicit human approval and automatic expiry.

SPB-07 — Credential provisioning workflow

New agent credentials require: written request, approval by security owner, scope review, attested deployment record, and an entry in the audit log.

SPB-08 — Rotation and revocation policy

Credentials rotate on schedule (default 90 days) and on incident triggers. Revocation paths are tested at least annually. Rotation failures escalate to the security owner.

SPB-09 — Secret handling controls

No plaintext secrets in any of: repos, prompts, chat history, logs, screenshots, generated artifacts, exported data. Redaction standards are enforced by the security-checklist skill and Bugbot R2.

SPB-10 — Runtime boundary enforcement

Local / home-lab / cloud execution must follow the runtime policy and the data-class-to-runtime mapping. Mismatches deny by default and emit an audit event.

SPB-11 — Network egress restrictions

Agent and sandbox environments default to minimal outbound access. New endpoints require an explicit allowlist entry plus rationale. Sandboxes default to no outbound access.

SPB-12 — Immutable audit trails

All privileged actions and credential lifecycle events are logged with actor identity, scope, timestamp, and outcome, conforming to audit/audit-log-spec.md. Logs are append-only and tamper-evident.

SPB-13 — Security baseline attestation

Each project declares its baseline version and passes periodic attestation with evidence artifacts. Failed attestation pauses promotion and triggers remediation.

SPB-14 — Incident response readiness

Each project defines a secret-compromise playbook covering detect → contain → rotate → recover → postmortem. The playbook is tested at least annually in a tabletop drill.

SPB-15 — Policy change control

Baseline version updates require: documented impact analysis, migration guidance, re-attestation criteria for affected projects, and approval by security + compliance co-owners. Old versions remain documented for backward reference.


Project compliance attestation format

# security-attestation.md

- baseline_version: v1
- last_attested: <yyyy-mm-dd>
- approver: <owner>

## Evaluations

| Control | Result | Evidence |
| ------- | ------ | -------- |
| SPB-01  | pass   | data_classification recorded in README |
| SPB-02  | pass   | agent-scoped key in env-var only |
| SPB-03  | pass   | user secret store path not in any allowlisted mount |
| SPB-04  | pass   | scopes documented in credential-lifecycle-policy entry |
| SPB-05  | pass   | TTL 90d configured |
| SPB-06  | n/a    | no privileged operations in scope |
| SPB-07  | pass   | provisioning runbook followed |
| SPB-08  | pass   | last rotation <date>; next due <date> |
| SPB-09  | pass   | bugbot R2 + security-checklist clean |
| SPB-10  | pass   | runtime policy applied |
| SPB-11  | pass   | egress allowlist matches deps |
| SPB-12  | pass   | audit log present and conforming |
| SPB-13  | pass   | this attestation |
| SPB-14  | partial| playbook present, tabletop pending |
| SPB-15  | n/a    | no baseline change applied |

## Open items
- SPB-14 tabletop drill scheduled for <date>.

Versioning

  • Patch (v1.0.x): clarifications, no behavior change.
  • Minor (v1.x.0): new advisory controls, or stricter evidence.
  • Major (v2): breaking changes; requires SPB-15 process.