Repository navigation
[bmad-onboard S3] Onboard security-lead persona #1309
Copy link
Copy link
Closed
Labels
dev-leadFor dev-lead agent pickupFor dev-lead agent pickupenhancementFeature requestsFeature requests
Description
Part of Epic #1304. Blocked by #1306 (P1 — vendoring). Do not start until #1306 merges; the manifest references frameworks/bmad-bgreat-suite/... which does not exist until then.
Onboard security-lead as an advisory persona, wrapping the vendored bgr-agent-sam-security agent. Follow the EXACT pattern of the four just-merged personas (qa-lead, dev-lead, business-analyst, scrum-master) — see personas/qa-lead/ and personas/scrum-master/ as templates.
Task
personas/security-lead/persona.yml—status: draft.framework-agentlayer →frameworks/bmad-bgreat-suite/src/agents/bgr-agent-sam-security,framework.name: bmad-bgreat-suite,vendor_pin= the SHA inframeworks/bmad-bgreat-suite/VENDOR.md,skill: bgr-agent-sam-security.address.handle: petry-projects/security-lead. Advisory on mention/issues/discussion (default_mode advisory; opt_out_labelsecurity-lead:hands-off).evals.path: evals/security-lead/(single set — one wrapped agent).canary.agent: security-lead.prompts/security-lead/advisory.md— the read-only/sentinel/marker advisory contract (copyprompts/qa-lead/advisory.md), specialized to security-lead's domain: threat modeling, SOC2/HIPAA/PCI/GDPR compliance, supply-chain security. Read the vendored SKILL.md by path and apply its substance; advisory only; first body line<!-- persona:security-lead -->.personas/security-lead/README.md— what it is, how it's addressed (org team handle, never the bare@security-leadaccount), status draft, and note the overlap relationship: agents/compliance-auditor.md and dependency-audit (advisory, not a replacement).evals/security-lead/{dev,holdout}/cases.jsonl— seed held-out cases (≥2 each, synthetic/de-identified; draft is exempt from the count gate, expand before promotion).
Constraints
- Role, not a person (§1.6): id/name are
security-lead/ the role title, NEVER the upstream person-name. Reference the upstream agent only byframework.skill. - Advisory-only: no write surfaces (§3 advisory-by-default).
fails closed: any script you add must never report success when the thing it claims did not happen (feat: implement issue #737 — [Phase 1] Instrument auto-rebase: agentic-conflict-resolution rate + fan-out CI-run volume report #755) — though this story is manifest/prompt/eval content, not scripts.- Do NOT create the org team (that is the epic's session step T) and do NOT register in canary-rings (draft doesn't need it).
Acceptance criteria
-
validate-personas.pypasses with the new manifest (5→6 personas). -
validate-cases.pypasses over the new seed evals. -
markdownlintclean on the README. - The advisory prompt carries the marker rule and the no-literal-handle rule verbatim from the qa-lead template.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
dev-leadFor dev-lead agent pickupFor dev-lead agent pickupenhancementFeature requestsFeature requests
Activity
github-actions commentedon Jul 18, 2026
Thanks for the well-structured issue and for tying it clearly to the epic and blocker! This looks straightforward to implement once #1306 merges — could you confirm whether
prompts/qa-lead/advisory.mdshould be treated as the canonical template verbatim (with only domain-specific sections swapped), or whether any structural changes to the advisory format are expected before this story is picked up?don-petry commentedon Jul 18, 2026
Dev-Lead Implementation Plan
Issue: #1309 — [bmad-onboard S3] Onboard security-lead persona
Scope
Onboard
security-leadas an advisory-only persona (status: draft) wrapping the vendoredbgr-agent-sam-securityagent, following the exact pattern of qa-lead/scrum-master.Implementation Checklist
personas/security-lead/persona.yml— framework-agent layer →frameworks/bmad-bgreat-suite/src/agents/bgr-agent-sam-security,framework.name: bmad-bgreat-suite,vendor_pin: ae8914e84b87,skill: bgr-agent-sam-security;address.handle: petry-projects/security-lead; advisory on mention/issues/discussion;evals.path: evals/security-lead/;canary.agent: security-leadprompts/security-lead/advisory.md— copy ofprompts/qa-lead/advisory.mdspecialized to threat modeling / SOC2-HIPAA-PCI-GDPR compliance / supply-chain; marker<!-- persona:security-lead -->; marker rule + no-literal-handle rule verbatimpersonas/security-lead/README.md— what it is, addressing (org team handle, never bare@security-lead), status draft, overlap note re: agents/compliance-auditor.md + dependency-audit (advisory, not a replacement)evals/security-lead/{dev,holdout}/cases.jsonl— ≥2 synthetic/de-identified cases eachTests to Write
Test Command
python3 personas/validate-personas.py personas && python3 evals/validate-cases.py evals/security-lead && npx markdownlint-cli2 personas/security-lead/README.md && bash .dev-lead/scripts/dev-lead-lint.shdon-petry commentedon Jul 18, 2026
Dev-Lead: Implementation Complete
Plan Execution
personas/security-lead/persona.yml— status draft; framework-agent layer →frameworks/bmad-bgreat-suite/src/agents/bgr-agent-sam-security;framework.name: bmad-bgreat-suite,vendor_pin: ae8914e84b87(matches VENDOR.md),skill: bgr-agent-sam-security;address.handle: petry-projects/security-lead; advisory on mention/issues/discussion withopt_out_label: security-lead:hands-off;evals.path: evals/security-lead/;canary.agent: security-leadprompts/security-lead/advisory.md— copied from qa-lead template and specialized to threat modeling / SOC2·HIPAA·PCI·GDPR compliance / supply-chain; reads vendored SKILL.md by path; advisory-only; body marker<!-- persona:security-lead -->; marker rule + no-literal-handle rule carried verbatimpersonas/security-lead/README.md— what it is, addressing via org team handle (never the bare@security-leadaccount), status draft, and the overlap note (advisory, not a replacement foragents/compliance-auditor.mdordependency-audit.yml)evals/security-lead/{dev,holdout}/cases.jsonl— 3 dev + 4 holdout synthetic/de-identified cases (draft is exempt from the count gate; expand before promotion)Test Results
Files Changed
personas/security-lead/persona.yml: new advisory persona manifest (draft)prompts/security-lead/advisory.md: read-only/sentinel/marker advisory contractpersonas/security-lead/README.md: persona docs incl. addressing + overlap noteevals/security-lead/dev/cases.jsonl,evals/security-lead/holdout/cases.jsonl: seed held-out casesNotes
validate-personas.py,validate-cases.py,markdownlint,dev-lead-lint.sh), all green above.diff).canary-rings.jsonregistration (draft does not need it), no write surfaces, no scripts.feat: implement issue #1309 — [bmad-onboard S3] Onboard security-lead…