Embed security into agile sprint rhythm — threat modeling, compliance evidence, and security backlog items
Scanned 9/5/2026
Install to Claude Code
npx -y skills add tractorjuice/arckit-codex --skill arckit-agile-security --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Arckit Agile Security?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/tractorjuice-arckit-agile-security)More formats (shields.io, HTML) on the badges page.
---
name: arckit-agile-security
description: "Embed security into agile sprint rhythm — threat modeling, compliance evidence, and security backlog items"
---
You are helping an enterprise architect create an **Agile Security** document using Open Agile Architecture (O-AA, C208) — Axiom 16 Secure by Design, C208 Ch. 4.6, and the O-AA Security Playbook (G216). This approach embeds security into the product sprint rhythm rather than treating it as a separate gate or phase — security becomes a backlog item, not an afterthought.
## User Input
```text
$ARGUMENTS
```
## Trigger Guidance
Use this command when **any** of the following conditions are met:
- Client wants **security embedded in sprint rhythm** rather than separate security phases
- Product requires **continuous compliance evidence** generated alongside development artifacts
- **Threat modeling** needs to be a backlog item, not a one-time activity
- Client operates in regulated environments (APRA, GDPR, APP, AI Act) with **sprint-aligned compliance**
- Product involves AI/ML systems requiring **algorithmic transparency and bias assessment** per sprint
**Do NOT use** when:
- Client requires traditional security audit with separate audit phases — use full TOGAF ADM with dedicated security phase
- Multi-year security programme with 50+ review gates outside sprint cadence
- Client needs standalone penetration testing or security assessment (use dedicated security tools instead)
## Prerequisites: Read Foundational Artifacts
> **Note**: Before generating, scan `projects/` for existing project directories. For each project, list all `ARC-*.md` artifacts, check `external/` for reference documents, and check `000-global/` for cross-project policies. If no external docs exist but they would improve output, ask the user.
**RECOMMENDED** (read if available, note if missing):
- **PRIN** (Architecture Principles, in 000-global) — Extract: Security principles, compliance requirements, data classification standards
- If missing: warn user to run `$arckit-principles` first
- **OAPR** (Agile Product Architecture) — Extract: Product mission, guardrails, technology constraints
- If missing: note that product architecture context is limited
- **OAAL** (O-AA ADM Lite) — Extract: Sprint plan, governance cadence, compliance mapping
- If missing: note that O-AA Lite context is not available
- **OASTR** (Agile Strategy Canvas) — Extract: Risk profile, transformation risks, security strategy
- If missing: note that strategy context is limited
### Prerequisites 1b: Read external documents and policies
- Read any **external documents** listed in the project context (`external/` files) — extract security policies, compliance requirements, threat models, regulatory obligations
- Read any **enterprise standards** in `projects/000-global/external/` — extract security standards, data classification policies, incident response procedures
## Instructions
### 1. Identify or Create Project
Identify the target project from the hook context. If the user specifies a project that doesn't exist yet, create a new project:
1. Use Glob to list `projects/*/` directories and find the highest `NNN-*` number (or start at `001` if none exist)
2. Calculate the next number (zero-padded to 3 digits, e.g., `002`)
3. Slugify the project name (lowercase, replace non-alphanumeric with hyphens, trim)
4. Use the Write tool to create `projects/{NNN}-{slug}/README.md` with the project name, ID, and date
5. Also create `projects/{NNN}-{slug}/external/README.md` with a note to place external reference documents here
6. Set `PROJECT_ID` = the 3-digit number, `PROJECT_PATH` = the new directory path
### 2. Read Template
**Read the template** (with user override support):
- **First**, check if `.arckit/templates-custom/agile-security-template.md` exists in the project root
- **If found**: Read the user's customized template (user override takes precedence)
- **If not found**: Read `.arckit/templates/agile-security-template.md` (default)
- **Then**, read `.arckit/templates/_partials/RENDERING.md` and resolve the template's `<!-- DOC-CONTROL-HEADER -->` marker to the Document Control partial it selects, applying the `${organisation_name}` and `${default_classification}` substitutions. Remove the marker and its comment from the output — a rendered artefact must never contain either.
- **Also** apply the O-AA placeholder substitutions in `.arckit/references/placeholder-substitutions.md` (`${project_issue_prefix}`, `${safety_checklist_id}`, `${references_dir}`) wherever they appear in the template.
> **Tip**: Users can customise templates with `$arckit-customize agile-security`
### 3. O-AA Agile Security Framework
O-AA agile security practice (C208 Axiom 16, Ch. 4.6, G216) establishes that:
- **Security as backlog items**: Security work enters the product backlog as epics/features/stories — not a separate security workstream
- **Sprint-aligned compliance**: Compliance evidence is generated continuously alongside development artifacts, not accumulated for end-of-phase audits
- **Threat modeling per sprint**: Each sprint cycle includes threat model updates as a backlog item, not a one-time activity at project start
- **O-AA Axiom 16 (Secure by Design)**: security controls are designed into the product from Sprint 0, proportional to product risk — not bolted on at a compliance checkpoint
- **Shared security ownership**: Security is the team's responsibility, not a dedicated security team's gate
### 4. Shared Artefact Definitions
The agile security command defines artefacts whose structure is inlined in `agile-security-template.md`:
- **`security-backlog.yaml`** — security epics, stories, and sprint capacity allocation
- **`threat-model.yaml`** — per-sprint threat model (STRIDE or equivalent)
- **`compliance-evidence.yaml`** — sprint compliance evidence, always current
- **`vision.yaml`** — architecture vision security constraints (inherited from `$arckit-oaa-adm-lite`)
### 5. Generate Agile Security Document
Create the Agile Security document following the template structure.
#### Document Control
- Generate Document ID with `node scripts/generate-document-id.mjs {P} OASEC --filename` (canonical form: `ARC-{P}-OASEC-v1.0`)
- Set owner, dates, status, classification
- Review cycle: Per sprint cycle
#### Security Backlog Integration
- **Security epic categories**: Data protection, authentication/authorization, encryption, monitoring/observability, incident response, compliance reporting
- **Sprint capacity**: Target 20-30% of sprint capacity for security items (adjust based on risk profile)
- **Security story format**: "As a [role], I want [security control] so that [threat mitigated]"
- **Acceptance criteria**: Each security story includes testable security acceptance criteria
#### Threat Modeling per Sprint
- **Sprint 0 threat model**: Initial threat model covering product architecture (STRIDE or equivalent)
- **Sprint N threat updates**: Each sprint updates threat model based on new features, identified vulnerabilities, and environment changes
- **Threat model as backlog item**: "Update threat model for Sprint N features" enters backlog each sprint
- **Automated threat detection**: Integration with SAST/DAST tools feeding threat model updates
#### Compliance Evidence per Sprint
- **Evidence generation**: Compliance evidence artifacts generated alongside feature development
- **Regulatory mapping**: Map sprint deliverables to regulatory requirements (GDPR, APRA, APP, AI Act)
- **Continuous evidence**: Evidence is never accumulated for audits — it's always current
- **Evidence structure**: Standardized evidence format per sprint, inlined in `agile-security-template.md`
#### Security Architecture Guardrails
- **Non-negotiable constraints**: Data encryption at rest/in transit, authentication requirements, logging standards
- **Technology standards**: Approved security building blocks and libraries
- **Anti-patterns**: Forbidden security approaches (e.g., rolling your own crypto, hardcoded credentials)
- **Security review gates**: Lightweight sprint-level security reviews, not heavy-gate audits
#### AI/ML Security Considerations
- **Algorithmic transparency**: ATRS compliance per sprint for AI/ML features
- **Bias and fairness**: Automated bias testing in sprint CI/CD pipeline
- **Model security**: Model poisoning, data leakage, and adversarial attack mitigations
- **Privacy preservation**: Differential privacy, federated learning where applicable
### 6. External References
Populate the `## External References` section per `.arckit/references/citation-instructions.md`. Every claim taken from an `external/` document, a `projects/000-global/external/` policy, or a web source MUST carry an inline `[DOC_ID-CN]` citation marker resolving to a Document Register row. The Open Group *Open Agile Architecture* standard (C208) MUST appear in the Document Register with its primary URL and the verification date.
### 7. Quality Gate
Before writing the file, read `.arckit/references/quality-checklist.md` and verify all **Common Checks** plus the **OASEC** per-type checks pass. Fix any failures before proceeding.
### 8. Write the Document
**IMPORTANT**: The Agile Security document will be a substantial document (typically 180-300 lines). You MUST use the Write tool to create the file, NOT output the full content in chat.
Create the file at:
```text
projects/{P}/ARC-{P}-OASEC-v1.0.md
```
### 9. Show Summary to User
After writing the file, show a concise summary (NOT the full document):
```markdown
## Agile Security Document Created
**Document**: `projects/{P}/ARC-{P}-OASEC-v1.0.md`
**Document ID**: ARC-{P}-OASEC-v1.0
### Security Backlog Profile
- **Security epic categories**: [N] categories defined
- **Sprint capacity target**: [X]% of sprint capacity
- **Regulatory mappings**: [N] frameworks mapped (GDPR, APRA, etc.)
### Threat Modeling
- **Initial threat model**: [N] threat categories, [N] identified threats
- **Per-sprint updates**: Threat model backlog item defined
- **Automated detection**: [Tools/integrations configured]
### Compliance Evidence
- **Evidence per sprint**: [N] evidence categories
- **Regulatory coverage**: [Frameworks covered]
- **Continuous audit trail**: [Evidence generation approach]
### Sprint Artifacts
- ✅ security-backlog.yaml
- ✅ threat-model.yaml
- ✅ compliance-evidence.yaml
### Synthesised From
- [✅/⚠️] Architecture Principles: ARC-000-PRIN-v[N].md
- [✅/⚠️] Product Architecture: ARC-{P}-OAPR-v[N].md
- [✅/⚠️] O-AA ADM Lite: ARC-{P}-OAAL-v[N].md
- [✅/⚠️] Agile Strategy: ARC-{P}-OASTR-v[N].md
### Next Steps
1. Create security epics for Sprint 0
2. Run initial threat model: STRIDE analysis for product architecture
3. Establish governance cadence: `$arckit-agile-governance`
4. Configure CI/CD security pipeline integration
**File location**: `projects/{P}/ARC-{P}-OASEC-v1.0.md`
```
## Important Notes
1. **Security as Backlog Items**: Security is not a phase or gate in O-AA. It's backlog items that compete with feature work for sprint capacity. The team decides security priority alongside feature priority.
2. **Sprint-Aligned Compliance**: Compliance evidence is generated continuously. You never "catch up" before an audit — evidence is always current because it's produced alongside every sprint deliverable.
3. **Threat Modeling is Living**: The threat model updates each sprint. It's not a document you write once at project start. New features create new attack surfaces.
4. **Sprint Artefacts**: The `security-backlog.yaml`, `threat-model.yaml`, and `compliance-evidence.yaml` structures are defined inline in `agile-security-template.md`. Validate artefacts against those structures; they stay consistent with the traditional TOGAF commands without sharing schema files.
5. **Use Write Tool**: The Agile Security document is typically 180-300 lines. ALWAYS use the Write tool to create it.
6. **Version Management**: If an Agile Security document already exists (`ARC-*-OASEC-v*.md`), create a new version (v2.0) rather than overwriting.
7. **Markdown escaping**: When writing less-than or greater-than comparisons, always include a space after `<` or `>` (e.g., `< 3 seconds`, `> 99.9% uptime`) to prevent markdown renderers from interpreting them as HTML tags or emoji.
## Suggested Next Steps
After completing this command, consider running:
- `$arckit-agile-governance` -- Establish governance cadence including security review gates
- `$arckit-agile-strategy` -- Align security strategy with dual transformation tracks
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!