qualogy-solutions/jira-ticket-analysis

Read-only snapshot · generated 2026-09-14T09:11:37.002Z · act on PRs directly in Bitbucket · ← all repos

✅ Auto-merged (1)

QRAD-248: strengthen analysis grounding and format enrichment timestamp
#5 by Deborah · feature/QRAD-248-e2e-fixes → main · Open in Bitbucket →
low

Changes a timestamp formatting helper for Jira enrichment headers (presentation-only, non-idempotency-affecting) and strengthens/expands the LLM system prompt's anti-hallucination rule, with accompanying test coverage. No auth, payments, schema, or infra changes; behavior change is confined to prompt wording and a display string.

  • <item>Timestamp change is explicitly presentation-only; docstring confirms it doesn't affect idempotency/marker detection logic</item> <item>Prompt change only tightens instructions to the LLM to avoid hallucinated tech claims, not a functional/business-logic change</item> <item>Well-covered by new and updated tests (test_jira_adapter.py, test_analyse_prompt.py)</item> <item>Small diff confined to two source files plus their tests, no touches to auth, payments, DB schema, or infra</item> </reasons>

Change is low-risk: a presentation-only timestamp formatting helper (well tested) and a prompt-wording strengthening with accompanying tests. No correctness or security issues found; only minor stylistic/readability notes.

core/orchestrator.py:236 · info
Wrapping the prompt string in parentheses with an inline comment block between two triple-quoted string literals works (Python implicitly concatenates adjacent string literals), but it's a somewhat unusual pattern that could confuse readers into thinking the comment is part of the string. Consider moving the QRAD-257 rationale comment above the `_ANALYSE_SYSTEM_PROMPT = (` line instead of inside the concatenation.
connectors/jira_adapter.py:42 · info
Truncating to minute precision means two enrichment runs within the same minute produce an identical header string. Since idempotency is based on the marker prefix (not this timestamp) this is safe per the docstring, but worth double-checking that no other code path (e.g. audit/history diffing) relies on this timestamp being unique per run.

🗄️ Closed elsewhere (merged/declined outside this tool) (1)

QRAD-248: add anti-hallucination and formatting rules to analyse prompt
#4 by Deborah · feature/QRAD-248 → main · Open in Bitbucket →
low

This PR only adds two additional guidance rules (anti-hallucination and markdown formatting) to a system prompt string used in the analyse step, plus new unit tests pinning prompt wording. No control flow, schema, API, or data handling logic is changed.

  • Change is confined to a prompt string in core/orchestrator.py plus a new test file", "No changes to business logic, schemas, APIs, auth, or infra", "Small diff size (94 lines added, 0 removed)", "Worst-case impact is degraded LLM prompt behavior, not a functional break", "Well covered by new regression tests for the prompt content"]}

Small, low-risk prompt-text addition plus dedicated regression tests. The new rules read clearly and the tests are well scoped to string-builder functions with no external dependencies. No correctness or security issues found; one minor suggestion below.

core/orchestrator.py:236 · info
Rule 6 is a good addition, but consider explicitly mentioning that this also applies to ticket_type-driven framing text (e.g. not asserting UI frameworks/tools based on ticket wording alone) to make the scope unambiguous to the model, since 'ticket text itself' is later allowed as evidence which could be read as licensing exactly the kind of inference this rule is meant to forbid.