plugins/lisa-rails/skills/jira-evidence/SKILL.md
Upload evidence to GitHub pr-assets release, update PR description, upload attachments to JIRA, post comment, and move ticket to the configured review status only when `jira.workflow.review` is set (otherwise leave it in `claimed`). Reusable by any skill that captures evidence and generates evidence/comment.txt + evidence/comment.md.
npx skillsauth add codyswanngt/lisa jira-evidenceInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Upload captured evidence and generated templates to GitHub PR description and JIRA ticket. This skill is the posting step — it assumes evidence files and comment templates already exist in the evidence directory.
$ARGUMENTS: <TICKET_ID> <EVIDENCE_DIR> <PR_NUMBER>
TICKET_ID (required): JIRA ticket key (e.g., PROJ-123)EVIDENCE_DIR (required): Directory containing evidence and templates (e.g., ./evidence)PR_NUMBER (required): GitHub PR number to update descriptionJIRA_API_TOKEN environment variable setjira-cli configured (~/.config/.jira/.config.yml) — server and login are read from theregh CLI authenticatedNN-name-viewport.png (screenshots) and/or NN-name.txt/NN-name.json (text evidence)comment.txt — JIRA wiki markup (generated by generate-templates.py)comment.md — GitHub markdown (generated by generate-templates.py)bash .claude/skills/jira-evidence/scripts/post-evidence.sh <TICKET_ID> <EVIDENCE_DIR> <PR_NUMBER>
bash .claude/skills/jira-evidence/scripts/post-evidence.sh PROJ-123 ./evidence 42
~/.config/.jira/.config.yml to obtain server and login dynamically (no hardcoded values)pr-assets release — Uploads evidence files via gh release upload --clobber, creating CDN URLs## Evidence section in the PR body using gh pr edit!filename.png! wiki markup renders inlinecomment.txt as a new comment via REST API v2 (wiki markup)jira.workflow.review (or the jira.workflow.code_review alias) from .lisa.config.json / .lisa.config.local.json and transitions via jira issue move. review is optional; when unset, the ticket stays in claimed and this step is skipped. Never transition to a status not named in config.jira.workflow. If the configured status is not a valid transition from the current state, log a warning and skip.NN-name-viewport.png (e.g., 01-search-step-desktop.png)NN-name.txt or NN-name.json (e.g., 01-health-check.json)Images must be in the pr-assets GitHub release. If the release does not exist, create it first:
gh release create pr-assets --title "PR Assets" --notes "CDN for PR evidence"
!filename.png! as text (not image)The screenshot must be uploaded as a JIRA attachment before posting the comment. The script uploads attachments first then posts the comment.
Ensure JIRA_API_TOKEN is set and login in ~/.config/.jira/.config.yml matches your Atlassian account email.
tools
Configure the official SonarQube plugin + MCP as Lisa's single Sonar substrate across every supported coding agent. Installs/updates the SonarQube CLI, authenticates (browser login on a dev machine, or SONARQUBE_CLI_TOKEN headless), selects the Test Manager target, runs `sonar integrate <agent>` for each supported agent (Claude, Codex, Cursor, Copilot, Antigravity) and wires the MCP for OpenCode, then writes only non-secret policy to .lisa.config.json. Separate from the CI SonarCloud scan gate, which is unchanged.
tools
Configure the official SonarQube plugin + MCP as Lisa's single Sonar substrate across every supported coding agent. Installs/updates the SonarQube CLI, authenticates (browser login on a dev machine, or SONARQUBE_CLI_TOKEN headless), selects the Test Manager target, runs `sonar integrate <agent>` for each supported agent (Claude, Codex, Cursor, Copilot, Antigravity) and wires the MCP for OpenCode, then writes only non-secret policy to .lisa.config.json. Separate from the CI SonarCloud scan gate, which is unchanged.
tools
Configure the official SonarQube plugin + MCP as Lisa's single Sonar substrate across every supported coding agent. Installs/updates the SonarQube CLI, authenticates (browser login on a dev machine, or SONARQUBE_CLI_TOKEN headless), selects the Test Manager target, runs `sonar integrate <agent>` for each supported agent (Claude, Codex, Cursor, Copilot, Antigravity) and wires the MCP for OpenCode, then writes only non-secret policy to .lisa.config.json. Separate from the CI SonarCloud scan gate, which is unchanged.
tools
Configure the official SonarQube plugin + MCP as Lisa's single Sonar substrate across every supported coding agent. Installs/updates the SonarQube CLI, authenticates (browser login on a dev machine, or SONARQUBE_CLI_TOKEN headless), selects the Test Manager target, runs `sonar integrate <agent>` for each supported agent (Claude, Codex, Cursor, Copilot, Antigravity) and wires the MCP for OpenCode, then writes only non-secret policy to .lisa.config.json. Separate from the CI SonarCloud scan gate, which is unchanged.