All Guides
CSO / CISO · Operational Guide

CSO Playbook

Architectural security conformance, audit evidence, and governing AI-generated security-relevant code.

Setting up your Security Pillar

Before the rest of this guide applies, a Security Pillar must exist with active Lenses. If this is not yet configured, start here.

1.
Navigate to /steerings/pillars — check whether a Security Pillar already exists. If not, create one and assign yourself or a security architect as owner.
2.
Navigate to /steerings/lenses — check how many Lenses are linked to the Security Pillar. This is your LPP (Lenses per Pillar) value for the Security Pillar.
3.
A Security Pillar with fewer than 3 Lenses has shallow coverage. Each Lens must be authored via a Change Intention and approved before it activates.

Starter Lens examples

A Lens has a name (the design rule) and a prompt (the invariant check evaluated on each PR). The prompt is a binary enforcement question — not a policy statement.

LensService Authentication Posture
Prompt

Does any service in this PR call the authentication service directly without routing through the API gateway?

LensExternal Integration Classification
Prompt

Does this PR introduce a new external integration without a data classification declared in the Architecture Ledger?

LensExternal Service Data Access
Prompt

Does any external-facing service introduced or modified in this PR access the database directly?


Weekly security conformance check

Run this review each week. It should take under 15 minutes if the Security Pillar is configured correctly.

Security Pillar PCR

Navigate to /changecontrols/designaudits, filter by Lenses under the Security Pillar, and compute the pass rate. This is your weekly architectural security conformance number.

BLOCKED PRs under Security Pillar Lenses

In the same view, filter to BLOCKED status. These are the architectural security violations that were caught before merge. Review each: was it resolved by a named approver? Was a justification recorded? Any BLOCKED PR merged without a decision record is a gap.

UDR for Security-domain entities

Ungoverned Drift Rate for entities under the Security Pillar — structural changes to security-critical systems without an approved Change Intention. These are the changes a future audit cannot explain.

ADRIFT — Security domain

Agent-authored PRs that violated Security Pillar Lenses. This is your weekly AI security risk signal. A non-zero ADRIFT for the Security domain means AI coding agents are generating structural changes that contradict your security architectural intent.


Audit preparation — what rkito produces

For SOC 2, ISO 27001, or regulatory audits, the following records are produced automatically by the CDA pipeline — no separate evidence-collection exercise required.

Per-PR Security Lens evaluation record

Which security Lenses evaluated each PR, pass/fail results, and specific findings. Present for every PR that touched code under a Security Pillar Lens.

CHI approval records for security-relevant structural changes

Who approved, when, what was in scope, and what was reviewed. Named approver with timestamp.

BLOCKED PR history

Evidence that security violations were caught and handled, not silently merged. The record shows the violation, the Lens it violated, the decision, and the outcome.

How to export for an audit period
1.Navigate to /changecontrols/designaudits
2.Filter by Security Pillar Lenses
3.Set the date range to the audit period
4.Export
What this answers for an auditor

“How did you ensure that code changes complied with your security architecture?” — The CDA pipeline answer: automatically, on every PR, with these specific Lens criteria, producing these specific results.


AI agents and security architecture

The specific risk ADRIFT measures for the security domain.

AI coding agents generate security-relevant structural changes — new service integrations, new data access patterns, new API endpoints — without any awareness of the organisation’s security architectural intent. The ADR that prohibits direct database calls from external-facing services exists. The agent has no access to it.

ADRIFT broken down by the Security Pillar shows specifically how much of the agent-generated code violated security design rules. This is the number that justifies security-specific agent governance investment.

The remediation

rkito MCP integration loads Security Pillar Lenses into the agent’s context before code generation. The agent knows what is prohibited before it writes. Agents operating with Security Pillar Lens context approach zero ADRIFT for the security domain.

Verifying MCP coverage

Navigate to Agent Shepherd to see which agent sessions queried Security Pillar Lens context. The relevant metric is MCPCAR (MCP Context Access Rate) filtered to the Security domain. A low MCPCAR for Security means agents are generating security-relevant code without loading constraints first.


Calibrating Security Lenses over time

Security Pillar Lenses need maintenance as the threat landscape and architecture evolve. This is not a one-time configuration.

Quarterly

Review each Security Lens at /steerings/lenses — is the prompt still describing a real architectural security boundary? Outdated Lenses generate noise and erode trust in the pipeline.

When a new threat pattern is identified

Author a new Lens via /steerings/lenses. Submit via Change Intention for approval before it activates. This creates an approval record for the security control itself — useful in audits.

When a Lens generates false positives

If LPP for the Security Pillar is healthy but false-positive rate (AFPR) is rising, update the Lens prompt via CHI to be more precise. Imprecise Lenses get bypassed by teams — they are worse than having no Lens.

Coverage growth signal

Track LPP for the Security Pillar over time. A rising LPP means the Security Pillar is accumulating more machine-enforced coverage. A flat LPP means the security architecture is not being translated into enforceable constraints.


Your role in Steering

Security governance in rkito lives in the Steering layer. You own the Security Pillar and the artefacts that define what secure architecture looks like for this organisation.

/steerings/pillars → Security Pillar
Create and own the Security Pillar. This is the domain container for all security Lenses, Policies, and Compliances. Assign yourself or a security architect as owner. Without a Security Pillar, no CDA evaluation applies to security-relevant PRs.
/steerings/policies
Author security Policies — the human-readable statements of what is and is not permitted architecturally. Policies are the source material that Lenses are derived from. A Policy that has no corresponding Lens is unenforced.
/steerings/compliances
Map compliance requirements (SOC 2, ISO 27001, PCI DSS, HIPAA) to architectural constraints here. Each compliance entry links to the Lenses and Policies that enforce it. This is the evidence chain for auditors.
/steerings/lenses + /steerings/prompts
Lenses are the named enforcement rules (e.g. “Service Authentication Posture”). Prompts are the binary invariant checks that evaluate each PR (“Does any service in this PR call the auth service directly without API gateway routing?”). Author Lenses and their prompts together — a Lens with no prompt is not evaluated.
/steerings/checklists
Security-specific pre-PR checklists for developers working in security-sensitive areas. Checklists are advisory rather than blocking — use them for nuanced checks that cannot be expressed as a binary Lens prompt.

The governance chain: Compliance → Policy → Lens + Prompt → CDA evaluation → audit record. Every link in that chain lives in Steering. A gap at any link means the compliance requirement is declared but unenforced.

Put your Security Pillar on the CDA pipeline.

Every PR evaluated against your security Lenses. Every violation recorded. Every approval timestamped. Audit evidence as a byproduct.