User Guide

SaMD Complaint Risk Assessment · Jira Cloud app

Quick start

This app adds an AI-powered risk assessment panel to any Jira issue. It is designed for medical device quality teams who need a fast, consistent first-pass triage of complaints — classifying whether an issue is a product defect and scoring its probability and severity against your configured risk matrix.

Prerequisites

First-time setup checklist

  1. Install the app from the Atlassian Marketplace.
  2. Open any Jira issue and click "View app actions" (below the issue title).
  3. Select "SaMD Complaint Risk Assessment" to open the panel.
  4. Click Settings (top right of the panel).
  5. Paste your Anthropic API key and click Save API Key.
  6. Fill in Product Info — name, type, and description of your product.
  7. Paste your User Needs JSON array.
  8. Paste your Product Requirements JSON array.
  9. Click Back. You are ready to run assessments.

Tip

All settings persist across sessions using Atlassian Forge Storage. You only need to configure them once. They survive app redeployments.

Running an assessment

The panel is opened per-ticket — you choose when to run it. It is not automatic on every issue.

  1. Open a Jira issue you want to triage.
  2. Click "View app actions""SaMD Complaint Risk Assessment".
  3. The panel opens showing the issue ID, title, and description.
  4. Click Run Risk Assessment.
  5. The button changes to "Running risk assessment..." and disables. Steps 2 (Probability) and 3 (Severity) run in parallel. The full pipeline runtime depends on size of context window.
  6. The result appears below the button.

What data is sent to the AI

Each time you click Run, the app fetches a fresh copy of the issue — title, description, reporter, and all comments. Previously generated risk assessment comments on the ticket are excluded from the context so they don't influence future runs.

Reading results

NON-DEFECT result

If the AI determines the issue does not represent a deviation from any User Need or Product Requirement, the result shows a grey NON-DEFECT badge. No probability, severity, or risk score is shown — no further triage action is needed for this ticket.

DEFECT result

If the issue is classified as a defect, the result shows:

Auto-posted comment

If the Auto-post setting is enabled (the default), a formatted comment is posted to the Jira ticket after each run. The comment includes the risk level, disposition, probability, severity, evidence, and a timestamp. This creates an audit trail directly on the ticket.

Important

AI-generated results are a decision-support tool, not a final determination. A qualified engineer or quality manager should review and confirm the assessment before it is used in any regulated process.

Settings reference

Open Settings from the top-right button inside the panel. All fields save independently. A yellow dot (●) indicates unsaved changes in a field. A green checkmark (✓) indicates the field is saved.

If you click Back with unsaved changes, you will see a warning listing which fields are dirty. You can choose to Save all changes, Leave without saving, or Keep editing.

Anthropic API Key

Your Anthropic API key is required for the pipeline to run. The app cannot function without it.

Where to get a key

Create an API key at console.anthropic.com. API usage is billed to your Anthropic account — typically a few cents per assessment depending on ticket length.

Behaviour

A single checkbox controls whether the completed risk assessment is automatically posted as a Jira comment after each run.

SettingDefaultEffect when enabled
Auto-post risk assessment as a Jira comment On After each successful run, a formatted comment is posted to the ticket with the full result, scores, evidence, and timestamp.

This setting saves immediately when toggled — no Save button required.

Product Info

Three short text fields that tell the AI what product it is assessing. These are injected into every prompt and directly influence how the AI contextualises defect classification and risk scoring.

FieldPlaceholder / exampleWhat it does
Product Name MindBridge Used in the prompt header and in the auto-posted comment summary.
Product Type regulated mental health Software as Medical Device (SaMD) Tells the AI the regulatory classification and product category. Affects how it frames severity and harm.
Product Description a CBT-based therapeutic chatbot A brief description of what the product does. Helps the AI understand the therapeutic context when evaluating patient impact.

Click Save Product Info after editing.

Additional Context

A free-form text field. Whatever you write here is injected verbatim into every prompt — it supplements the structured fields above and is not parsed or validated.

Use this for:

Click Save Additional Context after editing.

LLM tip

This is the most flexible field in the app. If you find the AI is consistently misjudging a class of issues, add an instruction here before fine-tuning your User Needs or Product Requirements.

User Needs

A JSON array defining the User Needs of your product. The defect classification step uses these to determine whether a complaint represents a failure of a capability the product is supposed to provide.

Required format:

[
  {
    "id": "UN-001",
    "description": "User shall be able to log in and access their account on all supported platforms."
  },
  {
    "id": "UN-002",
    "description": "User shall be able to save and retrieve their session progress across app sessions."
  }
]
FieldRequiredNotes
idYesA unique identifier. Appears in the assessment output under failed_user_needs. Use a consistent format like UN-001.
descriptionYesA clear statement of what the user should be able to do. Write these as "shall" statements.

Click Save after editing. The field validates that the input is valid JSON before saving — if you see "Invalid JSON — check your formatting", use a JSON validator to find the syntax error.

This field is required

If User Needs are not configured, the pipeline will return an error: "Product context not configured. Please add user needs and product requirements in Settings."

Product Requirements

A JSON array defining the Product Requirements (design outputs) of your product. The defect classification step checks whether the complaint indicates a failure to meet a specific requirement. The traces_to field links each requirement back to the User Need it satisfies.

Required format:

[
  {
    "id": "PR-001",
    "description": "The system shall support login on iOS 15 and above.",
    "traces_to": "UN-001"
  },
  {
    "id": "PR-002",
    "description": "The system shall persist session data and restore it on next launch without data loss.",
    "traces_to": "UN-002"
  }
]
FieldRequiredNotes
idYesUnique identifier. Appears in assessment output under failed_requirements. Use a consistent format like PR-001.
descriptionYesThe specific, testable requirement. Write as "shall" statements.
traces_toRecommendedThe id of the User Need this requirement satisfies. Used to build the traceability chain for the AI. Should match a value from your User Needs list.

Click Save after editing.

Tip — granularity matters

The more specific and testable your requirements, the more precise the defect classification. Vague requirements like "the product shall be reliable" produce vague results. Requirement statements scoped to specific features or behaviours perform much better.

Probability Scale

Defines what each probability score (1–5) means in the context of your product. The AI uses these definitions when scoring how likely users are to encounter a defect during normal use.

Each level has two editable fields: a short Label and a longer Description. Level 1 is the lowest probability; Level 5 is the highest.

Default scale:

LevelDefault labelDefault description
1Remoteunlikely to occur
2Lowcould occur but rare
3Moderatemay occur occasionally
4Highlikely to occur
5Very Highalmost certain to occur

Edit the label and description for any level, then click Save Probability Scale.

Severity Scale

Defines what each severity score (1–5) means in the context of your product. The AI uses these definitions when assessing the potential harm to a patient or user if the defect occurs.

Each level has a Label and a Description. Level 1 is the least severe; Level 5 is the most severe.

Default scale:

LevelDefault labelDefault description
1Negligibleno impact on therapeutic experience
2Minorslight inconvenience, user can continue
3Moderatedisrupts session but user can recover
4Majorprevents therapeutic function or causes distress
5Criticalpotential for clinical harm or safety event

Edit the label and description for any level, then click Save Severity Scale.

Tip — tailor these to your product

The default scales are written for a therapeutic SaMD. If your product is a diagnostic tool, a surgical planning aid, or a different device category, rewrite the severity descriptions to reflect harm pathways relevant to your specific intended use.

Risk Matrix

A 5×5 interactive grid that maps every combination of Severity (rows) and Probability (columns) to a risk level: LOW, MEDIUM, or HIGH.

How to read and edit the matrix:

Default (ISO 14971-aligned) risk matrix:

Severity ↓ / Probability → P1 RemoteP2 LowP3 ModerateP4 HighP5 Very High
S5 CriticalHIGHHIGHHIGHHIGHHIGH
S4 MajorMEDIUMHIGHHIGHHIGHHIGH
S3 ModerateLOWMEDIUMMEDIUMHIGHHIGH
S2 MinorLOWLOWMEDIUMMEDIUMHIGH
S1 NegligibleLOWLOWLOWLOWLOW

Troubleshooting

"Product context not configured" error

The pipeline requires both User Needs and Product Requirements to be saved before it can run. Open Settings and paste valid JSON arrays into both fields, then click Save on each.

"No API key saved" error

Open Settings, paste your Anthropic API key into the API Key field, and click Save API Key. The key status indicator at the top of the field should show a green checkmark after saving.

"Invalid JSON — check your formatting" when saving User Needs or Product Requirements

The field requires valid JSON. Common issues:

Paste your JSON into jsonlint.com to identify the exact error.

Assessment takes longer than 30 seconds or times out

The pipeline makes three sequential (or partially parallel) API calls to Anthropic. Slowness is usually caused by Anthropic API latency under load. Try running again. If timeouts persist, check your API key usage limits in the Anthropic console.

Auto-posted comment does not appear on the ticket

Confirm that Auto-post risk assessment as a Jira comment is checked in Settings. Also confirm the app has write:jira-work permission — this is included in the standard installation. If you installed the app before this permission was added, run forge install --upgrade from your terminal.

Settings I saved are gone after redeployment

Settings are stored in Atlassian Forge Storage, not in the app bundle. They persist across deploys. If settings appear to be missing, check whether you are on the same Jira site (settings are scoped to the site the app is installed on).

FAQ

Does the app work on Jira Server or Data Center?

No. The app is built on Atlassian Forge, which only supports Jira Cloud.

Is my issue data stored anywhere?

No. Issue content (title, description, comments) is sent to Anthropic's API for processing and is not stored by this app after the API call completes. See the Privacy Policy for full details.

How much does it cost to run an assessment?

The app itself is free. You pay Anthropic for API usage. Assessment will be based on size of context window. Check anthropic.com/pricing for current rates.

Can I run multiple assessments on the same ticket?

Yes. Each click of Run Risk Assessment is independent — it fetches fresh issue data and runs a new pipeline. If auto-post is on, each run adds a new comment to the ticket. Previously posted comments are excluded from the AI context to avoid circular reasoning.

Can I use this for non-SaMD products?

Yes. The assessment framework is configurable. Replace the User Needs, Product Requirements, probability scale, severity scale, and risk matrix with values appropriate to your product type. The default severity scale is written for therapeutic SaMD — you should replace it if your product has different harm pathways.

The AI consistently over- or under-scores a type of issue. How do I fix it?

Try the following in order:

  1. Add a specific instruction in Additional Context (e.g. "Login-related issues should always score at least Probability 3 due to daily user exposure").
  2. Make the relevant Product Requirement more specific.
  3. Adjust the severity or probability scale descriptions to better reflect your product's risk profile.
  4. Adjust the risk matrix thresholds directly.