Skip to content

[qa-lead S5] Reconcile personas/qa-lead/README.md with the shipped runtime #1648

Closed

Description

@don-petry

Story

As someone told by persona-standards §7 that qa-lead is the worked example to copy,
I want personas/qa-lead/README.md to describe the persona that actually shipped,
so that the reference implementation stops teaching a design that was superseded.

The problem, verified on origin/main (85658ac)

The README's "Status: draft" section makes three claims that are false:

README says Reality
"qa-lead ships no dedicated reusable workflow yet" .github/workflows/persona-runner.yml + persona-runner-reusable.yml exist and serve it
"the manifest carries no runtime: block" persona.yml has runtime.identity (account: don-petry, credential: GH_PAT_DON_PETRY)
"nothing dispatches on them until the router and a runtime exist" Both exist; the chain has fired twice (2026-07-18 soak #1300, 2026-08-02 on #1402)

And promotion step 1 is actively misleading:

  1. Wire a dedicated advisory workflow (e.g. mention- or check_run-triggered test review) as a caller stub + reusable, and add its runtime: block.

persona-standards §4.1 says the opposite: "ONE router serves every persona … a stub per agent is the drift the manifest exists to prevent." That is also what shipped — persona-runner-reusable.yml is explicitly "ONE runner for EVERY persona — manifest/convention driven, not one workflow per persona." A reader following this README would build the thing the standard forbids.

The README has been stale since #1293 merged the runtime (2026-07-18).

Acceptance Criteria

  1. The three false claims are corrected. The README describes the shipped architecture: one shared mention router (petry-projects/.github, persona-mention-reusable.yml) → repository_dispatch: persona-mention → one shared runner (persona-runner-reusable.yml) → the persona's prompts/<id>/advisory.md.
  2. Promotion step 1 is rewritten to match §4.1 — a new persona adds a manifest and an advisory prompt; it does not add a workflow. Anyone following the steps must end up with something the standard permits.
  3. The read/write split is documented, because it is the security property the whole framework rests on: the agent runs with github.token and cannot post; the workflow enforces the <!-- persona:<id> --> marker and posts with the PAT. Cite feat: implement issue #846 — [Phase 2] Cache the LSP index and enforce the 30s cold-start SLA with auto-skip #860 (prompt-only marker enforcement → 1,481 acks in 4.5h) so the next reader understands why it is built that way.
  4. prompts/qa-lead/advisory.md is documented as part of the persona — it is the actual behavior surface and the README currently never mentions it.
  5. The remaining accurate content is preserved: the role-not-person rationale (§1.6), the team-handle-not-user-account rationale, the vendored-not-forked posture, and the frameworks/ no-hand-edits rule.
  6. The status section states what is genuinely still outstanding — no agents.qa-lead entry in canary-rings.json, still next-ring only (persona-mention/v1-ring0 / v1-ring1 / v1-stable do not exist), eval gate not yet runnable ([qa-lead S2] Make the qa-lead eval set scorable and capture a first held-out baseline #1645) — and does not restate anything the manifest already says. §4.1's rule is that the manifest is the index-of-record and the docs restate none of it.
  7. markdownlint-cli2 clean; internal links resolve.

Tasks / Subtasks

Dev Notes

Project Structure Notes

personas/qa-lead/README.md only.

References

Activity

  1. don-petry commented on Sep 7, 2026

    @don-petry
    CollaboratorAuthor

    Dev-Lead Implementation Plan

    Issue: #1648 — [qa-lead S5] Reconcile personas/qa-lead/README.md with the shipped runtime

    Scope

    Docs-only: rewrite personas/qa-lead/README.md so it describes the runtime that actually shipped (#1293) — the shared mention router → repository_dispatch: persona-mention → shared runner → prompts/qa-lead/advisory.md — correcting the three false "draft" claims and the §4.1-violating promotion step, while preserving the still-accurate rationale sections.

    Implementation Checklist

    Tests to Write

    • None — pure documentation change, no observable behavioural surface (Phase 2 TDD exception). Verified via markdownlint + internal-link resolution.

    Test Command

    markdownlint-cli2 "personas/qa-lead/README.md" + bash .dev-lead/scripts/dev-lead-lint.sh

  2. don-petry commented on Sep 7, 2026

    @don-petry
    CollaboratorAuthor

    Dev-Lead: Implementation Complete — PR #1689

    The implementation for issue #1648 is durable: commits are pushed and a pull request is open. This record is backed by verifiable artifacts you can confirm in one click.

    Review happens on the PR. Acceptance criteria and test results are evidenced by the PR's diff and CI checks — not asserted here. If a later stage fails, this claim is retracted in place.

  3. added 3 commits that reference this issue on Sep 7, 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 pickupdocumentationDocumentation changesinitiativeEpic / initiative tracking issue

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions