Skip to content

[bmad-onboard S1] Onboard sre-lead persona #1307

Closed

Description

@don-petry

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 sre-lead as an advisory persona, wrapping the vendored bgr-agent-morgan-sre 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/sre-lead/persona.yml — status: draft. framework-agent layer → frameworks/bmad-bgreat-suite/src/agents/bgr-agent-morgan-sre, framework.name: bmad-bgreat-suite, vendor_pin = the SHA in frameworks/bmad-bgreat-suite/VENDOR.md, skill: bgr-agent-morgan-sre. address.handle: petry-projects/sre-lead. Advisory on mention/issues/discussion (default_mode advisory; opt_out_label sre-lead:hands-off). evals.path: evals/sre-lead/ (single set — one wrapped agent). canary.agent: sre-lead.
  • prompts/sre-lead/advisory.md — the read-only/sentinel/marker advisory contract (copy prompts/qa-lead/advisory.md), specialized to sre-lead's domain: observability, incident response, SLO/SLI, reliability, chaos, postmortems. Read the vendored SKILL.md by path and apply its substance; advisory only; first body line <!-- persona:sre-lead -->.
  • personas/sre-lead/README.md — what it is, how it's addressed (org team handle, never the bare @sre-lead account), status draft, and note the overlap relationship: none significant.
  • evals/sre-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

Acceptance criteria

  • validate-personas.py passes with the new manifest (5→6 personas).
  • validate-cases.py passes over the new seed evals.
  • markdownlint clean on the README.
  • The advisory prompt carries the marker rule and the no-literal-handle rule verbatim from the qa-lead template.

Blocked by: #1306. Epic: #1304.

Activity

  1. github-actions commented on Jul 18, 2026

    @github-actions
    Contributor

    Thanks for filing this and for the clear task breakdown! Since this is implementation work rather than a question, one thing worth confirming: once #1306 merges and frameworks/bmad-bgreat-suite/ is available, is there any preference on which existing persona directory (qa-lead vs scrum-master) should serve as the primary template to diff against for the persona.yml structure?

  2. added
    dev-leadFor dev-lead agent pickup
    and removed
    dev-leadFor dev-lead agent pickup
    on Jul 18, 2026
  3. don-petry commented on Jul 18, 2026

    @don-petry
    CollaboratorAuthor

    Dev-Lead Implementation Plan

    Issue: #1307 — [bmad-onboard S1] Onboard sre-lead persona

    Scope

    Onboard sre-lead as a draft advisory persona wrapping the vendored bgr-agent-morgan-sre agent, following the exact pattern of qa-lead/scrum-master (manifest + advisory prompt + README + seed evals).

    Implementation Checklist

    • evals/sre-lead/dev/cases.jsonl — ≥2 synthetic/de-identified SRE cases
    • evals/sre-lead/holdout/cases.jsonl — ≥2 synthetic/de-identified SRE cases (disjoint ids)
    • personas/sre-lead/persona.yml — status: draft; framework-agent layer → frameworks/bmad-bgreat-suite/src/agents/bgr-agent-morgan-sre; framework.name: bmad-bgreat-suite; vendor_pin = SHA ae8914e84b87 from VENDOR.md; skill: bgr-agent-morgan-sre; address.handle: petry-projects/sre-lead; advisory default_mode; opt_out_label: sre-lead:hands-off; evals.path: evals/sre-lead/; canary.agent: sre-lead
    • prompts/sre-lead/advisory.md — copy of prompts/qa-lead/advisory.md, specialized to SRE domain (observability, incident response, SLO/SLI, reliability, chaos, postmortems); marker <!-- persona:sre-lead -->; marker rule + no-literal-handle rule verbatim
    • personas/sre-lead/README.md — what it is, org team handle addressing, status draft, overlap: none significant

    Tests to Write

    • Seed eval cases act as the test fixtures; verified via validate-cases.py (directory mode)
    • Manifest verified via validate-personas.py (5→6 personas)

    Test Command

    python3 personas/validate-personas.py personas and python3 evals/validate-cases.py evals and bash .dev-lead/scripts/dev-lead-lint.sh and markdownlint-cli2 personas/sre-lead/README.md

  4. don-petry commented on Jul 18, 2026

    @don-petry
    CollaboratorAuthor

    Dev-Lead: Implementation Complete

    Plan Execution

    • evals/sre-lead/dev/cases.jsonl — 3 synthetic SRE cases (no golden signals, raw-threshold alert, well-instrumented negative)
    • evals/sre-lead/holdout/cases.jsonl — 4 synthetic SRE cases (critical-path no-SLO, region-failover no-DR, blameful postmortem, prod chaos no-safety); ids disjoint from dev
    • personas/sre-lead/persona.yml — status: draft; framework-agent → frameworks/bmad-bgreat-suite/src/agents/bgr-agent-morgan-sre; framework.name: bmad-bgreat-suite; vendor_pin: ae8914e84b87 (matches VENDOR.md); skill: bgr-agent-morgan-sre; address.handle: petry-projects/sre-lead; advisory default_mode; opt_out_label: sre-lead:hands-off; evals.path: evals/sre-lead/; canary.agent: sre-lead
    • prompts/sre-lead/advisory.md — copied from prompts/qa-lead/advisory.md, specialized to SRE (observability, incident response, SLO/SLI, DR, chaos, postmortems); first body line <!-- persona:sre-lead -->; marker rule + no-literal-handle rule kept verbatim
    • personas/sre-lead/README.md — what it is, org-team-handle addressing (never bare @sre-lead), status draft, overlap: none significant

    Test Results

    $ python3 personas/validate-personas.py personas
    OK: 6 persona manifest(s) valid, invariants hold.          # 5 -> 6
    
    $ python3 evals/validate-cases.py evals
    OK: 10 skill(s), 82 case(s) across dev+holdout, no cross-split id overlap.
    
    $ bash .dev-lead/scripts/dev-lead-lint.sh
      [lint] shellcheck on 95 file(s)...
      [lint] validating 4 agent profile(s)...
      [lint] validating .github/CODEOWNERS...
      [lint] all checks passed
    
    $ npx markdownlint-cli2 personas/sre-lead/README.md
    Summary: 0 issues in 0 files
    

    Files Changed

    • personas/sre-lead/persona.yml: new draft advisory manifest wrapping the vendored bgr-agent-morgan-sre agent
    • prompts/sre-lead/advisory.md: read-only/sentinel/marker advisory contract, SRE-specialized
    • personas/sre-lead/README.md: persona doc (role naming, addressing, draft promotion checklist, overlap note)
    • evals/sre-lead/dev/cases.jsonl, evals/sre-lead/holdout/cases.jsonl: seed held-out eval sets

    Notes

    • Eval expected shape (risk_tier/escalate/recommend) mirrors the existing qa-lead cases; CI runs validate-cases.py in directory mode over the committed evals/ tree (id/split hygiene) — the file-mode case.schema.json is triage-specific and not applied here, exactly as for qa-lead.
    • Role-not-person (§1.6) upheld: id/name/title are sre-lead / SRE Lead / Site Reliability & Operations Advisor; the upstream agent is referenced only by its technical framework.skill (bgr-agent-morgan-sre).
    • Per issue scope: did not create the org team and did not register in canary-rings.json (draft).
    • Phase 2 (TDD): the seed eval cases serve as the persona's test fixtures; validation is via the two validators. No executable behavior/scripts were added.
  5. added a commit that references this issue on Jul 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    dev-leadFor dev-lead agent pickupenhancementFeature requests

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions