@codyswann/lisa 2.119.0 → 2.121.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +18 -0
- package/dist/agy/agents-md-installer.d.ts +24 -0
- package/dist/agy/agents-md-installer.d.ts.map +1 -0
- package/dist/agy/agents-md-installer.js +126 -0
- package/dist/agy/agents-md-installer.js.map +1 -0
- package/dist/agy/mcp-installer.d.ts +84 -0
- package/dist/agy/mcp-installer.d.ts.map +1 -0
- package/dist/agy/mcp-installer.js +134 -0
- package/dist/agy/mcp-installer.js.map +1 -0
- package/dist/agy/plugin-installer.d.ts +21 -0
- package/dist/agy/plugin-installer.d.ts.map +1 -0
- package/dist/agy/plugin-installer.js +84 -0
- package/dist/agy/plugin-installer.js.map +1 -0
- package/dist/claude/claude-md-installer.d.ts +18 -0
- package/dist/claude/claude-md-installer.d.ts.map +1 -0
- package/dist/claude/claude-md-installer.js +62 -0
- package/dist/claude/claude-md-installer.js.map +1 -0
- package/dist/codex/lisa-plugin-detection.d.ts +69 -0
- package/dist/codex/lisa-plugin-detection.d.ts.map +1 -0
- package/dist/codex/lisa-plugin-detection.js +135 -0
- package/dist/codex/lisa-plugin-detection.js.map +1 -0
- package/dist/copilot/copilot-instructions-installer.d.ts +18 -0
- package/dist/copilot/copilot-instructions-installer.d.ts.map +1 -0
- package/dist/copilot/copilot-instructions-installer.js +61 -0
- package/dist/copilot/copilot-instructions-installer.js.map +1 -0
- package/dist/copilot/plugin-installer.d.ts +29 -0
- package/dist/copilot/plugin-installer.d.ts.map +1 -0
- package/dist/copilot/plugin-installer.js +140 -0
- package/dist/copilot/plugin-installer.js.map +1 -0
- package/dist/core/config.d.ts +8 -4
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +4 -0
- package/dist/core/config.js.map +1 -1
- package/dist/core/lisa.d.ts +35 -0
- package/dist/core/lisa.d.ts.map +1 -1
- package/dist/core/lisa.js +93 -0
- package/dist/core/lisa.js.map +1 -1
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/hooks/block-no-verify.sh +37 -0
- package/plugins/lisa/.codex-plugin/hooks/inject-flow-context.sh +12 -0
- package/plugins/lisa/.codex-plugin/hooks/inject-rules.sh +33 -0
- package/plugins/lisa/.codex-plugin/hooks/install-pkgs.sh +69 -0
- package/plugins/lisa/.codex-plugin/hooks/notify-ntfy.sh +183 -0
- package/plugins/lisa/.codex-plugin/hooks/setup-jira-cli.sh +51 -0
- package/plugins/lisa/.codex-plugin/hooks.json +75 -0
- package/plugins/lisa/.codex-plugin/plugin.json +2 -1
- package/plugins/lisa-agy/agents/architecture-specialist.md +47 -0
- package/plugins/lisa-agy/agents/bug-fixer.md +39 -0
- package/plugins/lisa-agy/agents/builder.md +40 -0
- package/plugins/lisa-agy/agents/confluence-prd-intake.md +65 -0
- package/plugins/lisa-agy/agents/debug-specialist.md +114 -0
- package/plugins/lisa-agy/agents/git-history-analyzer.md +183 -0
- package/plugins/lisa-agy/agents/github-agent.md +148 -0
- package/plugins/lisa-agy/agents/github-build-intake.md +64 -0
- package/plugins/lisa-agy/agents/github-prd-intake.md +66 -0
- package/plugins/lisa-agy/agents/jira-agent.md +129 -0
- package/plugins/lisa-agy/agents/jira-build-intake.md +64 -0
- package/plugins/lisa-agy/agents/learner.md +43 -0
- package/plugins/lisa-agy/agents/learnings-synthesizer.md +135 -0
- package/plugins/lisa-agy/agents/linear-agent.md +134 -0
- package/plugins/lisa-agy/agents/linear-build-intake.md +64 -0
- package/plugins/lisa-agy/agents/linear-prd-intake.md +66 -0
- package/plugins/lisa-agy/agents/notion-prd-intake.md +63 -0
- package/plugins/lisa-agy/agents/performance-specialist.md +85 -0
- package/plugins/lisa-agy/agents/pr-mining-specialist.md +85 -0
- package/plugins/lisa-agy/agents/product-specialist.md +63 -0
- package/plugins/lisa-agy/agents/quality-specialist.md +56 -0
- package/plugins/lisa-agy/agents/security-specialist.md +51 -0
- package/plugins/lisa-agy/agents/skill-evaluator.md +245 -0
- package/plugins/lisa-agy/agents/spec-conformance-specialist.md +49 -0
- package/plugins/lisa-agy/agents/test-specialist.md +49 -0
- package/plugins/lisa-agy/agents/tracker-mining-specialist.md +85 -0
- package/plugins/lisa-agy/agents/verification-specialist.md +135 -0
- package/plugins/lisa-agy/commands/automation-status.md +12 -0
- package/plugins/lisa-agy/commands/codify-verification.md +6 -0
- package/plugins/lisa-agy/commands/debrief/apply.md +6 -0
- package/plugins/lisa-agy/commands/debrief.md +6 -0
- package/plugins/lisa-agy/commands/doctor.md +6 -0
- package/plugins/lisa-agy/commands/fix/linter-error.md +7 -0
- package/plugins/lisa-agy/commands/git/commit.md +7 -0
- package/plugins/lisa-agy/commands/git/prune.md +6 -0
- package/plugins/lisa-agy/commands/git/submit-pr.md +7 -0
- package/plugins/lisa-agy/commands/implement.md +6 -0
- package/plugins/lisa-agy/commands/improve/code-complexity.md +6 -0
- package/plugins/lisa-agy/commands/improve/max-lines-per-function.md +7 -0
- package/plugins/lisa-agy/commands/improve/max-lines.md +7 -0
- package/plugins/lisa-agy/commands/improve/test-coverage.md +7 -0
- package/plugins/lisa-agy/commands/improve/tests.md +7 -0
- package/plugins/lisa-agy/commands/intake-explain.md +31 -0
- package/plugins/lisa-agy/commands/intake.md +6 -0
- package/plugins/lisa-agy/commands/monitor.md +6 -0
- package/plugins/lisa-agy/commands/plan.md +6 -0
- package/plugins/lisa-agy/commands/plugin-sync-explain.md +8 -0
- package/plugins/lisa-agy/commands/product-walkthrough.md +7 -0
- package/plugins/lisa-agy/commands/project-ideation.md +6 -0
- package/plugins/lisa-agy/commands/pull-request/review.md +7 -0
- package/plugins/lisa-agy/commands/queue-status.md +34 -0
- package/plugins/lisa-agy/commands/repair-intake.md +6 -0
- package/plugins/lisa-agy/commands/research.md +6 -0
- package/plugins/lisa-agy/commands/review/local.md +6 -0
- package/plugins/lisa-agy/commands/security/zap-scan.md +6 -0
- package/plugins/lisa-agy/commands/setup/atlassian.md +7 -0
- package/plugins/lisa-agy/commands/setup/confluence.md +7 -0
- package/plugins/lisa-agy/commands/setup/github.md +7 -0
- package/plugins/lisa-agy/commands/setup/jira.md +7 -0
- package/plugins/lisa-agy/commands/setup/linear.md +7 -0
- package/plugins/lisa-agy/commands/setup/notion.md +7 -0
- package/plugins/lisa-agy/commands/setup-automations.md +6 -0
- package/plugins/lisa-agy/commands/tear-down-automations.md +6 -0
- package/plugins/lisa-agy/commands/verify-prd.md +6 -0
- package/plugins/lisa-agy/commands/verify.md +6 -0
- package/plugins/lisa-agy/commands/wiki/install.md +7 -0
- package/plugins/lisa-agy/plugin.json +8 -0
- package/plugins/lisa-agy/scripts/automation-status-claude-adapter.mjs +672 -0
- package/plugins/lisa-agy/scripts/automation-status-codex-adapter.mjs +697 -0
- package/plugins/lisa-agy/scripts/automation-status-contract-drift.mjs +392 -0
- package/plugins/lisa-agy/scripts/automation-status-expected-fleet.mjs +319 -0
- package/plugins/lisa-agy/scripts/automation-status-report.mjs +170 -0
- package/plugins/lisa-agy/scripts/doctor-report.mjs +143 -0
- package/plugins/lisa-agy/scripts/plugin-sync-explain.mjs +512 -0
- package/plugins/lisa-agy/scripts/project-ideation-idempotency-harness.mjs +319 -0
- package/plugins/lisa-agy/scripts/queue-contract-resolution.mjs +453 -0
- package/plugins/lisa-agy/scripts/queue-health-classification.mjs +157 -0
- package/plugins/lisa-agy/scripts/queue-status-build-readers.mjs +509 -0
- package/plugins/lisa-agy/scripts/queue-status-prd-readers.mjs +452 -0
- package/plugins/lisa-agy/skills/acceptance-criteria/SKILL.md +71 -0
- package/plugins/lisa-agy/skills/agent-design-best-practices/SKILL.md +219 -0
- package/plugins/lisa-agy/skills/atlassian-access/SKILL.md +293 -0
- package/plugins/lisa-agy/skills/automation-status/SKILL.md +111 -0
- package/plugins/lisa-agy/skills/bug-triage/SKILL.md +23 -0
- package/plugins/lisa-agy/skills/codebase-research/SKILL.md +87 -0
- package/plugins/lisa-agy/skills/codify-verification/SKILL.md +152 -0
- package/plugins/lisa-agy/skills/confluence-prd-intake/SKILL.md +417 -0
- package/plugins/lisa-agy/skills/confluence-to-tracker/SKILL.md +360 -0
- package/plugins/lisa-agy/skills/confluence-write-prd/SKILL.md +109 -0
- package/plugins/lisa-agy/skills/debrief/SKILL.md +94 -0
- package/plugins/lisa-agy/skills/debrief-apply/SKILL.md +63 -0
- package/plugins/lisa-agy/skills/doctor/SKILL.md +317 -0
- package/plugins/lisa-agy/skills/epic-triage/SKILL.md +28 -0
- package/plugins/lisa-agy/skills/fix-linter-error/SKILL.md +45 -0
- package/plugins/lisa-agy/skills/git-commit/SKILL.md +48 -0
- package/plugins/lisa-agy/skills/git-prune/SKILL.md +35 -0
- package/plugins/lisa-agy/skills/git-submit-pr/SKILL.md +105 -0
- package/plugins/lisa-agy/skills/github-add-journey/SKILL.md +115 -0
- package/plugins/lisa-agy/skills/github-build-intake/SKILL.md +377 -0
- package/plugins/lisa-agy/skills/github-create/SKILL.md +101 -0
- package/plugins/lisa-agy/skills/github-evidence/SKILL.md +110 -0
- package/plugins/lisa-agy/skills/github-journey/SKILL.md +121 -0
- package/plugins/lisa-agy/skills/github-prd-intake/SKILL.md +432 -0
- package/plugins/lisa-agy/skills/github-project-v2/SKILL.md +227 -0
- package/plugins/lisa-agy/skills/github-read-issue/SKILL.md +248 -0
- package/plugins/lisa-agy/skills/github-sync/SKILL.md +119 -0
- package/plugins/lisa-agy/skills/github-to-tracker/SKILL.md +345 -0
- package/plugins/lisa-agy/skills/github-validate-issue/SKILL.md +331 -0
- package/plugins/lisa-agy/skills/github-verify/SKILL.md +29 -0
- package/plugins/lisa-agy/skills/github-write-issue/SKILL.md +339 -0
- package/plugins/lisa-agy/skills/github-write-prd/SKILL.md +157 -0
- package/plugins/lisa-agy/skills/implement/SKILL.md +145 -0
- package/plugins/lisa-agy/skills/improve-code-complexity/SKILL.md +44 -0
- package/plugins/lisa-agy/skills/improve-max-lines/SKILL.md +45 -0
- package/plugins/lisa-agy/skills/improve-max-lines-per-function/SKILL.md +46 -0
- package/plugins/lisa-agy/skills/improve-test-coverage/SKILL.md +44 -0
- package/plugins/lisa-agy/skills/improve-tests/SKILL.md +47 -0
- package/plugins/lisa-agy/skills/intake/SKILL.md +132 -0
- package/plugins/lisa-agy/skills/intake-explain/SKILL.md +279 -0
- package/plugins/lisa-agy/skills/jira-add-journey/SKILL.md +121 -0
- package/plugins/lisa-agy/skills/jira-build-intake/SKILL.md +286 -0
- package/plugins/lisa-agy/skills/jira-create/SKILL.md +154 -0
- package/plugins/lisa-agy/skills/jira-evidence/SKILL.md +90 -0
- package/plugins/lisa-agy/skills/jira-evidence/scripts/post-evidence.sh +163 -0
- package/plugins/lisa-agy/skills/jira-journey/SKILL.md +127 -0
- package/plugins/lisa-agy/skills/jira-journey/scripts/generate-templates.py +233 -0
- package/plugins/lisa-agy/skills/jira-journey/scripts/parse-plan.py +368 -0
- package/plugins/lisa-agy/skills/jira-read-ticket/SKILL.md +198 -0
- package/plugins/lisa-agy/skills/jira-read-ticket/scripts/download-attachment.sh +110 -0
- package/plugins/lisa-agy/skills/jira-sync/SKILL.md +95 -0
- package/plugins/lisa-agy/skills/jira-validate-ticket/SKILL.md +318 -0
- package/plugins/lisa-agy/skills/jira-verify/SKILL.md +30 -0
- package/plugins/lisa-agy/skills/jira-write-ticket/SKILL.md +265 -0
- package/plugins/lisa-agy/skills/jsdoc-best-practices/SKILL.md +432 -0
- package/plugins/lisa-agy/skills/linear-add-journey/SKILL.md +105 -0
- package/plugins/lisa-agy/skills/linear-build-intake/SKILL.md +283 -0
- package/plugins/lisa-agy/skills/linear-create/SKILL.md +146 -0
- package/plugins/lisa-agy/skills/linear-evidence/SKILL.md +103 -0
- package/plugins/lisa-agy/skills/linear-journey/SKILL.md +134 -0
- package/plugins/lisa-agy/skills/linear-prd-intake/SKILL.md +383 -0
- package/plugins/lisa-agy/skills/linear-read-issue/SKILL.md +200 -0
- package/plugins/lisa-agy/skills/linear-sync/SKILL.md +114 -0
- package/plugins/lisa-agy/skills/linear-to-tracker/SKILL.md +342 -0
- package/plugins/lisa-agy/skills/linear-validate-issue/SKILL.md +313 -0
- package/plugins/lisa-agy/skills/linear-verify/SKILL.md +51 -0
- package/plugins/lisa-agy/skills/linear-write-issue/SKILL.md +292 -0
- package/plugins/lisa-agy/skills/linear-write-prd/SKILL.md +96 -0
- package/plugins/lisa-agy/skills/lisa-review-implementation/SKILL.md +209 -0
- package/plugins/lisa-agy/skills/monitor/SKILL.md +48 -0
- package/plugins/lisa-agy/skills/nightly-add-test-coverage/SKILL.md +40 -0
- package/plugins/lisa-agy/skills/nightly-improve-tests/SKILL.md +29 -0
- package/plugins/lisa-agy/skills/nightly-lower-code-complexity/SKILL.md +28 -0
- package/plugins/lisa-agy/skills/notion-access/SKILL.md +226 -0
- package/plugins/lisa-agy/skills/notion-prd-intake/SKILL.md +360 -0
- package/plugins/lisa-agy/skills/notion-to-tracker/SKILL.md +357 -0
- package/plugins/lisa-agy/skills/notion-write-prd/SKILL.md +109 -0
- package/plugins/lisa-agy/skills/performance-review/SKILL.md +94 -0
- package/plugins/lisa-agy/skills/plan/SKILL.md +60 -0
- package/plugins/lisa-agy/skills/plugin-sync-explain/SKILL.md +53 -0
- package/plugins/lisa-agy/skills/prd-backlink/SKILL.md +265 -0
- package/plugins/lisa-agy/skills/prd-source-write/SKILL.md +101 -0
- package/plugins/lisa-agy/skills/prd-ticket-coverage/SKILL.md +170 -0
- package/plugins/lisa-agy/skills/product-walkthrough/SKILL.md +129 -0
- package/plugins/lisa-agy/skills/project-ideation/SKILL.md +315 -0
- package/plugins/lisa-agy/skills/project-ideation/examples/evidence-card-format.md +21 -0
- package/plugins/lisa-agy/skills/project-ideation/examples/host-project-only.md +22 -0
- package/plugins/lisa-agy/skills/project-ideation/examples/idempotency-verification-harness.md +57 -0
- package/plugins/lisa-agy/skills/project-ideation/examples/public-external-inspiration.md +22 -0
- package/plugins/lisa-agy/skills/project-ideation/examples/unavailable-data-rejection.md +22 -0
- package/plugins/lisa-agy/skills/pull-request-review/SKILL.md +68 -0
- package/plugins/lisa-agy/skills/quality-review/SKILL.md +54 -0
- package/plugins/lisa-agy/skills/queue-status/SKILL.md +133 -0
- package/plugins/lisa-agy/skills/repair-intake/SKILL.md +584 -0
- package/plugins/lisa-agy/skills/reproduce-bug/SKILL.md +96 -0
- package/plugins/lisa-agy/skills/research/SKILL.md +68 -0
- package/plugins/lisa-agy/skills/review-local/SKILL.md +88 -0
- package/plugins/lisa-agy/skills/root-cause-analysis/SKILL.md +155 -0
- package/plugins/lisa-agy/skills/security-review/SKILL.md +57 -0
- package/plugins/lisa-agy/skills/security-zap-scan/SKILL.md +33 -0
- package/plugins/lisa-agy/skills/setup-atlassian/SKILL.md +347 -0
- package/plugins/lisa-agy/skills/setup-automations/SKILL.md +99 -0
- package/plugins/lisa-agy/skills/setup-confluence/SKILL.md +254 -0
- package/plugins/lisa-agy/skills/setup-github/SKILL.md +268 -0
- package/plugins/lisa-agy/skills/setup-jira/SKILL.md +198 -0
- package/plugins/lisa-agy/skills/setup-linear/SKILL.md +251 -0
- package/plugins/lisa-agy/skills/setup-notion/SKILL.md +316 -0
- package/plugins/lisa-agy/skills/spec-conformance/SKILL.md +159 -0
- package/plugins/lisa-agy/skills/task-decomposition/SKILL.md +127 -0
- package/plugins/lisa-agy/skills/task-triage/SKILL.md +23 -0
- package/plugins/lisa-agy/skills/tdd-implementation/SKILL.md +83 -0
- package/plugins/lisa-agy/skills/tear-down-automations/SKILL.md +34 -0
- package/plugins/lisa-agy/skills/test-strategy/SKILL.md +63 -0
- package/plugins/lisa-agy/skills/ticket-triage/SKILL.md +182 -0
- package/plugins/lisa-agy/skills/tracker-add-journey/SKILL.md +26 -0
- package/plugins/lisa-agy/skills/tracker-build-intake/SKILL.md +64 -0
- package/plugins/lisa-agy/skills/tracker-create/SKILL.md +26 -0
- package/plugins/lisa-agy/skills/tracker-evidence/SKILL.md +52 -0
- package/plugins/lisa-agy/skills/tracker-journey/SKILL.md +26 -0
- package/plugins/lisa-agy/skills/tracker-read/SKILL.md +27 -0
- package/plugins/lisa-agy/skills/tracker-source-artifacts/SKILL.md +107 -0
- package/plugins/lisa-agy/skills/tracker-sync/SKILL.md +51 -0
- package/plugins/lisa-agy/skills/tracker-validate/SKILL.md +36 -0
- package/plugins/lisa-agy/skills/tracker-verify/SKILL.md +27 -0
- package/plugins/lisa-agy/skills/tracker-write/SKILL.md +53 -0
- package/plugins/lisa-agy/skills/usage-accounting/SKILL.md +170 -0
- package/plugins/lisa-agy/skills/verification-lifecycle/SKILL.md +339 -0
- package/plugins/lisa-agy/skills/verify/SKILL.md +49 -0
- package/plugins/lisa-agy/skills/verify-prd/SKILL.md +392 -0
- package/plugins/lisa-agy/skills/wiki-install/SKILL.md +101 -0
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +72 -0
- package/plugins/lisa-copilot/agents/architecture-specialist.agent.md +47 -0
- package/plugins/lisa-copilot/agents/bug-fixer.agent.md +39 -0
- package/plugins/lisa-copilot/agents/builder.agent.md +40 -0
- package/plugins/lisa-copilot/agents/confluence-prd-intake.agent.md +65 -0
- package/plugins/lisa-copilot/agents/debug-specialist.agent.md +114 -0
- package/plugins/lisa-copilot/agents/git-history-analyzer.agent.md +183 -0
- package/plugins/lisa-copilot/agents/github-agent.agent.md +148 -0
- package/plugins/lisa-copilot/agents/github-build-intake.agent.md +64 -0
- package/plugins/lisa-copilot/agents/github-prd-intake.agent.md +66 -0
- package/plugins/lisa-copilot/agents/jira-agent.agent.md +129 -0
- package/plugins/lisa-copilot/agents/jira-build-intake.agent.md +64 -0
- package/plugins/lisa-copilot/agents/learner.agent.md +43 -0
- package/plugins/lisa-copilot/agents/learnings-synthesizer.agent.md +135 -0
- package/plugins/lisa-copilot/agents/linear-agent.agent.md +134 -0
- package/plugins/lisa-copilot/agents/linear-build-intake.agent.md +64 -0
- package/plugins/lisa-copilot/agents/linear-prd-intake.agent.md +66 -0
- package/plugins/lisa-copilot/agents/notion-prd-intake.agent.md +63 -0
- package/plugins/lisa-copilot/agents/performance-specialist.agent.md +85 -0
- package/plugins/lisa-copilot/agents/pr-mining-specialist.agent.md +85 -0
- package/plugins/lisa-copilot/agents/product-specialist.agent.md +63 -0
- package/plugins/lisa-copilot/agents/quality-specialist.agent.md +56 -0
- package/plugins/lisa-copilot/agents/security-specialist.agent.md +51 -0
- package/plugins/lisa-copilot/agents/skill-evaluator.agent.md +245 -0
- package/plugins/lisa-copilot/agents/spec-conformance-specialist.agent.md +49 -0
- package/plugins/lisa-copilot/agents/test-specialist.agent.md +49 -0
- package/plugins/lisa-copilot/agents/tracker-mining-specialist.agent.md +85 -0
- package/plugins/lisa-copilot/agents/verification-specialist.agent.md +135 -0
- package/plugins/lisa-copilot/commands/automation-status.md +12 -0
- package/plugins/lisa-copilot/commands/codify-verification.md +6 -0
- package/plugins/lisa-copilot/commands/debrief/apply.md +6 -0
- package/plugins/lisa-copilot/commands/debrief.md +6 -0
- package/plugins/lisa-copilot/commands/doctor.md +6 -0
- package/plugins/lisa-copilot/commands/fix/linter-error.md +7 -0
- package/plugins/lisa-copilot/commands/git/commit.md +7 -0
- package/plugins/lisa-copilot/commands/git/prune.md +6 -0
- package/plugins/lisa-copilot/commands/git/submit-pr.md +7 -0
- package/plugins/lisa-copilot/commands/implement.md +6 -0
- package/plugins/lisa-copilot/commands/improve/code-complexity.md +6 -0
- package/plugins/lisa-copilot/commands/improve/max-lines-per-function.md +7 -0
- package/plugins/lisa-copilot/commands/improve/max-lines.md +7 -0
- package/plugins/lisa-copilot/commands/improve/test-coverage.md +7 -0
- package/plugins/lisa-copilot/commands/improve/tests.md +7 -0
- package/plugins/lisa-copilot/commands/intake-explain.md +31 -0
- package/plugins/lisa-copilot/commands/intake.md +6 -0
- package/plugins/lisa-copilot/commands/monitor.md +6 -0
- package/plugins/lisa-copilot/commands/plan.md +6 -0
- package/plugins/lisa-copilot/commands/plugin-sync-explain.md +8 -0
- package/plugins/lisa-copilot/commands/product-walkthrough.md +7 -0
- package/plugins/lisa-copilot/commands/project-ideation.md +6 -0
- package/plugins/lisa-copilot/commands/pull-request/review.md +7 -0
- package/plugins/lisa-copilot/commands/queue-status.md +34 -0
- package/plugins/lisa-copilot/commands/repair-intake.md +6 -0
- package/plugins/lisa-copilot/commands/research.md +6 -0
- package/plugins/lisa-copilot/commands/review/local.md +6 -0
- package/plugins/lisa-copilot/commands/security/zap-scan.md +6 -0
- package/plugins/lisa-copilot/commands/setup/atlassian.md +7 -0
- package/plugins/lisa-copilot/commands/setup/confluence.md +7 -0
- package/plugins/lisa-copilot/commands/setup/github.md +7 -0
- package/plugins/lisa-copilot/commands/setup/jira.md +7 -0
- package/plugins/lisa-copilot/commands/setup/linear.md +7 -0
- package/plugins/lisa-copilot/commands/setup/notion.md +7 -0
- package/plugins/lisa-copilot/commands/setup-automations.md +6 -0
- package/plugins/lisa-copilot/commands/tear-down-automations.md +6 -0
- package/plugins/lisa-copilot/commands/verify-prd.md +6 -0
- package/plugins/lisa-copilot/commands/verify.md +6 -0
- package/plugins/lisa-copilot/commands/wiki/install.md +7 -0
- package/plugins/lisa-copilot/hooks/block-no-verify.sh +37 -0
- package/plugins/lisa-copilot/hooks/inject-rules.sh +33 -0
- package/plugins/lisa-copilot/hooks/install-pkgs.sh +69 -0
- package/plugins/lisa-copilot/hooks/notify-ntfy.sh +183 -0
- package/plugins/lisa-copilot/hooks/setup-jira-cli.sh +51 -0
- package/plugins/lisa-copilot/rules/eager/base-rules.md +70 -0
- package/plugins/lisa-copilot/rules/eager/coding-philosophy.md +27 -0
- package/plugins/lisa-copilot/rules/eager/config-resolution.md +28 -0
- package/plugins/lisa-copilot/rules/eager/documentation-source-paths.md +13 -0
- package/plugins/lisa-copilot/rules/eager/empirical-inquiry.md +22 -0
- package/plugins/lisa-copilot/rules/eager/intent-routing.md +18 -0
- package/plugins/lisa-copilot/rules/eager/leaf-only-lifecycle.md +39 -0
- package/plugins/lisa-copilot/rules/eager/prd-lifecycle-rollup.md +31 -0
- package/plugins/lisa-copilot/rules/eager/repo-scope-split.md +39 -0
- package/plugins/lisa-copilot/rules/eager/security-audit-handling.md +29 -0
- package/plugins/lisa-copilot/rules/eager/usage-accounting.md +28 -0
- package/plugins/lisa-copilot/rules/eager/verification.md +21 -0
- package/plugins/lisa-copilot/rules/eager/wiki-knowledge-source.md +16 -0
- package/plugins/lisa-copilot/rules/reference/base-rules.md +133 -0
- package/plugins/lisa-copilot/rules/reference/coding-philosophy.md +428 -0
- package/plugins/lisa-copilot/rules/reference/config-resolution.md +691 -0
- package/plugins/lisa-copilot/rules/reference/documentation-source-paths.md +13 -0
- package/plugins/lisa-copilot/rules/reference/empirical-inquiry.md +27 -0
- package/plugins/lisa-copilot/rules/reference/intent-routing.md +407 -0
- package/plugins/lisa-copilot/rules/reference/leaf-only-lifecycle.md +120 -0
- package/plugins/lisa-copilot/rules/reference/prd-lifecycle-rollup.md +156 -0
- package/plugins/lisa-copilot/rules/reference/repo-scope-split.md +58 -0
- package/plugins/lisa-copilot/rules/reference/security-audit-handling.md +30 -0
- package/plugins/lisa-copilot/rules/reference/usage-accounting.md +144 -0
- package/plugins/lisa-copilot/rules/reference/verification.md +124 -0
- package/plugins/lisa-copilot/rules/reference/wiki-knowledge-source.md +14 -0
- package/plugins/lisa-copilot/scripts/automation-status-claude-adapter.mjs +672 -0
- package/plugins/lisa-copilot/scripts/automation-status-codex-adapter.mjs +697 -0
- package/plugins/lisa-copilot/scripts/automation-status-contract-drift.mjs +392 -0
- package/plugins/lisa-copilot/scripts/automation-status-expected-fleet.mjs +319 -0
- package/plugins/lisa-copilot/scripts/automation-status-report.mjs +170 -0
- package/plugins/lisa-copilot/scripts/doctor-report.mjs +143 -0
- package/plugins/lisa-copilot/scripts/plugin-sync-explain.mjs +512 -0
- package/plugins/lisa-copilot/scripts/project-ideation-idempotency-harness.mjs +319 -0
- package/plugins/lisa-copilot/scripts/queue-contract-resolution.mjs +453 -0
- package/plugins/lisa-copilot/scripts/queue-health-classification.mjs +157 -0
- package/plugins/lisa-copilot/scripts/queue-status-build-readers.mjs +509 -0
- package/plugins/lisa-copilot/scripts/queue-status-prd-readers.mjs +452 -0
- package/plugins/lisa-copilot/skills/acceptance-criteria/SKILL.md +71 -0
- package/plugins/lisa-copilot/skills/agent-design-best-practices/SKILL.md +219 -0
- package/plugins/lisa-copilot/skills/atlassian-access/SKILL.md +293 -0
- package/plugins/lisa-copilot/skills/automation-status/SKILL.md +111 -0
- package/plugins/lisa-copilot/skills/bug-triage/SKILL.md +23 -0
- package/plugins/lisa-copilot/skills/codebase-research/SKILL.md +87 -0
- package/plugins/lisa-copilot/skills/codify-verification/SKILL.md +152 -0
- package/plugins/lisa-copilot/skills/confluence-prd-intake/SKILL.md +417 -0
- package/plugins/lisa-copilot/skills/confluence-to-tracker/SKILL.md +360 -0
- package/plugins/lisa-copilot/skills/confluence-write-prd/SKILL.md +109 -0
- package/plugins/lisa-copilot/skills/debrief/SKILL.md +94 -0
- package/plugins/lisa-copilot/skills/debrief-apply/SKILL.md +63 -0
- package/plugins/lisa-copilot/skills/doctor/SKILL.md +317 -0
- package/plugins/lisa-copilot/skills/epic-triage/SKILL.md +28 -0
- package/plugins/lisa-copilot/skills/fix-linter-error/SKILL.md +45 -0
- package/plugins/lisa-copilot/skills/git-commit/SKILL.md +48 -0
- package/plugins/lisa-copilot/skills/git-prune/SKILL.md +35 -0
- package/plugins/lisa-copilot/skills/git-submit-pr/SKILL.md +105 -0
- package/plugins/lisa-copilot/skills/github-add-journey/SKILL.md +115 -0
- package/plugins/lisa-copilot/skills/github-build-intake/SKILL.md +377 -0
- package/plugins/lisa-copilot/skills/github-create/SKILL.md +101 -0
- package/plugins/lisa-copilot/skills/github-evidence/SKILL.md +110 -0
- package/plugins/lisa-copilot/skills/github-journey/SKILL.md +121 -0
- package/plugins/lisa-copilot/skills/github-prd-intake/SKILL.md +432 -0
- package/plugins/lisa-copilot/skills/github-project-v2/SKILL.md +227 -0
- package/plugins/lisa-copilot/skills/github-read-issue/SKILL.md +248 -0
- package/plugins/lisa-copilot/skills/github-sync/SKILL.md +119 -0
- package/plugins/lisa-copilot/skills/github-to-tracker/SKILL.md +345 -0
- package/plugins/lisa-copilot/skills/github-validate-issue/SKILL.md +331 -0
- package/plugins/lisa-copilot/skills/github-verify/SKILL.md +29 -0
- package/plugins/lisa-copilot/skills/github-write-issue/SKILL.md +339 -0
- package/plugins/lisa-copilot/skills/github-write-prd/SKILL.md +157 -0
- package/plugins/lisa-copilot/skills/implement/SKILL.md +145 -0
- package/plugins/lisa-copilot/skills/improve-code-complexity/SKILL.md +44 -0
- package/plugins/lisa-copilot/skills/improve-max-lines/SKILL.md +45 -0
- package/plugins/lisa-copilot/skills/improve-max-lines-per-function/SKILL.md +46 -0
- package/plugins/lisa-copilot/skills/improve-test-coverage/SKILL.md +44 -0
- package/plugins/lisa-copilot/skills/improve-tests/SKILL.md +47 -0
- package/plugins/lisa-copilot/skills/intake/SKILL.md +132 -0
- package/plugins/lisa-copilot/skills/intake-explain/SKILL.md +279 -0
- package/plugins/lisa-copilot/skills/jira-add-journey/SKILL.md +121 -0
- package/plugins/lisa-copilot/skills/jira-build-intake/SKILL.md +286 -0
- package/plugins/lisa-copilot/skills/jira-create/SKILL.md +154 -0
- package/plugins/lisa-copilot/skills/jira-evidence/SKILL.md +90 -0
- package/plugins/lisa-copilot/skills/jira-evidence/scripts/post-evidence.sh +163 -0
- package/plugins/lisa-copilot/skills/jira-journey/SKILL.md +127 -0
- package/plugins/lisa-copilot/skills/jira-journey/scripts/generate-templates.py +233 -0
- package/plugins/lisa-copilot/skills/jira-journey/scripts/parse-plan.py +368 -0
- package/plugins/lisa-copilot/skills/jira-read-ticket/SKILL.md +198 -0
- package/plugins/lisa-copilot/skills/jira-read-ticket/scripts/download-attachment.sh +110 -0
- package/plugins/lisa-copilot/skills/jira-sync/SKILL.md +95 -0
- package/plugins/lisa-copilot/skills/jira-validate-ticket/SKILL.md +318 -0
- package/plugins/lisa-copilot/skills/jira-verify/SKILL.md +30 -0
- package/plugins/lisa-copilot/skills/jira-write-ticket/SKILL.md +265 -0
- package/plugins/lisa-copilot/skills/jsdoc-best-practices/SKILL.md +432 -0
- package/plugins/lisa-copilot/skills/linear-add-journey/SKILL.md +105 -0
- package/plugins/lisa-copilot/skills/linear-build-intake/SKILL.md +283 -0
- package/plugins/lisa-copilot/skills/linear-create/SKILL.md +146 -0
- package/plugins/lisa-copilot/skills/linear-evidence/SKILL.md +103 -0
- package/plugins/lisa-copilot/skills/linear-journey/SKILL.md +134 -0
- package/plugins/lisa-copilot/skills/linear-prd-intake/SKILL.md +383 -0
- package/plugins/lisa-copilot/skills/linear-read-issue/SKILL.md +200 -0
- package/plugins/lisa-copilot/skills/linear-sync/SKILL.md +114 -0
- package/plugins/lisa-copilot/skills/linear-to-tracker/SKILL.md +342 -0
- package/plugins/lisa-copilot/skills/linear-validate-issue/SKILL.md +313 -0
- package/plugins/lisa-copilot/skills/linear-verify/SKILL.md +51 -0
- package/plugins/lisa-copilot/skills/linear-write-issue/SKILL.md +292 -0
- package/plugins/lisa-copilot/skills/linear-write-prd/SKILL.md +96 -0
- package/plugins/lisa-copilot/skills/lisa-review-implementation/SKILL.md +209 -0
- package/plugins/lisa-copilot/skills/monitor/SKILL.md +48 -0
- package/plugins/lisa-copilot/skills/nightly-add-test-coverage/SKILL.md +40 -0
- package/plugins/lisa-copilot/skills/nightly-improve-tests/SKILL.md +29 -0
- package/plugins/lisa-copilot/skills/nightly-lower-code-complexity/SKILL.md +28 -0
- package/plugins/lisa-copilot/skills/notion-access/SKILL.md +226 -0
- package/plugins/lisa-copilot/skills/notion-prd-intake/SKILL.md +360 -0
- package/plugins/lisa-copilot/skills/notion-to-tracker/SKILL.md +357 -0
- package/plugins/lisa-copilot/skills/notion-write-prd/SKILL.md +109 -0
- package/plugins/lisa-copilot/skills/performance-review/SKILL.md +94 -0
- package/plugins/lisa-copilot/skills/plan/SKILL.md +60 -0
- package/plugins/lisa-copilot/skills/plugin-sync-explain/SKILL.md +53 -0
- package/plugins/lisa-copilot/skills/prd-backlink/SKILL.md +265 -0
- package/plugins/lisa-copilot/skills/prd-source-write/SKILL.md +101 -0
- package/plugins/lisa-copilot/skills/prd-ticket-coverage/SKILL.md +170 -0
- package/plugins/lisa-copilot/skills/product-walkthrough/SKILL.md +129 -0
- package/plugins/lisa-copilot/skills/project-ideation/SKILL.md +315 -0
- package/plugins/lisa-copilot/skills/project-ideation/examples/evidence-card-format.md +21 -0
- package/plugins/lisa-copilot/skills/project-ideation/examples/host-project-only.md +22 -0
- package/plugins/lisa-copilot/skills/project-ideation/examples/idempotency-verification-harness.md +57 -0
- package/plugins/lisa-copilot/skills/project-ideation/examples/public-external-inspiration.md +22 -0
- package/plugins/lisa-copilot/skills/project-ideation/examples/unavailable-data-rejection.md +22 -0
- package/plugins/lisa-copilot/skills/pull-request-review/SKILL.md +68 -0
- package/plugins/lisa-copilot/skills/quality-review/SKILL.md +54 -0
- package/plugins/lisa-copilot/skills/queue-status/SKILL.md +133 -0
- package/plugins/lisa-copilot/skills/repair-intake/SKILL.md +584 -0
- package/plugins/lisa-copilot/skills/reproduce-bug/SKILL.md +96 -0
- package/plugins/lisa-copilot/skills/research/SKILL.md +68 -0
- package/plugins/lisa-copilot/skills/review-local/SKILL.md +88 -0
- package/plugins/lisa-copilot/skills/root-cause-analysis/SKILL.md +155 -0
- package/plugins/lisa-copilot/skills/security-review/SKILL.md +57 -0
- package/plugins/lisa-copilot/skills/security-zap-scan/SKILL.md +33 -0
- package/plugins/lisa-copilot/skills/setup-atlassian/SKILL.md +347 -0
- package/plugins/lisa-copilot/skills/setup-automations/SKILL.md +99 -0
- package/plugins/lisa-copilot/skills/setup-confluence/SKILL.md +254 -0
- package/plugins/lisa-copilot/skills/setup-github/SKILL.md +268 -0
- package/plugins/lisa-copilot/skills/setup-jira/SKILL.md +198 -0
- package/plugins/lisa-copilot/skills/setup-linear/SKILL.md +251 -0
- package/plugins/lisa-copilot/skills/setup-notion/SKILL.md +316 -0
- package/plugins/lisa-copilot/skills/spec-conformance/SKILL.md +159 -0
- package/plugins/lisa-copilot/skills/task-decomposition/SKILL.md +127 -0
- package/plugins/lisa-copilot/skills/task-triage/SKILL.md +23 -0
- package/plugins/lisa-copilot/skills/tdd-implementation/SKILL.md +83 -0
- package/plugins/lisa-copilot/skills/tear-down-automations/SKILL.md +34 -0
- package/plugins/lisa-copilot/skills/test-strategy/SKILL.md +63 -0
- package/plugins/lisa-copilot/skills/ticket-triage/SKILL.md +182 -0
- package/plugins/lisa-copilot/skills/tracker-add-journey/SKILL.md +26 -0
- package/plugins/lisa-copilot/skills/tracker-build-intake/SKILL.md +64 -0
- package/plugins/lisa-copilot/skills/tracker-create/SKILL.md +26 -0
- package/plugins/lisa-copilot/skills/tracker-evidence/SKILL.md +52 -0
- package/plugins/lisa-copilot/skills/tracker-journey/SKILL.md +26 -0
- package/plugins/lisa-copilot/skills/tracker-read/SKILL.md +27 -0
- package/plugins/lisa-copilot/skills/tracker-source-artifacts/SKILL.md +107 -0
- package/plugins/lisa-copilot/skills/tracker-sync/SKILL.md +51 -0
- package/plugins/lisa-copilot/skills/tracker-validate/SKILL.md +36 -0
- package/plugins/lisa-copilot/skills/tracker-verify/SKILL.md +27 -0
- package/plugins/lisa-copilot/skills/tracker-write/SKILL.md +53 -0
- package/plugins/lisa-copilot/skills/usage-accounting/SKILL.md +170 -0
- package/plugins/lisa-copilot/skills/verification-lifecycle/SKILL.md +339 -0
- package/plugins/lisa-copilot/skills/verify/SKILL.md +49 -0
- package/plugins/lisa-copilot/skills/verify-prd/SKILL.md +392 -0
- package/plugins/lisa-copilot/skills/wiki-install/SKILL.md +101 -0
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +52 -0
- package/plugins/lisa-cursor/agents/architecture-specialist.md +47 -0
- package/plugins/lisa-cursor/agents/bug-fixer.md +39 -0
- package/plugins/lisa-cursor/agents/builder.md +40 -0
- package/plugins/lisa-cursor/agents/confluence-prd-intake.md +65 -0
- package/plugins/lisa-cursor/agents/debug-specialist.md +114 -0
- package/plugins/lisa-cursor/agents/git-history-analyzer.md +183 -0
- package/plugins/lisa-cursor/agents/github-agent.md +148 -0
- package/plugins/lisa-cursor/agents/github-build-intake.md +64 -0
- package/plugins/lisa-cursor/agents/github-prd-intake.md +66 -0
- package/plugins/lisa-cursor/agents/jira-agent.md +129 -0
- package/plugins/lisa-cursor/agents/jira-build-intake.md +64 -0
- package/plugins/lisa-cursor/agents/learner.md +43 -0
- package/plugins/lisa-cursor/agents/learnings-synthesizer.md +135 -0
- package/plugins/lisa-cursor/agents/linear-agent.md +134 -0
- package/plugins/lisa-cursor/agents/linear-build-intake.md +64 -0
- package/plugins/lisa-cursor/agents/linear-prd-intake.md +66 -0
- package/plugins/lisa-cursor/agents/notion-prd-intake.md +63 -0
- package/plugins/lisa-cursor/agents/performance-specialist.md +85 -0
- package/plugins/lisa-cursor/agents/pr-mining-specialist.md +85 -0
- package/plugins/lisa-cursor/agents/product-specialist.md +63 -0
- package/plugins/lisa-cursor/agents/quality-specialist.md +56 -0
- package/plugins/lisa-cursor/agents/security-specialist.md +51 -0
- package/plugins/lisa-cursor/agents/skill-evaluator.md +245 -0
- package/plugins/lisa-cursor/agents/spec-conformance-specialist.md +49 -0
- package/plugins/lisa-cursor/agents/test-specialist.md +49 -0
- package/plugins/lisa-cursor/agents/tracker-mining-specialist.md +85 -0
- package/plugins/lisa-cursor/agents/verification-specialist.md +135 -0
- package/plugins/lisa-cursor/commands/automation-status.md +12 -0
- package/plugins/lisa-cursor/commands/codify-verification.md +6 -0
- package/plugins/lisa-cursor/commands/debrief/apply.md +6 -0
- package/plugins/lisa-cursor/commands/debrief.md +6 -0
- package/plugins/lisa-cursor/commands/doctor.md +6 -0
- package/plugins/lisa-cursor/commands/fix/linter-error.md +7 -0
- package/plugins/lisa-cursor/commands/git/commit.md +7 -0
- package/plugins/lisa-cursor/commands/git/prune.md +6 -0
- package/plugins/lisa-cursor/commands/git/submit-pr.md +7 -0
- package/plugins/lisa-cursor/commands/implement.md +6 -0
- package/plugins/lisa-cursor/commands/improve/code-complexity.md +6 -0
- package/plugins/lisa-cursor/commands/improve/max-lines-per-function.md +7 -0
- package/plugins/lisa-cursor/commands/improve/max-lines.md +7 -0
- package/plugins/lisa-cursor/commands/improve/test-coverage.md +7 -0
- package/plugins/lisa-cursor/commands/improve/tests.md +7 -0
- package/plugins/lisa-cursor/commands/intake-explain.md +31 -0
- package/plugins/lisa-cursor/commands/intake.md +6 -0
- package/plugins/lisa-cursor/commands/monitor.md +6 -0
- package/plugins/lisa-cursor/commands/plan.md +6 -0
- package/plugins/lisa-cursor/commands/plugin-sync-explain.md +8 -0
- package/plugins/lisa-cursor/commands/product-walkthrough.md +7 -0
- package/plugins/lisa-cursor/commands/project-ideation.md +6 -0
- package/plugins/lisa-cursor/commands/pull-request/review.md +7 -0
- package/plugins/lisa-cursor/commands/queue-status.md +34 -0
- package/plugins/lisa-cursor/commands/repair-intake.md +6 -0
- package/plugins/lisa-cursor/commands/research.md +6 -0
- package/plugins/lisa-cursor/commands/review/local.md +6 -0
- package/plugins/lisa-cursor/commands/security/zap-scan.md +6 -0
- package/plugins/lisa-cursor/commands/setup/atlassian.md +7 -0
- package/plugins/lisa-cursor/commands/setup/confluence.md +7 -0
- package/plugins/lisa-cursor/commands/setup/github.md +7 -0
- package/plugins/lisa-cursor/commands/setup/jira.md +7 -0
- package/plugins/lisa-cursor/commands/setup/linear.md +7 -0
- package/plugins/lisa-cursor/commands/setup/notion.md +7 -0
- package/plugins/lisa-cursor/commands/setup-automations.md +6 -0
- package/plugins/lisa-cursor/commands/tear-down-automations.md +6 -0
- package/plugins/lisa-cursor/commands/verify-prd.md +6 -0
- package/plugins/lisa-cursor/commands/verify.md +6 -0
- package/plugins/lisa-cursor/commands/wiki/install.md +7 -0
- package/plugins/lisa-cursor/hooks/block-no-verify.sh +37 -0
- package/plugins/lisa-cursor/hooks/install-pkgs.sh +69 -0
- package/plugins/lisa-cursor/hooks/notify-ntfy.sh +183 -0
- package/plugins/lisa-cursor/hooks/setup-jira-cli.sh +51 -0
- package/plugins/lisa-cursor/rules/eager/base-rules.md +70 -0
- package/plugins/lisa-cursor/rules/eager/coding-philosophy.md +27 -0
- package/plugins/lisa-cursor/rules/eager/config-resolution.md +28 -0
- package/plugins/lisa-cursor/rules/eager/documentation-source-paths.md +13 -0
- package/plugins/lisa-cursor/rules/eager/empirical-inquiry.md +22 -0
- package/plugins/lisa-cursor/rules/eager/intent-routing.md +18 -0
- package/plugins/lisa-cursor/rules/eager/leaf-only-lifecycle.md +39 -0
- package/plugins/lisa-cursor/rules/eager/prd-lifecycle-rollup.md +31 -0
- package/plugins/lisa-cursor/rules/eager/repo-scope-split.md +39 -0
- package/plugins/lisa-cursor/rules/eager/security-audit-handling.md +29 -0
- package/plugins/lisa-cursor/rules/eager/usage-accounting.md +28 -0
- package/plugins/lisa-cursor/rules/eager/verification.md +21 -0
- package/plugins/lisa-cursor/rules/eager/wiki-knowledge-source.md +16 -0
- package/plugins/lisa-cursor/rules/reference/base-rules.md +133 -0
- package/plugins/lisa-cursor/rules/reference/coding-philosophy.md +428 -0
- package/plugins/lisa-cursor/rules/reference/config-resolution.md +691 -0
- package/plugins/lisa-cursor/rules/reference/documentation-source-paths.md +13 -0
- package/plugins/lisa-cursor/rules/reference/empirical-inquiry.md +27 -0
- package/plugins/lisa-cursor/rules/reference/intent-routing.md +407 -0
- package/plugins/lisa-cursor/rules/reference/leaf-only-lifecycle.md +120 -0
- package/plugins/lisa-cursor/rules/reference/prd-lifecycle-rollup.md +156 -0
- package/plugins/lisa-cursor/rules/reference/repo-scope-split.md +58 -0
- package/plugins/lisa-cursor/rules/reference/security-audit-handling.md +30 -0
- package/plugins/lisa-cursor/rules/reference/usage-accounting.md +144 -0
- package/plugins/lisa-cursor/rules/reference/verification.md +124 -0
- package/plugins/lisa-cursor/rules/reference/wiki-knowledge-source.md +14 -0
- package/plugins/lisa-cursor/scripts/automation-status-claude-adapter.mjs +672 -0
- package/plugins/lisa-cursor/scripts/automation-status-codex-adapter.mjs +697 -0
- package/plugins/lisa-cursor/scripts/automation-status-contract-drift.mjs +392 -0
- package/plugins/lisa-cursor/scripts/automation-status-expected-fleet.mjs +319 -0
- package/plugins/lisa-cursor/scripts/automation-status-report.mjs +170 -0
- package/plugins/lisa-cursor/scripts/doctor-report.mjs +143 -0
- package/plugins/lisa-cursor/scripts/plugin-sync-explain.mjs +512 -0
- package/plugins/lisa-cursor/scripts/project-ideation-idempotency-harness.mjs +319 -0
- package/plugins/lisa-cursor/scripts/queue-contract-resolution.mjs +453 -0
- package/plugins/lisa-cursor/scripts/queue-health-classification.mjs +157 -0
- package/plugins/lisa-cursor/scripts/queue-status-build-readers.mjs +509 -0
- package/plugins/lisa-cursor/scripts/queue-status-prd-readers.mjs +452 -0
- package/plugins/lisa-cursor/skills/acceptance-criteria/SKILL.md +71 -0
- package/plugins/lisa-cursor/skills/agent-design-best-practices/SKILL.md +219 -0
- package/plugins/lisa-cursor/skills/atlassian-access/SKILL.md +293 -0
- package/plugins/lisa-cursor/skills/automation-status/SKILL.md +111 -0
- package/plugins/lisa-cursor/skills/bug-triage/SKILL.md +23 -0
- package/plugins/lisa-cursor/skills/codebase-research/SKILL.md +87 -0
- package/plugins/lisa-cursor/skills/codify-verification/SKILL.md +152 -0
- package/plugins/lisa-cursor/skills/confluence-prd-intake/SKILL.md +417 -0
- package/plugins/lisa-cursor/skills/confluence-to-tracker/SKILL.md +360 -0
- package/plugins/lisa-cursor/skills/confluence-write-prd/SKILL.md +109 -0
- package/plugins/lisa-cursor/skills/debrief/SKILL.md +94 -0
- package/plugins/lisa-cursor/skills/debrief-apply/SKILL.md +63 -0
- package/plugins/lisa-cursor/skills/doctor/SKILL.md +317 -0
- package/plugins/lisa-cursor/skills/epic-triage/SKILL.md +28 -0
- package/plugins/lisa-cursor/skills/fix-linter-error/SKILL.md +45 -0
- package/plugins/lisa-cursor/skills/git-commit/SKILL.md +48 -0
- package/plugins/lisa-cursor/skills/git-prune/SKILL.md +35 -0
- package/plugins/lisa-cursor/skills/git-submit-pr/SKILL.md +105 -0
- package/plugins/lisa-cursor/skills/github-add-journey/SKILL.md +115 -0
- package/plugins/lisa-cursor/skills/github-build-intake/SKILL.md +377 -0
- package/plugins/lisa-cursor/skills/github-create/SKILL.md +101 -0
- package/plugins/lisa-cursor/skills/github-evidence/SKILL.md +110 -0
- package/plugins/lisa-cursor/skills/github-journey/SKILL.md +121 -0
- package/plugins/lisa-cursor/skills/github-prd-intake/SKILL.md +432 -0
- package/plugins/lisa-cursor/skills/github-project-v2/SKILL.md +227 -0
- package/plugins/lisa-cursor/skills/github-read-issue/SKILL.md +248 -0
- package/plugins/lisa-cursor/skills/github-sync/SKILL.md +119 -0
- package/plugins/lisa-cursor/skills/github-to-tracker/SKILL.md +345 -0
- package/plugins/lisa-cursor/skills/github-validate-issue/SKILL.md +331 -0
- package/plugins/lisa-cursor/skills/github-verify/SKILL.md +29 -0
- package/plugins/lisa-cursor/skills/github-write-issue/SKILL.md +339 -0
- package/plugins/lisa-cursor/skills/github-write-prd/SKILL.md +157 -0
- package/plugins/lisa-cursor/skills/implement/SKILL.md +145 -0
- package/plugins/lisa-cursor/skills/improve-code-complexity/SKILL.md +44 -0
- package/plugins/lisa-cursor/skills/improve-max-lines/SKILL.md +45 -0
- package/plugins/lisa-cursor/skills/improve-max-lines-per-function/SKILL.md +46 -0
- package/plugins/lisa-cursor/skills/improve-test-coverage/SKILL.md +44 -0
- package/plugins/lisa-cursor/skills/improve-tests/SKILL.md +47 -0
- package/plugins/lisa-cursor/skills/intake/SKILL.md +132 -0
- package/plugins/lisa-cursor/skills/intake-explain/SKILL.md +279 -0
- package/plugins/lisa-cursor/skills/jira-add-journey/SKILL.md +121 -0
- package/plugins/lisa-cursor/skills/jira-build-intake/SKILL.md +286 -0
- package/plugins/lisa-cursor/skills/jira-create/SKILL.md +154 -0
- package/plugins/lisa-cursor/skills/jira-evidence/SKILL.md +90 -0
- package/plugins/lisa-cursor/skills/jira-evidence/scripts/post-evidence.sh +163 -0
- package/plugins/lisa-cursor/skills/jira-journey/SKILL.md +127 -0
- package/plugins/lisa-cursor/skills/jira-journey/scripts/generate-templates.py +233 -0
- package/plugins/lisa-cursor/skills/jira-journey/scripts/parse-plan.py +368 -0
- package/plugins/lisa-cursor/skills/jira-read-ticket/SKILL.md +198 -0
- package/plugins/lisa-cursor/skills/jira-read-ticket/scripts/download-attachment.sh +110 -0
- package/plugins/lisa-cursor/skills/jira-sync/SKILL.md +95 -0
- package/plugins/lisa-cursor/skills/jira-validate-ticket/SKILL.md +318 -0
- package/plugins/lisa-cursor/skills/jira-verify/SKILL.md +30 -0
- package/plugins/lisa-cursor/skills/jira-write-ticket/SKILL.md +265 -0
- package/plugins/lisa-cursor/skills/jsdoc-best-practices/SKILL.md +432 -0
- package/plugins/lisa-cursor/skills/linear-add-journey/SKILL.md +105 -0
- package/plugins/lisa-cursor/skills/linear-build-intake/SKILL.md +283 -0
- package/plugins/lisa-cursor/skills/linear-create/SKILL.md +146 -0
- package/plugins/lisa-cursor/skills/linear-evidence/SKILL.md +103 -0
- package/plugins/lisa-cursor/skills/linear-journey/SKILL.md +134 -0
- package/plugins/lisa-cursor/skills/linear-prd-intake/SKILL.md +383 -0
- package/plugins/lisa-cursor/skills/linear-read-issue/SKILL.md +200 -0
- package/plugins/lisa-cursor/skills/linear-sync/SKILL.md +114 -0
- package/plugins/lisa-cursor/skills/linear-to-tracker/SKILL.md +342 -0
- package/plugins/lisa-cursor/skills/linear-validate-issue/SKILL.md +313 -0
- package/plugins/lisa-cursor/skills/linear-verify/SKILL.md +51 -0
- package/plugins/lisa-cursor/skills/linear-write-issue/SKILL.md +292 -0
- package/plugins/lisa-cursor/skills/linear-write-prd/SKILL.md +96 -0
- package/plugins/lisa-cursor/skills/lisa-review-implementation/SKILL.md +209 -0
- package/plugins/lisa-cursor/skills/monitor/SKILL.md +48 -0
- package/plugins/lisa-cursor/skills/nightly-add-test-coverage/SKILL.md +40 -0
- package/plugins/lisa-cursor/skills/nightly-improve-tests/SKILL.md +29 -0
- package/plugins/lisa-cursor/skills/nightly-lower-code-complexity/SKILL.md +28 -0
- package/plugins/lisa-cursor/skills/notion-access/SKILL.md +226 -0
- package/plugins/lisa-cursor/skills/notion-prd-intake/SKILL.md +360 -0
- package/plugins/lisa-cursor/skills/notion-to-tracker/SKILL.md +357 -0
- package/plugins/lisa-cursor/skills/notion-write-prd/SKILL.md +109 -0
- package/plugins/lisa-cursor/skills/performance-review/SKILL.md +94 -0
- package/plugins/lisa-cursor/skills/plan/SKILL.md +60 -0
- package/plugins/lisa-cursor/skills/plugin-sync-explain/SKILL.md +53 -0
- package/plugins/lisa-cursor/skills/prd-backlink/SKILL.md +265 -0
- package/plugins/lisa-cursor/skills/prd-source-write/SKILL.md +101 -0
- package/plugins/lisa-cursor/skills/prd-ticket-coverage/SKILL.md +170 -0
- package/plugins/lisa-cursor/skills/product-walkthrough/SKILL.md +129 -0
- package/plugins/lisa-cursor/skills/project-ideation/SKILL.md +315 -0
- package/plugins/lisa-cursor/skills/project-ideation/examples/evidence-card-format.md +21 -0
- package/plugins/lisa-cursor/skills/project-ideation/examples/host-project-only.md +22 -0
- package/plugins/lisa-cursor/skills/project-ideation/examples/idempotency-verification-harness.md +57 -0
- package/plugins/lisa-cursor/skills/project-ideation/examples/public-external-inspiration.md +22 -0
- package/plugins/lisa-cursor/skills/project-ideation/examples/unavailable-data-rejection.md +22 -0
- package/plugins/lisa-cursor/skills/pull-request-review/SKILL.md +68 -0
- package/plugins/lisa-cursor/skills/quality-review/SKILL.md +54 -0
- package/plugins/lisa-cursor/skills/queue-status/SKILL.md +133 -0
- package/plugins/lisa-cursor/skills/repair-intake/SKILL.md +584 -0
- package/plugins/lisa-cursor/skills/reproduce-bug/SKILL.md +96 -0
- package/plugins/lisa-cursor/skills/research/SKILL.md +68 -0
- package/plugins/lisa-cursor/skills/review-local/SKILL.md +88 -0
- package/plugins/lisa-cursor/skills/root-cause-analysis/SKILL.md +155 -0
- package/plugins/lisa-cursor/skills/security-review/SKILL.md +57 -0
- package/plugins/lisa-cursor/skills/security-zap-scan/SKILL.md +33 -0
- package/plugins/lisa-cursor/skills/setup-atlassian/SKILL.md +347 -0
- package/plugins/lisa-cursor/skills/setup-automations/SKILL.md +99 -0
- package/plugins/lisa-cursor/skills/setup-confluence/SKILL.md +254 -0
- package/plugins/lisa-cursor/skills/setup-github/SKILL.md +268 -0
- package/plugins/lisa-cursor/skills/setup-jira/SKILL.md +198 -0
- package/plugins/lisa-cursor/skills/setup-linear/SKILL.md +251 -0
- package/plugins/lisa-cursor/skills/setup-notion/SKILL.md +316 -0
- package/plugins/lisa-cursor/skills/spec-conformance/SKILL.md +159 -0
- package/plugins/lisa-cursor/skills/task-decomposition/SKILL.md +127 -0
- package/plugins/lisa-cursor/skills/task-triage/SKILL.md +23 -0
- package/plugins/lisa-cursor/skills/tdd-implementation/SKILL.md +83 -0
- package/plugins/lisa-cursor/skills/tear-down-automations/SKILL.md +34 -0
- package/plugins/lisa-cursor/skills/test-strategy/SKILL.md +63 -0
- package/plugins/lisa-cursor/skills/ticket-triage/SKILL.md +182 -0
- package/plugins/lisa-cursor/skills/tracker-add-journey/SKILL.md +26 -0
- package/plugins/lisa-cursor/skills/tracker-build-intake/SKILL.md +64 -0
- package/plugins/lisa-cursor/skills/tracker-create/SKILL.md +26 -0
- package/plugins/lisa-cursor/skills/tracker-evidence/SKILL.md +52 -0
- package/plugins/lisa-cursor/skills/tracker-journey/SKILL.md +26 -0
- package/plugins/lisa-cursor/skills/tracker-read/SKILL.md +27 -0
- package/plugins/lisa-cursor/skills/tracker-source-artifacts/SKILL.md +107 -0
- package/plugins/lisa-cursor/skills/tracker-sync/SKILL.md +51 -0
- package/plugins/lisa-cursor/skills/tracker-validate/SKILL.md +36 -0
- package/plugins/lisa-cursor/skills/tracker-verify/SKILL.md +27 -0
- package/plugins/lisa-cursor/skills/tracker-write/SKILL.md +53 -0
- package/plugins/lisa-cursor/skills/usage-accounting/SKILL.md +170 -0
- package/plugins/lisa-cursor/skills/verification-lifecycle/SKILL.md +339 -0
- package/plugins/lisa-cursor/skills/verify/SKILL.md +49 -0
- package/plugins/lisa-cursor/skills/verify-prd/SKILL.md +392 -0
- package/plugins/lisa-cursor/skills/wiki-install/SKILL.md +101 -0
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/hooks/inject-rules.sh +16 -0
- package/plugins/lisa-harper-fabric/.codex-plugin/hooks.json +26 -0
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +2 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/hooks/block-migration-edits.sh +60 -0
- package/plugins/lisa-nestjs/.codex-plugin/hooks.json +15 -0
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +2 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/hooks/inject-rules.sh +22 -0
- package/plugins/lisa-rails/.codex-plugin/hooks/rubocop-on-edit.sh +78 -0
- package/plugins/lisa-rails/.codex-plugin/hooks/sg-scan-on-edit.sh +74 -0
- package/plugins/lisa-rails/.codex-plugin/hooks.json +41 -0
- package/plugins/lisa-rails/.codex-plugin/plugin.json +2 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/hooks/block-suppress-directives.sh +73 -0
- package/plugins/lisa-typescript/.codex-plugin/hooks/format-on-edit.sh +79 -0
- package/plugins/lisa-typescript/.codex-plugin/hooks/lint-on-edit.sh +134 -0
- package/plugins/lisa-typescript/.codex-plugin/hooks/sg-scan-on-edit.sh +71 -0
- package/plugins/lisa-typescript/.codex-plugin/hooks.json +34 -0
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +2 -1
- package/plugins/lisa-typescript/hooks/format-on-edit.sh +5 -3
- package/plugins/lisa-typescript/hooks/lint-on-edit.sh +5 -2
- package/plugins/lisa-typescript/hooks/sg-scan-on-edit.sh +5 -2
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/src/typescript/hooks/format-on-edit.sh +5 -3
- package/plugins/src/typescript/hooks/lint-on-edit.sh +5 -2
- package/plugins/src/typescript/hooks/sg-scan-on-edit.sh +5 -2
- package/scripts/build-plugins.sh +24 -0
- package/scripts/generate-agy-plugin-artifacts.mjs +168 -0
- package/scripts/generate-codex-plugin-artifacts.mjs +170 -12
- package/scripts/generate-copilot-plugin-artifacts.mjs +230 -0
- package/scripts/generate-cursor-plugin-artifacts.mjs +173 -0
- package/scripts/internal-agy-skill-policy.json +3 -0
- package/scripts/internal-copilot-runtime-probe.json +7 -0
- package/scripts/internal-copilot-skill-policy.json +3 -0
- package/scripts/internal-cursor-skill-policy.json +3 -0
- package/scripts/lib/per-agent-hook-filter.mjs +249 -0
- package/scripts/probes/wave3-verification.sh +106 -0
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: doctor
|
|
3
|
+
description: "Audit whether the current repository is ready to use Lisa. Runs grouped read-only checks across project detection, Lisa config, runtime distribution surfaces, tracker/source preflight access, automation prerequisites, optional GitHub Project coordination, and optional wiki delegation, then reports PASS/WARN/FAIL/SKIP results plus an overall readiness verdict (`READY`, `READY_WITH_WARNINGS`, or `NOT_READY`)."
|
|
4
|
+
allowed-tools: ["Skill", "Bash", "Read", "Glob", "Grep"]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Doctor: $ARGUMENTS
|
|
8
|
+
|
|
9
|
+
Run a read-only Lisa readiness audit for the current repository.
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
|
|
13
|
+
`/lisa:doctor` is the deterministic answer to "is this repo actually ready to use Lisa?" It audits
|
|
14
|
+
the repository in grouped sections, reports each check as `PASS`, `WARN`, `FAIL`, or `SKIP`, and
|
|
15
|
+
emits one overall verdict: `READY`, `READY_WITH_WARNINGS`, or `NOT_READY`.
|
|
16
|
+
|
|
17
|
+
The command is repository-scoped. It validates only what can be observed from the current repo,
|
|
18
|
+
current machine, and current runtime. It does **not** create automations, labels, tracker items, or
|
|
19
|
+
other external state as part of the default audit path.
|
|
20
|
+
|
|
21
|
+
## Inputs
|
|
22
|
+
|
|
23
|
+
- Optional flags in `$ARGUMENTS` that narrow or tune read-only validation.
|
|
24
|
+
- The current repository root and its Lisa config files (`.lisa.config.json`,
|
|
25
|
+
`.lisa.config.local.json`) when present.
|
|
26
|
+
|
|
27
|
+
## Confirmation policy
|
|
28
|
+
|
|
29
|
+
Do **not** ask whether to proceed. Once invoked, run the read-only audit, print the grouped
|
|
30
|
+
results, emit the overall verdict, and stop.
|
|
31
|
+
|
|
32
|
+
Specifically forbidden:
|
|
33
|
+
|
|
34
|
+
- Previewing the number of checks and asking whether to continue.
|
|
35
|
+
- Offering "run a few checks first" or "dry-run vs real run" choices. This skill is already the
|
|
36
|
+
read-only path.
|
|
37
|
+
- Performing setup mutations just because a failing check discovered something missing.
|
|
38
|
+
|
|
39
|
+
The only legitimate reasons to stop early are:
|
|
40
|
+
|
|
41
|
+
- The current working directory cannot be resolved to a repository/root the audit can inspect.
|
|
42
|
+
- The runtime blocks all required local reads needed to even classify the repo.
|
|
43
|
+
|
|
44
|
+
## Audit contract
|
|
45
|
+
|
|
46
|
+
Doctor reports grouped checks in a stable, human-readable structure. The grouped sections include,
|
|
47
|
+
as applicable to the current repo:
|
|
48
|
+
|
|
49
|
+
1. **Project detection and runtime basics** — detect the project root, package/runtime surface, and
|
|
50
|
+
whether Lisa is installed where the repo expects it.
|
|
51
|
+
2. **Lisa config readiness** — read `.lisa.config.json` and `.lisa.config.local.json` using the
|
|
52
|
+
same local-overrides-global semantics defined by `config-resolution`; report missing required
|
|
53
|
+
keys, incompatible combinations, and committed-vs-local locality problems as findings rather
|
|
54
|
+
than mutating config.
|
|
55
|
+
3. **Tracker/source preflight** — perform read-only readiness checks for the configured `tracker`
|
|
56
|
+
and `source` only. If a required CLI, MCP surface, or auth context is unavailable in the current
|
|
57
|
+
runtime, report that explicitly instead of pretending the repo is ready.
|
|
58
|
+
4. **Runtime distribution surfaces** — confirm the command, skill, hook, and related distribution
|
|
59
|
+
surfaces relevant to this repo are present where Lisa expects them on the active runtime.
|
|
60
|
+
5. **Automation readiness** — inspect whether the configured queue source/tracker and scheduling
|
|
61
|
+
prerequisites are observable, but do **not** create, edit, or delete automations during doctor.
|
|
62
|
+
6. **Optional GitHub Project coordination** — when `github.projects.v2` is configured, delegate
|
|
63
|
+
the shared validation read to `github-project-v2` instead of reimplementing ad-hoc GraphQL
|
|
64
|
+
checks. Honor the `required=false` vs `required=true` semantics documented by
|
|
65
|
+
`config-resolution`: best-effort failures are `WARN`, required-mode failures are `FAIL`.
|
|
66
|
+
7. **Optional wiki delegation** — when a repo-local `wiki/` exists, either summarize the
|
|
67
|
+
specialized `lisa-wiki-doctor` verdict or explicitly report that deeper wiki checks are
|
|
68
|
+
available there. The base doctor stays narrower than full wiki migration enforcement.
|
|
69
|
+
|
|
70
|
+
If a check family is not applicable to the current repo, report `SKIP` with the reason.
|
|
71
|
+
|
|
72
|
+
### Minimum config-readiness checks
|
|
73
|
+
|
|
74
|
+
The Lisa config group is not just "does a file exist?" Doctor must audit the config contract in
|
|
75
|
+
this order:
|
|
76
|
+
|
|
77
|
+
1. **Presence + parseability**
|
|
78
|
+
- `FAIL` when `.lisa.config.json` is missing, empty, or invalid JSON.
|
|
79
|
+
- Read `.lisa.config.local.json` only when present; if present but invalid JSON, `FAIL`.
|
|
80
|
+
2. **Merged effective config**
|
|
81
|
+
- Resolve every key with the same per-key local-overrides-global semantics documented by
|
|
82
|
+
`config-resolution`. Doctor must describe findings against the effective merged value, not by
|
|
83
|
+
pretending one file fully replaces the other.
|
|
84
|
+
3. **Required top-level dispatch keys**
|
|
85
|
+
- `FAIL` when merged `tracker` is missing or is not one of `jira`, `github`, or `linear`.
|
|
86
|
+
- `FAIL` when merged `source` is present but is not one of `notion`, `confluence`, `linear`,
|
|
87
|
+
`github`, or `jira`.
|
|
88
|
+
4. **Vendor required-key audit**
|
|
89
|
+
- `FAIL` when the configured tracker/source points at a vendor whose required keys are absent
|
|
90
|
+
after merge. Examples: `tracker=github` requires `github.org` + `github.repo`;
|
|
91
|
+
`tracker=jira` requires `atlassian.cloudId` + `jira.project`; `source=notion` requires
|
|
92
|
+
`notion.workspaceId` + `notion.prdDatabaseId`.
|
|
93
|
+
- Reuse the `config-resolution` vendor tables rather than inventing a second required-key list.
|
|
94
|
+
5. **Local-vs-committed locality audit**
|
|
95
|
+
- `WARN` when developer-specific fields appear in committed config. At minimum enforce the
|
|
96
|
+
documented local-only examples: `atlassian.email`, `intake.assignee`, and
|
|
97
|
+
`jira.verified_workflow_hash`.
|
|
98
|
+
- `WARN` when project-wide shared fields exist only in `.lisa.config.local.json` and are absent
|
|
99
|
+
from `.lisa.config.json`, because the current machine may work while the repository remains
|
|
100
|
+
under-configured for teammates and automations. Examples include `tracker`, `source`,
|
|
101
|
+
`github.org`, `github.repo`, `atlassian.cloudId`, `atlassian.site`, `jira.project`,
|
|
102
|
+
`linear.workspace`, `linear.teamKey`, and `deploy.branches`.
|
|
103
|
+
|
|
104
|
+
Locality findings are advisory unless the merged config is unusable. Missing shared keys after the
|
|
105
|
+
merge are `FAIL`; shared keys that exist only locally are `WARN`.
|
|
106
|
+
|
|
107
|
+
### Minimum tracker/source preflight checks
|
|
108
|
+
|
|
109
|
+
After config readiness passes far enough to resolve the merged `tracker` and optional `source`,
|
|
110
|
+
doctor must perform read-only preflight checks for the configured vendors only. It does not probe
|
|
111
|
+
every vendor Lisa supports.
|
|
112
|
+
|
|
113
|
+
1. **Scope the audit to configured vendors**
|
|
114
|
+
- Audit the merged `tracker`.
|
|
115
|
+
- Audit the merged `source` only when present and distinct from the tracker.
|
|
116
|
+
- Report every non-configured vendor as `SKIP` rather than pretending it was checked.
|
|
117
|
+
2. **Prove a readable substrate exists**
|
|
118
|
+
- `tracker=github` or `source=github`: require `gh` CLI availability, a passing `gh auth status`,
|
|
119
|
+
and a read probe against the configured repo such as `gh repo view <org>/<repo>`.
|
|
120
|
+
- `tracker=jira`, `source=jira`, or `source=confluence`: follow the `atlassian-access`
|
|
121
|
+
substrate ladder and prove at least one read-capable path can see the configured
|
|
122
|
+
`atlassian.cloudId` and vendor scope. Acceptable substrates are `acli`, Atlassian MCP, or the
|
|
123
|
+
validated API-token/curl path documented by `config-resolution`.
|
|
124
|
+
- `tracker=linear` or `source=linear`: require either readable Linear MCP access or a valid
|
|
125
|
+
personal API-key probe against the configured workspace. When Linear is the tracker, doctor
|
|
126
|
+
must also prove the configured `linear.teamKey` is visible.
|
|
127
|
+
- `source=notion`: require either a Notion MCP identity match for `notion.workspaceId` or a
|
|
128
|
+
valid internal-integration token probe, plus read visibility to `notion.prdDatabaseId`.
|
|
129
|
+
3. **Separate missing tooling from missing auth or scope**
|
|
130
|
+
- Missing executable / MCP substrate availability is a distinct observed fact, not the same as
|
|
131
|
+
"auth failed."
|
|
132
|
+
- When a probe runs and fails, preserve the exact read-only failure text or HTTP/GraphQL status
|
|
133
|
+
in the observed output so the operator can distinguish wrong workspace/site/repo from missing
|
|
134
|
+
credentials.
|
|
135
|
+
4. **Severity ladder**
|
|
136
|
+
- `PASS` when at least one supported read-only substrate proves the configured vendor is
|
|
137
|
+
reachable with the required scope.
|
|
138
|
+
- `WARN` when the configured vendor is reachable, but an additional optional substrate is
|
|
139
|
+
unavailable and later Lisa flows would need to fall back.
|
|
140
|
+
- `FAIL` when no supported substrate can prove read access for the configured tracker/source, or
|
|
141
|
+
when the configured vendor target is unreadable from the current runtime.
|
|
142
|
+
|
|
143
|
+
### Minimum GitHub Project coordination checks
|
|
144
|
+
|
|
145
|
+
When `github.projects.v2` is configured, doctor must run one additional read-only coordination
|
|
146
|
+
check instead of treating the config block as implicitly ready.
|
|
147
|
+
|
|
148
|
+
1. **Delegate through the shared chokepoint**
|
|
149
|
+
- Call `lisa:github-project-v2` in read-only resolution mode:
|
|
150
|
+
|
|
151
|
+
```text
|
|
152
|
+
operation: resolve-project
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
- Do not inline ad-hoc Project GraphQL in doctor. Setup, doctor, writers, and linked-PR flows
|
|
156
|
+
must all read the same owner/access contract from the shared utility.
|
|
157
|
+
2. **Preserve exact namespace + access failures**
|
|
158
|
+
- Enforce the v1 namespace rule exactly as documented by the shared utility. If
|
|
159
|
+
`github.projects.v2.owner.slug` does not match `github.org`, report:
|
|
160
|
+
|
|
161
|
+
```yaml
|
|
162
|
+
code: project_namespace_mismatch
|
|
163
|
+
message: "github.projects.v2.owner.slug must match github.org in v1"
|
|
164
|
+
remediation: "Use a Project owned by <github.org> or remove github.projects.v2."
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
- For owner-access or GraphQL failures, preserve the exact GitHub / GraphQL failure text in the
|
|
168
|
+
observed output. Examples include missing Project, `Resource not accessible by integration`,
|
|
169
|
+
unsupported owner kind, or a wrong owner/number pair.
|
|
170
|
+
3. **Report exact remediation paths**
|
|
171
|
+
- Doctor must make the next operator action explicit. At minimum, say whether they need to:
|
|
172
|
+
1. choose a Project owned by the tracked repo namespace,
|
|
173
|
+
2. grant the token Project read/write access,
|
|
174
|
+
3. correct the configured Project number/owner, or
|
|
175
|
+
4. remove `github.projects.v2` when coordination is not required.
|
|
176
|
+
4. **Map shared utility outcomes into doctor severity**
|
|
177
|
+
- `required: false` => doctor `WARN`. Repository-local GitHub issue/PR flows remain usable while
|
|
178
|
+
Project coordination is degraded.
|
|
179
|
+
- `required: true` => doctor `FAIL`. The same Project validation failure blocks Lisa readiness
|
|
180
|
+
because coordination was configured as required.
|
|
181
|
+
|
|
182
|
+
Good output examples:
|
|
183
|
+
|
|
184
|
+
```text
|
|
185
|
+
WARN github.projects.v2: Resource not accessible by integration
|
|
186
|
+
Observed: exact GitHub / GraphQL failure text preserved from resolve-project.
|
|
187
|
+
Remediation: grant the token Project read/write access or remove github.projects.v2.required.
|
|
188
|
+
Repository-local GitHub issue/PR flows remain usable; Project coordination is disabled.
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
```text
|
|
192
|
+
FAIL github.projects.v2: github.projects.v2.owner.slug must match github.org in v1
|
|
193
|
+
Remediation: use a Project owned by CodySwannGT or remove github.projects.v2.
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Minimum automation-readiness checks
|
|
197
|
+
|
|
198
|
+
Doctor's automation-readiness group stays read-only: it audits whether this repo and runtime could
|
|
199
|
+
support `/lisa:setup-automations` and the resulting recurring jobs, but it does **not** create,
|
|
200
|
+
edit, delete, or reconcile automations on the default doctor path.
|
|
201
|
+
|
|
202
|
+
1. **Resolve the queue inputs exactly as setup-automations would**
|
|
203
|
+
- Resolve the PRD queue from merged `source`.
|
|
204
|
+
- Resolve the build queue from merged `tracker`.
|
|
205
|
+
- Resolve the repair queue from the same queue-detection rules as `lisa:repair-intake`
|
|
206
|
+
(identical source-dispatch contract to `lisa:intake`).
|
|
207
|
+
- If any automation would require guessing because `source`, `tracker`, or their vendor keys are
|
|
208
|
+
still unresolved after the config-readiness audit, report that automation as `FAIL` rather
|
|
209
|
+
than pretending scheduling can proceed safely.
|
|
210
|
+
2. **Audit the current runtime's native scheduler surface without mutating it**
|
|
211
|
+
- Codex: doctor should report whether the runtime exposes the native automations surface
|
|
212
|
+
(`automation_update`) needed by `/lisa:setup-automations`.
|
|
213
|
+
- Claude: doctor should report whether the runtime exposes `/schedule`.
|
|
214
|
+
- Other runtimes: doctor should explicitly say that no native Lisa scheduler is known for the
|
|
215
|
+
current runtime.
|
|
216
|
+
- This is observability only. Never create a placeholder automation just to prove the scheduler
|
|
217
|
+
works.
|
|
218
|
+
3. **Check exploratory-automation support by shipped stack surface**
|
|
219
|
+
- `exploratory-bugs` is supported only when the project ships an `exploratory-qa` command
|
|
220
|
+
surface (the `expo`, `rails`, or `harper-fabric` stacks today). Reuse the same stack/support
|
|
221
|
+
rule documented by `setup-automations`; do not invent exploratory jobs for stacks that do not
|
|
222
|
+
ship that command.
|
|
223
|
+
- When the repo does not ship `exploratory-qa`, report `exploratory-bugs` as `SKIP` with the
|
|
224
|
+
reason.
|
|
225
|
+
- `exploratory-prds` remains applicable when the repo can run `/lisa:project-ideation`; if its
|
|
226
|
+
queue/config prerequisites are unresolved, report the exact blocking config fact.
|
|
227
|
+
4. **Severity ladder**
|
|
228
|
+
- `PASS` when an automation's queue inputs are resolvable and the runtime exposes the required
|
|
229
|
+
native scheduler surface for that automation.
|
|
230
|
+
- `WARN` when Lisa remains usable manually, but the current runtime has no native scheduler
|
|
231
|
+
surface for unattended runs, so automation setup would be unavailable from here.
|
|
232
|
+
- `SKIP` when an optional automation is intentionally unsupported for this repo surface (for
|
|
233
|
+
example, `exploratory-bugs` on a stack with no `exploratory-qa` command).
|
|
234
|
+
- `FAIL` when the repo's config cannot resolve the queue that an automation needs, because that
|
|
235
|
+
would make unattended runs ambiguous or broken before scheduling even starts.
|
|
236
|
+
|
|
237
|
+
### Minimum wiki-delegation checks
|
|
238
|
+
|
|
239
|
+
When a repo-local `wiki/` directory exists, doctor must surface the specialized wiki-readiness path
|
|
240
|
+
without turning the base doctor into a second `lisa-wiki-doctor`.
|
|
241
|
+
|
|
242
|
+
1. **Detect whether wiki delegation applies**
|
|
243
|
+
- If no repo-local `wiki/` directory exists, report the entire wiki group as `SKIP` with the
|
|
244
|
+
reason that no wiki surface is present in this repository.
|
|
245
|
+
- If `wiki/` exists, keep the group present in the final report; do not silently omit it.
|
|
246
|
+
2. **Prefer summary of an existing specialized verdict**
|
|
247
|
+
- If the repo already has a readable `wiki/state/migration/doctor-report.json`, doctor may
|
|
248
|
+
summarize the specialized verdict (`READY`, `READY_WITH_WARNINGS`, or `NOT_READY`) plus the
|
|
249
|
+
most relevant blocking/warning facts, clearly attributing them to `lisa-wiki-doctor`.
|
|
250
|
+
- Preserve the base doctor's narrower scope: summarize or quote the specialized verdict, but do
|
|
251
|
+
not inline the full migration/readiness checklist into the base doctor output.
|
|
252
|
+
3. **Otherwise advertise the deeper follow-up explicitly**
|
|
253
|
+
- If `wiki/` exists but no specialized report is available yet, doctor must still tell the
|
|
254
|
+
operator that deeper wiki checks live behind `lisa-wiki-doctor`.
|
|
255
|
+
- The report should make the next action explicit, for example:
|
|
256
|
+
|
|
257
|
+
```text
|
|
258
|
+
WARN wiki-follow-up: wiki/ detected; deeper wiki migration checks not yet summarized
|
|
259
|
+
Observed: wiki/ exists, but no wiki/state/migration/doctor-report.json was found.
|
|
260
|
+
Remediation: run lisa-wiki-doctor to produce the wiki-specific readiness verdict.
|
|
261
|
+
```
|
|
262
|
+
4. **Severity ladder**
|
|
263
|
+
- `SKIP` when `wiki/` is absent.
|
|
264
|
+
- `PASS` when `wiki/` exists and doctor successfully summarizes an existing
|
|
265
|
+
`lisa-wiki-doctor` verdict.
|
|
266
|
+
- `WARN` when `wiki/` exists and doctor can only advertise the specialized follow-up because no
|
|
267
|
+
persisted wiki verdict is available yet.
|
|
268
|
+
- `FAIL` only when `wiki/` exists but the repo cannot surface the specialized follow-up at all
|
|
269
|
+
(for example, the required `lisa-wiki-doctor` distribution surface is missing or the existing
|
|
270
|
+
report is unreadable/malformed enough that doctor cannot safely summarize it).
|
|
271
|
+
5. **Keep wiki readiness optional for non-wiki repos**
|
|
272
|
+
- Never require a wiki plugin surface when `wiki/` is absent.
|
|
273
|
+
- Never let wiki-specific checks downgrade unrelated non-wiki repositories.
|
|
274
|
+
|
|
275
|
+
## Output contract
|
|
276
|
+
|
|
277
|
+
The final report must:
|
|
278
|
+
|
|
279
|
+
- Separate observed facts from remediation advice.
|
|
280
|
+
- Print every check with one of `PASS`, `WARN`, `FAIL`, or `SKIP`.
|
|
281
|
+
- Emit exactly one overall verdict: `READY`, `READY_WITH_WARNINGS`, or `NOT_READY`.
|
|
282
|
+
- Stay read-only by default.
|
|
283
|
+
|
|
284
|
+
Render the report in grouped sections using the shared `scripts/doctor-report.mjs` contract:
|
|
285
|
+
|
|
286
|
+
- Start with `Overall verdict: <VERDICT>` and one `Counts:` line covering `PASS`, `WARN`, `FAIL`,
|
|
287
|
+
and `SKIP`.
|
|
288
|
+
- Then print each group as `<group-id>. <group-title>`.
|
|
289
|
+
- Under each group, print one line per check as `- <STATUS> <check-id>: <summary>`.
|
|
290
|
+
- When available, print `Observed:` and `Remediation:` lines beneath the check so the report keeps
|
|
291
|
+
facts separate from advice.
|
|
292
|
+
- If a group has no applicable checks yet, render it as a grouped `SKIP` with the reason instead of
|
|
293
|
+
silently omitting the section.
|
|
294
|
+
|
|
295
|
+
The verdict ladder is:
|
|
296
|
+
|
|
297
|
+
- `READY` — no `FAIL` and no `WARN`.
|
|
298
|
+
- `READY_WITH_WARNINGS` — no `FAIL`, but one or more `WARN`.
|
|
299
|
+
- `NOT_READY` — one or more `FAIL`.
|
|
300
|
+
|
|
301
|
+
## Delegation and reuse
|
|
302
|
+
|
|
303
|
+
- Reuse `config-resolution` for config and lifecycle role defaults instead of inventing a second
|
|
304
|
+
schema.
|
|
305
|
+
- Reuse the existing `github-project-v2` chokepoint for GitHub Project coordination checks instead
|
|
306
|
+
of inlining bespoke access logic.
|
|
307
|
+
- Reuse ideas from `lisa-wiki-doctor` for grouped verdict rendering where they fit, while keeping
|
|
308
|
+
the Lisa-wide doctor narrower than the wiki-specific migration/readiness workflow.
|
|
309
|
+
|
|
310
|
+
## Rules
|
|
311
|
+
|
|
312
|
+
- Never mutate repository, tracker, or automation state on the default doctor path.
|
|
313
|
+
- Never hardcode tracker/source label names outside the documented defaults plus configured
|
|
314
|
+
overrides from `config-resolution`.
|
|
315
|
+
- Never silently treat an unavailable check surface as success; report `WARN`, `FAIL`, or `SKIP`
|
|
316
|
+
with the explicit missing dependency.
|
|
317
|
+
- Never turn wiki-specific checks into a requirement for non-wiki repos.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: epic-triage
|
|
3
|
+
description: "9-step epic triage and 5-step implementation workflow. Ensures epics are fully scoped, broken down, and ordered before execution begins."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Epic Triage
|
|
7
|
+
|
|
8
|
+
Follow this 9-step triage process before implementing any epic. Do not skip triage.
|
|
9
|
+
|
|
10
|
+
## Triage Steps
|
|
11
|
+
|
|
12
|
+
1. Verify you have all information needed to understand the full scope of this epic (goals, acceptance criteria, impacted systems, design specs, dependencies, etc.). Do not make assumptions. If anything is missing, stop and ask before proceeding.
|
|
13
|
+
2. Verify the epic is broken down into concrete, well-scoped bugs, tasks, and/or stories that are each fully triaged. If ambiguities exist, stop and resolve them before breaking it down.
|
|
14
|
+
3. Identify all cross-cutting concerns (auth, performance, security, data migrations, third-party integrations) that need to be addressed across the epic.
|
|
15
|
+
4. Identify all dependencies between tasks within the epic, or on external epics, teams, or services. Determine the correct order of execution.
|
|
16
|
+
5. Verify you have access to the tools, environments, and permissions needed to deploy and verify all tasks within this epic (e.g. CI/CD pipelines, deployment targets, logging/monitoring systems, API access, database access). If any are missing or inaccessible, stop and raise them before proceeding.
|
|
17
|
+
6. Define the overall test strategy for the epic (unit, integration, end-to-end, load testing).
|
|
18
|
+
7. Define the documentation that will need to be created or updated to cover the full scope of the epic so another developer understands the architecture, design decisions, and implementation.
|
|
19
|
+
8. Define measurable acceptance criteria that confirm the epic is fully complete.
|
|
20
|
+
9. Define how you will verify the epic is fully delivered beyond a shadow of a doubt (e.g. deploy to the target environment, walk through all acceptance criteria end-to-end, confirm all child tasks/stories are closed, confirm no regressions).
|
|
21
|
+
|
|
22
|
+
## Implementation
|
|
23
|
+
|
|
24
|
+
1. Use the output of the triage steps above as your guide. Do not skip triage.
|
|
25
|
+
2. Work through each task and/or story in the order defined during triage, respecting dependencies.
|
|
26
|
+
3. Apply the Bug Implementation and Task Implementation processes to each child bug or task, respectively, as you work through them.
|
|
27
|
+
4. Continuously update the epic and its child issues in JIRA as progress is made.
|
|
28
|
+
5. Do not consider the epic complete until all acceptance criteria are verified in the target environment and all child issues are resolved.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fix-linter-error
|
|
3
|
+
description: This skill should be used when fixing all violations of one or more ESLint rules across the codebase. It runs the linter, groups violations by rule and file, generates a brief with fix strategies, and creates a plan with tasks to implement the fixes.
|
|
4
|
+
allowed-tools: ["Read", "Bash", "Glob", "Grep"]
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Fix Linter Errors
|
|
9
|
+
|
|
10
|
+
Target rules: $ARGUMENTS
|
|
11
|
+
|
|
12
|
+
If no arguments provided, prompt the user for at least one lint rule name.
|
|
13
|
+
|
|
14
|
+
## Step 1: Gather Requirements
|
|
15
|
+
|
|
16
|
+
1. **Parse rules** from $ARGUMENTS (space-separated)
|
|
17
|
+
2. **Run linter** to collect all violations:
|
|
18
|
+
```bash
|
|
19
|
+
bun run lint 2>&1
|
|
20
|
+
```
|
|
21
|
+
3. **Group violations** by rule, then by file, noting:
|
|
22
|
+
- File path and line numbers
|
|
23
|
+
- Violation count per file
|
|
24
|
+
- Sample error messages
|
|
25
|
+
|
|
26
|
+
## Step 2: Compile Brief and Delegate
|
|
27
|
+
|
|
28
|
+
Compile the gathered information into a structured brief:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
Fix ESLint violations for rules: $ARGUMENTS
|
|
32
|
+
|
|
33
|
+
Violations by rule:
|
|
34
|
+
- [rule-name-1]: X total violations across Y files
|
|
35
|
+
- [file]: N violations (lines: ...)
|
|
36
|
+
- ...
|
|
37
|
+
- [rule-name-2]: X total violations across Y files
|
|
38
|
+
- ...
|
|
39
|
+
|
|
40
|
+
Fix strategies: extract functions, early returns, apply formatting, add types
|
|
41
|
+
|
|
42
|
+
Verification: `bun run lint 2>&1 | grep -E "($ARGUMENTS)" | wc -l` → Expected: 0
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Invoke `/implement` with this brief to create the implementation plan.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: git-commit
|
|
3
|
+
description: This skill should be used when creating conventional commits for current changes. It groups related changes into logical commits, ensures all files are committed, and verifies the working directory is clean afterward.
|
|
4
|
+
allowed-tools: ["Bash"]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Git Commit Workflow
|
|
8
|
+
|
|
9
|
+
Create conventional commits for current changes. Optional hint: $ARGUMENTS
|
|
10
|
+
|
|
11
|
+
## Workflow
|
|
12
|
+
|
|
13
|
+
### See what has changed
|
|
14
|
+
|
|
15
|
+
!git status
|
|
16
|
+
!git diff --stat
|
|
17
|
+
|
|
18
|
+
### Apply these requirements
|
|
19
|
+
|
|
20
|
+
1. **Branch Check**: If on `dev`, `staging`, or `main`, create a feature branch named after the changes
|
|
21
|
+
2. **Commit Strategy**: Group related changes into logical conventional commits (feat, fix, chore, docs, etc.)
|
|
22
|
+
3. **Commit ALL Files**: Every file must be assigned to a commit group - no file gets left out or unstaged
|
|
23
|
+
4. **Commit Creation**: Stage and commit each group with clear messages
|
|
24
|
+
5. **Verification**: Run `git status` to confirm working directory is clean - must show "nothing to commit"
|
|
25
|
+
|
|
26
|
+
### Use conventional commit format
|
|
27
|
+
|
|
28
|
+
- `feat:` for new features
|
|
29
|
+
- `fix:` for bug fixes
|
|
30
|
+
- `docs:` for documentation
|
|
31
|
+
- `chore:` for maintenance
|
|
32
|
+
- `style:` for formatting
|
|
33
|
+
- `refactor:` for code restructuring
|
|
34
|
+
- `test:` for test additions
|
|
35
|
+
|
|
36
|
+
### Never
|
|
37
|
+
|
|
38
|
+
- use `--no-verify` flag
|
|
39
|
+
- attempt to bypass tests or quality checks
|
|
40
|
+
- skip tests or quality checks
|
|
41
|
+
- stash changes - ALL changes must be committed
|
|
42
|
+
- skip or exclude any files from the commit - even if they're unrelated
|
|
43
|
+
- leave uncommitted changes in the working directory
|
|
44
|
+
- ask the user which files to commit - commit everything
|
|
45
|
+
|
|
46
|
+
## Execute
|
|
47
|
+
|
|
48
|
+
Execute the workflow now.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: git-prune
|
|
3
|
+
description: This skill should be used when pruning local branches that have been deleted on the remote. It fetches remote changes, identifies stale local branches, and safely deletes them.
|
|
4
|
+
allowed-tools: ["Bash"]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Git Prune Local Branches
|
|
8
|
+
|
|
9
|
+
Remove local branches whose upstream tracking branches have been deleted on remote.
|
|
10
|
+
|
|
11
|
+
## Workflow
|
|
12
|
+
|
|
13
|
+
### Fetch and prune remote-tracking references
|
|
14
|
+
|
|
15
|
+
!git fetch --prune
|
|
16
|
+
|
|
17
|
+
### Find and delete stale local branches
|
|
18
|
+
|
|
19
|
+
!git branch -vv | grep ': gone]' | awk '{print $1}'
|
|
20
|
+
|
|
21
|
+
### Apply these requirements
|
|
22
|
+
|
|
23
|
+
1. **Preview**: Show which branches will be deleted before deleting
|
|
24
|
+
2. **Safe Delete**: Use `-d` (safe delete) which refuses to delete unmerged branches
|
|
25
|
+
3. **Report**: Show summary of deleted branches
|
|
26
|
+
|
|
27
|
+
### Never
|
|
28
|
+
|
|
29
|
+
- Force delete (`-D`) without user confirmation
|
|
30
|
+
- Delete the current branch
|
|
31
|
+
- Delete protected branches (dev, staging, main)
|
|
32
|
+
|
|
33
|
+
## Execute
|
|
34
|
+
|
|
35
|
+
Execute the workflow now.
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: git-submit-pr
|
|
3
|
+
description: This skill should be used when pushing changes and creating or updating a pull request. It verifies the branch state, pushes to remote, creates or updates a PR with a comprehensive description, optionally coordinates the resulting Pull Request into the configured GitHub ProjectV2, and enables auto-merge.
|
|
4
|
+
allowed-tools: ["Bash", "Skill", "mcp__github__create_pull_request", "mcp__github__get_pull_request", "mcp__github__update_pull_request"]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Submit Pull Request Workflow
|
|
8
|
+
|
|
9
|
+
Push current branch and create or update a pull request. Optional hint: $ARGUMENTS
|
|
10
|
+
|
|
11
|
+
Recognized optional hints:
|
|
12
|
+
|
|
13
|
+
- `work_item_ref=<ref>` — source tracker item for native development linkage. Examples: `CodySwannGT/lisa#614`, `https://github.com/CodySwannGT/lisa/issues/614`, `ENG-123`, `PROJ-456`.
|
|
14
|
+
- `target_branch=<branch>` or `base=<branch>` — intended PR base branch, used to decide whether a GitHub closing keyword is safe.
|
|
15
|
+
- `tracker_provider=<github|linear|jira|none>` — explicit provider when the ref shape is ambiguous.
|
|
16
|
+
|
|
17
|
+
## Workflow
|
|
18
|
+
|
|
19
|
+
### Check current state
|
|
20
|
+
|
|
21
|
+
!git status
|
|
22
|
+
!git log --oneline -10
|
|
23
|
+
|
|
24
|
+
### Apply these requirements
|
|
25
|
+
|
|
26
|
+
1. **Branch Check**: Verify not on `dev`, `staging`, or `main` (cannot create PR from protected branches)
|
|
27
|
+
2. **Commit Check**: Ensure all changes are committed before pushing
|
|
28
|
+
3. **Push**: Push current branch to remote with `-u` flag and the following environment variable - GIT_SSH_COMMAND="ssh -o ServerAliveInterval=30 -o ServerAliveCountMax=5"
|
|
29
|
+
4. **PR Management**:
|
|
30
|
+
- Check for existing PR on this branch
|
|
31
|
+
- If exists: Update description with latest changes
|
|
32
|
+
- If not: Create PR with comprehensive description (not a draft)
|
|
33
|
+
- Include native development linkage for the source work item when `work_item_ref` can be inferred from `$ARGUMENTS`, the current branch name, an existing PR body, or the issue/ticket context passed by the caller.
|
|
34
|
+
- After the PR exists, re-resolve the live Pull Request node id and, when `github.projects.v2` is enabled, invoke `lisa:github-project-v2` with `operation: ensure-item` and `content_node_id: <pull-request-node-id>` so linked pull requests join the configured shared Project without replacing the PR as the durable review/merge surface.
|
|
35
|
+
5. **Auto-merge**: Choose merge strategy by PR type:
|
|
36
|
+
- **Promotion PRs** (env → env, e.g. `dev` → `staging`): use `gh pr merge --auto --merge` (never squash). Squashing flattens the constituent `chore(release): X.Y.Z [skip ci]` commits into one commit titled with the PR title, stripping the `[skip ci]` markers and breaking the release workflow's promotion-detection regex — the destination branch then double-bumps its version. `--merge` keeps each `chore(release)` commit (and its `[skip ci]` marker) intact under a clean merge commit subject the workflow can recognize.
|
|
37
|
+
- **Feature PRs** (anything → `dev`): use `gh pr merge --auto --merge`.
|
|
38
|
+
6. **Drive to merge**: Opening the PR and enabling auto-merge is not terminal. Continue monitoring until the PR is actually `MERGED`, `CLOSED`, or a required check/review gate fails and must be fixed.
|
|
39
|
+
- **Auto-merge capability fallback**: If `gh pr merge --auto --merge` fails because the repository does not allow auto-merge, keep watching the required checks and review decision. Once checks are green, the review gate is clear, and the PR is mergeable, run `gh pr merge --merge` directly. Never fall back to squash.
|
|
40
|
+
- **BEHIND re-sync**: Poll `gh pr view <pr> --json mergeStateStatus,statusCheckRollup,reviewDecision,mergeable,state`. If `mergeStateStatus == BEHIND` after required checks are green, run `gh pr update-branch <pr>` and continue watching the new head while checks rerun.
|
|
41
|
+
- **Sync conflict path**: If `gh pr update-branch` reports a conflict or cannot update the branch, surface the conflicting files, fetch the base branch locally, merge the base into the PR branch, resolve conflicts, run the relevant checks, and push. If the conflict needs broader design input, escalate through the agent-team fix-task pattern with the file list and current merge state. Do not leave a PR silently stalled in an ambiguous sync state.
|
|
42
|
+
- **Review-gate stall**: If `reviewDecision == CHANGES_REQUESTED`, inspect unresolved review threads and blocking reviews. After the requested changes are addressed and threads are resolved, clear stale bot review blocks by dismissing the obsolete `CHANGES_REQUESTED` review where repository policy permits, or re-request review when dismissal is not allowed. A later `COMMENTED` review does not clear GitHub's prior `CHANGES_REQUESTED` state by itself.
|
|
43
|
+
- **Loop terminal states**: Continue the loop until the PR is `MERGED`, is `CLOSED`, checks fail, the review gate remains blocked by unresolved human feedback, or a sync conflict cannot be resolved locally. On check failures, use the existing PR watch/fix path: inspect logs, fix, commit, push, and resume the loop.
|
|
44
|
+
- **Harness-agnostic commands**: Use plain `gh` and `git` commands for this loop so Claude and Codex agents execute the same behavior from the shared skill.
|
|
45
|
+
|
|
46
|
+
### Native Development Linkage
|
|
47
|
+
|
|
48
|
+
Add provider-appropriate linkage to the PR title and/or body without changing the status lifecycle:
|
|
49
|
+
|
|
50
|
+
- **GitHub Issues**:
|
|
51
|
+
- If `work_item_ref` is a GitHub issue URL, `org/repo#<n>`, or `#<n>`, add a dedicated issue reference line to the PR body.
|
|
52
|
+
- Use a closing keyword such as `Closes #<n>` only when merging this PR to the base branch represents terminal delivery for that issue. This is true when the target branch is the repository default branch or the configured production branch from `.lisa.config.json` `deploy.branches.production`.
|
|
53
|
+
- If the target branch is a non-terminal environment branch such as `dev` or `staging`, use a non-closing reference such as `Refs #<n>` so GitHub links the PR in the issue's Development / linked pull requests surface without prematurely closing the issue.
|
|
54
|
+
- For cross-repo issue refs, use the fully qualified form, for example `Closes CodySwannGT/lisa#614` or `Refs CodySwannGT/lisa#614`.
|
|
55
|
+
- **Linear**:
|
|
56
|
+
- Ensure the Linear issue identifier appears in the branch name when the branch is created upstream by `lisa:implement`.
|
|
57
|
+
- Include the identifier in the PR title or body, for example `Linear: ENG-123`, so Linear's GitHub integration can attach the PR.
|
|
58
|
+
- **JIRA**:
|
|
59
|
+
- Ensure the JIRA issue key appears in the branch name when the branch is created upstream by `lisa:implement`.
|
|
60
|
+
- Include the key in the PR title or body, for example `JIRA: PROJ-456`, so the GitHub-JIRA integration can attach the PR.
|
|
61
|
+
- **No supported provider**: Skip this section without error; do not invent references.
|
|
62
|
+
|
|
63
|
+
When updating an existing PR, preserve any existing linkage line unless the new `work_item_ref` is more specific. Do not duplicate equivalent references.
|
|
64
|
+
|
|
65
|
+
### GitHub ProjectV2 Coordination
|
|
66
|
+
|
|
67
|
+
After PR creation or update, resolve the live Pull Request node id:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
gh pr view <pr-number> --json id,url --jq '{ id, url }'
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
When `github.projects.v2` is enabled, delegate membership to `lisa:github-project-v2`:
|
|
74
|
+
|
|
75
|
+
```text
|
|
76
|
+
operation: ensure-item
|
|
77
|
+
content_node_id: <pull-request-node-id>
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Branch on the shared utility outcome exactly as GitHub Issue writers do:
|
|
81
|
+
|
|
82
|
+
- `outcome: disabled` — no Project configured; continue normally.
|
|
83
|
+
- `outcome: added` or `outcome: reused` — PR membership is now present; continue normally.
|
|
84
|
+
- `outcome: warning` with `required: false` — preserve the exact Project error, keep the underlying PR creation/update as the durable success, and continue the normal auto-merge/watch flow.
|
|
85
|
+
- `outcome: blocked` with `required: true` — surface the exact Project failure and treat the submit flow as blocked even if the PR already exists, so operators can fix Project access/config before reporting full success.
|
|
86
|
+
|
|
87
|
+
Never inline separate `gh api graphql` ProjectV2 mutations here. All Pull Request membership coordination goes through `lisa:github-project-v2` so linked-PR flows and Issue writers stay in parity.
|
|
88
|
+
|
|
89
|
+
### PR Description Format
|
|
90
|
+
|
|
91
|
+
Include in the PR description:
|
|
92
|
+
|
|
93
|
+
- **Summary**: Brief overview of changes (1-3 bullet points)
|
|
94
|
+
- **Test plan**: How to verify the changes work correctly
|
|
95
|
+
- **Issue / Tracker link**: The provider-specific native linkage line when a source work item is available, placed after the summary and before the test plan.
|
|
96
|
+
|
|
97
|
+
### Never
|
|
98
|
+
|
|
99
|
+
- use `--force` push without explicit user request
|
|
100
|
+
- create PR from protected branches (dev, staging, main)
|
|
101
|
+
- skip pushing before PR creation
|
|
102
|
+
|
|
103
|
+
## Execute
|
|
104
|
+
|
|
105
|
+
Execute the workflow now.
|