Redact JIRA ticket
Your only job in this skill is to turn a raw JIRA ticket into a privacy-safe
ticket file. You do not review code, compare against the implementation, or
analyse anything here. Producing the clean file is the whole task.
You run as a sub-agent: you do not converse with the developer. This is
deliberate — the raw ticket text (which may contain PII) stays in your context
and never reaches the orchestrator. You return only a redaction summary.
Inputs
- Either a JIRA ticket ID/URL, or a path to a file containing raw pasted ticket
text (the orchestrator passes one of these).
- Output path:
./.pr-review/ticket.md.
Procedure
Get the ticket text. If given a ticket ID/URL, use the connected
Atlassian/JIRA tool (getJiraIssue) to retrieve the summary and description.
If given a path to raw pasted text, read it from there. (The orchestrator
handles the case where no connector is available by collecting the paste.)
Identify personal information. Scan the summary and description for:
- People's names (reporters, assignees, customers, names in prose)
- Email addresses, usernames, employee or user IDs
- Customer or organisation names that identify a specific client
- Phone numbers, postal addresses
- Direct quotes attributed to a named person
- Any free-text that names an individual ("as Anna requested…")
In a healthcare context, treat any patient-identifying detail as personal
information even if it appears incidental.
Redact, preserving meaning. Replace each item with a neutral
placeholder that keeps the sentence useful for review:
- Names of people →
[person], or a role if the role matters
([the reporter], [a clinician])
- Customers/orgs →
[customer]
- Emails/IDs →
[email], [user-id]
- Quotes → paraphrase without the attribution
Keep everything that is about the change itself — the feature, the bug,
acceptance criteria, technical detail. Those are what the review needs.
Write the clean file to ./.pr-review/ticket.md with this shape:
# <ticket id> — <redacted summary>
## Description
<redacted description>
## Acceptance criteria
<redacted, if present>
Return a redaction summary. As your final message, report:
- What you redacted by count and kind only — never the original values
(e.g. "redacted 2 names and 1 customer reference").
- The absolute path of the file you wrote, so the orchestrator can hand it
to the developer to review. Resolve it explicitly — e.g.
realpath ./.pr-review/ticket.md (or echo "$(pwd)/.pr-review/ticket.md") —
and quote that absolute path; do not return the relative ./.pr-review/...
form.
The orchestrator shows this to the developer for confirmation. If the developer
later reports something you missed, the orchestrator re-runs you with that
correction.
Guardrails
- Never write raw personal information into
./.pr-review/ticket.md or echo
it back in later steps. The clean file is the only ticket text that
continues through the review.
- If the developer asks you to "leave the names in, it's internal", explain
that the cleaned file is what gets compared and potentially summarised into
PR comments, so the redaction stays. You can keep role labels where the role
genuinely matters to the change.
- When in doubt about whether something is personal, redact it. Over-redaction
costs nothing here; the feature detail is preserved either way.
1---2name: redact-jira3description: Fetch a JIRA ticket's text and produce a privacy-safe version with all personal information redacted, before that text is used anywhere else in a review. Use at the start of a PR review, after the diff is available, to prepare the ticket description for comparison against the implementation.4---56# Redact JIRA ticket78Your only job in this skill is to turn a raw JIRA ticket into a **privacy-safe9ticket file**. You do not review code, compare against the implementation, or10analyse anything here. Producing the clean file is the whole task.1112You run as a **sub-agent**: you do not converse with the developer. This is13deliberate — the raw ticket text (which may contain PII) stays in your context14and never reaches the orchestrator. You return only a redaction *summary*.1516## Inputs1718- Either a JIRA ticket ID/URL, or a path to a file containing raw pasted ticket19 text (the orchestrator passes one of these).20- Output path: `./.pr-review/ticket.md`.2122## Procedure23241. **Get the ticket text.** If given a ticket ID/URL, use the connected25 Atlassian/JIRA tool (`getJiraIssue`) to retrieve the summary and description.26 If given a path to raw pasted text, read it from there. (The orchestrator27 handles the case where no connector is available by collecting the paste.)28292. **Identify personal information.** Scan the summary and description for:30 - People's names (reporters, assignees, customers, names in prose)31 - Email addresses, usernames, employee or user IDs32 - Customer or organisation names that identify a specific client33 - Phone numbers, postal addresses34 - Direct quotes attributed to a named person35 - Any free-text that names an individual ("as Anna requested…")3637 In a healthcare context, treat any patient-identifying detail as personal38 information even if it appears incidental.39403. **Redact, preserving meaning.** Replace each item with a neutral41 placeholder that keeps the sentence useful for review:42 - Names of people → `[person]`, or a role if the role matters43 (`[the reporter]`, `[a clinician]`)44 - Customers/orgs → `[customer]`45 - Emails/IDs → `[email]`, `[user-id]`46 - Quotes → paraphrase without the attribution4748 Keep everything that is about *the change itself* — the feature, the bug,49 acceptance criteria, technical detail. Those are what the review needs.50514. **Write the clean file** to `./.pr-review/ticket.md` with this shape:5253 ```markdown54 # <ticket id> — <redacted summary>5556 ## Description57 <redacted description>5859 ## Acceptance criteria60 <redacted, if present>61 ```62635. **Return a redaction summary.** As your final message, report:64 - What you redacted by **count and kind only — never the original values**65 (e.g. "redacted 2 names and 1 customer reference").66 - The **absolute path** of the file you wrote, so the orchestrator can hand it67 to the developer to review. Resolve it explicitly — e.g.68 `realpath ./.pr-review/ticket.md` (or `echo "$(pwd)/.pr-review/ticket.md"`) —69 and quote that absolute path; do not return the relative `./.pr-review/...`70 form.7172 The orchestrator shows this to the developer for confirmation. If the developer73 later reports something you missed, the orchestrator re-runs you with that74 correction.7576## Guardrails7778- Never write raw personal information into `./.pr-review/ticket.md` or echo79 it back in later steps. The clean file is the only ticket text that80 continues through the review.81- If the developer asks you to "leave the names in, it's internal", explain82 that the cleaned file is what gets compared and potentially summarised into83 PR comments, so the redaction stays. You can keep role labels where the role84 genuinely matters to the change.85- When in doubt about whether something is personal, redact it. Over-redaction86 costs nothing here; the feature detail is preserved either way.