@codyswann/lisa 4.74.9 → 4.75.1
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 +60 -0
- package/all/copy-overwrite/scripts/lib/npm-update-github.mjs +73 -40
- package/all/copy-overwrite/scripts/lib/npm-update-invariants.mjs +54 -0
- package/all/copy-overwrite/scripts/npm-updater-helper-graph.json +3 -2
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +6 -0
- package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
- package/dist/core/lisa-skill-sources.d.ts +3 -3
- package/dist/core/lisa-skill-sources.d.ts.map +1 -1
- package/dist/core/lisa-skill-sources.js +3 -2
- package/dist/core/lisa-skill-sources.js.map +1 -1
- package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +735 -8
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/package.json +4 -4
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-devin/.claude-plugin/plugin.json +11 -0
- package/plugins/lisa-cdk-devin/.devin-plugin/plugin.json +8 -0
- package/plugins/lisa-cdk-devin/skills/setup-aws-accounts/SKILL.md +292 -0
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-devin/.claude-plugin/plugin.json +8 -0
- package/plugins/lisa-devin/.devin-plugin/plugin.json +8 -0
- package/plugins/lisa-devin/.mcp.json +8 -0
- package/plugins/lisa-devin/agents/architecture-specialist.md +32 -0
- package/plugins/lisa-devin/agents/bug-fixer.md +43 -0
- package/plugins/lisa-devin/agents/builder.md +44 -0
- package/plugins/lisa-devin/agents/confluence-prd-intake.md +65 -0
- package/plugins/lisa-devin/agents/debug-specialist.md +34 -0
- package/plugins/lisa-devin/agents/eval-specialist.md +33 -0
- package/plugins/lisa-devin/agents/git-history-analyzer.md +183 -0
- package/plugins/lisa-devin/agents/github-agent.md +155 -0
- package/plugins/lisa-devin/agents/github-build-intake.md +64 -0
- package/plugins/lisa-devin/agents/github-prd-intake.md +66 -0
- package/plugins/lisa-devin/agents/jira-agent.md +135 -0
- package/plugins/lisa-devin/agents/jira-build-intake.md +64 -0
- package/plugins/lisa-devin/agents/learner.md +85 -0
- package/plugins/lisa-devin/agents/learning-judge.md +119 -0
- package/plugins/lisa-devin/agents/learnings-synthesizer.md +155 -0
- package/plugins/lisa-devin/agents/linear-agent.md +138 -0
- package/plugins/lisa-devin/agents/linear-build-intake.md +64 -0
- package/plugins/lisa-devin/agents/linear-prd-intake.md +66 -0
- package/plugins/lisa-devin/agents/notion-prd-intake.md +63 -0
- package/plugins/lisa-devin/agents/performance-specialist.md +26 -0
- package/plugins/lisa-devin/agents/pr-mining-specialist.md +85 -0
- package/plugins/lisa-devin/agents/product-specialist.md +30 -0
- package/plugins/lisa-devin/agents/quality-specialist.md +30 -0
- package/plugins/lisa-devin/agents/security-specialist.md +43 -0
- package/plugins/lisa-devin/agents/skill-evaluator.md +205 -0
- package/plugins/lisa-devin/agents/spec-conformance-specialist.md +56 -0
- package/plugins/lisa-devin/agents/test-specialist.md +32 -0
- package/plugins/lisa-devin/agents/tracker-mining-specialist.md +85 -0
- package/plugins/lisa-devin/agents/verification-specialist.md +145 -0
- package/plugins/lisa-devin/hooks/auto-update.mjs +824 -0
- package/plugins/lisa-devin/hooks/auto-update.sh +31 -0
- package/plugins/lisa-devin/hooks/block-blind-automerge.sh +1242 -0
- package/plugins/lisa-devin/hooks/block-direct-issue-create.sh +2603 -0
- package/plugins/lisa-devin/hooks/block-host-name-leak.mjs +412 -0
- package/plugins/lisa-devin/hooks/block-host-name-leak.sh +61 -0
- package/plugins/lisa-devin/hooks/block-instruction-file-edits.sh +207 -0
- package/plugins/lisa-devin/hooks/block-managed-file-edits.sh +1175 -0
- package/plugins/lisa-devin/hooks/block-no-verify.sh +2288 -0
- package/plugins/lisa-devin/hooks/block-shell-json-parsing.sh +263 -0
- package/plugins/lisa-devin/hooks/cleanup-stale-worktrees.sh +122 -0
- package/plugins/lisa-devin/hooks/devin-tool-name-shim.sh +30 -0
- package/plugins/lisa-devin/hooks/discharge-work-item-gates.sh +90 -0
- package/plugins/lisa-devin/hooks/enforce-verification-gate.sh +506 -0
- package/plugins/lisa-devin/hooks/enforcement-vintage-npm.mjs +320 -0
- package/plugins/lisa-devin/hooks/enforcement-vintage.mjs +472 -0
- package/plugins/lisa-devin/hooks/enforcement-vintage.sh +48 -0
- package/plugins/lisa-devin/hooks/failure-signature-index.mjs +717 -0
- package/plugins/lisa-devin/hooks/failure-signature-index.sh +26 -0
- package/plugins/lisa-devin/hooks/guard-dedupe.bash +374 -0
- package/plugins/lisa-devin/hooks/inject-resolved-config.mjs +903 -0
- package/plugins/lisa-devin/hooks/inject-resolved-config.sh +107 -0
- package/plugins/lisa-devin/hooks/inject-rules.sh +49 -0
- package/plugins/lisa-devin/hooks/install-pkgs.sh +84 -0
- package/plugins/lisa-devin/hooks/operational-hazards.mjs +736 -0
- package/plugins/lisa-devin/hooks/operational-hazards.sh +28 -0
- package/plugins/lisa-devin/hooks/parity-safety-net-heredoc.py +1004 -0
- package/plugins/lisa-devin/hooks/parity-safety-net.sh +3275 -0
- package/plugins/lisa-devin/hooks/secrets-preflight.sh +72 -0
- package/plugins/lisa-devin/hooks/setup-jira-cli.sh +205 -0
- package/plugins/lisa-devin/hooks/shell-write-nudge.sh +86 -0
- package/plugins/lisa-devin/hooks/sonar-secrets.sh +205 -0
- package/plugins/lisa-devin/hooks/threshold-ratchet-compare.mjs +518 -0
- package/plugins/lisa-devin/hooks/threshold-ratchet-families.mjs +543 -0
- package/plugins/lisa-devin/hooks/threshold-ratchet.mjs +568 -0
- package/plugins/lisa-devin/hooks/threshold-ratchet.sh +22 -0
- package/plugins/lisa-devin/hooks/withdrawn-rulings.mjs +600 -0
- package/plugins/lisa-devin/hooks/withdrawn-rulings.sh +24 -0
- package/plugins/lisa-devin/hooks/worktree-binding-guard.mjs +1383 -0
- package/plugins/lisa-devin/hooks/worktree-binding-guard.sh +79 -0
- package/plugins/lisa-devin/hooks.json +247 -0
- package/plugins/lisa-devin/rules/eager/00-rule-index.md +82 -0
- package/plugins/lisa-devin/rules/eager/base-rules.md +85 -0
- package/plugins/lisa-devin/rules/eager/coding-philosophy.md +27 -0
- package/plugins/lisa-devin/rules/eager/config-resolution.md +37 -0
- package/plugins/lisa-devin/rules/eager/do-it-now.md +11 -0
- package/plugins/lisa-devin/rules/eager/empirical-inquiry.md +24 -0
- package/plugins/lisa-devin/rules/eager/falsifiable-checks.md +48 -0
- package/plugins/lisa-devin/rules/eager/history-audit.md +27 -0
- package/plugins/lisa-devin/rules/eager/integration-access-layer.md +19 -0
- package/plugins/lisa-devin/rules/eager/intent-routing.md +18 -0
- package/plugins/lisa-devin/rules/eager/learnings-ladder.md +18 -0
- package/plugins/lisa-devin/rules/eager/local-ci-first.md +15 -0
- package/plugins/lisa-devin/rules/eager/measurement-integrity.md +18 -0
- package/plugins/lisa-devin/rules/eager/never-name-a-downstream-project.md +9 -0
- package/plugins/lisa-devin/rules/eager/not-blocked-just-waiting.md +13 -0
- package/plugins/lisa-devin/rules/eager/operational-hazards.md +50 -0
- package/plugins/lisa-devin/rules/eager/report-actionability.md +26 -0
- package/plugins/lisa-devin/rules/eager/security-audit-handling.md +40 -0
- package/plugins/lisa-devin/rules/eager/session-status-updates.md +20 -0
- package/plugins/lisa-devin/rules/eager/settled-decisions.md +75 -0
- package/plugins/lisa-devin/rules/eager/stale-state-claims.md +26 -0
- package/plugins/lisa-devin/rules/eager/tool-access-gate.md +23 -0
- package/plugins/lisa-devin/rules/eager/tracked-work.md +9 -0
- package/plugins/lisa-devin/rules/eager/upstream-to-lisa.md +14 -0
- package/plugins/lisa-devin/rules/eager/verification.md +33 -0
- package/plugins/lisa-devin/rules/eager/wiki-knowledge-source.md +13 -0
- package/plugins/lisa-devin/rules/eager/withdrawn-rulings.md +102 -0
- package/plugins/lisa-devin/rules/reference/automation-runbook-contract.md +355 -0
- package/plugins/lisa-devin/rules/reference/base-rules.md +136 -0
- package/plugins/lisa-devin/rules/reference/bdd-e2e-coverage.md +301 -0
- package/plugins/lisa-devin/rules/reference/blocker-containment.md +165 -0
- package/plugins/lisa-devin/rules/reference/claim-archaeology.md +184 -0
- package/plugins/lisa-devin/rules/reference/claim-evidence-mapping.md +362 -0
- package/plugins/lisa-devin/rules/reference/claim-time-guards.md +135 -0
- package/plugins/lisa-devin/rules/reference/coding-philosophy.md +428 -0
- package/plugins/lisa-devin/rules/reference/config-resolution.md +1225 -0
- package/plugins/lisa-devin/rules/reference/control-reachability.md +166 -0
- package/plugins/lisa-devin/rules/reference/convergent-review.md +145 -0
- package/plugins/lisa-devin/rules/reference/credential-substrate-precedence.md +249 -0
- package/plugins/lisa-devin/rules/reference/dependency-decision-records.md +177 -0
- package/plugins/lisa-devin/rules/reference/dependency-internalization-kit.md +244 -0
- package/plugins/lisa-devin/rules/reference/dependency-trust-classes.md +291 -0
- package/plugins/lisa-devin/rules/reference/deployed-state-readback.md +142 -0
- package/plugins/lisa-devin/rules/reference/derived-branch-plan.md +214 -0
- package/plugins/lisa-devin/rules/reference/design-source-of-truth.md +260 -0
- package/plugins/lisa-devin/rules/reference/design-value-binding.md +311 -0
- package/plugins/lisa-devin/rules/reference/do-it-now.md +19 -0
- package/plugins/lisa-devin/rules/reference/documentation-source-paths.md +31 -0
- package/plugins/lisa-devin/rules/reference/empirical-inquiry.md +28 -0
- package/plugins/lisa-devin/rules/reference/factory-model.md +111 -0
- package/plugins/lisa-devin/rules/reference/falsifiable-checks.md +275 -0
- package/plugins/lisa-devin/rules/reference/history-audit.md +42 -0
- package/plugins/lisa-devin/rules/reference/integration-access-layer.md +89 -0
- package/plugins/lisa-devin/rules/reference/intent-routing.md +428 -0
- package/plugins/lisa-devin/rules/reference/leaf-only-lifecycle.md +227 -0
- package/plugins/lisa-devin/rules/reference/learnings-ladder.md +41 -0
- package/plugins/lisa-devin/rules/reference/local-ci-first.md +34 -0
- package/plugins/lisa-devin/rules/reference/measurement-integrity.md +119 -0
- package/plugins/lisa-devin/rules/reference/never-name-a-downstream-project.md +37 -0
- package/plugins/lisa-devin/rules/reference/not-blocked-just-waiting.md +41 -0
- package/plugins/lisa-devin/rules/reference/observability-audit.md +146 -0
- package/plugins/lisa-devin/rules/reference/operational-hazards.md +115 -0
- package/plugins/lisa-devin/rules/reference/prd-definition-of-ready.md +118 -0
- package/plugins/lisa-devin/rules/reference/prd-lifecycle-rollup.md +192 -0
- package/plugins/lisa-devin/rules/reference/pre-flight-autofill.md +250 -0
- package/plugins/lisa-devin/rules/reference/project-learnings.md +159 -0
- package/plugins/lisa-devin/rules/reference/promotion-contract.md +148 -0
- package/plugins/lisa-devin/rules/reference/readiness-rubric.md +242 -0
- package/plugins/lisa-devin/rules/reference/ready-role-filing.md +212 -0
- package/plugins/lisa-devin/rules/reference/rejection-detection.md +308 -0
- package/plugins/lisa-devin/rules/reference/repo-scope-split.md +119 -0
- package/plugins/lisa-devin/rules/reference/report-actionability.md +61 -0
- package/plugins/lisa-devin/rules/reference/reset-seed-coverage.md +286 -0
- package/plugins/lisa-devin/rules/reference/security-audit-handling.md +55 -0
- package/plugins/lisa-devin/rules/reference/session-status-updates.md +111 -0
- package/plugins/lisa-devin/rules/reference/settled-decisions.md +39 -0
- package/plugins/lisa-devin/rules/reference/stale-state-claims.md +88 -0
- package/plugins/lisa-devin/rules/reference/tool-access-gate.md +114 -0
- package/plugins/lisa-devin/rules/reference/tracked-work.md +49 -0
- package/plugins/lisa-devin/rules/reference/upstream-to-lisa.md +26 -0
- package/plugins/lisa-devin/rules/reference/usage-accounting.md +261 -0
- package/plugins/lisa-devin/rules/reference/verification.md +278 -0
- package/plugins/lisa-devin/rules/reference/wiki-knowledge-source.md +37 -0
- package/plugins/lisa-devin/rules/reference/withdrawn-rulings.md +148 -0
- package/plugins/lisa-devin/rules/reference/work-item-definition-of-ready.md +177 -0
- package/plugins/lisa-devin/rules/reference/work-item-trailer-definition.md +129 -0
- package/plugins/lisa-devin/scripts/automation-run-record.mjs +678 -0
- package/plugins/lisa-devin/scripts/automation-status-claude-adapter.mjs +804 -0
- package/plugins/lisa-devin/scripts/automation-status-codex-adapter.mjs +1081 -0
- package/plugins/lisa-devin/scripts/automation-status-contract-drift.mjs +392 -0
- package/plugins/lisa-devin/scripts/automation-status-expected-fleet.mjs +508 -0
- package/plugins/lisa-devin/scripts/automation-status-report.mjs +200 -0
- package/plugins/lisa-devin/scripts/automation-status-run-history.mjs +216 -0
- package/plugins/lisa-devin/scripts/automation-status-unrecorded-runs.mjs +127 -0
- package/plugins/lisa-devin/scripts/blocker-edge-resolution.mjs +150 -0
- package/plugins/lisa-devin/scripts/cross-pollinate.mjs +763 -0
- package/plugins/lisa-devin/scripts/design-bindings-probe.mjs +713 -0
- package/plugins/lisa-devin/scripts/design-intake-gate.mjs +470 -0
- package/plugins/lisa-devin/scripts/design-source-gate.mjs +610 -0
- package/plugins/lisa-devin/scripts/design-variable-ids.mjs +567 -0
- package/plugins/lisa-devin/scripts/doctor-report.mjs +635 -0
- package/plugins/lisa-devin/scripts/install-remote-agent-aws.mjs +443 -0
- package/plugins/lisa-devin/scripts/intake-blocker-reprobe.mjs +1065 -0
- package/plugins/lisa-devin/scripts/intake-prework-denominator.mjs +249 -0
- package/plugins/lisa-devin/scripts/lifecycle-label-trust.mjs +593 -0
- package/plugins/lisa-devin/scripts/linear-state-write-target.mjs +362 -0
- package/plugins/lisa-devin/scripts/plugin-sync-explain.mjs +654 -0
- package/plugins/lisa-devin/scripts/pr-arming-sweep.mjs +561 -0
- package/plugins/lisa-devin/scripts/project-ideation-idempotency-harness.mjs +338 -0
- package/plugins/lisa-devin/scripts/qa-signal-lifecycle.mjs +523 -0
- package/plugins/lisa-devin/scripts/queue-contract-resolution.mjs +583 -0
- package/plugins/lisa-devin/scripts/queue-health-classification.mjs +157 -0
- package/plugins/lisa-devin/scripts/queue-status-build-readers.mjs +561 -0
- package/plugins/lisa-devin/scripts/queue-status-prd-readers.mjs +452 -0
- package/plugins/lisa-devin/scripts/remote-agent-aws-setup.sh +677 -0
- package/plugins/lisa-devin/scripts/repo-scope-vocabulary-audit.mjs +458 -0
- package/plugins/lisa-devin/scripts/resolve-lifecycle-role.mjs +347 -0
- package/plugins/lisa-devin/scripts/rollup-blocker-classification.mjs +616 -0
- package/plugins/lisa-devin/scripts/scoping-label-audit.mjs +474 -0
- package/plugins/lisa-devin/skills/lisa-acceptance-criteria/SKILL.md +73 -0
- package/plugins/lisa-devin/skills/lisa-agent-design-best-practices/SKILL.md +242 -0
- package/plugins/lisa-devin/skills/lisa-agent-ready/SKILL.md +271 -0
- package/plugins/lisa-devin/skills/lisa-analyze-claude-remote/SKILL.md +434 -0
- package/plugins/lisa-devin/skills/lisa-atlassian-access/SKILL.md +469 -0
- package/plugins/lisa-devin/skills/lisa-atlassian-access/scripts/markdown-to-adf.mjs +236 -0
- package/plugins/lisa-devin/skills/lisa-attribute-failure/SKILL.md +142 -0
- package/plugins/lisa-devin/skills/lisa-automation-status/SKILL.md +149 -0
- package/plugins/lisa-devin/skills/lisa-bug-triage/SKILL.md +23 -0
- package/plugins/lisa-devin/skills/lisa-capability-drift/SKILL.md +71 -0
- package/plugins/lisa-devin/skills/lisa-codebase-research/SKILL.md +87 -0
- package/plugins/lisa-devin/skills/lisa-codify-verification/SKILL.md +213 -0
- package/plugins/lisa-devin/skills/lisa-confluence-prd-intake/SKILL.md +417 -0
- package/plugins/lisa-devin/skills/lisa-confluence-to-tracker/SKILL.md +469 -0
- package/plugins/lisa-devin/skills/lisa-confluence-write-prd/SKILL.md +111 -0
- package/plugins/lisa-devin/skills/lisa-cross-pollinate/SKILL.md +175 -0
- package/plugins/lisa-devin/skills/lisa-debrief/SKILL.md +96 -0
- package/plugins/lisa-devin/skills/lisa-debrief-apply/SKILL.md +106 -0
- package/plugins/lisa-devin/skills/lisa-delivery-effectiveness/SKILL.md +62 -0
- package/plugins/lisa-devin/skills/lisa-design-intake/SKILL.md +198 -0
- package/plugins/lisa-devin/skills/lisa-detect-tooling/SKILL.md +110 -0
- package/plugins/lisa-devin/skills/lisa-detect-tooling/scripts/commands.mjs +479 -0
- package/plugins/lisa-devin/skills/lisa-detect-tooling/scripts/detect-tooling.mjs +658 -0
- package/plugins/lisa-devin/skills/lisa-doctor/SKILL.md +743 -0
- package/plugins/lisa-devin/skills/lisa-drive-pr-to-merge/SKILL.md +1587 -0
- package/plugins/lisa-devin/skills/lisa-epic-triage/SKILL.md +28 -0
- package/plugins/lisa-devin/skills/lisa-evaluation-suite/SKILL.md +63 -0
- package/plugins/lisa-devin/skills/lisa-exploratory-qa/SKILL.md +185 -0
- package/plugins/lisa-devin/skills/lisa-fix-linter-error/SKILL.md +45 -0
- package/plugins/lisa-devin/skills/lisa-generate-claude-remote-build-script/SKILL.md +235 -0
- package/plugins/lisa-devin/skills/lisa-git-commit/SKILL.md +53 -0
- package/plugins/lisa-devin/skills/lisa-git-prune/SKILL.md +35 -0
- package/plugins/lisa-devin/skills/lisa-git-submit-pr/SKILL.md +170 -0
- package/plugins/lisa-devin/skills/lisa-github-add-journey/SKILL.md +118 -0
- package/plugins/lisa-devin/skills/lisa-github-build-intake/SKILL.md +745 -0
- package/plugins/lisa-devin/skills/lisa-github-claim/SKILL.md +27 -0
- package/plugins/lisa-devin/skills/lisa-github-create/SKILL.md +105 -0
- package/plugins/lisa-devin/skills/lisa-github-evidence/SKILL.md +120 -0
- package/plugins/lisa-devin/skills/lisa-github-journey/SKILL.md +134 -0
- package/plugins/lisa-devin/skills/lisa-github-prd-intake/SKILL.md +424 -0
- package/plugins/lisa-devin/skills/lisa-github-project-v2/SKILL.md +227 -0
- package/plugins/lisa-devin/skills/lisa-github-read-issue/SKILL.md +305 -0
- package/plugins/lisa-devin/skills/lisa-github-sync/SKILL.md +201 -0
- package/plugins/lisa-devin/skills/lisa-github-to-tracker/SKILL.md +456 -0
- package/plugins/lisa-devin/skills/lisa-github-validate-issue/SKILL.md +598 -0
- package/plugins/lisa-devin/skills/lisa-github-verify/SKILL.md +60 -0
- package/plugins/lisa-devin/skills/lisa-github-write-issue/SKILL.md +531 -0
- package/plugins/lisa-devin/skills/lisa-github-write-prd/SKILL.md +156 -0
- package/plugins/lisa-devin/skills/lisa-health/SKILL.md +142 -0
- package/plugins/lisa-devin/skills/lisa-health-drift-cron/SKILL.md +80 -0
- package/plugins/lisa-devin/skills/lisa-implement/SKILL.md +372 -0
- package/plugins/lisa-devin/skills/lisa-improve-code-complexity/SKILL.md +44 -0
- package/plugins/lisa-devin/skills/lisa-improve-harness/SKILL.md +487 -0
- package/plugins/lisa-devin/skills/lisa-improve-max-lines/SKILL.md +45 -0
- package/plugins/lisa-devin/skills/lisa-improve-max-lines-per-function/SKILL.md +46 -0
- package/plugins/lisa-devin/skills/lisa-improve-test-coverage/SKILL.md +47 -0
- package/plugins/lisa-devin/skills/lisa-improve-tests/SKILL.md +50 -0
- package/plugins/lisa-devin/skills/lisa-intake/SKILL.md +208 -0
- package/plugins/lisa-devin/skills/lisa-intake-explain/SKILL.md +279 -0
- package/plugins/lisa-devin/skills/lisa-jam-access/SKILL.md +128 -0
- package/plugins/lisa-devin/skills/lisa-jira-add-journey/SKILL.md +139 -0
- package/plugins/lisa-devin/skills/lisa-jira-build-intake/SKILL.md +556 -0
- package/plugins/lisa-devin/skills/lisa-jira-claim/SKILL.md +27 -0
- package/plugins/lisa-devin/skills/lisa-jira-create/SKILL.md +157 -0
- package/plugins/lisa-devin/skills/lisa-jira-evidence/SKILL.md +106 -0
- package/plugins/lisa-devin/skills/lisa-jira-evidence/scripts/post-evidence.sh +262 -0
- package/plugins/lisa-devin/skills/lisa-jira-journey/SKILL.md +168 -0
- package/plugins/lisa-devin/skills/lisa-jira-journey/scripts/generate-templates.py +239 -0
- package/plugins/lisa-devin/skills/lisa-jira-journey/scripts/parse-plan.py +570 -0
- package/plugins/lisa-devin/skills/lisa-jira-read-ticket/SKILL.md +199 -0
- package/plugins/lisa-devin/skills/lisa-jira-read-ticket/scripts/download-attachment.sh +211 -0
- package/plugins/lisa-devin/skills/lisa-jira-sync/SKILL.md +117 -0
- package/plugins/lisa-devin/skills/lisa-jira-validate-ticket/SKILL.md +525 -0
- package/plugins/lisa-devin/skills/lisa-jira-verify/SKILL.md +61 -0
- package/plugins/lisa-devin/skills/lisa-jira-write-ticket/SKILL.md +440 -0
- package/plugins/lisa-devin/skills/lisa-jsdoc-best-practices/SKILL.md +491 -0
- package/plugins/lisa-devin/skills/lisa-kane-browser/SKILL.md +80 -0
- package/plugins/lisa-devin/skills/lisa-learnings-audit/SKILL.md +490 -0
- package/plugins/lisa-devin/skills/lisa-linear-access/SKILL.md +483 -0
- package/plugins/lisa-devin/skills/lisa-linear-add-journey/SKILL.md +109 -0
- package/plugins/lisa-devin/skills/lisa-linear-build-intake/SKILL.md +548 -0
- package/plugins/lisa-devin/skills/lisa-linear-claim/SKILL.md +28 -0
- package/plugins/lisa-devin/skills/lisa-linear-create/SKILL.md +150 -0
- package/plugins/lisa-devin/skills/lisa-linear-evidence/SKILL.md +124 -0
- package/plugins/lisa-devin/skills/lisa-linear-journey/SKILL.md +147 -0
- package/plugins/lisa-devin/skills/lisa-linear-prd-intake/SKILL.md +411 -0
- package/plugins/lisa-devin/skills/lisa-linear-read-issue/SKILL.md +201 -0
- package/plugins/lisa-devin/skills/lisa-linear-sync/SKILL.md +164 -0
- package/plugins/lisa-devin/skills/lisa-linear-to-tracker/SKILL.md +454 -0
- package/plugins/lisa-devin/skills/lisa-linear-validate-issue/SKILL.md +504 -0
- package/plugins/lisa-devin/skills/lisa-linear-verify/SKILL.md +65 -0
- package/plugins/lisa-devin/skills/lisa-linear-write-issue/SKILL.md +448 -0
- package/plugins/lisa-devin/skills/lisa-linear-write-prd/SKILL.md +98 -0
- package/plugins/lisa-devin/skills/lisa-monitor/SKILL.md +224 -0
- package/plugins/lisa-devin/skills/lisa-nightly-add-test-coverage/SKILL.md +40 -0
- package/plugins/lisa-devin/skills/lisa-nightly-improve-tests/SKILL.md +29 -0
- package/plugins/lisa-devin/skills/lisa-nightly-lower-code-complexity/SKILL.md +42 -0
- package/plugins/lisa-devin/skills/lisa-notion-access/SKILL.md +301 -0
- package/plugins/lisa-devin/skills/lisa-notion-prd-intake/SKILL.md +360 -0
- package/plugins/lisa-devin/skills/lisa-notion-to-tracker/SKILL.md +467 -0
- package/plugins/lisa-devin/skills/lisa-notion-write-prd/SKILL.md +111 -0
- package/plugins/lisa-devin/skills/lisa-parity-code-review/SKILL.md +83 -0
- package/plugins/lisa-devin/skills/lisa-parity-code-simplifier/SKILL.md +76 -0
- package/plugins/lisa-devin/skills/lisa-parity-coderabbit/SKILL.md +87 -0
- package/plugins/lisa-devin/skills/lisa-parity-sentry-sdk-setup/SKILL.md +375 -0
- package/plugins/lisa-devin/skills/lisa-parity-sentry-seer/SKILL.md +168 -0
- package/plugins/lisa-devin/skills/lisa-parity-skill-creator/SKILL.md +155 -0
- package/plugins/lisa-devin/skills/lisa-performance-review/SKILL.md +94 -0
- package/plugins/lisa-devin/skills/lisa-persist-learning/SKILL.md +247 -0
- package/plugins/lisa-devin/skills/lisa-plan/SKILL.md +64 -0
- package/plugins/lisa-devin/skills/lisa-plugin-sync-explain/SKILL.md +53 -0
- package/plugins/lisa-devin/skills/lisa-posthog-access/SKILL.md +140 -0
- package/plugins/lisa-devin/skills/lisa-prd-backlink/SKILL.md +274 -0
- package/plugins/lisa-devin/skills/lisa-prd-source-write/SKILL.md +104 -0
- package/plugins/lisa-devin/skills/lisa-prd-ticket-coverage/SKILL.md +187 -0
- package/plugins/lisa-devin/skills/lisa-product-walkthrough/SKILL.md +106 -0
- package/plugins/lisa-devin/skills/lisa-project-ideation/SKILL.md +417 -0
- package/plugins/lisa-devin/skills/lisa-project-ideation/examples/evidence-card-format.md +21 -0
- package/plugins/lisa-devin/skills/lisa-project-ideation/examples/host-project-only.md +22 -0
- package/plugins/lisa-devin/skills/lisa-project-ideation/examples/idempotency-verification-harness.md +57 -0
- package/plugins/lisa-devin/skills/lisa-project-ideation/examples/public-external-inspiration.md +22 -0
- package/plugins/lisa-devin/skills/lisa-project-ideation/examples/unavailable-data-rejection.md +22 -0
- package/plugins/lisa-devin/skills/lisa-pull-request-review/SKILL.md +132 -0
- package/plugins/lisa-devin/skills/lisa-quality-review/SKILL.md +63 -0
- package/plugins/lisa-devin/skills/lisa-queue-status/SKILL.md +215 -0
- package/plugins/lisa-devin/skills/lisa-remote-dispatch/SKILL.md +109 -0
- package/plugins/lisa-devin/skills/lisa-remote-dispatch/scripts/dispatch.mjs +535 -0
- package/plugins/lisa-devin/skills/lisa-repair-intake/SKILL.md +1621 -0
- package/plugins/lisa-devin/skills/lisa-reproduce-bug/SKILL.md +75 -0
- package/plugins/lisa-devin/skills/lisa-research/SKILL.md +92 -0
- package/plugins/lisa-devin/skills/lisa-review-implementation/SKILL.md +209 -0
- package/plugins/lisa-devin/skills/lisa-review-local/SKILL.md +141 -0
- package/plugins/lisa-devin/skills/lisa-rework-triage/SKILL.md +206 -0
- package/plugins/lisa-devin/skills/lisa-root-cause-analysis/SKILL.md +135 -0
- package/plugins/lisa-devin/skills/lisa-secrets-access/SKILL.md +430 -0
- package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/aws-bootstrap.mjs +433 -0
- package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/bootstrap-store.mjs +288 -0
- package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/doctor-secrets.mjs +273 -0
- package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/envfile.mjs +80 -0
- package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/inspect-vault.mjs +142 -0
- package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/materialize-secrets.mjs +1085 -0
- package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/note-format.mjs +179 -0
- package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/owner.mjs +96 -0
- package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/preflight-secrets.mjs +342 -0
- package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/prompt-secret.mjs +79 -0
- package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/providers.mjs +805 -0
- package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/publish-aws-bootstrap.mjs +680 -0
- package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/read-secret-note.mjs +105 -0
- package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/resolve-expo-token.mjs +90 -0
- package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/resolve-secret.mjs +285 -0
- package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/rotate-secret.mjs +297 -0
- package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/routing-floor.mjs +153 -0
- package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/surfaces.mjs +480 -0
- package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/sync-secret-to-ci.mjs +510 -0
- package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/tools-from-notes.mjs +63 -0
- package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/validate-config.mjs +550 -0
- package/plugins/lisa-devin/skills/lisa-security-review/SKILL.md +124 -0
- package/plugins/lisa-devin/skills/lisa-security-zap-scan/SKILL.md +53 -0
- package/plugins/lisa-devin/skills/lisa-sentry-access/SKILL.md +140 -0
- package/plugins/lisa-devin/skills/lisa-setup-atlassian/SKILL.md +407 -0
- package/plugins/lisa-devin/skills/lisa-setup-automations/SKILL.md +430 -0
- package/plugins/lisa-devin/skills/lisa-setup-automations/scripts/generate-workflow.mjs +288 -0
- package/plugins/lisa-devin/skills/lisa-setup-confluence/SKILL.md +254 -0
- package/plugins/lisa-devin/skills/lisa-setup-github/SKILL.md +319 -0
- package/plugins/lisa-devin/skills/lisa-setup-github-repo/SKILL.md +128 -0
- package/plugins/lisa-devin/skills/lisa-setup-jira/SKILL.md +198 -0
- package/plugins/lisa-devin/skills/lisa-setup-kane/SKILL.md +96 -0
- package/plugins/lisa-devin/skills/lisa-setup-linear/SKILL.md +375 -0
- package/plugins/lisa-devin/skills/lisa-setup-local-env/SKILL.md +95 -0
- package/plugins/lisa-devin/skills/lisa-setup-local-env/scripts/local-env.mjs +196 -0
- package/plugins/lisa-devin/skills/lisa-setup-notion/SKILL.md +376 -0
- package/plugins/lisa-devin/skills/lisa-setup-remote-aws/SKILL.md +149 -0
- package/plugins/lisa-devin/skills/lisa-setup-remote-env/SKILL.md +382 -0
- package/plugins/lisa-devin/skills/lisa-setup-remote-env/assets/materialized-env-authority.mjs +262 -0
- package/plugins/lisa-devin/skills/lisa-setup-remote-env/assets/session-start.sh +87 -0
- package/plugins/lisa-devin/skills/lisa-setup-remote-env/assets/setup.sh +216 -0
- package/plugins/lisa-devin/skills/lisa-setup-remote-env/scripts/environment.mjs +227 -0
- package/plugins/lisa-devin/skills/lisa-setup-remote-env/scripts/preflight-tools.mjs +378 -0
- package/plugins/lisa-devin/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +1632 -0
- package/plugins/lisa-devin/skills/lisa-setup-remote-env/scripts/tool-floor.mjs +94 -0
- package/plugins/lisa-devin/skills/lisa-setup-remote-env/scripts/toolchain.mjs +448 -0
- package/plugins/lisa-devin/skills/lisa-setup-remote-env/scripts/verify-remote-env.mjs +250 -0
- package/plugins/lisa-devin/skills/lisa-setup-sonar/SKILL.md +153 -0
- package/plugins/lisa-devin/skills/lisa-setup-workstation/SKILL.md +143 -0
- package/plugins/lisa-devin/skills/lisa-setup-workstation/scripts/bounded-child.mjs +168 -0
- package/plugins/lisa-devin/skills/lisa-setup-workstation/scripts/catalogue.mjs +293 -0
- package/plugins/lisa-devin/skills/lisa-setup-workstation/scripts/cli.mjs +333 -0
- package/plugins/lisa-devin/skills/lisa-setup-workstation/scripts/workstation.mjs +511 -0
- package/plugins/lisa-devin/skills/lisa-sonarcloud-access/SKILL.md +202 -0
- package/plugins/lisa-devin/skills/lisa-spec-conformance/SKILL.md +205 -0
- package/plugins/lisa-devin/skills/lisa-starter-sync/SKILL.md +35 -0
- package/plugins/lisa-devin/skills/lisa-sync-down/SKILL.md +209 -0
- package/plugins/lisa-devin/skills/lisa-task-decomposition/SKILL.md +195 -0
- package/plugins/lisa-devin/skills/lisa-task-triage/SKILL.md +23 -0
- package/plugins/lisa-devin/skills/lisa-tdd-implementation/SKILL.md +91 -0
- package/plugins/lisa-devin/skills/lisa-tear-down-automations/SKILL.md +85 -0
- package/plugins/lisa-devin/skills/lisa-test-strategy/SKILL.md +66 -0
- package/plugins/lisa-devin/skills/lisa-ticket-triage/SKILL.md +214 -0
- package/plugins/lisa-devin/skills/lisa-track/SKILL.md +129 -0
- package/plugins/lisa-devin/skills/lisa-tracker-add-journey/SKILL.md +28 -0
- package/plugins/lisa-devin/skills/lisa-tracker-build-intake/SKILL.md +134 -0
- package/plugins/lisa-devin/skills/lisa-tracker-claim/SKILL.md +35 -0
- package/plugins/lisa-devin/skills/lisa-tracker-create/SKILL.md +28 -0
- package/plugins/lisa-devin/skills/lisa-tracker-evidence/SKILL.md +63 -0
- package/plugins/lisa-devin/skills/lisa-tracker-journey/SKILL.md +27 -0
- package/plugins/lisa-devin/skills/lisa-tracker-read/SKILL.md +28 -0
- package/plugins/lisa-devin/skills/lisa-tracker-source-artifacts/SKILL.md +111 -0
- package/plugins/lisa-devin/skills/lisa-tracker-sync/SKILL.md +150 -0
- package/plugins/lisa-devin/skills/lisa-tracker-validate/SKILL.md +37 -0
- package/plugins/lisa-devin/skills/lisa-tracker-verify/SKILL.md +29 -0
- package/plugins/lisa-devin/skills/lisa-tracker-write/SKILL.md +55 -0
- package/plugins/lisa-devin/skills/lisa-usage-accounting/SKILL.md +205 -0
- package/plugins/lisa-devin/skills/lisa-usage-accounting/references/effectiveness.md +63 -0
- package/plugins/lisa-devin/skills/lisa-use-the-product/SKILL.md +86 -0
- package/plugins/lisa-devin/skills/lisa-validate-tracker-mapping/SKILL.md +467 -0
- package/plugins/lisa-devin/skills/lisa-verification-lifecycle/SKILL.md +384 -0
- package/plugins/lisa-devin/skills/lisa-verify/SKILL.md +55 -0
- package/plugins/lisa-devin/skills/lisa-verify-prd/SKILL.md +394 -0
- package/plugins/lisa-devin/skills/lisa-verify-workflow-change/SKILL.md +154 -0
- package/plugins/lisa-devin/skills/lisa-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-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-devin/.claude-plugin/plugin.json +11 -0
- package/plugins/lisa-expo-devin/.devin-plugin/plugin.json +8 -0
- package/plugins/lisa-expo-devin/.mcp.json +8 -0
- package/plugins/lisa-expo-devin/THIRD-PARTY-NOTICES.md +84 -0
- package/plugins/lisa-expo-devin/agents/ops-specialist.md +124 -0
- package/plugins/lisa-expo-devin/hooks/devin-tool-name-shim.sh +30 -0
- package/plugins/lisa-expo-devin/hooks/register-maestro-mcp.sh +84 -0
- package/plugins/lisa-expo-devin/hooks.json +14 -0
- package/plugins/lisa-expo-devin/skills/add-app-clip/SKILL.md +280 -0
- package/plugins/lisa-expo-devin/skills/add-app-clip/references/native-module.md +96 -0
- package/plugins/lisa-expo-devin/skills/apollo-client/SKILL.md +238 -0
- package/plugins/lisa-expo-devin/skills/apollo-client/references/mutation-patterns.md +360 -0
- package/plugins/lisa-expo-devin/skills/atomic-design-gluestack/SKILL.md +369 -0
- package/plugins/lisa-expo-devin/skills/atomic-design-gluestack/references/atomic-levels.md +417 -0
- package/plugins/lisa-expo-devin/skills/atomic-design-gluestack/references/folder-structure.md +257 -0
- package/plugins/lisa-expo-devin/skills/atomic-design-gluestack/references/gluestack-mapping.md +233 -0
- package/plugins/lisa-expo-devin/skills/atomic-design-gluestack/scripts/test_validate_atomic_structure.py +240 -0
- package/plugins/lisa-expo-devin/skills/atomic-design-gluestack/scripts/validate_atomic_structure.py +438 -0
- package/plugins/lisa-expo-devin/skills/building-native-ui/SKILL.md +321 -0
- package/plugins/lisa-expo-devin/skills/building-native-ui/references/animations.md +220 -0
- package/plugins/lisa-expo-devin/skills/building-native-ui/references/controls.md +272 -0
- package/plugins/lisa-expo-devin/skills/building-native-ui/references/form-sheet.md +253 -0
- package/plugins/lisa-expo-devin/skills/building-native-ui/references/gradients.md +106 -0
- package/plugins/lisa-expo-devin/skills/building-native-ui/references/icons.md +213 -0
- package/plugins/lisa-expo-devin/skills/building-native-ui/references/media.md +198 -0
- package/plugins/lisa-expo-devin/skills/building-native-ui/references/route-structure.md +229 -0
- package/plugins/lisa-expo-devin/skills/building-native-ui/references/search.md +248 -0
- package/plugins/lisa-expo-devin/skills/building-native-ui/references/storage.md +121 -0
- package/plugins/lisa-expo-devin/skills/building-native-ui/references/tabs.md +433 -0
- package/plugins/lisa-expo-devin/skills/building-native-ui/references/toolbar-and-headers.md +284 -0
- package/plugins/lisa-expo-devin/skills/building-native-ui/references/visual-effects.md +197 -0
- package/plugins/lisa-expo-devin/skills/building-native-ui/references/webgpu-three.md +605 -0
- package/plugins/lisa-expo-devin/skills/building-native-ui/references/zoom-transitions.md +158 -0
- package/plugins/lisa-expo-devin/skills/container-view-pattern/SKILL.md +355 -0
- package/plugins/lisa-expo-devin/skills/container-view-pattern/references/examples.md +749 -0
- package/plugins/lisa-expo-devin/skills/container-view-pattern/references/patterns.md +318 -0
- package/plugins/lisa-expo-devin/skills/container-view-pattern/scripts/create_component.py +200 -0
- package/plugins/lisa-expo-devin/skills/container-view-pattern/scripts/validate_component.py +332 -0
- package/plugins/lisa-expo-devin/skills/cross-platform-compatibility/SKILL.md +268 -0
- package/plugins/lisa-expo-devin/skills/cross-platform-compatibility/references/common-issues.md +619 -0
- package/plugins/lisa-expo-devin/skills/cross-platform-compatibility/references/file-extensions.md +340 -0
- package/plugins/lisa-expo-devin/skills/cross-platform-compatibility/references/platform-api.md +276 -0
- package/plugins/lisa-expo-devin/skills/cross-platform-compatibility/scripts/validate_cross_platform.py +416 -0
- package/plugins/lisa-expo-devin/skills/directory-structure/SKILL.md +214 -0
- package/plugins/lisa-expo-devin/skills/directory-structure/scripts/validate_structure.py +454 -0
- package/plugins/lisa-expo-devin/skills/e2e-coverage-gaps/SKILL.md +117 -0
- package/plugins/lisa-expo-devin/skills/eas-update-insights/SKILL.md +228 -0
- package/plugins/lisa-expo-devin/skills/eas-update-insights/references/channel-insights-schema.md +47 -0
- package/plugins/lisa-expo-devin/skills/eas-update-insights/references/update-insights-schema.md +69 -0
- package/plugins/lisa-expo-devin/skills/expo-api-routes/SKILL.md +369 -0
- package/plugins/lisa-expo-devin/skills/expo-brownfield/SKILL.md +54 -0
- package/plugins/lisa-expo-devin/skills/expo-brownfield/references/brownfield-integrated.md +526 -0
- package/plugins/lisa-expo-devin/skills/expo-brownfield/references/brownfield-isolated.md +402 -0
- package/plugins/lisa-expo-devin/skills/expo-brownfield/references/comparison.md +63 -0
- package/plugins/lisa-expo-devin/skills/expo-brownfield/references/troubleshooting.md +88 -0
- package/plugins/lisa-expo-devin/skills/expo-cicd-workflows/SKILL.md +92 -0
- package/plugins/lisa-expo-devin/skills/expo-cicd-workflows/scripts/fetch.js +113 -0
- package/plugins/lisa-expo-devin/skills/expo-cicd-workflows/scripts/package.json +11 -0
- package/plugins/lisa-expo-devin/skills/expo-cicd-workflows/scripts/validate.js +85 -0
- package/plugins/lisa-expo-devin/skills/expo-deployment/SKILL.md +193 -0
- package/plugins/lisa-expo-devin/skills/expo-deployment/references/app-store-metadata.md +479 -0
- package/plugins/lisa-expo-devin/skills/expo-deployment/references/ios-app-store.md +355 -0
- package/plugins/lisa-expo-devin/skills/expo-deployment/references/play-store.md +264 -0
- package/plugins/lisa-expo-devin/skills/expo-deployment/references/testflight.md +58 -0
- package/plugins/lisa-expo-devin/skills/expo-deployment/references/workflows.md +200 -0
- package/plugins/lisa-expo-devin/skills/expo-dev-client/SKILL.md +164 -0
- package/plugins/lisa-expo-devin/skills/expo-env-config/SKILL.md +309 -0
- package/plugins/lisa-expo-devin/skills/expo-env-config/references/validation-patterns.md +417 -0
- package/plugins/lisa-expo-devin/skills/expo-module/SKILL.md +141 -0
- package/plugins/lisa-expo-devin/skills/expo-module/references/config-plugin.md +90 -0
- package/plugins/lisa-expo-devin/skills/expo-module/references/create-expo-module.md +206 -0
- package/plugins/lisa-expo-devin/skills/expo-module/references/lifecycle.md +127 -0
- package/plugins/lisa-expo-devin/skills/expo-module/references/module-config.md +48 -0
- package/plugins/lisa-expo-devin/skills/expo-module/references/native-module.md +286 -0
- package/plugins/lisa-expo-devin/skills/expo-module/references/native-view.md +171 -0
- package/plugins/lisa-expo-devin/skills/expo-router-best-practices/SKILL.md +432 -0
- package/plugins/lisa-expo-devin/skills/expo-router-best-practices/references/official-docs.md +290 -0
- package/plugins/lisa-expo-devin/skills/expo-router-best-practices/references/static-export-verification.md +54 -0
- package/plugins/lisa-expo-devin/skills/expo-router-best-practices/scripts/generate-route.py +171 -0
- package/plugins/lisa-expo-devin/skills/expo-tailwind-setup/SKILL.md +487 -0
- package/plugins/lisa-expo-devin/skills/expo-ui-jetpack-compose/SKILL.md +40 -0
- package/plugins/lisa-expo-devin/skills/expo-ui-swift-ui/SKILL.md +39 -0
- package/plugins/lisa-expo-devin/skills/gluestack-nativewind/SKILL.md +419 -0
- package/plugins/lisa-expo-devin/skills/gluestack-nativewind/references/color-tokens.md +343 -0
- package/plugins/lisa-expo-devin/skills/gluestack-nativewind/references/component-mapping.md +307 -0
- package/plugins/lisa-expo-devin/skills/gluestack-nativewind/references/spacing-scale.md +300 -0
- package/plugins/lisa-expo-devin/skills/gluestack-nativewind/scripts/test_validate_styling.py +240 -0
- package/plugins/lisa-expo-devin/skills/gluestack-nativewind/scripts/validate_styling.py +424 -0
- package/plugins/lisa-expo-devin/skills/jira-add-journey/SKILL.md +140 -0
- package/plugins/lisa-expo-devin/skills/jira-create/SKILL.md +161 -0
- package/plugins/lisa-expo-devin/skills/jira-evidence/SKILL.md +84 -0
- package/plugins/lisa-expo-devin/skills/jira-evidence/scripts/post-evidence.sh +262 -0
- package/plugins/lisa-expo-devin/skills/jira-journey/SKILL.md +196 -0
- package/plugins/lisa-expo-devin/skills/jira-journey/scripts/generate-templates.py +281 -0
- package/plugins/lisa-expo-devin/skills/jira-journey/scripts/parse-plan.py +400 -0
- package/plugins/lisa-expo-devin/skills/jira-verify/SKILL.md +27 -0
- package/plugins/lisa-expo-devin/skills/local-state/SKILL.md +362 -0
- package/plugins/lisa-expo-devin/skills/local-state/references/async-storage.md +505 -0
- package/plugins/lisa-expo-devin/skills/local-state/references/persistence-patterns.md +711 -0
- package/plugins/lisa-expo-devin/skills/local-state/references/reactive-variables.md +446 -0
- package/plugins/lisa-expo-devin/skills/maestro-mcp-setup/SKILL.md +144 -0
- package/plugins/lisa-expo-devin/skills/native-data-fetching/SKILL.md +507 -0
- package/plugins/lisa-expo-devin/skills/native-data-fetching/references/expo-router-loaders.md +344 -0
- package/plugins/lisa-expo-devin/skills/ops-browser-uat/SKILL.md +124 -0
- package/plugins/lisa-expo-devin/skills/ops-check-logs/SKILL.md +217 -0
- package/plugins/lisa-expo-devin/skills/ops-db-ops/SKILL.md +214 -0
- package/plugins/lisa-expo-devin/skills/ops-deploy/SKILL.md +123 -0
- package/plugins/lisa-expo-devin/skills/ops-monitor-errors/SKILL.md +99 -0
- package/plugins/lisa-expo-devin/skills/ops-performance/SKILL.md +165 -0
- package/plugins/lisa-expo-devin/skills/ops-run-local/SKILL.md +169 -0
- package/plugins/lisa-expo-devin/skills/ops-verify-health/SKILL.md +101 -0
- package/plugins/lisa-expo-devin/skills/owasp-zap/SKILL.md +61 -0
- package/plugins/lisa-expo-devin/skills/play-store-access/SKILL.md +226 -0
- package/plugins/lisa-expo-devin/skills/playwright-ci-debugging/SKILL.md +140 -0
- package/plugins/lisa-expo-devin/skills/playwright-selectors/SKILL.md +496 -0
- package/plugins/lisa-expo-devin/skills/reduce-complexity/SKILL.md +251 -0
- package/plugins/lisa-expo-devin/skills/reduce-complexity/references/extraction-strategies.md +456 -0
- package/plugins/lisa-expo-devin/skills/reduce-complexity/references/refactoring-patterns.md +557 -0
- package/plugins/lisa-expo-devin/skills/testing-library/SKILL.md +314 -0
- package/plugins/lisa-expo-devin/skills/testing-library/references/async-patterns.md +420 -0
- package/plugins/lisa-expo-devin/skills/testing-library/references/expo-router-testing.md +556 -0
- package/plugins/lisa-expo-devin/skills/testing-library/references/mocking-patterns.md +612 -0
- package/plugins/lisa-expo-devin/skills/testing-library/references/query-priority.md +291 -0
- package/plugins/lisa-expo-devin/skills/upgrading-expo/SKILL.md +134 -0
- package/plugins/lisa-expo-devin/skills/upgrading-expo/references/expo-av-to-audio.md +132 -0
- package/plugins/lisa-expo-devin/skills/upgrading-expo/references/expo-av-to-video.md +160 -0
- package/plugins/lisa-expo-devin/skills/upgrading-expo/references/native-tabs.md +124 -0
- package/plugins/lisa-expo-devin/skills/upgrading-expo/references/new-architecture.md +79 -0
- package/plugins/lisa-expo-devin/skills/upgrading-expo/references/react-19.md +79 -0
- package/plugins/lisa-expo-devin/skills/upgrading-expo/references/react-compiler.md +59 -0
- package/plugins/lisa-expo-devin/skills/upgrading-expo/references/react-navigation-to-expo-router.md +61 -0
- package/plugins/lisa-expo-devin/skills/use-dom/SKILL.md +417 -0
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-devin/.claude-plugin/plugin.json +11 -0
- package/plugins/lisa-harper-fabric-devin/.devin-plugin/plugin.json +8 -0
- package/plugins/lisa-harper-fabric-devin/generated-artifact-globs.txt +5 -0
- package/plugins/lisa-harper-fabric-devin/hooks/block-generated-artifact-edits.sh +141 -0
- package/plugins/lisa-harper-fabric-devin/hooks/devin-tool-name-shim.sh +30 -0
- package/plugins/lisa-harper-fabric-devin/hooks/enforce-config-extensions.mjs +196 -0
- package/plugins/lisa-harper-fabric-devin/hooks/enforce-config-extensions.sh +46 -0
- package/plugins/lisa-harper-fabric-devin/hooks/inject-rules.sh +27 -0
- package/plugins/lisa-harper-fabric-devin/hooks.json +36 -0
- package/plugins/lisa-harper-fabric-devin/rules/eager/harper-fabric.md +31 -0
- package/plugins/lisa-harper-fabric-devin/rules/reference/harper-fabric.md +52 -0
- package/plugins/lisa-harper-fabric-devin/skills/e2e-coverage-gaps/SKILL.md +117 -0
- package/plugins/lisa-harper-fabric-devin/skills/harper-auth/SKILL.md +368 -0
- package/plugins/lisa-harper-fabric-devin/skills/harper-build-and-deploy/SKILL.md +198 -0
- package/plugins/lisa-harper-fabric-devin/skills/harper-caching/SKILL.md +265 -0
- package/plugins/lisa-harper-fabric-devin/skills/harper-component-model/SKILL.md +87 -0
- package/plugins/lisa-harper-fabric-devin/skills/harper-config-yaml/SKILL.md +283 -0
- package/plugins/lisa-harper-fabric-devin/skills/harper-operations/SKILL.md +239 -0
- package/plugins/lisa-harper-fabric-devin/skills/harper-realtime/SKILL.md +187 -0
- package/plugins/lisa-harper-fabric-devin/skills/harper-resources/SKILL.md +142 -0
- package/plugins/lisa-harper-fabric-devin/skills/harper-rest-queries/SKILL.md +403 -0
- package/plugins/lisa-harper-fabric-devin/skills/harper-schema-graphql/SKILL.md +123 -0
- package/plugins/lisa-harper-fabric-devin/skills/harper-testing/SKILL.md +254 -0
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-devin/.claude-plugin/plugin.json +11 -0
- package/plugins/lisa-nestjs-devin/.devin-plugin/plugin.json +8 -0
- package/plugins/lisa-nestjs-devin/hooks/block-migration-edits.sh +125 -0
- package/plugins/lisa-nestjs-devin/hooks/devin-tool-name-shim.sh +30 -0
- package/plugins/lisa-nestjs-devin/hooks/lisa-edit-gate.sh +152 -0
- package/plugins/lisa-nestjs-devin/hooks.json +15 -0
- package/plugins/lisa-nestjs-devin/skills/nestjs-graphql/SKILL.md +176 -0
- package/plugins/lisa-nestjs-devin/skills/nestjs-graphql/references/advanced-features.md +527 -0
- package/plugins/lisa-nestjs-devin/skills/nestjs-graphql/references/project-patterns.md +531 -0
- package/plugins/lisa-nestjs-devin/skills/nestjs-graphql/references/quick-start.md +257 -0
- package/plugins/lisa-nestjs-devin/skills/nestjs-graphql/references/resolvers-mutations.md +413 -0
- package/plugins/lisa-nestjs-devin/skills/nestjs-graphql/references/types-scalars.md +513 -0
- package/plugins/lisa-nestjs-devin/skills/nestjs-rules/SKILL.md +560 -0
- package/plugins/lisa-nestjs-devin/skills/typeorm-patterns/SKILL.md +275 -0
- package/plugins/lisa-nestjs-devin/skills/typeorm-patterns/references/configuration-patterns.md +487 -0
- package/plugins/lisa-nestjs-devin/skills/typeorm-patterns/references/entity-patterns.md +450 -0
- package/plugins/lisa-nestjs-devin/skills/typeorm-patterns/references/observability-patterns.md +536 -0
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-devin/.claude-plugin/plugin.json +8 -0
- package/plugins/lisa-openclaw-devin/.devin-plugin/plugin.json +8 -0
- package/plugins/lisa-openclaw-devin/skills/lisa-openclaw-connect-repo-topic/SKILL.md +163 -0
- package/plugins/lisa-openclaw-devin/skills/lisa-openclaw-connect-repo-topic/references/repo-topic-config.md +185 -0
- package/plugins/lisa-openclaw-devin/skills/lisa-openclaw-connect-staff/SKILL.md +175 -0
- package/plugins/lisa-openclaw-devin/skills/lisa-openclaw-connect-staff/references/platform-routing.md +123 -0
- package/plugins/lisa-openclaw-devin/skills/lisa-openclaw-connect-staff/references/prompts.md +78 -0
- package/plugins/lisa-openclaw-devin/skills/lisa-openclaw-setup/SKILL.md +141 -0
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-devin/.claude-plugin/plugin.json +11 -0
- package/plugins/lisa-phaser-devin/.devin-plugin/plugin.json +8 -0
- package/plugins/lisa-phaser-devin/agents/accessibility-advocate.md +55 -0
- package/plugins/lisa-phaser-devin/agents/art-director.md +90 -0
- package/plugins/lisa-phaser-devin/agents/audio-director.md +65 -0
- package/plugins/lisa-phaser-devin/agents/combat-designer.md +61 -0
- package/plugins/lisa-phaser-devin/agents/economy-designer.md +59 -0
- package/plugins/lisa-phaser-devin/agents/game-designer.md +62 -0
- package/plugins/lisa-phaser-devin/agents/game-feel-specialist.md +56 -0
- package/plugins/lisa-phaser-devin/agents/level-designer.md +59 -0
- package/plugins/lisa-phaser-devin/agents/localization-manager.md +61 -0
- package/plugins/lisa-phaser-devin/agents/marketing-strategist.md +59 -0
- package/plugins/lisa-phaser-devin/agents/monetization-designer.md +59 -0
- package/plugins/lisa-phaser-devin/agents/narrative-designer.md +56 -0
- package/plugins/lisa-phaser-devin/agents/onboarding-advocate.md +59 -0
- package/plugins/lisa-phaser-devin/agents/player-advocate.md +57 -0
- package/plugins/lisa-phaser-devin/agents/producer.md +61 -0
- package/plugins/lisa-phaser-devin/agents/product-analyst.md +62 -0
- package/plugins/lisa-phaser-devin/agents/publisher.md +59 -0
- package/plugins/lisa-phaser-devin/agents/qa-playtester.md +57 -0
- package/plugins/lisa-phaser-devin/agents/target-player.md +52 -0
- package/plugins/lisa-phaser-devin/agents/ux-ui-designer.md +60 -0
- package/plugins/lisa-phaser-devin/hooks/devin-tool-name-shim.sh +30 -0
- package/plugins/lisa-phaser-devin/hooks/inject-rules.sh +27 -0
- package/plugins/lisa-phaser-devin/hooks.json +14 -0
- package/plugins/lisa-phaser-devin/rules/eager/phaser.md +44 -0
- package/plugins/lisa-phaser-devin/rules/reference/phaser.md +184 -0
- package/plugins/lisa-phaser-devin/skills/phaser-accessibility/SKILL.md +135 -0
- package/plugins/lisa-phaser-devin/skills/phaser-asset-pipeline/SKILL.md +222 -0
- package/plugins/lisa-phaser-devin/skills/phaser-asset-sourcing/SKILL.md +151 -0
- package/plugins/lisa-phaser-devin/skills/phaser-build-deploy/SKILL.md +153 -0
- package/plugins/lisa-phaser-devin/skills/phaser-i18n/SKILL.md +122 -0
- package/plugins/lisa-phaser-devin/skills/phaser-project-structure/SKILL.md +89 -0
- package/plugins/lisa-phaser-devin/skills/phaser-services/SKILL.md +208 -0
- package/plugins/lisa-phaser-devin/skills/phaser-testing/SKILL.md +192 -0
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-devin/.claude-plugin/plugin.json +11 -0
- package/plugins/lisa-rails-devin/.devin-plugin/plugin.json +8 -0
- package/plugins/lisa-rails-devin/agents/ops-specialist.md +226 -0
- package/plugins/lisa-rails-devin/hooks/devin-tool-name-shim.sh +30 -0
- package/plugins/lisa-rails-devin/hooks/inject-rules.sh +40 -0
- package/plugins/lisa-rails-devin/hooks/lisa-edit-gate.sh +152 -0
- package/plugins/lisa-rails-devin/hooks/rubocop-on-edit.sh +101 -0
- package/plugins/lisa-rails-devin/hooks/sg-scan-on-edit.sh +97 -0
- package/plugins/lisa-rails-devin/hooks.json +29 -0
- package/plugins/lisa-rails-devin/rules/eager/rails-conventions.md +23 -0
- package/plugins/lisa-rails-devin/rules/reference/rails-conventions.md +176 -0
- package/plugins/lisa-rails-devin/skills/action-controller-best-practices/SKILL.md +374 -0
- package/plugins/lisa-rails-devin/skills/action-view-best-practices/SKILL.md +335 -0
- package/plugins/lisa-rails-devin/skills/active-record-model-best-practices/SKILL.md +166 -0
- package/plugins/lisa-rails-devin/skills/e2e-coverage-gaps/SKILL.md +117 -0
- package/plugins/lisa-rails-devin/skills/fix-linter-error/SKILL.md +45 -0
- package/plugins/lisa-rails-devin/skills/improve-code-complexity/SKILL.md +51 -0
- package/plugins/lisa-rails-devin/skills/improve-max-lines/SKILL.md +46 -0
- package/plugins/lisa-rails-devin/skills/improve-max-lines-per-function/SKILL.md +46 -0
- package/plugins/lisa-rails-devin/skills/improve-test-coverage/SKILL.md +48 -0
- package/plugins/lisa-rails-devin/skills/jira-add-journey/SKILL.md +79 -0
- package/plugins/lisa-rails-devin/skills/jira-create/SKILL.md +100 -0
- package/plugins/lisa-rails-devin/skills/jira-evidence/SKILL.md +76 -0
- package/plugins/lisa-rails-devin/skills/jira-evidence/scripts/post-evidence.sh +262 -0
- package/plugins/lisa-rails-devin/skills/jira-journey/SKILL.md +65 -0
- package/plugins/lisa-rails-devin/skills/jira-verify/SKILL.md +26 -0
- package/plugins/lisa-rails-devin/skills/ops-check-logs/SKILL.md +191 -0
- package/plugins/lisa-rails-devin/skills/ops-deploy/SKILL.md +153 -0
- package/plugins/lisa-rails-devin/skills/ops-run-local/SKILL.md +169 -0
- package/plugins/lisa-rails-devin/skills/ops-verify-jobs/SKILL.md +157 -0
- package/plugins/lisa-rails-devin/skills/ops-verify-telemetry/SKILL.md +226 -0
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-devin/.claude-plugin/plugin.json +11 -0
- package/plugins/lisa-typescript-devin/.devin-plugin/plugin.json +8 -0
- package/plugins/lisa-typescript-devin/hooks/block-suppress-directives.sh +141 -0
- package/plugins/lisa-typescript-devin/hooks/devin-tool-name-shim.sh +30 -0
- package/plugins/lisa-typescript-devin/hooks/format-on-edit.sh +102 -0
- package/plugins/lisa-typescript-devin/hooks/lint-on-edit.sh +117 -0
- package/plugins/lisa-typescript-devin/hooks/lisa-edit-gate.sh +152 -0
- package/plugins/lisa-typescript-devin/hooks/sg-scan-on-edit.sh +94 -0
- package/plugins/lisa-typescript-devin/hooks.json +34 -0
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-devin/.claude-plugin/plugin.json +8 -0
- package/plugins/lisa-wiki-devin/.devin-plugin/plugin.json +8 -0
- package/plugins/lisa-wiki-devin/ci/lisa-wiki-validate.yml +33 -0
- package/plugins/lisa-wiki-devin/schema/lisa-wiki-config.schema.json +162 -0
- package/plugins/lisa-wiki-devin/schema/wiki-structure.schema.json +51 -0
- package/plugins/lisa-wiki-devin/scripts/_wiki-lib.mjs +204 -0
- package/plugins/lisa-wiki-devin/scripts/diff-guard.mjs +117 -0
- package/plugins/lisa-wiki-devin/scripts/ensure-gitignore.mjs +131 -0
- package/plugins/lisa-wiki-devin/scripts/ensure-wiki.mjs +268 -0
- package/plugins/lisa-wiki-devin/scripts/ingest-git.mjs +198 -0
- package/plugins/lisa-wiki-devin/scripts/ingest-memory.mjs +135 -0
- package/plugins/lisa-wiki-devin/scripts/ingest-roles.mjs +95 -0
- package/plugins/lisa-wiki-devin/scripts/ingest_slack_channel.py +361 -0
- package/plugins/lisa-wiki-devin/scripts/lib/bounded-child.mjs +159 -0
- package/plugins/lisa-wiki-devin/scripts/lint-wiki.mjs +513 -0
- package/plugins/lisa-wiki-devin/scripts/mcp-doctor.mjs +72 -0
- package/plugins/lisa-wiki-devin/scripts/render-contract.mjs +107 -0
- package/plugins/lisa-wiki-devin/scripts/rewrite-refs.mjs +144 -0
- package/plugins/lisa-wiki-devin/scripts/slack_oauth_user.py +179 -0
- package/plugins/lisa-wiki-devin/scripts/validate-config.mjs +321 -0
- package/plugins/lisa-wiki-devin/scripts/verify-migration.mjs +203 -0
- package/plugins/lisa-wiki-devin/scripts/verify-wiki-safety.mjs +126 -0
- package/plugins/lisa-wiki-devin/scripts/wiki-safety.mjs +378 -0
- package/plugins/lisa-wiki-devin/scripts/wiki-status.mjs +345 -0
- package/plugins/lisa-wiki-devin/skills/lisa-wiki-add-ingest/SKILL.md +34 -0
- package/plugins/lisa-wiki-devin/skills/lisa-wiki-add-role/SKILL.md +35 -0
- package/plugins/lisa-wiki-devin/skills/lisa-wiki-connector-confluence/SKILL.md +25 -0
- package/plugins/lisa-wiki-devin/skills/lisa-wiki-connector-docs/SKILL.md +30 -0
- package/plugins/lisa-wiki-devin/skills/lisa-wiki-connector-git/SKILL.md +25 -0
- package/plugins/lisa-wiki-devin/skills/lisa-wiki-connector-jira/SKILL.md +28 -0
- package/plugins/lisa-wiki-devin/skills/lisa-wiki-connector-memory/SKILL.md +28 -0
- package/plugins/lisa-wiki-devin/skills/lisa-wiki-connector-notion/SKILL.md +25 -0
- package/plugins/lisa-wiki-devin/skills/lisa-wiki-connector-roles/SKILL.md +22 -0
- package/plugins/lisa-wiki-devin/skills/lisa-wiki-connector-slack/SKILL.md +30 -0
- package/plugins/lisa-wiki-devin/skills/lisa-wiki-connector-web/SKILL.md +23 -0
- package/plugins/lisa-wiki-devin/skills/lisa-wiki-doctor/SKILL.md +47 -0
- package/plugins/lisa-wiki-devin/skills/lisa-wiki-ingest/SKILL.md +106 -0
- package/plugins/lisa-wiki-devin/skills/lisa-wiki-lint/SKILL.md +32 -0
- package/plugins/lisa-wiki-devin/skills/lisa-wiki-migrate/SKILL.md +43 -0
- package/plugins/lisa-wiki-devin/skills/lisa-wiki-onboard-me/SKILL.md +33 -0
- package/plugins/lisa-wiki-devin/skills/lisa-wiki-query/SKILL.md +40 -0
- package/plugins/lisa-wiki-devin/skills/lisa-wiki-setup/SKILL.md +75 -0
- package/plugins/lisa-wiki-devin/skills/lisa-wiki-setup-automations/SKILL.md +83 -0
- package/plugins/lisa-wiki-devin/skills/lisa-wiki-status/SKILL.md +47 -0
- package/plugins/lisa-wiki-devin/skills/lisa-wiki-tear-down-automations/SKILL.md +34 -0
- package/plugins/lisa-wiki-devin/skills/lisa-wiki-usage/SKILL.md +50 -0
- package/plugins/lisa-wiki-devin/templates/agents/role-agent.claude.md +16 -0
- package/plugins/lisa-wiki-devin/templates/agents/role-agent.codex.toml +15 -0
- package/plugins/lisa-wiki-devin/templates/index.md +17 -0
- package/plugins/lisa-wiki-devin/templates/llm-wiki-contract.md +72 -0
- package/plugins/lisa-wiki-devin/templates/log.md +8 -0
- package/plugins/lisa-wiki-devin/templates/page-types/architecture.md +18 -0
- package/plugins/lisa-wiki-devin/templates/page-types/concept.md +18 -0
- package/plugins/lisa-wiki-devin/templates/page-types/decision.md +18 -0
- package/plugins/lisa-wiki-devin/templates/page-types/entity.md +19 -0
- package/plugins/lisa-wiki-devin/templates/page-types/open-question.md +18 -0
- package/plugins/lisa-wiki-devin/templates/page-types/playbook.md +18 -0
- package/plugins/lisa-wiki-devin/templates/page-types/project.md +19 -0
- package/plugins/lisa-wiki-devin/templates/page-types/requirement.md +19 -0
- package/plugins/lisa-wiki-devin/templates/page-types/staff.md +26 -0
- package/plugins/lisa-wiki-devin/templates/start-here.md +24 -0
- package/plugins/lisa-wiki-devin/templates/state-readme.md +20 -0
- package/plugins/lisa-wiki-devin/templates/wrapper-gitignore.txt +19 -0
- package/scripts/build-plugins.sh +2 -2
- package/scripts/deployed-guard-advice.mjs +1 -0
- package/scripts/generate-devin-plugin-artifacts.mjs +263 -0
- package/scripts/lib/hook-registration-audit.mjs +3 -1
- package/scripts/lib/per-agent-hook-filter.mjs +174 -5
- package/scripts/lib/plugin-rule-citations.mjs +2 -2
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: publisher
|
|
3
|
+
description: Publisher / executive-producer persona agent. Critiques a Phaser game from the "should this exist and will it succeed" seat — market fit, scope vs. budget vs. timeline, ROI, and milestone gating. Business lens, not engineering.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Publisher / Executive Producer Persona Agent
|
|
7
|
+
|
|
8
|
+
You are a game publisher / executive producer. You hold the money and the green light. You ask the uncomfortable business questions the team is too close to ask. You are a **critic** with a business and market lens; you do not write code or evaluate engineering quality (that is Lisa's engineering agents).
|
|
9
|
+
|
|
10
|
+
## Source of Truth
|
|
11
|
+
|
|
12
|
+
- `wiki/production/**` — roadmap, milestones, platform target, vertical slice
|
|
13
|
+
- `wiki/narrative/pitch.md`, `wiki/concepts/game-vision.md` — the hook and the promise
|
|
14
|
+
- `wiki/personas/**` — the target market and its size/reachability
|
|
15
|
+
- `wiki/decisions/**` — committed strategic decisions
|
|
16
|
+
|
|
17
|
+
If business context is absent, reason from the stated vision and flag the missing market/scope framing as a top risk.
|
|
18
|
+
|
|
19
|
+
## What you evaluate
|
|
20
|
+
|
|
21
|
+
- **Market fit**: Who buys this, why, and instead of what? Is the audience reachable and large enough to justify the investment?
|
|
22
|
+
- **The hook**: Is there a clear, differentiated reason this game exists? Can it be pitched in one sentence?
|
|
23
|
+
- **Scope vs. budget vs. timeline**: Is the work proportional to the return? Is this feature a six-month rabbit hole on a two-month payoff?
|
|
24
|
+
- **ROI & opportunity cost**: What does this work cost *instead of*? Is it the highest-leverage thing to build now?
|
|
25
|
+
- **Milestone gating**: Does the vertical slice prove the risky assumptions early? Are we de-risking or polishing prematurely?
|
|
26
|
+
- **Comparables & expectations**: What do players expect from this genre/price point, and does this clear the bar?
|
|
27
|
+
|
|
28
|
+
## Output Format
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
## Publisher Review
|
|
32
|
+
|
|
33
|
+
### Verdict
|
|
34
|
+
[GREENLIGHT / GREENLIGHT WITH CONDITIONS / HOLD / KILL] — one sentence
|
|
35
|
+
|
|
36
|
+
### The pitch (as I'd sell it)
|
|
37
|
+
[one-sentence hook; if you can't write one, that's the headline finding]
|
|
38
|
+
|
|
39
|
+
### Market read
|
|
40
|
+
- Who buys it, why, market size/reachability, instead of what
|
|
41
|
+
|
|
42
|
+
### Business concerns (ranked by risk to return)
|
|
43
|
+
| Severity | Concern (scope/ROI/market/timeline) | Why it threatens the return | Recommendation |
|
|
44
|
+
|----------|-------------------------------------|-----------------------------|----------------|
|
|
45
|
+
|
|
46
|
+
### Conditions to greenlight / next milestone gate
|
|
47
|
+
- ...
|
|
48
|
+
|
|
49
|
+
### Where the bet looks strong
|
|
50
|
+
- ...
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Rules
|
|
54
|
+
|
|
55
|
+
- Lead with the one-sentence pitch; if the work doesn't ladder up to a sellable hook, say so.
|
|
56
|
+
- Judge business value and market fit, not code quality or design taste — defer those to the design and engineering agents.
|
|
57
|
+
- Always frame cost as opportunity cost ("this instead of what").
|
|
58
|
+
- Be willing to say HOLD or KILL when the return doesn't justify the work; vague enthusiasm is not your job.
|
|
59
|
+
- Tie milestone gates to de-risking the riskiest assumption first.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qa-playtester
|
|
3
|
+
description: QA / exploratory playtester persona agent. Hunts edge cases, soft-locks, sequence breaks, and "what if I do the dumb thing" failures in a Phaser game by reasoning about how players actually misbehave. Behavioral testing, distinct from unit-test authorship.
|
|
4
|
+
skills:
|
|
5
|
+
- phaser-testing
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# QA / Exploratory Playtester Persona Agent
|
|
9
|
+
|
|
10
|
+
You are an exploratory QA playtester. You break games by doing what real players do — the unexpected, the impatient, the malicious, the confused. You are **distinct from Lisa's test-specialist**: that agent writes unit/integration tests against the spec; you reason about *behavioral* failure modes a player would actually hit. You report defects; you do not fix them.
|
|
11
|
+
|
|
12
|
+
## Source of Truth
|
|
13
|
+
|
|
14
|
+
- `wiki/design/**` — the intended behavior you are testing against
|
|
15
|
+
- `wiki/playbooks/test-plan.md`, `run-and-verify.md` — existing test/verification plans to extend, not duplicate
|
|
16
|
+
- The project's runtime gates (boot smoke, allocation/perf budget, leak gate, determinism gate, visual regression) — know what CI already catches so you focus on what it does not
|
|
17
|
+
|
|
18
|
+
If intended behavior is undocumented, test against reasonable expectations and flag the ambiguity as its own finding.
|
|
19
|
+
|
|
20
|
+
## How you test (think like a misbehaving player)
|
|
21
|
+
|
|
22
|
+
- **The dumb thing**: spam the button, cancel mid-action, open every menu at once, walk back through the door you came in.
|
|
23
|
+
- **Boundaries**: zero/max resources, empty inventory, full inventory, level cap, 0 HP edge, first/last item in a list.
|
|
24
|
+
- **Timing & race**: pause during a transition, save mid-animation, trigger two events on the same frame, background the tab.
|
|
25
|
+
- **Sequence breaks**: reach content out of order, skip a tutorial, finish a quest in an unintended way.
|
|
26
|
+
- **State persistence**: save/quit/reload at awkward moments; does state survive? Any soft-lock on reload?
|
|
27
|
+
- **Resilience**: corrupted/old save, missing optional asset, reduced-motion on, offline.
|
|
28
|
+
|
|
29
|
+
## Output Format
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
## QA Playtest Report
|
|
33
|
+
|
|
34
|
+
### Verdict
|
|
35
|
+
[SHIPPABLE / BUGS FOUND / BLOCKING SOFT-LOCK] — one sentence
|
|
36
|
+
|
|
37
|
+
### Defects (ranked by severity: soft-lock > progress-loss > wrong-behavior > cosmetic)
|
|
38
|
+
| Severity | Repro steps | Expected | Actual | Notes |
|
|
39
|
+
|----------|-------------|----------|--------|-------|
|
|
40
|
+
|
|
41
|
+
### Soft-lock / progress-loss risks
|
|
42
|
+
- ...
|
|
43
|
+
|
|
44
|
+
### Coverage gaps (what I could not test and why)
|
|
45
|
+
- ...
|
|
46
|
+
|
|
47
|
+
### Edge cases worth a regression test
|
|
48
|
+
- [case] — suggest to the test-specialist for a permanent gate
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Rules
|
|
52
|
+
|
|
53
|
+
- Every defect needs concrete, ordered repro steps and expected-vs-actual — no vague "feels buggy."
|
|
54
|
+
- Rank by player harm: soft-lock and progress-loss first, cosmetic last.
|
|
55
|
+
- Do not write or fix code or tests — report defects and *hand* good regression candidates to Lisa's test-specialist.
|
|
56
|
+
- Focus on behavioral/exploratory failures the existing runtime gates do not already catch.
|
|
57
|
+
- Assume the player is impatient, curious, and occasionally adversarial.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: target-player
|
|
3
|
+
description: Target-player persona agent. Loads the game's audience archetypes from the wiki and role-plays each one, reacting to the game as that specific player would. The role is generic; the archetypes are project data.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Target Player Persona Agent
|
|
7
|
+
|
|
8
|
+
You are not a designer or a critic in the abstract — you **become a specific target player** and react to the game exactly as that person would. This agent is intentionally a thin, reusable shell: the *who* is data loaded from the project wiki, not baked into this prompt.
|
|
9
|
+
|
|
10
|
+
## Source of Truth — the archetypes are data
|
|
11
|
+
|
|
12
|
+
Read the archetypes from the project before reacting:
|
|
13
|
+
|
|
14
|
+
- `wiki/personas/**` — the defined target-player archetypes (name, demographics, platform, session length, motivations, frustrations, genre history, what makes them bounce or stay)
|
|
15
|
+
|
|
16
|
+
Then **adopt one archetype per pass** (or, if asked, run each archetype in turn and label each reaction). If `wiki/personas/**` is missing or empty, say so and adopt a single reasonable representative of the stated audience, naming the assumptions you invented.
|
|
17
|
+
|
|
18
|
+
## How you operate
|
|
19
|
+
|
|
20
|
+
1. State which archetype you are embodying (name + one-line who-they-are).
|
|
21
|
+
2. React to the change *in character* — their patience, their platform, their skill level, their reasons for playing, their pet peeves all govern your reaction.
|
|
22
|
+
3. Decide what this archetype would actually *do*: keep playing, get confused, rage-quit, wishlist, refund, recommend to a friend.
|
|
23
|
+
|
|
24
|
+
## Output Format
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
## Target Player Reaction — [Archetype Name]
|
|
28
|
+
|
|
29
|
+
### Who I am
|
|
30
|
+
[one line: demographics, platform, why I play, what I can't stand]
|
|
31
|
+
|
|
32
|
+
### My session, in character
|
|
33
|
+
[narrate the experience as this specific player lives it — their reactions, in their voice]
|
|
34
|
+
|
|
35
|
+
### What I do next
|
|
36
|
+
[KEEP PLAYING / CONFUSED / BORED / FRUSTRATED / BOUNCE / LOVE IT] — and why, in character
|
|
37
|
+
|
|
38
|
+
### What would win me over / lose me
|
|
39
|
+
- Wins me: ...
|
|
40
|
+
- Loses me: ...
|
|
41
|
+
|
|
42
|
+
### Out-of-character note to the team
|
|
43
|
+
[step out for one line: the single highest-value change for *this* archetype]
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Rules
|
|
47
|
+
|
|
48
|
+
- Stay in character for the reaction; only the final "note to the team" line is out of character.
|
|
49
|
+
- Use the archetype's real constraints — a Steam Deck player with 30-minute sessions reacts differently than a completionist on PC.
|
|
50
|
+
- If asked to evaluate broadly, run *each* defined archetype and label every reaction; do not blur them into one average player.
|
|
51
|
+
- Never invent an archetype that contradicts `wiki/personas/**`; if you must improvise, flag it.
|
|
52
|
+
- You react and report; you do not redesign or write code.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ux-ui-designer
|
|
3
|
+
description: UX/UI designer persona agent. Critiques menus, HUD, information architecture, controls, and feedback for a Phaser game from a usability seat. Composes with the project's accessibility skill. Reviews design, not engine code.
|
|
4
|
+
skills:
|
|
5
|
+
- phaser-accessibility
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# UX / UI Designer Persona Agent
|
|
9
|
+
|
|
10
|
+
You are a UX/UI designer reviewing how a Phaser game presents information and accepts input. You are a **critic**, not a builder. You judge usability and information architecture; you defer rendering/perf correctness to Lisa's engineering agents.
|
|
11
|
+
|
|
12
|
+
## Source of Truth
|
|
13
|
+
|
|
14
|
+
- `wiki/design/ui-ux-and-controls.md` — the intended IA, control scheme, and HUD spec
|
|
15
|
+
- `wiki/design/overview.md` — what the player needs to know at each moment
|
|
16
|
+
- `wiki/personas/**` — input contexts and skill levels of the audience (touch vs. gamepad vs. keyboard, casual vs. expert)
|
|
17
|
+
|
|
18
|
+
If the UX doc is absent, critique against general HUD/menu usability heuristics and say so. Pull the project's accessibility expectations from the `phaser-accessibility` skill.
|
|
19
|
+
|
|
20
|
+
## What you evaluate
|
|
21
|
+
|
|
22
|
+
- **Information architecture**: Is the right information available at the right moment, with the right salience? Any over- or under-loaded screen?
|
|
23
|
+
- **HUD legibility**: Hierarchy, contrast, readability at speed, clutter, what can be removed.
|
|
24
|
+
- **Menu flow**: Depth, number of steps to a goal, back/cancel consistency, modal traps, where the player gets lost.
|
|
25
|
+
- **Controls**: Discoverability, consistency, remappability, input affordances, conflicting bindings, gamepad/touch/keyboard parity.
|
|
26
|
+
- **Feedback**: Does every action have a clear, immediate response? Are state changes (damage, pickup, save) communicated?
|
|
27
|
+
- **Accessibility baseline**: Colorblind-safe encoding, text size, reduced-motion, keyboard navigability, screen-reader hooks — per the project's accessibility standard.
|
|
28
|
+
|
|
29
|
+
## Output Format
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
## UX / UI Review
|
|
33
|
+
|
|
34
|
+
### Verdict
|
|
35
|
+
[USABLE / NEEDS WORK / CONFUSING] — one sentence
|
|
36
|
+
|
|
37
|
+
### IA & flow walkthrough
|
|
38
|
+
[the path through the relevant screens/HUD, with step counts and decision points]
|
|
39
|
+
|
|
40
|
+
### Issues (ranked, most severe first)
|
|
41
|
+
| Severity | Screen/Element | Usability problem | Recommendation |
|
|
42
|
+
|----------|----------------|-------------------|----------------|
|
|
43
|
+
|
|
44
|
+
### Accessibility flags
|
|
45
|
+
- [issue] — [who it locks out] — [fix] (or "meets baseline")
|
|
46
|
+
|
|
47
|
+
### What works
|
|
48
|
+
- ...
|
|
49
|
+
|
|
50
|
+
### Open questions
|
|
51
|
+
- ...
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Rules
|
|
55
|
+
|
|
56
|
+
- Judge usability and IA, not pixel taste. Tie each issue to a player struggling to read, find, or do something.
|
|
57
|
+
- Always count the steps/clicks to the player's goal and call out where it is too many.
|
|
58
|
+
- Treat accessibility gaps as real defects, not nice-to-haves — rank them by who they exclude.
|
|
59
|
+
- Cite the screen/scene or `file:line` you are reacting to.
|
|
60
|
+
- Defer perf, draw-call, and layout-engine correctness to Lisa's engineering agents — flag, don't fix.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Generated by scripts/generate-devin-plugin-artifacts.mjs — do not edit.
|
|
3
|
+
#
|
|
4
|
+
# Devin CLI names its tools in lowercase (exec, write, edit, read, ...) while
|
|
5
|
+
# Lisa's guards test Claude's names (Bash, Write, Edit, Read, ...). The field
|
|
6
|
+
# names inside tool_input already match, so translating tool_name is enough
|
|
7
|
+
# for an unchanged guard to evaluate a Devin tool call (CodySwannGT/lisa#4426).
|
|
8
|
+
#
|
|
9
|
+
# Usage: devin-tool-name-shim.sh <hook command> [args...]
|
|
10
|
+
payload=$(cat)
|
|
11
|
+
normalized=$payload
|
|
12
|
+
if command -v jq >/dev/null 2>&1; then
|
|
13
|
+
mapped=$(printf '%s' "$payload" | jq -c '
|
|
14
|
+
if (.tool_name | type) == "string" then
|
|
15
|
+
.tool_name |= ({
|
|
16
|
+
"exec": "Bash",
|
|
17
|
+
"write": "Write",
|
|
18
|
+
"edit": "Edit",
|
|
19
|
+
"read": "Read",
|
|
20
|
+
"notebook_edit": "NotebookEdit",
|
|
21
|
+
"grep": "Grep",
|
|
22
|
+
"glob": "Glob",
|
|
23
|
+
"webfetch": "WebFetch",
|
|
24
|
+
"run_subagent": "Task",
|
|
25
|
+
"skill": "Skill",
|
|
26
|
+
"todo_write": "TodoWrite"
|
|
27
|
+
}[.] // .)
|
|
28
|
+
else . end' 2>/dev/null) && [ -n "$mapped" ] && normalized=$mapped
|
|
29
|
+
fi
|
|
30
|
+
printf '%s' "$normalized" | "$@"
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Reads the plugin's EAGER rules and injects them into the session context.
|
|
3
|
+
#
|
|
4
|
+
# `rules/eager/` only, and deliberately with NO fallback to a flat `rules/`.
|
|
5
|
+
# This plugin's rules and this script ship in the same directory and are
|
|
6
|
+
# installed as one unit, so there is no vintage in which a split script meets an
|
|
7
|
+
# unsplit rules tree. A fallback here would buy nothing and cost the thing it
|
|
8
|
+
# already cost once: this plugin shipped its whole rule body flat for months and
|
|
9
|
+
# no surface complained, because a fallback that quietly succeeds is
|
|
10
|
+
# indistinguishable from a tree that was never split (#3993). With the branch
|
|
11
|
+
# gone, an unsplit tree injects nothing and is noticed.
|
|
12
|
+
#
|
|
13
|
+
# Reference bodies under `rules/reference/` install alongside and are read only
|
|
14
|
+
# when an eager breadcrumb points at one.
|
|
15
|
+
set -euo pipefail
|
|
16
|
+
|
|
17
|
+
ROOT="${CLAUDE_PLUGIN_ROOT:-${PLUGIN_ROOT:-${CODEX_PLUGIN_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)}}}"
|
|
18
|
+
RULES_DIR="$ROOT/rules/eager"
|
|
19
|
+
|
|
20
|
+
[ -d "$RULES_DIR" ] || exit 0
|
|
21
|
+
|
|
22
|
+
for rule in "$RULES_DIR"/*.md; do
|
|
23
|
+
[ -f "$rule" ] || continue
|
|
24
|
+
printf '\n<lisa-phaser-rule path="%s">\n' "$rule"
|
|
25
|
+
cat "$rule"
|
|
26
|
+
printf '\n</lisa-phaser-rule>\n'
|
|
27
|
+
done
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Phaser 4 Project Rules (load-bearing)
|
|
2
|
+
|
|
3
|
+
This is a **Phaser 4** (npm `phaser@^4.2.0`) TypeScript game project on the
|
|
4
|
+
official `template-vite-ts` layout. Phaser 4 is the only supported target —
|
|
5
|
+
never introduce Phaser 3 idioms. These decisions are **locked** and most are
|
|
6
|
+
**lint-enforced**; do not disable a rule, fix the code.
|
|
7
|
+
|
|
8
|
+
## Read the official skills first
|
|
9
|
+
|
|
10
|
+
Phaser ships 28 authoritative agent skills inside the installed package at
|
|
11
|
+
`node_modules/phaser/skills/<topic>/SKILL.md` (`scenes`, `physics-arcade`,
|
|
12
|
+
`tweens`, `tilemaps`, `v3-to-v4-migration`, …). **For any Phaser API or
|
|
13
|
+
subsystem question, read the matching official skill rather than relying on
|
|
14
|
+
memory.** The `lisa-phaser` skills deliberately cover only the opinionated,
|
|
15
|
+
lint-enforced project layer.
|
|
16
|
+
|
|
17
|
+
## Mandatory
|
|
18
|
+
|
|
19
|
+
1. **Thin scenes over a pure-logic core.** All game rules live in `src/logic/**`
|
|
20
|
+
as plain TypeScript with **zero `phaser` imports** — lint-enforced, and it is
|
|
21
|
+
what makes the game unit-testable.
|
|
22
|
+
2. **Determinism.** No `Math.random()`, `Date.now()`, or `performance.now()` in
|
|
23
|
+
game code. Use the seeded `Phaser.Math.RND` and the scene clock.
|
|
24
|
+
3. **Nothing created or allocated inside `update()`** — no `this.add.*`,
|
|
25
|
+
`tweens.add`, `time.addEvent`, `new Phaser.*`, object/array literals, or
|
|
26
|
+
`map`/`filter`/`reduce` chains. Create in `create()`; pool via `Group`s.
|
|
27
|
+
4. **Events and state.** Cross-cutting events go through one dedicated
|
|
28
|
+
`EventsCenter`; **never reuse `game.events`**. Every external `.on()` needs a
|
|
29
|
+
matching `.off()` in the scene's `shutdown`. Global state goes through the
|
|
30
|
+
typed registry wrapper; persistence goes through SaveService, never raw
|
|
31
|
+
`localStorage`.
|
|
32
|
+
5. **No raw keys, no placeholder art.** Texture/audio/animation/scene/event keys
|
|
33
|
+
are typed constants generated into `src/assets.ts`. Art must be real and
|
|
34
|
+
licensed per `phaser-asset-sourcing`; procedural `generateTexture`
|
|
35
|
+
placeholders are tracked art debt and need a linked issue.
|
|
36
|
+
6. **No hardcoded user-facing strings** — use the typed i18n catalog.
|
|
37
|
+
7. **Verify before reporting complete:** `bun run typecheck`, `bun run lint`,
|
|
38
|
+
`bun run test`, `bun run build`. For rendering or input changes, also verify
|
|
39
|
+
in a real browser (`bun run dev` plus a Playwright check). A green typecheck
|
|
40
|
+
alone is not proof a game works.
|
|
41
|
+
|
|
42
|
+
Full prose — the ten locked architecture decisions, the enforced lint rules, the
|
|
43
|
+
performance contract, and the game-development persona subagents:
|
|
44
|
+
[reference/phaser.md](../reference/phaser.md).
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
# Phaser 4 Project Rules
|
|
2
|
+
|
|
3
|
+
This is a **Phaser 4** (v4.2+, npm `phaser@^4.2.0`) TypeScript game project built
|
|
4
|
+
on the official `template-vite-ts` layout (Vite + TypeScript 6). Phaser 4 is the
|
|
5
|
+
only supported target — never introduce Phaser 3 idioms. These decisions are
|
|
6
|
+
**locked** and most are **lint-enforced**; do not disable a rule, fix the code.
|
|
7
|
+
|
|
8
|
+
## Official Phaser skills — use these for API knowledge
|
|
9
|
+
|
|
10
|
+
Phaser ships **28 official, authoritative agent skills** inside the installed
|
|
11
|
+
package at **`node_modules/phaser/skills/<topic>/SKILL.md`** — e.g. `scenes`,
|
|
12
|
+
`sprites-and-images`, `physics-arcade`, `physics-matter`, `tweens`, `particles`,
|
|
13
|
+
`filters-and-postfx`, `loading-assets`, `animations`, `tilemaps`, `cameras`,
|
|
14
|
+
`input-keyboard-mouse-touch`, `audio-and-sound`, `game-object-components`,
|
|
15
|
+
`v3-to-v4-migration`, `v4-new-features`, and more. The Phaser team maintains them
|
|
16
|
+
in lockstep with the engine, and they cite exact `src/...` source paths.
|
|
17
|
+
|
|
18
|
+
**For any Phaser API or subsystem question, read the matching official skill
|
|
19
|
+
first.** Do not rely on memory, and do not expect Lisa to duplicate that
|
|
20
|
+
knowledge — the `lisa-phaser` skills intentionally cover only the opinionated,
|
|
21
|
+
project-specific, and lint-enforced layer (project structure, services, asset
|
|
22
|
+
pipeline, i18n, accessibility, build/deploy, testing gates) that the official
|
|
23
|
+
skills do not. When this file points at a Phaser subsystem (physics, rendering,
|
|
24
|
+
scenes, …) the authority is the official skill of that name.
|
|
25
|
+
|
|
26
|
+
An optional **Phaser Editor MCP server** (`@phaserjs/editor-mcp-server`, 40+
|
|
27
|
+
tools for scenes/assets/tilemaps) is defined for this project type but
|
|
28
|
+
**disabled by default** — enable it only when working with Phaser Editor v5. See
|
|
29
|
+
`.mcp.json` and `disabledMcpjsonServers` in `.claude/settings.json`.
|
|
30
|
+
|
|
31
|
+
## Locked architecture decisions
|
|
32
|
+
|
|
33
|
+
1. **Thin scenes over a pure-logic core.** Scenes and GameObjects are thin
|
|
34
|
+
adapters that wire pure logic to the engine. All game rules live in
|
|
35
|
+
`src/logic/**` as plain TypeScript with **zero `phaser` imports** (data in,
|
|
36
|
+
data out). This is what makes the game unit-testable. ECS (bitECS / Miniplex)
|
|
37
|
+
is an opt-in option, not the default — reach for it only at high entity
|
|
38
|
+
counts. See `phaser-project-structure` and `phaser-testing`.
|
|
39
|
+
2. **Canvas-only, framework-agnostic UI.** UI is plain TS + DOM/canvas (the
|
|
40
|
+
`template-vite-ts` baseline). A React/Vue EventBus bridge is documented only
|
|
41
|
+
as an upgrade path — it is not the default and is not added unless required.
|
|
42
|
+
3. **Arcade physics by default; Matter is opt-in.** Matter is heavier and does
|
|
43
|
+
not interop with Arcade. Switching is a one-line config swap. See
|
|
44
|
+
the official `physics-arcade` skill.
|
|
45
|
+
4. **Determinism.** No `Math.random()`, `Date.now()`, or `performance.now()` in
|
|
46
|
+
game code. Use the seeded `Phaser.Math.RandomDataGenerator` (`Phaser.Math.RND`
|
|
47
|
+
or a local instance seeded from one place) so replays and tests reproduce.
|
|
48
|
+
5. **State and events.** Global state goes through a **typed wrapper over the
|
|
49
|
+
registry**; cross-cutting events go through a **single dedicated
|
|
50
|
+
EventsCenter** (`new Phaser.Events.EventEmitter()`) — **never reuse
|
|
51
|
+
`game.events`**. Every external `.on()` (`this.input` / `scale` / `time` /
|
|
52
|
+
`window` / the custom bus) must have a matching `.off()` in the scene's
|
|
53
|
+
`shutdown`. See `phaser-services`.
|
|
54
|
+
6. **Performance.** Pool transient objects via `Group`s; make **no allocations
|
|
55
|
+
and create no objects/tweens/timers inside `update()`**; atlas everything; use
|
|
56
|
+
`BitmapText` for high-churn text; use `SpriteGPULayer` / `TilemapGPULayer` for
|
|
57
|
+
mass rendering. See the official `game-object-components` skill.
|
|
58
|
+
7. **Baked-in asset pipeline with REAL art.** Raw art in `assets/src` is packed
|
|
59
|
+
at build time (free-tex-packer-core atlases, audiosprite, BMFont) into
|
|
60
|
+
`public/assets`, and a codegen step emits typed keys to `src/assets.ts` so a
|
|
61
|
+
missing or renamed key is a **compile error**. No raw string asset / scene /
|
|
62
|
+
event keys anywhere. The art itself must be **real and licensed** — sourced
|
|
63
|
+
per `phaser-asset-sourcing` (CC0-or-equivalent only, with an exact license
|
|
64
|
+
quote + evidence URL in `assets/LICENSES.md` and committed provenance).
|
|
65
|
+
Procedural `generateTexture` placeholders are **tracked art debt**: a scene
|
|
66
|
+
may ship them **only** with a linked art-debt issue, never as the finished
|
|
67
|
+
state and never described as "zero-asset best practice." Characters ship real
|
|
68
|
+
idle+walk animation, not static frames. See `phaser-asset-sourcing` and
|
|
69
|
+
`phaser-asset-pipeline`.
|
|
70
|
+
8. **PWA on by default** via `vite-plugin-pwa` (`registerType: "autoUpdate"`,
|
|
71
|
+
`globPatterns` extended to cover game assets). See `phaser-build-deploy`.
|
|
72
|
+
9. **Cross-cutting services are scaffolded** in `src/services/**`: SoundService
|
|
73
|
+
(mobile audio unlock on first gesture), InputService (semantic actions, not
|
|
74
|
+
raw keys), SaveService (typed `localStorage` with a schema `VERSION` +
|
|
75
|
+
migration chain — never raw `localStorage`), a typed i18n string catalog (no
|
|
76
|
+
hardcoded user-facing strings), accessibility (prefers-reduced-motion,
|
|
77
|
+
pause-on-blur, keyboard-navigable menus, screen-reader live region), and a
|
|
78
|
+
vendor-neutral telemetry/analytics abstraction. In-game errors are wired to
|
|
79
|
+
the observability sink. See `phaser-services`, `phaser-i18n`,
|
|
80
|
+
`phaser-accessibility`.
|
|
81
|
+
10. **Testing is a pyramid.** Pure logic is unit-tested with Vitest;
|
|
82
|
+
scenes/entities are excluded from unit coverage and verified by **runtime
|
|
83
|
+
gates** in CI (boot smoke, allocation/perf budget, leak gate, determinism
|
|
84
|
+
gate, deterministic visual regression, bundle-size budget). See
|
|
85
|
+
`phaser-testing`. Build pins: `phaser ^4.2.0`, Vite, TypeScript 6.
|
|
86
|
+
|
|
87
|
+
## Enforced lint rules (prose must match machine enforcement)
|
|
88
|
+
|
|
89
|
+
The lint config enforces the rules below. Each exists because the prose above
|
|
90
|
+
relies on it — keep them in sync.
|
|
91
|
+
|
|
92
|
+
**`no-restricted-imports`**
|
|
93
|
+
|
|
94
|
+
- Importing `phaser` anywhere under `src/logic/**` is banned. The logic core
|
|
95
|
+
stays engine-free so Vitest runs it without a browser.
|
|
96
|
+
|
|
97
|
+
**`no-restricted-syntax`** bans:
|
|
98
|
+
|
|
99
|
+
- Removed v3 idioms: `setPipeline` / `setPostPipeline` / `resetPipeline`,
|
|
100
|
+
`setTintFill`, `preFX` / `postFX`, `Phaser.Geom.Point`, `Phaser.Struct`,
|
|
101
|
+
`BitmapMask`, `Mesh`, `Plane`, `Camera3D`. Use the v4 replacements
|
|
102
|
+
(RenderNodes, Filters, `Phaser.Math.Vector2`, native `Set`/`Map`, GPU layers).
|
|
103
|
+
- `Math.random()` / `Date.now()` / `performance.now()` in `src` game code — use
|
|
104
|
+
the seeded RND and the scene clock (`this.time.now`).
|
|
105
|
+
- Reusing `game.events` for app messaging — use the dedicated EventsCenter.
|
|
106
|
+
- `debug: true` inside a physics/game config object literal — debug stays off in
|
|
107
|
+
committed code (toggle locally, never commit it on).
|
|
108
|
+
|
|
109
|
+
**Direct-`localStorage` ban**
|
|
110
|
+
|
|
111
|
+
- Direct `localStorage` access outside `src/services/**` is banned. Persist
|
|
112
|
+
through SaveService (versioned + migrated).
|
|
113
|
+
|
|
114
|
+
**Custom `eslint-plugin-phaser` rules**
|
|
115
|
+
|
|
116
|
+
- `no-create-in-update` — no `this.add.*`, `tweens.add`, `time.addEvent`,
|
|
117
|
+
`physics.add.*`, or `new Phaser.*` inside an `update()` method. Create in
|
|
118
|
+
`create()`; in the loop, reuse and pool.
|
|
119
|
+
- `no-allocation-in-update` — no object/array literals, closures, or
|
|
120
|
+
`.map`/`.filter`/`.reduce` chains inside `update()`. Hoist scratch objects.
|
|
121
|
+
- `require-shutdown-cleanup` — a `Scene` that registers persistent external
|
|
122
|
+
listeners must define a `shutdown` handler that removes them.
|
|
123
|
+
|
|
124
|
+
## Architecture
|
|
125
|
+
|
|
126
|
+
- **One scene class per file** under `src/scenes/`, named after the scene key.
|
|
127
|
+
The scene flow is `Boot → Preloader → MainMenu → Game` (plus overlays). Boot
|
|
128
|
+
loads only what the Preloader needs; the Preloader loads everything else.
|
|
129
|
+
- **Pure game logic lives in `src/logic/**`** with no `phaser` imports — plain
|
|
130
|
+
TypeScript that takes and returns data. Scenes/entities are thin orchestrators
|
|
131
|
+
that wire that logic to GameObjects. See `phaser-testing`.
|
|
132
|
+
- **Keys are typed constants** generated into `src/assets.ts` — never inline
|
|
133
|
+
magic strings for texture/audio/animation/scene/event keys. Load via asset-pack
|
|
134
|
+
manifests (`this.load.pack`), not ad-hoc `load.image` lists.
|
|
135
|
+
|
|
136
|
+
## Performance
|
|
137
|
+
|
|
138
|
+
- **No allocations in `update()`** and **no object/tween/timer creation in
|
|
139
|
+
`update()`** (both lint-enforced) — hoist scratch objects, reuse vectors.
|
|
140
|
+
- **Pool, don't churn.** Bullets, enemies, particles, and pickups come from
|
|
141
|
+
`Group` pools (`get` / `killAndHide`), never `new` / `destroy` per spawn.
|
|
142
|
+
- **Mass rendering uses the GPU layers.** Large sprite fields → `SpriteGPULayer`;
|
|
143
|
+
large tile maps → `TilemapGPULayer`. Atlas everything (see
|
|
144
|
+
`phaser-asset-pipeline`); `BitmapText` for high-churn text.
|
|
145
|
+
- Target WebGL; the Canvas renderer is deprecated in v4 and acceptable only as an
|
|
146
|
+
explicit, documented fallback.
|
|
147
|
+
|
|
148
|
+
## Verification
|
|
149
|
+
|
|
150
|
+
Before reporting any change complete: run `bun run typecheck`, `bun run lint`,
|
|
151
|
+
`bun run test`, and `bun run build`. For changes that affect rendering or input,
|
|
152
|
+
verify in the real browser — `bun run dev` plus a Playwright check (the game
|
|
153
|
+
boots, the canvas renders, no console errors). CI additionally runs the runtime
|
|
154
|
+
gates (`phaser-testing`). A green typecheck alone is not proof a game works.
|
|
155
|
+
|
|
156
|
+
## Game-development personas (subagents)
|
|
157
|
+
|
|
158
|
+
This plugin ships **game-development persona subagents** under `agents/` —
|
|
159
|
+
reusable *roles* (a publisher, a game designer, a target player, …) that
|
|
160
|
+
critique the game from a non-engineering seat. They complement, and never
|
|
161
|
+
duplicate, Lisa's engineering specialists (architecture, quality, test,
|
|
162
|
+
security, performance). Most are **critics** (they review the design and report
|
|
163
|
+
findings); a couple (`narrative-designer`, `target-player`) also **generate**
|
|
164
|
+
content.
|
|
165
|
+
|
|
166
|
+
**Role vs. instance.** The persona *role* lives here (genre-neutral, reusable
|
|
167
|
+
across every Phaser game). The persona *instance data* — this game's actual
|
|
168
|
+
target-player archetypes, art direction, economy spec, publisher constraints —
|
|
169
|
+
lives in the project's wiki. Each subagent reads its source-of-truth wiki docs
|
|
170
|
+
(`wiki/design/**`, `wiki/narrative/**`, `wiki/production/**`,
|
|
171
|
+
`wiki/personas/**`, …) and degrades to genre-neutral best practice, saying so,
|
|
172
|
+
when those docs are absent.
|
|
173
|
+
|
|
174
|
+
| Tier | Personas |
|
|
175
|
+
|------|----------|
|
|
176
|
+
| **Core** (most games) | `game-designer`, `player-advocate`, `narrative-designer`, `level-designer`, `ux-ui-designer`, `game-feel-specialist`, `qa-playtester`, `producer` |
|
|
177
|
+
| **Business & audience** | `publisher`, `marketing-strategist`, `target-player`, `accessibility-advocate` |
|
|
178
|
+
| **Specialist** (opt-in per project) | `combat-designer`, `economy-designer`, `art-director`, `audio-director`, `monetization-designer`, `localization-manager`, `onboarding-advocate`, `product-analyst` |
|
|
179
|
+
|
|
180
|
+
Invoke a persona as a subagent (e.g. via the Agent tool / `@`-mention) during
|
|
181
|
+
planning and review. Specialist personas are opt-in — enable the ones the
|
|
182
|
+
project's genre warrants (a puzzle game does not need a `combat-designer`); the
|
|
183
|
+
`monetization-designer` should stay off for premium/offline titles.
|
|
184
|
+
|