How DevSecOps produces security_requirement contributions — specific actionable controls, not generic advice. Threat assessment, auth, input validation, deps, secrets.
Security at EVERY phase, not just review. DevSecOps provides security requirements BEFORE implementation — the engineer sees them as constraints during work stage. Not a final checkpoint. A layer that runs alongside.
The brain creates a security_requirement contribution task when:
Call sec_contribution(task_id) — your group call that gathers:
For EACH aspect of the task, ask:
This is the critical distinction. Generic advice is useless. Specific, actionable controls are requirements.
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab"| Phase | Security Depth |
|---|---|
| poc | No secrets in code. Basic input validation. That's it. |
| mvp | Auth implemented. Input validated at boundaries. Deps pinned. Secrets in env. |
| staging | Dep audit done. Pen-test mindset applied. Auth hardened. Network boundaries defined. |
| production | Certified. Compliance verified. All findings resolved. Monitoring for security events. |
A POC does NOT need a full threat model. A production feature does NOT get away with "we'll add auth later."
fleet_contribute(
task_id=TARGET_TASK_ID,
contribution_type="security_requirement",
content=YOUR_SPECIFIC_REQUIREMENTS
)
When the task enters review, call sec_pr_security_review(task_id).
Check the PR against your requirements:
Critical finding → fleet_alert(category="security", severity="critical")
→ sets security_hold on the task → blocks approval chain.
When you call fleet_alert with category="security", the tool automatically
sets security_hold: "true" on the task. This blocks the approval chain —
fleet-ops cannot approve until you clear the hold.
Clear it by posting a follow-up comment confirming the issue is resolved, and updating the custom field.