Skip to content

[bmad-onboard S2] Onboard devops-lead persona #1308

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 devops-lead as an advisory persona, wrapping the vendored bgr-agent-riley-devops 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/devops-lead/persona.yml — status: draft. framework-agent layer → frameworks/bmad-bgreat-suite/src/agents/bgr-agent-riley-devops, framework.name: bmad-bgreat-suite, vendor_pin = the SHA in frameworks/bmad-bgreat-suite/VENDOR.md, skill: bgr-agent-riley-devops. address.handle: petry-projects/devops-lead. Advisory on mention/issues/discussion (default_mode advisory; opt_out_label devops-lead:hands-off). evals.path: evals/devops-lead/ (single set — one wrapped agent). canary.agent: devops-lead.
  • prompts/devops-lead/advisory.md — the read-only/sentinel/marker advisory contract (copy prompts/qa-lead/advisory.md), specialized to devops-lead's domain: infrastructure, CI/CD, Kubernetes, GitOps, blue-green/canary deployment. Read the vendored SKILL.md by path and apply its substance; advisory only; first body line <!-- persona:devops-lead -->.
  • personas/devops-lead/README.md — what it is, how it's addressed (org team handle, never the bare @devops-lead account), status draft, and note the overlap relationship: the auto-rebase / CI tooling (advisory, not a replacement).
  • evals/devops-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. added
    dev-leadFor dev-lead agent pickup
    and removed
    dev-leadFor dev-lead agent pickup
    on Jul 18, 2026
  2. github-actions commented on Jul 18, 2026

    @github-actions
    Contributor

    Thanks for the detailed issue and for following the established persona onboarding pattern! Since this is a new persona addition, could you confirm which specific devops/infrastructure domains from the vendored SKILL.md should be emphasized in the advisory prompt — for example, is there a particular balance between CI/CD pipeline advice versus Kubernetes/GitOps guidance that matters most for this org's context?

  3. don-petry commented on Jul 18, 2026

    @don-petry
    CollaboratorAuthor

    Dev-Lead Implementation Plan

    Issue: #1308 — [bmad-onboard S2] Onboard devops-lead persona

    Scope

    Onboard devops-lead as a draft, advisory-only persona wrapping the vendored bgr-agent-riley-devops agent, following the exact pattern of the just-merged qa-lead / scrum-master / business-analyst personas.

    Implementation Checklist

    • personas/devops-lead/persona.yml — status draft; framework-agent layer → frameworks/bmad-bgreat-suite/src/agents/bgr-agent-riley-devops; framework.name: bmad-bgreat-suite, upstream_repo: petry-projects/bmad-bgreat-suite, vendor_pin: ae8914e84b87 (the SHA in VENDOR.md), skill: bgr-agent-riley-devops; address.handle: petry-projects/devops-lead; advisory on mention/issues/discussion; opt_out_label: devops-lead:hands-off; evals.path: evals/devops-lead/; canary.agent: devops-lead.
    • prompts/devops-lead/advisory.md — copy of prompts/qa-lead/advisory.md specialized to devops domain (IaC, CI/CD, Kubernetes, GitOps, blue-green/canary); first body line <!-- persona:devops-lead -->; marker rule + no-literal-handle rule kept verbatim.
    • personas/devops-lead/README.md — what it is, org team handle addressing (never bare @devops-lead), status draft, and the overlap note vs. auto-rebase / CI tooling (advisory, not a replacement).
    • evals/devops-lead/dev/cases.jsonl and evals/devops-lead/holdout/cases.jsonl — ≥2 synthetic/de-identified cases each.

    Tests to Write

    • Seed held-out eval cases double as the behavior fixtures (advisory persona, no scripts). This story is manifest/prompt/eval content only — TDD Phase 2 script-test exception applies.

    Test Command

    python3 personas/validate-personas.py personas && python3 evals/validate-cases.py evals && bash .dev-lead/scripts/dev-lead-lint.sh

  4. don-petry commented on Jul 18, 2026

    @don-petry
    CollaboratorAuthor

    Dev-Lead: Implementation Complete

    Plan Execution

    • personas/devops-lead/persona.yml — draft; framework-agent layer → frameworks/bmad-bgreat-suite/src/agents/bgr-agent-riley-devops, framework.name: bmad-bgreat-suite, upstream_repo: petry-projects/bmad-bgreat-suite, vendor_pin: ae8914e84b87 (the SHA in VENDOR.md), skill: bgr-agent-riley-devops; address.handle: petry-projects/devops-lead; advisory on mention/issues/discussion; opt_out_label: devops-lead:hands-off; evals.path: evals/devops-lead/; canary.agent: devops-lead.
    • prompts/devops-lead/advisory.md — copied from prompts/qa-lead/advisory.md, specialized to the devops domain (IaC, CI/CD, Kubernetes, GitOps, blue-green/canary, environment isolation, anti-patterns). First body line <!-- persona:devops-lead -->. Marker rule + no-literal-handle rule copied verbatim (diff-confirmed).
    • personas/devops-lead/README.md — what it is, org-team-handle addressing (never the bare @devops-lead account), status draft, and the overlap note: advisory about the auto-rebase / CI tooling, not a replacement for it.
    • evals/devops-lead/dev/cases.jsonl (3) + evals/devops-lead/holdout/cases.jsonl (4) — synthetic/de-identified seed cases grounded in the vendored SKILL.md (≥2 each; draft is exempt from the count gate, expand before promotion).

    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)...  (all OK)
      [lint] validating .github/CODEOWNERS...  OK
      [lint] all checks passed
    
    $ npx markdownlint-cli2 "personas/**/*.md"
    Linting: 6 files
    Summary: 0 issues                                         # README clean
    

    Files Changed

    • personas/devops-lead/persona.yml — new draft manifest (advisory-only, no write surfaces, no runtime: block).
    • prompts/devops-lead/advisory.md — new headless advisory contract (read-only; sentinel + marker; devops-specialized).
    • personas/devops-lead/README.md — new persona doc, incl. the auto-rebase/CI overlap note.
    • evals/devops-lead/{dev,holdout}/cases.jsonl — new seed held-out eval sets.

    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.

    Notes

  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