Repository navigation
Scribe: add Jira issue creation support #1676
Description
Summary
Scribe should support creating Jira issues in addition to GitHub issues, converging with the work being done in konflux-ci/scribe4jira.
Context
Split from fullsend-ai/fullsend#5869. Scribe now has its own app identity via the scribe mint role added in fullsend-ai/fullsend#5895. Jira integration expands Scribe's capabilities to teams that track work in Jira rather than (or in addition to) GitHub Issues.
Requirements
- Scribe should be able to create issues in Jira projects.
- The implementation should converge with the existing work in konflux-ci/scribe4jira rather than building from scratch.
- Use the existing operator-provided Jira email/API-token authentication contract. Define Jira authentication strategy: interim service account credentials fullsend#4885 and JIRA identity and credential management fullsend#2269 remain related authentication follow-ups, rather than prerequisites for this MVP.
- Delegate Jira issue creation to the shared Fullsend CLI primitive so Scribe and other agents can reuse the same implementation.
Open questions
- What is the scope of convergence with konflux-ci/scribe4jira — adopt it as-is, fork, or reimplement?
- Which Jira field mappings are needed for meeting-note-derived issues?
Implementation dependency
Blocked for integration/merge on fullsend PR #8182 — fullsend issues create, implementing fullsend issue #7083.
The two-repository split is:
- Fullsend: provide the shared issue-creation CLI/tracker operation and backend API handling.
- Agents: update Scribe PR #1678 to call that operation, retaining Scribe-specific interpretation, matching, content gates, project configuration, and dry-run behavior.
Unblock when the upstream operation is merged and available in the CLI version used by the deployment, and #1678 has adopted and tested it. Verify that the integration preserves the required issue fields, including labels, and creation-field validation; merging #8182 alone does not migrate Scribe.
This is a concrete shared-implementation dependency, distinct from the earlier authentication/provider blockers. Operator-provided credentials and host-side writes remain the agreed MVP approach. Retro adoption is separate follow-up work and is not required to complete this issue.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsIn progress
Activity
ralphbean commentedon Sep 24, 2026
/fs-triage lots of things have changed between when this was originally filed and now across both the https://github.com/fullsend-ai/fullsend and https://github.com/fullsend-ai/agents repos. Is this still relevant? This is a stale-issue review, not an implementation request: even if the issue is still a valid bug and has sufficient information, do not recommend or trigger ready-to-code yet. Leave it for human prioritization after confirming whether it remains relevant. Do not close a still-relevant bug merely to avoid coding it.
fullsend-ai-triage commentedon Sep 24, 2026
🤖 Finished Triage · ❌ Failure (agent timed out after 10m0s without completing (timeout: 10m0s)) · Started 6:00 PM UTC · Completed 6:12 PM UTC
Commit:
86f9e98· View workflow run →Runtime: claude · Model: sonnet → claude-sonnet-5 · Effort: high
ascerra commentedon Oct 14, 2026
/fs-triage we are ready to work on this issue, @Shiri-sh has created a custom fullsend scribe4jira agent that proved the capabilities of this functionality I mirrored her work here so that you can observe it https://github.com/ascerra/scribe4jira unless maybe you can read the actual repo she created here https://github.com/konflux-ci/scribe4jira but I'm not sure if you can access this.
Our goal is to learn from this and add jira write support to the core agents repo here. Outline the architecture and any potential problems you see.
fullsend-ai-triage commentedon Oct 14, 2026
🤖 Finished Triage · ✅ Success · Started 4:39 PM UTC · Completed 4:41 PM UTC
Commit:
a159f38· View workflow run →Runtime: claude · Model: sonnet → claude-sonnet-5-5 · Effort: high · Cost: $0.31
fullsend-ai-triage commentedon Oct 14, 2026
This issue is still relevant, and it is blocked on upstream work. Here is an architecture outline based on the current repo and the scribe4jira mirror you shared.
What exists today
agents/scribe.md,harness/scribe.yaml,scripts/pre-scribe.src.sh,scripts/post-scribe.src.sh) is forge-pluggable throughscripts/lib/scribe-ops.lib.sh, which sources a GitHub or GitLab ops library. The contract is small:forge_fetch_*for backlog, closed issues and PRs, plusforge_list_issue_comments,forge_post_issue_comment,forge_create_issueandforge_issue_url_base.public_safe, code-fence and idempotency checks).scripts/lib/jira-triage-ops.lib.sh,providers/jira-ro.yaml), but only read-only for the agent.Suggested architecture
jira-scribe-ops.lib.shwith the sameforge_*functions and ajiracase inscribe-ops.lib.sh. Reuse the existing Jira helpers where possible; for ADF/markdown conversion, reuse thefullsend issues post-comment --tracker jirapath rather than porting the Python ADF code.scribe-result.schema.jsontracker-neutral. Jira-specific values (project key, issue type, priority, labels) should be set host-side from config, not chosen by the model.harness/scribe.yaml, following thewhen:overlay pattern inharness/triage.yaml.Potential problems
nextPageToken), andexisting_issueis an integer in the schema while Jira keys are strings. The schema,pre-scribebacklog format and the post-script's numeric checks all need a string-key path.FULLSEND_FORGEselects one forge per run, so GitHub context plus Jira writes needs an explicit decision.Once the auth strategy and write provider are settled, this can be re-triaged for implementation. As requested earlier, no implementation hand-off is recommended yet.
Blocked by:
Could not create automatically (file manually or update
create_issues.allow_targetsin config.yaml):Prerequisite: fullsend-ai/fullsend — Add a Jira write-capable provider/profile (fullsend-jira-rw) for agents that create issues and comments
The agents repo ships only a read-only Jira provider and profile (type
fullsend-jira-ro, endpoint accessread-only,curlbinary). The Scribe agent needs to create Jira issues and add comments (POST/PUT against/rest/api/3/issueand/rest/api/3/issue/{key}/comment), but the agent must never see the real Jira token.Requested:
fullsend-jira-rw) whose placeholder token is substituted by the egress proxy, scoped to*.atlassian.net, usable from a host-side post-script (preferred, matching how GitHub/GitLab writes are done after the agent exits) and, if needed, from the sandbox.scribemint role (added with the opt-in scribe agent role) should obtain/hold Jira credentials, consistent with the outcome of the Jira authentication strategy decision (interim long-lived service account credentials).If this is already covered by existing work on Jira identity and credential management, please link it and close this as a duplicate.
ascerra commentedon Oct 14, 2026
/fs-triage I agree with keeping Jira writes in the host-side post-script and preserving Scribe’s validation boundary. However, I don’t think this issue needs to remain blocked on authentication strategy, enrollment tooling, or a new write-capable provider.
Authentication already has an accepted initial path. The official Jira setup documents operator-provided JIRA_TOKEN, JIRA_USER_EMAIL, and JIRA_BASE_URL. fullsend#2269 explicitly says that teams bring their own service account for the MVP and that the mint is not a prerequisite. The latest assessment on #4885 also says interim authentication is implemented and documented; rotation guidance and future authentication remain follow-up work. We can initially support that existing email/API-token contract without promising every Atlassian service-account or OAuth credential model.
Host-side writes do not require a new sandbox write provider. The agents repo already has a Jira issue-creation implementation using the runner’s credentials. Scribe can similarly pass prepared context into the sandbox, receive structured proposals, validate them, and perform writes afterward. Core Fullsend also already ships a read-write Atlassian profile, although sandbox write access is unnecessary for this approach.
The remaining points should become implementation requirements within this issue:
I suggest an initial delivery of new Jira issues from meeting notes through scheduled or manually triggered workflows, using operator-provided credentials in a private deployment, with dry-run enabled by default. Acceptance should include project scoping, preserved content gates, accurate pagination/truncation handling, duplicate prevention on reruns, and tests proving rejected output and dry-runs perform no writes. Logs and artifacts must remain private even during dry-runs. Any installed schedule should remain disabled until the operator explicitly enables it.
Could we remove #4885 and #2269 as blanket blockers, retain them as related follow-ups, and re-triage against this bounded scope? That would clarify implementation readiness while leaving prioritization and any implementation hand-off to maintainers.
fullsend-ai-triage commentedon Oct 14, 2026
🤖 Finished Triage · ✅ Success · Started 5:08 PM UTC · Completed 5:10 PM UTC
Commit:
a159f38· View workflow run →Runtime: claude · Model: sonnet → claude-sonnet-5-5 · Effort: high · Cost: $0.29
11 remaining items
ascerra commentedon Oct 14, 2026
/fs-code
fullsend-ai-coder commentedon Oct 14, 2026
🤖 Finished Code · ✅ Success · Started 5:38 PM UTC · Completed 5:46 PM UTC
Commit:
a159f38· View workflow run →Runtime: claude · Model: opus → claude-opus-5-5 · Effort: high · Cost: $2.56
redhat-chai-bot commentedon Oct 14, 2026
Related Jira work: retro and prioritize
Related issues:
Implementation under review: #1678
The Scribe implementation offers reusable building blocks for these issues: Jira Cloud backlog reads with pagination, ADF conversion, host-side issue creation, creation-field validation, and exact-summary duplicate checks in
scripts/lib/jira-scribe-ops.lib.sh. It also separates the issue tracker from the repository forge throughFULLSEND_TRACKER.The strongest overlap is with retro's Jira follow-up issue creation requirements. Prioritize can reuse issue-reading/conversion patterns, but still needs its own Jira input integration and score write-back. Neither agent automatically inherits this support: the implementation is currently Scribe-specific and uses
SCRIBE_JIRA_*configuration.The bounded host-side write approach uses operator-provided credentials and does not require a new sandbox write provider, as clarified in #1676 (comment). Jira comments, event polling, and automated project enrollment remain outside this MVP.
Suggested relationship: related/reusable implementation work, rather than treating this issue as completion of either feature or a mandatory prerequisite for starting them. Shared configuration should follow the harness-composition boundary in ADR 0080.
AI-generated. Review for accuracy.
fullsend-ai-triage commentedon Oct 14, 2026
🤖 Finished Triage · ✅ Success · Started 7:17 PM UTC · Completed 7:19 PM UTC
Commit:
a159f38· View workflow run →Runtime: claude · Model: sonnet → claude-sonnet-5-5 · Effort: high · Cost: $0.14
fullsend-ai-triage commentedon Oct 14, 2026
This issue is already being addressed: an open, ready-for-review PR implements the bounded MVP (new Jira issues only, one operator-configured project and issue type, host-side writes with operator-provided credentials, dry-run support, and
FULLSEND_TRACKERkept separate from the hosting forge).Remaining gate before merge: the PR states it is blocked for merge on the upstream
fullsend issues createCLI work (fullsend PR #8182, tracking issue #7083), which is still open. Once that lands, the PR should switch from its current direct Jira creation path to the shared CLI command, pin and document the CLI version, and confirm that labels and creation-field validation are preserved. This is a merge dependency for the existing PR, not a reason to start separate work.Carried-forward points from earlier triage that the PR review should confirm:
existing_issueas an integer. Jira keys such asPROJ-123need a string path, with regression tests showing GitHub/GitLab still reject non-numeric values.nextPageToken).The upstream scribe4jira repository could not be reviewed; only the public mirror was. The Jira helpers in this PR may also be reusable for the retro and prioritize Jira issues, but those are related follow-ups, not prerequisites or completed by this work.
Addressed by:
refactor(fullsend-ai#1676): delegate Jira issue creation to fullsend …
andrewevansrh commentedon Oct 21, 2026
@ascerra I opened this PR to continue the work you started #1739. I've also left a comment on your PR at #1678. Since my PR is now updated with the new CLI command, I think it would probably replace the original one you opened. Just wanted to call this out here in this issue.
refactor(fullsend-ai#1676): delegate Jira issue creation to fullsend …
fix(fullsend-ai#1676): address Qodo review findings for Jira scribe i…