plugins/lisa/skills/lisa-linear-verify/SKILL.md
Verifies a Linear work item meets organizational standards by fetching the live item and running it through lisa-linear-validate-issue. Catches anything dropped or reformatted on write — same gates as the pre-write check, but applied to what Linear actually stored. Read-only.
npx skillsauth add codyswanngt/lisa lisa-linear-verifyInstall 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.
Fetch the live Linear work item and run it through lisa-linear-validate-issue. This catches any field that was dropped or reformatted between the pre-write spec and what Linear stored.
This skill is the destination of the lisa-tracker-verify shim when tracker = "linear". Read-only — never writes.
Reads linear.workspace, linear.teamKey from .lisa.config.json (with .local override).
$ARGUMENTS is a Linear identifier:
ENG-123)https://linear.app/<workspace>/project/<slug>-<id>)If $ARGUMENTS is not parseable, stop and report.
linear.workspace, linear.teamKey from .lisa.config.json (with .local override).lisa-linear-access operation: list-teams({query: <teamKey>}).<TEAM>-<n> → Issue/project/<slug>-<id> → ProjectCall lisa-linear-access operation: get-issue (for Issues) or lisa-linear-access operation: get-project (for Projects). Capture every field, label, relation, comment, milestone, and project membership.
Pass the fetched item to lisa-linear-validate-issue (in identifier mode — let it derive the spec from the live state). The validator runs both Specification AND Feasibility gates against what Linear actually stored.
Return the validator's report verbatim — same structured format as lisa-linear-validate-issue. Callers (especially lisa-linear-write-issue Phase 7) parse the verdict to decide whether to declare success.
If the verdict is FAIL, the caller should fix the item and re-run verify. Never declare success on a FAIL verdict.
get_issue / get_project returns an access error, surface it and exit — don't pretend the item is fine.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.