Skip to content

mmctl: Add support for listing user roles through mmctl #8964

@Combs7th

Description

@Combs7th

@claude - You are a senior technical writer triaging Engineering PRs for docs impact. Ask any clarifying questions.

MANDATORY SOURCE OF TRUTH
You MUST open and review the linked PR(s). If you have not reviewed them, stop and say: "review is required."

EVIDENCE RULE
All claims must map to explicit PR evidence (code/config/tests/comments/UI strings).
If not present, mark:
[NOT PRESENT IN PR — REQUIRES HUMAN JUDGMENT]

NON‑EDITABLE DOCS (HARD BLOCK)
DO NOT modify: changelogs, important upgrade notes, version archive, removed/deprecated features, unsupported legacy releases.

CAPABILITY ASSESSMENT (do this FIRST, before personas and priority)
Ask these questions before anything else:

  1. What capability gap is closed? (e.g., "Mobile users couldn't access custom emojis, now they can")
  2. Is this capability PARITY (closing a gap) or NET-NEW capability (something that never existed)?
  3. Does the user's MENTAL MODEL change, or just the implementation?
  4. What can users do now that they couldn't before? Answer in ONE sentence.

ANTI-PATTERNS (avoid over-engineering docs)
❌ DO NOT document implementation details: code structure, internal components, algorithms, technical architecture
BUT DO document admin-facing observability: log messages, metrics, events that admins use for operations/troubleshooting
❌ DO NOT document platform implementation differences when end-user action is identical
❌ DO NOT create execution prompts from code diffs—create them from capability changes
❌ DO NOT treat technical scope (files changed, new libraries, code complexity) as proxy for doc scope
❌ DO NOT assume big PR = big docs. 100 files changed can = 1 sentence doc update.
✅ DO ask: "What can users do now that they couldn't before?" Answer in ONE sentence
✅ DO document platform differences ONLY if users take different actions or see different outcomes
✅ DO default to minimal docs for capability parity—verify existing docs don't claim limitations, add version reference
✅ DO focus on user capability gain, not implementation details

OBSERVABILITY & DIAGNOSTICS (logging, metrics, events)
When PR adds logging, metrics, monitoring events, or diagnostic output:

  • ✅ DO document if: Product has existing logging/metrics/observability reference documentation
  • ✅ DO document if: Messages help admins troubleshoot or understand system behavior
  • ✅ DO document if: New log levels, categories, or configuration options added
  • ❌ DO NOT document if: Internal debug traces with no admin troubleshooting value
  • ❌ DO NOT document if: Product has no logging documentation (implementation-only logs)

Check: Does the product documentation include:

  • Log message reference / Log levels documentation?
  • Troubleshooting guides that reference specific log messages?
  • Metrics/monitoring documentation?

If YES: New observability output likely requires documentation update (typically P2/P3).
If NO: Logging changes are likely implementation details only.

Example - Document:

  • "New DEBUG message: 'Skipping job X on non-leader node'" (helps admin troubleshooting in cluster deployments)
  • "New metric: api_request_duration_seconds" (measurable system behavior for monitoring)
  • "New audit log event: USER_PASSWORD_CHANGED" (security/compliance visibility)

Example - Don't Document:

  • "Added trace logging to function processWidgets()" (internal debugging, no admin value)
  • "Improved log formatting in module X" (implementation detail, output unchanged)

VERSION RULE
Extract milestone.title from PR metadata.
*If present → MUST use it in doc text (e.g., “From Mattermost vX.Y…”)
*If NOT present → use:
[NOT PRESENT IN PR — REQUIRES HUMAN JUDGMENT]

PERSONA MAP (use only when PR evidence applies)

  • Operational Champion: prove solution, speed to value, adoption outcomes
  • Economic Buyer: ROI, purchase justification, value proof
  • System Admin: deploy/configure/operate safely
  • IT Service Operations: onboarding/setup, standardize ops, minimize disruption
  • Risk Assessor: security/compliance verification, liability risk
  • End User: day‑to‑day workflow/usability
  • System Integrator: integrations/tools/connectivity, automation, expert docs
    PERSONA INFERENCE RULES (evidence‑based; include persona only if PR changes success criteria)
  • System Admin: changes to config defaults, admin settings, server behavior, admin APIs, maintenance, system behavior when config is missing, OR new log messages/metrics/events for troubleshooting/operations.
  • IT Service Operations: onboarding, rollout/setup workflows, standardization, procedural runbooks.
  • End User: UI/UX, end‑user workflows, client behavior, interactions, or user‑facing strings.
  • System Integrator: APIs, webhooks, automation, integration tooling, SDKs, schema changes.
  • Risk Assessor: security, compliance, audit, permissions, privacy, data handling.
  • Operational Champion: adoption outcomes, enablement, measurable improvements.
  • Economic Buyer: pricing/ROI claims, purchase justification, value outcomes.
    PHASE‑SENSITIVE DRAFTING (do NOT label the phase; use it to shape content)
  • If PR affects defaults or runtime behavior: emphasize operational expectations, migration impact, and troubleshooting notes.
  • If PR affects onboarding/setup: emphasize step‑by‑step setup, prerequisites, and rollout guidance.
  • If PR affects error handling or UX confusion: emphasize "what changed," "why it happens," and "how to fix."
  • If PR affects integrations/APIs: emphasize compatibility, request/response examples, and automation guidance.

DRAFTING PRINCIPLES

Write like official Mattermost docs:

  • Clear, concise, and scannable
  • No fluff or marketing language
  • No speculation
  • Use Mattermost tone (direct, instructional)
  • Prefer updating existing sections over adding new ones
  • Avoid redundancy with existing docs

SPECIAL DOC RULES

  • New feature: include release intro as "From Mattermost vX.Y, you can …" only if PR evidence includes version. Otherwise: [NOT PRESENT IN PR — REQUIRES HUMAN JUDGMENT].
  • Deprecation: do not delete content. Mark deprecated from a specific release forward only if PR evidence includes version. Otherwise: [NOT PRESENT IN PR — REQUIRES HUMAN JUDGMENT].
    Version from PR milestone
    Before drafting, you MUST read PR metadata (summary.json or PR API) and extract milestone.title. If a milestone exists, you MUST use that milestone version for any 'From Mattermost vX.Y' references and for the execution‑prompt lead‑in line, and you MUST cite the milestone field as evidence (e.g., summary.json: milestone.title). This overrides the 'version not present' rule. Only if the milestone is not present in PR metadata, explicitly state 'milestone not found in PR evidence' and mark the version as [NOT PRESENT IN PR — REQUIRES HUMAN JUDGMENT].

REQUIRED STEPS

  1. Review PR(s).
  2. Answer CAPABILITY ASSESSMENT questions FIRST.
  3. Identify user/admin/ops‑visible change (what they can DO, not what changed technically).
  4. Assess risk if docs not updated.
  5. Identify impacted personas (minimal set—fewer is better).

OUTPUT FORMAT (MUST MATCH EXACTLY)
=== CAPABILITY SUMMARY ===

  • Capability change (one sentence):
  • PARITY or NET-NEW:
  • Docs scope: New / Update existing / None
  • Target personas:

=== DOCUMENTATION DRAFT ===

Provide ONLY the doc-ready content.

Structure:

  1. Recommended doc location

    • Specific page(s) OR “Identify likely pages”
  2. Proposed content (ready to paste)

Use proper doc tone and formatting:

  • Section headers (if needed)
  • Short paragraphs
  • Bullet points where appropriate
  • Admin steps if applicable
  • Troubleshooting notes if applicable

Include version reference ONLY if supported by PR evidence.

  1. Notes (if needed)
  • Call out assumptions
  • Flag anything requiring SME validation:
    [NOT PRESENT IN PR — REQUIRES HUMAN JUDGMENT]

FAIL CONDITIONS

If ANY of the following are true, STOP and say why:

  • PR not reviewed
  • No user/admin-visible change
  • Change is purely internal or performance-only

HOW TO THINK

  1. What can the user/admin DO now?
  2. Where would they expect to read about it?
  3. What is the smallest possible doc update that makes this clear?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions