plugins/lisa-agy/skills/lisa-github-add-journey/SKILL.md
Add a Validation Journey section to an existing GitHub Issue by analyzing the change type and generating appropriate verification steps with evidence markers. The GitHub counterpart of lisa-jira-add-journey.
npx skillsauth add codyswanngt/lisa lisa-github-add-journeyInstall 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.
Read an existing GitHub Issue, analyze the change type, and append a ## Validation Journey markdown section with appropriate verification steps based on the project's verification patterns.
$ARGUMENTS: <ISSUE_REF>
ISSUE_REF (required): GitHub issue ref — org/repo#<number> or full GitHub issue URL.gh CLI authenticated (gh auth status).gh issue view <number> --repo <org>/<repo> --json number,title,body,labels,assignees,milestone,url
Extract: title, body, type (from type: label), components (from component: labels), assignees, linked PRs.
Parse the body for an existing ## Validation Journey heading. It counts as complete only when the section contains at least one local typed [EVIDENCE: <artifact-type>: <name>] marker. An [EVIDENCE-REF: <work-item-ref> | <artifact-type>: <kebab-case-name>] is a non-claiming pointer and does not count; if references are present without a local claiming marker, continue drafting the missing local journey evidence instead of stopping.
Examine the body, acceptance criteria, and codebase to determine the change type:
Use Explore agents or read the codebase directly to understand which files are affected.
| Change Type | Verification Approach | |---|---| | API/GraphQL | curl commands verifying endpoints, status codes, response schemas | | Database migration | Migration execution + schema verification + rollback check | | Background job/queue | Enqueue + process + state change verification | | Library/utility | Test execution + build verification + export check | | Security fix | Exploit reproduction pre-fix + exploit failure post-fix | | Auth/authz | Multi-role verification with explicit status codes |
Compose the journey with typed [EVIDENCE: <artifact-type>: <name>] markers at key verification points. The type says HOW the proof is captured (screenshot, recording, http-transcript, cli-output, log-snippet, db-query-output, perf-trace, test-run-log, deploy-log, state-dump — the fixed taxonomy in the verification rule); the name says WHAT it proves:
## Validation Journey
### Prerequisites
- List required services, database, env vars
### Steps
1. Verify current state before changes
2. Apply the change
3. Verify expected new state [EVIDENCE: http-transcript: health-endpoint-200]
4. Test error/edge cases [EVIDENCE: screenshot: invalid-input-error-state]
5. Verify rollback if applicable [EVIDENCE: db-query-output: rows-restored-after-rollback]
### Assertions
- Describe what must be true after verification
Run \curl -s localhost:3000/health | jq .status`` not "Check the endpoint".[EVIDENCE: <artifact-type>: <kebab-case-name>]. [EVIDENCE: load-failure-handled-gracefully] names a claim with nothing to capture; write [EVIDENCE: screenshot: load-failure-error-state] or [EVIDENCE: perf-trace: pipeline-load-tti]. Names are kebab-case and unique within the ticket.Returns 200 with {status: ok} not "API works correctly".[EVIDENCE: <artifact-type>: <name>] here is the issue's evidence manifest: validation gate S14 requires at least one, and the issue cannot be closed until each named artifact is captured in its declared type and attached (see the "Per-Work-Unit Evidence Contract" in the verification rule). Name only evidence you intend to capture — and name all of it.[EVIDENCE-REF: <work-item-ref> | <artifact-type>: <kebab-case-name>] when prose points to an artifact declared by another issue. Never paste, quote, or code-format the sibling's [EVIDENCE: ...] marker: that exact prefix creates a local obligation. EVIDENCE-REF never satisfies this issue's S14 minimum, uniqueness check, capture list, or completion gate; a runtime-changing leaf still needs at least one local [EVIDENCE: ...] marker.Display the drafted Validation Journey change and ask for confirmation before updating the issue body. (If invoked from a parent skill running unattended — e.g., lisa-github-write-issue Phase 6 step 5 — proceed without the prompt.)
After approval:
current_body=$(gh issue view <number> --repo <org>/<repo> --json body --jq '.body')
# If no journey exists, append one section. If one exists without a local marker,
# merge the missing local steps/markers inside that section.
gh issue edit <number> --repo <org>/<repo> --body-file /tmp/updated-body.md
When repairing a reference-only journey, preserve all of its existing prose and EVIDENCE-REF pointers and append only the missing local steps/markers inside the existing section. Never create a second ## Validation Journey heading. Preserve every other section verbatim — never re-render the body from parsed fields, since the issue may carry extra_sections we don't recognize.
Re-read the issue and confirm the ## Validation Journey section is present and includes at least one local [EVIDENCE: <artifact-type>: <name>] marker. An EVIDENCE-REF alone does not count.
lisa-github-create guidelines.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.