Skip to content

docs: add PROCESS.md — QMS compliance workflow for GitHub/Jira/Ketryx/Confluence [PYSDK-81]#566

Closed
helmut-hoffer-von-ankershoffen wants to merge 1 commit into
mainfrom
docs/process-and-mcp-setup
Closed

docs: add PROCESS.md — QMS compliance workflow for GitHub/Jira/Ketryx/Confluence [PYSDK-81]#566
helmut-hoffer-von-ankershoffen wants to merge 1 commit into
mainfrom
docs/process-and-mcp-setup

Conversation

@helmut-hoffer-von-ankershoffen

@helmut-hoffer-von-ankershoffen helmut-hoffer-von-ankershoffen commented Apr 24, 2026

Copy link
Copy Markdown
Contributor

Implements PYSDK-81

Summary

  • Add PROCESS.md documenting how GitHub PRs, Jira (Anomaly + Change Request tickets), Ketryx releases, and the Confluence-based QMS (PR-SOP-01, CC-WI-01) relate and must be used together for regulatory compliance
  • Covers when to open an Anomaly ticket vs. a Change Request, the required bidirectional links between GitHub PRs and Jira tickets, and how Ketryx enforces traceability at release time
  • Includes a quick-reference table and explicit guidance for Claude Code on how to behave when creating PRs
  • Adds a References section linking to PR-SOP-01, CC-WI-01, and the Atlassian smart commits documentation

Why

Engineers and AI assistants working in this repo need a single place to understand the compliance obligations — particularly the bidirectional linking requirement between GitHub PRs and Jira tickets — without having to read through multiple Confluence SOPs.

Test plan

  • Review PROCESS.md for accuracy against PR-SOP-01 and CC-WI-01
  • Verify Jira board key (PYSDK) and ticket URLs are correct
  • Verify Confluence SOP links resolve correctly
  • Verify Atlassian smart commits reference link resolves correctly

🤖 Generated with Claude Code

Documents how GitHub PRs, Jira anomaly/change-request tickets,
Ketryx releases, and Confluence SOPs (PR-SOP-01, CC-WI-01) relate
and must be linked bidirectionally for regulatory compliance.

Also describes expected Claude Code behaviour when creating PRs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings April 24, 2026 10:05
@helmut-hoffer-von-ankershoffen helmut-hoffer-von-ankershoffen requested a review from a team as a code owner April 24, 2026 10:05
@helmut-hoffer-von-ankershoffen helmut-hoffer-von-ankershoffen added the skip:test:long_running Skip long-running tests (≥5min) label Apr 24, 2026
@sonarqubecloud

Copy link
Copy Markdown

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a repository-level engineering process guide describing how GitHub PRs, Jira tickets (Anomaly + Change Request), Ketryx releases, and Confluence QMS SOPs fit together for compliance/traceability.

Changes:

  • Introduces PROCESS.md with step-by-step workflows for Anomaly → PR and Change Request → PR.
  • Documents Ketryx release phases and how release approval depends on Jira item status/approvals.
  • Adds quick-reference guidance and a “Claude Code workflow” section to standardize AI-assisted PR behavior.

Comment thread PROCESS.md
| **Ketryx** | Regulated release management — links Jira tickets to releases, collects approvals, enforces traceability |
| **Confluence (QMS)** | SOPs and work instructions that define the mandatory processes |

Ketryx sits on top of Jira: it reads Jira tickets of specific types (Anomaly, Change Request) and enforces that they are approved and linked before a release can be closed. A Ketryx release cannot be approved unless all linked items in Jira are in `Closed` status with the required approvals.

Copilot AI Apr 24, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line refers to Jira ticket types as “(Anomaly, Change Request)”, but later the document specifies the Jira issue type name as Ketryx Change Request. To avoid confusion about the exact Jira issue type Ketryx expects, consider using consistent terminology here (e.g., “Anomaly” and “Ketryx Change Request (Jira issue type)”).

Suggested change
Ketryx sits on top of Jira: it reads Jira tickets of specific types (Anomaly, Change Request) and enforces that they are approved and linked before a release can be closed. A Ketryx release cannot be approved unless all linked items in Jira are in `Closed` status with the required approvals.
Ketryx sits on top of Jira: it reads Jira tickets of specific types (Anomaly, Ketryx Change Request) and enforces that they are approved and linked before a release can be closed. A Ketryx release cannot be approved unless all linked items in Jira are in `Closed` status with the required approvals.

Copilot uses AI. Check for mistakes.
Comment thread PROCESS.md
- Title: follow conventional commits (fix: ...)
- PR body: include link to the Jira Anomaly ticket
Example: "Resolves PYSDK-78: https://aignx.atlassian.net/browse/PYSDK-78"
- Add label: skip:test:long_running

Copilot AI Apr 24, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The instruction to add the skip:test:long_running label is phrased as unconditional. Repo guidance elsewhere frames this as a time-saver “unless you need long tests” (see .github/CLAUDE.md:1008). Consider adding that caveat here so PRs that require long-running coverage don’t accidentally skip it.

Suggested change
- Add label: skip:test:long_running
- Add label: skip:test:long_running unless this PR needs long-running test coverage

Copilot uses AI. Check for mistakes.
Comment thread PROCESS.md
4. Create GitHub PR
- PR description: link to the CR ticket
Example: "Implements PYSDK-CR-XX: https://aignx.atlassian.net/browse/PYSDK-XX"
- Add label: skip:test:long_running

Copilot AI Apr 24, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as Process 1: recommending skip:test:long_running as an unconditional step may lead to skipping needed long-running coverage. Consider mirroring the repo guidance (e.g. .github/CLAUDE.md:1008) by framing this as optional “unless you need long tests”, or by stating when it should/shouldn’t be applied.

Suggested change
- Add label: skip:test:long_running
- If long-running tests are not needed for this change, add label: skip:test:long_running
- Do not add this label when the change requires long-running test coverage

Copilot uses AI. Check for mistakes.
Comment thread PROCESS.md

4. Create GitHub PR
- PR description: link to the CR ticket
Example: "Implements PYSDK-CR-XX: https://aignx.atlassian.net/browse/PYSDK-XX"

Copilot AI Apr 24, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the Change Request PR example, the ticket key in the text ("PYSDK-CR-XX") doesn’t match the Jira URL (currently points to /browse/PYSDK-XX). This makes the copy/paste example incorrect; align the URL with the same ticket key used in the example text (or change the example text to match the URL).

Suggested change
Example: "Implements PYSDK-CR-XX: https://aignx.atlassian.net/browse/PYSDK-XX"
Example: "Implements PYSDK-CR-XX: https://aignx.atlassian.net/browse/PYSDK-CR-XX"

Copilot uses AI. Check for mistakes.
Comment thread PROCESS.md
- Add label: skip:test:long_running

5. Link PR back in Jira
- Add PR URL to "Resolved by" or as a comment on the CR ticket

Copilot AI Apr 24, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For Change Requests, step 5 says the PR URL can be added to "Resolved by" or as a comment. Earlier the doc describes bidirectional traceability as a required mechanism via the dedicated field ("Resolved by"). To avoid ambiguity (and potential compliance/tooling gaps), please specify the single required location/field for CR → PR linking, or explicitly document which options are accepted and why.

Suggested change
- Add PR URL to "Resolved by" or as a comment on the CR ticket
- Add the PR URL to the CR ticket's "Resolved by" field
- A Jira comment may be added for extra context, but it does not replace the required "Resolved by" link

Copilot uses AI. Check for mistakes.
@codecov

codecov Bot commented Apr 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

❌ Your project status has failed because the head coverage (63.77%) is below the target coverage (70.00%). You can increase the head coverage or adjust the target coverage.

❗ There is a different number of reports uploaded between BASE (62aa11f) and HEAD (4920a14). Click for more details.

HEAD has 2 uploads less than BASE
Flag BASE (62aa11f) HEAD (4920a14)
3 1

see 22 files with indirect coverage changes

@helmut-hoffer-von-ankershoffen helmut-hoffer-von-ankershoffen marked this pull request as draft April 24, 2026 13:15
@helmut-hoffer-von-ankershoffen helmut-hoffer-von-ankershoffen changed the title docs: add PROCESS.md — QMS compliance workflow for GitHub/Jira/Ketryx/Confluence docs: add PROCESS.md — QMS compliance workflow for GitHub/Jira/Ketryx/Confluence [PYSDK-81] Apr 24, 2026
@helmut-hoffer-von-ankershoffen helmut-hoffer-von-ankershoffen deleted the docs/process-and-mcp-setup branch April 24, 2026 13:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip:test:long_running Skip long-running tests (≥5min)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants