@codyswann/lisa 4.74.8 → 4.75.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +60 -0
- package/all/copy-overwrite/scripts/lib/npm-update-cancel-origin.mjs +4 -2
- package/all/copy-overwrite/scripts/lib/npm-update-checkpoint-codec.mjs +141 -0
- package/all/copy-overwrite/scripts/lib/npm-update-checkpoint.mjs +162 -116
- package/all/copy-overwrite/scripts/lib/npm-update-helper-inventory.mjs +1 -0
- package/all/copy-overwrite/scripts/lib/npm-update-recovery.mjs +9 -60
- package/all/copy-overwrite/scripts/npm-updater-helper-graph.json +18 -6
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +20 -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 +739 -11
- 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
- package/scripts/two-channel-couplings.json +1 -1
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
# Pre-Flight Spec Autofill (Draft-Then-Block)
|
|
2
|
+
|
|
3
|
+
> Demoted from the always-on eager tier by CodySwannGT/lisa#3992. The
|
|
4
|
+
> section below is the former eager head, preserved verbatim; the full
|
|
5
|
+
> contract follows it. Reachable on demand via [the rule index](../eager/00-rule-index.md).
|
|
6
|
+
|
|
7
|
+
## Pre-Flight Spec Autofill — Draft-Then-Block (load-bearing)
|
|
8
|
+
|
|
9
|
+
When the pre-flight gate (`*-agent` Step 2) returns `FAIL` on **ticket-quality**
|
|
10
|
+
gaps, do **not** bounce a raw checklist back to the reporter. Most "missing
|
|
11
|
+
required spec content" gaps are **authorable** from material already on the work
|
|
12
|
+
item (title, description, screenshots, design links, repro steps) plus the
|
|
13
|
+
codebase. **Draft** a best-effort version of every authorable gap, write it into
|
|
14
|
+
the item as clearly-labeled **assumptions/recommendations**, and only **then**
|
|
15
|
+
block — turning the human ask from *"author all this"* into *"confirm or correct
|
|
16
|
+
my draft, then flip back to Ready."* Same shape as `repo-scope-split`: the agent
|
|
17
|
+
does the work it can; the human decides only what only a human can.
|
|
18
|
+
|
|
19
|
+
This does **not** widen the gate — every required section must still exist
|
|
20
|
+
before build. It replaces an empty demand with a defensible first draft, and it
|
|
21
|
+
breaks the `Ready ↔ Blocked` ping-pong loop that a raw checklist causes (the
|
|
22
|
+
information was already on the ticket; only the structure was missing).
|
|
23
|
+
|
|
24
|
+
## Two tiers
|
|
25
|
+
|
|
26
|
+
- **Tier A — authorable (always draft):** Technical Approach, Out of Scope,
|
|
27
|
+
Gherkin Acceptance Criteria (one scenario per fix), expected-vs-actual +
|
|
28
|
+
environment, Repository, Relationship Search (actually run the git+tracker
|
|
29
|
+
search — don't fabricate "none found"), Validation Journey **draft** (via the
|
|
30
|
+
vendor `*-add-journey` skill), Target Backend Environment. Preserve a bare
|
|
31
|
+
configured key or `Confirmed: <env>` as human-confirmed. Automation writes
|
|
32
|
+
`Inferred: <env> — evidence: <title|body|reproduction|hostname>` or
|
|
33
|
+
`Assumption: <env> — remote default branch <branch>`. Without a unique
|
|
34
|
+
reverse-map use `Assumption: remote default branch <branch>`; human confirmation
|
|
35
|
+
replaces the annotation with a bare key or `Confirmed: <env>`. For legacy bare
|
|
36
|
+
values, use managed draft markers and current ticket content only; provider
|
|
37
|
+
edit history is not required. A marker proves automation and requires
|
|
38
|
+
re-annotation; otherwise unknown provenance plus conflicting evidence stops.
|
|
39
|
+
Human-confirmed wins, then validated `Inferred:`
|
|
40
|
+
evidence. Otherwise use one unambiguous exact `deploy.branches` key from the
|
|
41
|
+
title, body, and reproduction steps or a URL hostname, excluding the complete
|
|
42
|
+
`Target Backend Environment` section and other machine-authored metadata/draft
|
|
43
|
+
blocks so annotations cannot become evidence. Evidence supersedes only
|
|
44
|
+
`Assumption:`. Normalize only built-in
|
|
45
|
+
`prod` ↔ `production` when exactly one is configured; no other aliases exist.
|
|
46
|
+
Never infer from arbitrary branch text, URL paths/query strings, or substrings.
|
|
47
|
+
Conflicting signals **stop** autofill. With no environment signal, use the
|
|
48
|
+
remote default and record the applicable `Assumption:` form; a non-unique
|
|
49
|
+
reverse-map alone never blocks. Require any selected mapping and remote branch.
|
|
50
|
+
Never overwrite human prose.
|
|
51
|
+
- **Tier B — irreducibly human:** real credentials/access that exist nowhere on
|
|
52
|
+
the item or in repo test-user docs; a genuine product/scoping decision with no
|
|
53
|
+
defensible default. Still propose a recommended default where one exists; ask
|
|
54
|
+
a specific question only where none does.
|
|
55
|
+
|
|
56
|
+
## Procedure
|
|
57
|
+
|
|
58
|
+
1. Enumerate FAIL categories from `*-verify`. If S10 failed, run
|
|
59
|
+
`repo-scope-split` first (split, not autofill).
|
|
60
|
+
2. Draft each Tier-A gap grounded in item material + codebase; tag every
|
|
61
|
+
inference as an assumption. **Never overwrite human prose** — add/augment
|
|
62
|
+
sections only.
|
|
63
|
+
3. Write the draft via the vendor write skill (`jira-write-ticket` /
|
|
64
|
+
`github-write-issue` / `linear-write-issue`); draft the Validation Journey
|
|
65
|
+
via `*-add-journey`.
|
|
66
|
+
4. Re-run `*-verify`. Structural gates should now PASS; anything still failing
|
|
67
|
+
is Tier B — name it in the comment.
|
|
68
|
+
5. Block as usual (`blocked` status + `human_needed` marker + reassign to
|
|
69
|
+
Reporter) but post the **confirmation comment**, not a checklist: disclose
|
|
70
|
+
it's a Claude draft, one line per drafted section + its key assumption,
|
|
71
|
+
Tier-B items as specific questions with defaults, and close with *"correct
|
|
72
|
+
anything wrong, then flip back to Ready and it builds — or reply with
|
|
73
|
+
corrections."*
|
|
74
|
+
6. **Loop-safety:** if the item already carries the agent's draft, refine only
|
|
75
|
+
the still-failing gaps; don't redraft. Re-readying after review is the
|
|
76
|
+
human's approval — the next claim's `*-verify` PASSes and build proceeds.
|
|
77
|
+
|
|
78
|
+
## When you genuinely cannot autofill
|
|
79
|
+
|
|
80
|
+
If drafting would be fabrication (no fix/expected behavior described, no usable
|
|
81
|
+
design ref, uninformative title, no codebase anchor), block as before — but
|
|
82
|
+
phrase each gap as a specific question with a default where defensible. Never a
|
|
83
|
+
bare checklist when a defensible draft is possible.
|
|
84
|
+
|
|
85
|
+
The agent writes **spec/criteria, never code**, at this gate — authoring AC and
|
|
86
|
+
a validation journey is explicitly permitted here (this supersedes the older
|
|
87
|
+
"the build agent does not author the missing spec content" stance).
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
When the pre-flight gate (`*-agent` Step 2) returns `FAIL` on **ticket-quality**
|
|
92
|
+
gaps, the agent does **not** bounce a raw "here is everything you must write"
|
|
93
|
+
checklist back to the reporter. Most "missing required spec content" gaps are
|
|
94
|
+
**authorable** from material already on the work item (title, description,
|
|
95
|
+
screenshots, design links, reproduction steps) plus the codebase. The agent
|
|
96
|
+
drafts a best-effort version of every authorable gap, writes it into the work
|
|
97
|
+
item as clearly-labeled **assumptions and recommendations**, and only **then**
|
|
98
|
+
blocks — turning the human ask from *"author all of this from scratch"* into
|
|
99
|
+
*"confirm or correct my draft, then flip it back to Ready."*
|
|
100
|
+
|
|
101
|
+
This is the same shape as the `repo-scope-split` exception: the agent does the
|
|
102
|
+
work it can and reserves the human for what only a human can decide. It does
|
|
103
|
+
**not** widen the gate — every required section must still exist before build;
|
|
104
|
+
autofill just supplies a defensible first draft instead of an empty demand.
|
|
105
|
+
|
|
106
|
+
## Why this exists
|
|
107
|
+
|
|
108
|
+
The build + screenshot-diff verification pipeline needs **structured,
|
|
109
|
+
machine-readable** sections — Gherkin acceptance criteria, a Validation Journey
|
|
110
|
+
with `[SCREENSHOT:]`/`[EVIDENCE:]` markers, Sign-in Required, Target Backend
|
|
111
|
+
Environment, Repository. A bug report routinely contains all of that
|
|
112
|
+
*information* in prose, screenshots, or a Figma link, but not the *structure*.
|
|
113
|
+
Dumping the checklist straight back produces a ping-pong loop: the item bounces
|
|
114
|
+
`Ready → Blocked → Ready` on every intake cycle because nobody re-types the
|
|
115
|
+
existing information into headings, and the reporter reasonably objects that the
|
|
116
|
+
information is already there. Drafting the structure breaks the loop and
|
|
117
|
+
respects the reporter's time — the human reviews a draft instead of authoring a
|
|
118
|
+
spec.
|
|
119
|
+
|
|
120
|
+
## Two tiers of gap
|
|
121
|
+
|
|
122
|
+
**Tier A — authorable (always attempt a draft):**
|
|
123
|
+
|
|
124
|
+
- **Technical Approach** — locate the affected component/files in the repo (the
|
|
125
|
+
title and description usually name the surface, e.g. "Player modal"); state
|
|
126
|
+
which files likely change and the expected layout. Flag inferences as
|
|
127
|
+
assumptions.
|
|
128
|
+
- **Out of Scope** — a one-line boundary derived from the fix list.
|
|
129
|
+
- **Acceptance Criteria (Gherkin)** — convert each described fix / expected
|
|
130
|
+
behavior into `Given/When/Then`. One scenario per discrete fix.
|
|
131
|
+
- **Expected-vs-actual + environment** — restate the bug as explicit expected
|
|
132
|
+
vs actual, naming the environment the screenshots/description came from.
|
|
133
|
+
- **Repository** — resolve per `config-resolution` repo scoping and state it.
|
|
134
|
+
- **Relationship Search** — actually **run** the git + tracker search; record
|
|
135
|
+
the queries and results and link anything found. Do not fabricate a
|
|
136
|
+
"none found" note.
|
|
137
|
+
- **Validation Journey (draft)** — run the vendor `*-add-journey` skill to draft
|
|
138
|
+
the click-path, markers, and viewports from the reproduction steps. This is a
|
|
139
|
+
draft for human approval, not the final ratified contract.
|
|
140
|
+
- **Target Backend Environment** — preserve a bare configured key or
|
|
141
|
+
`Confirmed: <env>` as human-confirmed. Automated evidence must write
|
|
142
|
+
`Inferred: <env> — evidence: <title|body|reproduction|hostname>`; a generic
|
|
143
|
+
fallback must write `Assumption: <env> — remote default branch <branch>`.
|
|
144
|
+
If the default branch has no unique environment reverse-map, instead write
|
|
145
|
+
`Assumption: remote default branch <branch>` without inventing an environment.
|
|
146
|
+
Human confirmation replaces an automated annotation with a bare key or
|
|
147
|
+
`Confirmed: <env>`. For legacy bare values, use managed draft markers and
|
|
148
|
+
current ticket content only; provider edit history is not required. A marker
|
|
149
|
+
proves automation and requires re-annotation; otherwise unknown provenance
|
|
150
|
+
plus conflicting evidence stops for confirmation. A human-confirmed value wins, followed by validated
|
|
151
|
+
`Inferred:` evidence. Otherwise inspect the title, body, and reproduction
|
|
152
|
+
steps or a URL hostname for one unambiguous exact `deploy.branches` key,
|
|
153
|
+
excluding the complete `Target Backend Environment` section and all other
|
|
154
|
+
machine-authored metadata/draft blocks so annotations cannot become evidence.
|
|
155
|
+
Clear evidence supersedes only an `Assumption:` value. The sole normalization
|
|
156
|
+
is `prod` ↔ `production` when exactly one key is configured; no other aliases
|
|
157
|
+
exist. Never infer from arbitrary branch text, URL paths or query strings, or
|
|
158
|
+
substrings. Multiple conflicting signals **stop** autofill. With no
|
|
159
|
+
environment signal, use the remote default and record the applicable
|
|
160
|
+
`Assumption:` form; a missing/ambiguous reverse-map alone never blocks.
|
|
161
|
+
Require any selected environment mapping and remote branch. Never overwrite
|
|
162
|
+
human prose.
|
|
163
|
+
|
|
164
|
+
**Tier B — irreducibly human (cannot invent — but still propose a default):**
|
|
165
|
+
|
|
166
|
+
- **Real credentials / access** that exist nowhere on the item or in the repo's
|
|
167
|
+
known test-user docs. (If credentials are present in prose, that is Tier A —
|
|
168
|
+
lift them into a Sign-in Required section.)
|
|
169
|
+
- **A genuine product / scoping decision** with no defensible default — the
|
|
170
|
+
exact expected behavior when the ticket is internally contradictory or the
|
|
171
|
+
design reference is missing.
|
|
172
|
+
|
|
173
|
+
For Tier B, still propose a **recommended default** wherever one is defensible,
|
|
174
|
+
and ask a **specific question** only where none is. Never reduce a Tier B item
|
|
175
|
+
to a bare demand.
|
|
176
|
+
|
|
177
|
+
## Procedure
|
|
178
|
+
|
|
179
|
+
1. **Enumerate the FAIL categories** from `*-verify`.
|
|
180
|
+
2. **Run `repo-scope-split` first** if S10 (single-repo scope) failed — that is
|
|
181
|
+
a split, not an autofill. Autofill handles the remaining quality gaps.
|
|
182
|
+
3. **Draft each Tier-A gap** grounded in the work-item material + codebase.
|
|
183
|
+
Every inferred value is explicitly tagged as an assumption/recommendation
|
|
184
|
+
(lead the drafted block with a note: *"Drafted by Claude — assumptions
|
|
185
|
+
flagged inline; please confirm or correct."*). **Never overwrite
|
|
186
|
+
human-authored prose** — add the missing structured sections; if a section
|
|
187
|
+
exists but is thin, augment it without discarding the human's words.
|
|
188
|
+
4. **Write the draft into the work item** via the vendor write skill
|
|
189
|
+
(`jira-write-ticket` / `github-write-issue` / `linear-write-issue`) so
|
|
190
|
+
relationship and metadata gates stay enforced. Draft the Validation Journey
|
|
191
|
+
via the vendor `*-add-journey` skill.
|
|
192
|
+
5. **Re-run `*-verify`.** The structural gates should now PASS (the content
|
|
193
|
+
exists, even if assumed). Any gate that still FAILs is Tier B — leave it and
|
|
194
|
+
name it precisely in the comment.
|
|
195
|
+
6. **Block as usual** — transition/relabel to the configured `blocked` status,
|
|
196
|
+
add the `human_needed` marker, reassign to the **Reporter** — but post the
|
|
197
|
+
**confirmation comment** (below), not a remediation checklist.
|
|
198
|
+
7. **Idempotency / loop-safety.** If the item already carries the agent's draft
|
|
199
|
+
from a prior cycle, do **not** redraft from scratch — refine only the gaps
|
|
200
|
+
still failing and refresh the confirmation comment. When the reporter flips
|
|
201
|
+
the item back to Ready, the next claim re-runs `*-verify`; if it now PASSes,
|
|
202
|
+
build proceeds on the draft the reporter approved by re-readying it. That is
|
|
203
|
+
what breaks the `Ready ↔ Blocked` loop.
|
|
204
|
+
|
|
205
|
+
## The confirmation comment (replaces the remediation checklist)
|
|
206
|
+
|
|
207
|
+
- **Disclose**: posted by Claude (AI build agent); identify the content as a
|
|
208
|
+
draft.
|
|
209
|
+
- **Frame it**: the item had the right information but lacked the structured
|
|
210
|
+
sections the pipeline needs, so the agent drafted them — the report's validity
|
|
211
|
+
was never in question.
|
|
212
|
+
- **One line per drafted section**, naming the section and the key assumption
|
|
213
|
+
(e.g. *"Acceptance Criteria — drafted 4 Gherkin scenarios from the fix list;
|
|
214
|
+
assumed 'Search result' restores the prior query terms."*).
|
|
215
|
+
- **Tier-B items still required**, each as a specific question with a
|
|
216
|
+
recommended default where one exists.
|
|
217
|
+
- **Close with the action**: *"Review the drafted sections in the description.
|
|
218
|
+
Correct anything wrong, then flip back to Ready and it builds immediately — or
|
|
219
|
+
reply with corrections and I'll revise."* Keep the `human_needed` marker until
|
|
220
|
+
then.
|
|
221
|
+
|
|
222
|
+
## When you genuinely cannot autofill (fall back to the plain block)
|
|
223
|
+
|
|
224
|
+
If the item is so underspecified that drafting would be fabrication — no fix or
|
|
225
|
+
expected behavior described, no usable design reference, an uninformative title,
|
|
226
|
+
and the codebase gives no anchor — block as before. Even then, phrase **each gap
|
|
227
|
+
as a specific question** and propose a default wherever one is defensible (the
|
|
228
|
+
"Human-Needed is a last resort" principle). Never bounce a bare checklist when a
|
|
229
|
+
defensible draft is possible.
|
|
230
|
+
|
|
231
|
+
## Disclosure & safety
|
|
232
|
+
|
|
233
|
+
- Agent-drafted content is **always attributed to Claude and marked as
|
|
234
|
+
assumptions**, so a human never mistakes a guess for their own ratified spec.
|
|
235
|
+
- The agent writes **spec/criteria, never code**, at this gate. Drafting
|
|
236
|
+
acceptance criteria and a validation journey is authoring, not implementation
|
|
237
|
+
— explicitly permitted here. This **supersedes** the older "the build agent
|
|
238
|
+
does not author the missing spec content" stance, which produced the
|
|
239
|
+
bounce-loop.
|
|
240
|
+
|
|
241
|
+
## Vendor mechanics
|
|
242
|
+
|
|
243
|
+
- **JIRA** — draft sections via `jira-write-ticket`; Validation Journey via
|
|
244
|
+
`jira-add-journey`; block + label + reassign + comment via the `jira-agent`
|
|
245
|
+
Step 2 exception (`transitionJiraIssue`, `editJiraIssue` for the label and
|
|
246
|
+
assignee, `addCommentToJiraIssue`).
|
|
247
|
+
- **GitHub** — `github-write-issue`; `github-add-journey`; relabel + reassign +
|
|
248
|
+
comment via `gh`.
|
|
249
|
+
- **Linear** — `linear-write-issue`; `linear-add-journey`; `save_issue` +
|
|
250
|
+
`save_comment`.
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
# Project Learnings
|
|
2
|
+
|
|
3
|
+
Project learnings are Lisa's bounded, repo-local memory surface. The
|
|
4
|
+
machine-managed ledger is `PROJECT_LEARNINGS.md`, resolved from
|
|
5
|
+
`.lisa.config.json`: the optional `learnings.file` override, else the default
|
|
6
|
+
`.lisa/PROJECT_LEARNINGS.md`. The ledger deliberately lives in the cold `.lisa/`
|
|
7
|
+
directory — **not** under `.claude/rules/` or any other auto-loaded rules tree —
|
|
8
|
+
because anything in those trees is injected raw into every session, which
|
|
9
|
+
double-loads the file and bypasses the contract's budget and validation.
|
|
10
|
+
|
|
11
|
+
Consume learnings before normal task work whenever the file exists, and consume
|
|
12
|
+
them ONLY through the executable contract from `@codyswann/lisa/learnings`:
|
|
13
|
+
`parseLearningsFile` to parse and validate, then `projectLearnings` to take the
|
|
14
|
+
bounded serving slice (the highest-priority entries — ordered by confidence,
|
|
15
|
+
then recency — that fit the token/entry budget, plus how many were omitted).
|
|
16
|
+
**Never read the raw ledger file wholesale into context**; the session receives
|
|
17
|
+
the bounded projection, not the full document. Do not duplicate numeric caps in
|
|
18
|
+
rules or prompts; the exported contract is the source of truth.
|
|
19
|
+
|
|
20
|
+
Each persisted v2 entry has eight fields:
|
|
21
|
+
|
|
22
|
+
- `id`
|
|
23
|
+
- `fingerprint`
|
|
24
|
+
- `rule`
|
|
25
|
+
- `why`
|
|
26
|
+
- `provenance`
|
|
27
|
+
- `first_learned`
|
|
28
|
+
- `last_confirmed`
|
|
29
|
+
- `confidence`
|
|
30
|
+
|
|
31
|
+
`fingerprint` is the content-version token; `id` is the stable public identity.
|
|
32
|
+
A new entry starts with `id = fingerprint`. Consolidation passes exact
|
|
33
|
+
`{ id, fingerprint }` stamps copied from parsed entries. The writer checks the
|
|
34
|
+
whole target set inside its lock: an exact set is replaced together while the
|
|
35
|
+
deterministic primary id carries forward; any stale stamp removes nothing and
|
|
36
|
+
the new fingerprint is appended safely. Fingerprints are unique, so an
|
|
37
|
+
identical re-capture fails before mutation rather than gaining a sibling.
|
|
38
|
+
|
|
39
|
+
## v1 compatibility and mutation-only migration
|
|
40
|
+
|
|
41
|
+
`parseLearningsDocument` accepts both contract versions and reports
|
|
42
|
+
`sourceVersion`, normalized `entries`, `canonicalSource`, and
|
|
43
|
+
`sourceMaxTokens`. A v1 entry is normalized in memory with `fingerprint = id`,
|
|
44
|
+
which records the version-token job its old id already performed. A read never
|
|
45
|
+
rewrites the ledger. The next real writer mutation — append, exact stamped
|
|
46
|
+
consolidation, confirmation, overflow drain, or merge — publishes one atomic v2
|
|
47
|
+
document. Each source version is validated against its own derived budget; do
|
|
48
|
+
not copy either numeric ceiling into instructions. Stable ids and fingerprints
|
|
49
|
+
are bounded machine tokens, and the v2 budget is derived to absorb the maximum
|
|
50
|
+
per-entry fingerprint expansion for every v1 document the compatibility parser
|
|
51
|
+
accepts. That migration-closure invariant prevents an ordinary later mutation
|
|
52
|
+
from discovering that a previously accepted legacy document cannot be
|
|
53
|
+
published.
|
|
54
|
+
|
|
55
|
+
The three-way merge understands mixed v1/v2 sides. When two branches both
|
|
56
|
+
legitimately replace the same stable id from the same observed fingerprint, it
|
|
57
|
+
keeps both successors deterministically: one retains the stable id and the
|
|
58
|
+
other is keyed by its unique fingerprint. It never guesses when fingerprints
|
|
59
|
+
collide.
|
|
60
|
+
|
|
61
|
+
## Who writes the ledger
|
|
62
|
+
|
|
63
|
+
**Contract-mediated writers** — all going through the executable contract
|
|
64
|
+
(`@codyswann/lisa/learnings`), never a hand-edit:
|
|
65
|
+
|
|
66
|
+
- The **learner agent** at capture time appends or consolidates new entries
|
|
67
|
+
(`persistLearningEntry` / `persistConsolidatedLearning`) from task learnings.
|
|
68
|
+
Consolidations pass exact parsed `{ id, fingerprint }` stamps and report a
|
|
69
|
+
stale snapshot through `onStaleSupersede` instead of overwriting its winner.
|
|
70
|
+
It is capture-only: it never appends to host rules, creates skills, or
|
|
71
|
+
files upstream issues — promotion is the gardener's ticket-gated job.
|
|
72
|
+
- **`lisa-debrief-apply`** routes accepted debrief findings in the three
|
|
73
|
+
knowledge categories — recurring gotcha, process friction, convention drift —
|
|
74
|
+
to the ledger through the same contract (`persistLearningEntry` /
|
|
75
|
+
`persistConsolidatedLearning`, with consolidation-at-write), provenance drawn
|
|
76
|
+
from the triage row's evidence links and a `high` starting confidence because
|
|
77
|
+
a human Accept is corroboration. It no longer writes to machine-local memory,
|
|
78
|
+
the host-rules directory `.agents/rules/` (or a surviving legacy
|
|
79
|
+
`PROJECT_RULES.md`), or `AGENTS.md` (the human-authored source of truth, of
|
|
80
|
+
which `CLAUDE.md` is only a `@AGENTS.md` pointer) for these categories.
|
|
81
|
+
- The **build-intake flows** advance `last_confirmed` at claim time
|
|
82
|
+
(`confirmLearningEntry`, below).
|
|
83
|
+
|
|
84
|
+
Automated promotion of a captured learning to a higher rung (skill, eager rule,
|
|
85
|
+
executable control, upstream ticket) is the gardener's job, gated by a human
|
|
86
|
+
flipping a tracker ticket to `status:ready`.
|
|
87
|
+
|
|
88
|
+
## Operator-directed standing rules
|
|
89
|
+
|
|
90
|
+
An operator's instruction to add, revise, or remove a standing rule is already
|
|
91
|
+
authorization for that specific edit. It is not a new machine-captured learning.
|
|
92
|
+
Make the requested change directly, preserving unrelated content; do not require
|
|
93
|
+
learning capture, a promotion ticket, or repeated approval for the same decision.
|
|
94
|
+
"Human-authored" describes who controls the rule, not who types the approved edit.
|
|
95
|
+
|
|
96
|
+
Use the existing topic file under `.agents/rules/`, or create a short one there,
|
|
97
|
+
when the operator has not specified another destination. The `AGENTS.md` host-rules
|
|
98
|
+
pointer reaches Claude Code, Codex, Cursor, OpenCode, Antigravity, and Copilot.
|
|
99
|
+
These shared rules are not a Claude-only surface, and they do not need to be
|
|
100
|
+
copied into every agent's startup file.
|
|
101
|
+
|
|
102
|
+
If the operator explicitly named a guarded startup file, do not substitute a
|
|
103
|
+
different destination or switch tools to evade a refusal. Use the runtime's
|
|
104
|
+
authorized edit path, or report the specific remaining runtime restriction.
|
|
105
|
+
The existing instruction-file override is an operator-configured escape hatch,
|
|
106
|
+
not proof of human approval; agents must not set it to work around a refusal.
|
|
107
|
+
No new approval token is needed for ordinary authorized edits to shared host rules.
|
|
108
|
+
|
|
109
|
+
This does not authorize agents to promote their own incidental findings. Decline
|
|
110
|
+
one-off notes and unnecessary rules; use the existing learning flow only for
|
|
111
|
+
durable knowledge worth maintaining.
|
|
112
|
+
|
|
113
|
+
## Claim-time confirmation (`last_confirmed`)
|
|
114
|
+
|
|
115
|
+
`last_confirmed` is advanced at claim time by the build-intake flows (step
|
|
116
|
+
3c.2 of `lisa-{jira,github,linear}-build-intake`) when an entry's rule
|
|
117
|
+
**demonstrably applied** during a claim — the rule was explicitly cited or
|
|
118
|
+
observably followed in the claim's plan or diff. Presence in the eagerly
|
|
119
|
+
loaded context is NOT application: every entry is present in every session,
|
|
120
|
+
so counting mere presence would confirm everything on every claim and defeat
|
|
121
|
+
decay entirely.
|
|
122
|
+
|
|
123
|
+
The bump goes only through `confirmLearningEntry` from
|
|
124
|
+
`@codyswann/lisa/learnings`: a surgical, lock-protected, atomic write that
|
|
125
|
+
advances only `last_confirmed` (re-validated against the
|
|
126
|
+
`>= first_learned` invariant), returns a structured no-op for a missing
|
|
127
|
+
entry or file instead of throwing, and is idempotent within a claim (a
|
|
128
|
+
same-date repeat returns `unchanged`). A failed bump is reported and never
|
|
129
|
+
blocks the build.
|
|
130
|
+
|
|
131
|
+
Only entries accepted by the executable contract may influence the session. A
|
|
132
|
+
missing file is expected and silent. Malformed Markdown, invalid JSONL, unsafe
|
|
133
|
+
paths, non-canonical content, or over-budget documents produce one readable
|
|
134
|
+
warning, apply no entry, and do not block unrelated work.
|
|
135
|
+
|
|
136
|
+
Precedence:
|
|
137
|
+
|
|
138
|
+
1. System, developer, user, and repo instructions still outrank learnings.
|
|
139
|
+
2. Committed host rules (`.agents/rules/`) remain durable, operator-controlled
|
|
140
|
+
guidance.
|
|
141
|
+
3. Project learnings add recent operational knowledge, but never rewrite or
|
|
142
|
+
append to host rules.
|
|
143
|
+
|
|
144
|
+
## Task telemetry (MLD) is not context
|
|
145
|
+
|
|
146
|
+
Raw task-end MLD telemetry — the Mistakes / Learnings / Desires an implementing
|
|
147
|
+
agent records into `metadata.learnings`, and the raw yield of debrief mining — is
|
|
148
|
+
rung-1 capture only: it is never read into a later session's instruction surface,
|
|
149
|
+
never required of an agent (empty is valid), and never graded or scored. It reaches
|
|
150
|
+
a durable surface only indirectly — through the learner's validation into the
|
|
151
|
+
ledger (which sessions still consume solely as the bounded projection above), and
|
|
152
|
+
from there through the gardener's ticket-gated promotion a human approved. Injecting
|
|
153
|
+
raw self-reports, or treating their volume as a quality signal, would reward
|
|
154
|
+
plausible commentary over good outcomes and bypass the very budget and validation
|
|
155
|
+
this contract exists to enforce.
|
|
156
|
+
|
|
157
|
+
Antigravity note: agy does not receive the plugin `rules/` tree. Lisa reconciles
|
|
158
|
+
a bounded `AGENTS.md` bridge that points agy at this same file without copying
|
|
159
|
+
learning bodies or restoring the retired full rules bake.
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# Promotion Contract
|
|
2
|
+
|
|
3
|
+
> Demoted from the always-on eager tier by CodySwannGT/lisa#3992. The
|
|
4
|
+
> section below is the former eager head, preserved verbatim; the full
|
|
5
|
+
> contract follows it. Reachable on demand via [the rule index](../eager/00-rule-index.md).
|
|
6
|
+
|
|
7
|
+
## Promotion Contract (load-bearing)
|
|
8
|
+
|
|
9
|
+
When implementing a learnings-ladder **promotion ticket** — turning prose
|
|
10
|
+
knowledge into an executable control (lint / ast-grep / type / test / hook /
|
|
11
|
+
`package.lisa.json` force) — the change must be **atomic**: one PR that
|
|
12
|
+
**enables the control**, **fixes the existing violation population**, **ships a
|
|
13
|
+
remediation-teaching diagnostic** (violated invariant + why + concrete fix),
|
|
14
|
+
and **deletes the superseded prose**. A PR missing any of the four is
|
|
15
|
+
**rejected by rule** — promote-without-remove double-pays forever;
|
|
16
|
+
remove-without-diagnostic strands agents.
|
|
17
|
+
|
|
18
|
+
Eager-tier admission is **demotion-biased** and earned only by repeated-miss
|
|
19
|
+
evidence; the gardener audits the eager tier every run, including Lisa's own
|
|
20
|
+
shipped eager rules.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
When a learnings-ladder promotion ticket (PRD #1729) is implemented — turning a
|
|
25
|
+
prose learning, rule section, or ledger entry into an **executable control**
|
|
26
|
+
(lint, ast-grep, type constraint, test, hook, or `package.lisa.json` force) —
|
|
27
|
+
the implementing PR is governed by this contract. The gardener
|
|
28
|
+
(`lisa-learnings-audit`) files the tickets; a human gates them by flipping
|
|
29
|
+
`status:ready`; the factory implements them like any other work item. This rule
|
|
30
|
+
is what makes the resulting PR reviewable **by rule, not by reviewer taste**.
|
|
31
|
+
|
|
32
|
+
## The atomic promote-and-delete contract
|
|
33
|
+
|
|
34
|
+
A promotion PR must do **all four** of the following, in **one atomic PR**:
|
|
35
|
+
|
|
36
|
+
1. **Enable the control.** The lint rule, ast-grep pattern, type constraint,
|
|
37
|
+
test, hook, or `package.lisa.json` force entry is active and blocking (CI
|
|
38
|
+
and/or local gates), not merely added in a warn-only or disabled state.
|
|
39
|
+
2. **Fix the existing violation population.** Every current violation of the
|
|
40
|
+
new control in the repository is migrated in the same PR, so the control
|
|
41
|
+
lands green. Enabling a control against a red population either blocks all
|
|
42
|
+
unrelated work or forces a blanket ignore — both defeat the promotion.
|
|
43
|
+
3. **Ship a remediation-teaching diagnostic.** The control's failure message
|
|
44
|
+
meets the diagnostic-quality bar below. The prose being deleted is not
|
|
45
|
+
lost — its content is **relocated into the error message**, so the agent
|
|
46
|
+
that trips the control learns the rule at exactly the moment it matters.
|
|
47
|
+
4. **Delete the superseded prose.** The ledger entry, rules-file section,
|
|
48
|
+
memory note, or wiki duplication that the control replaces is removed in
|
|
49
|
+
the same PR. Keeping both means every session keeps paying context tax for
|
|
50
|
+
knowledge the machine already enforces.
|
|
51
|
+
|
|
52
|
+
**A PR missing any of the four is rejected by rule.** Reviewers (human, bot,
|
|
53
|
+
or verification lifecycle) cite this contract and reject — no case-by-case
|
|
54
|
+
judgment call is needed. The failure modes are structural, not stylistic:
|
|
55
|
+
|
|
56
|
+
- **Promote-without-remove double-pays forever**: the control enforces the
|
|
57
|
+
invariant while the prose keeps taxing every session, and the two drift
|
|
58
|
+
apart over time.
|
|
59
|
+
- **Remove-without-diagnostic strands agents**: the prose is gone, the control
|
|
60
|
+
fires, and the violator has no idea what invariant it tripped or how to
|
|
61
|
+
repair it.
|
|
62
|
+
- **Enable-without-population-fix** reds the build for everyone or breeds
|
|
63
|
+
blanket ignores that hollow the control out.
|
|
64
|
+
|
|
65
|
+
The same atomicity applies in reverse to **retirements** the gardener batches:
|
|
66
|
+
a prose deletion whose invariant is claimed to be mechanically owned must cite
|
|
67
|
+
the owning control (rule name, config location) in the deleting PR.
|
|
68
|
+
|
|
69
|
+
## The diagnostic-quality bar
|
|
70
|
+
|
|
71
|
+
The error message must **teach the repair**, because it is the only surface
|
|
72
|
+
the violating agent will see. Every promoted control's diagnostic states:
|
|
73
|
+
|
|
74
|
+
1. **The violated invariant** — what rule was broken, named precisely.
|
|
75
|
+
2. **Why the invariant holds** — the causal story that used to live in the
|
|
76
|
+
prose (the incident, the failure class, the platform behavior).
|
|
77
|
+
3. **The concrete fix** — what to change, ideally with the typical corrected
|
|
78
|
+
form inline.
|
|
79
|
+
|
|
80
|
+
Example shape (from this repo's own lint conventions):
|
|
81
|
+
|
|
82
|
+
> "Direct `process.env` access is forbidden. Config values bypass validation
|
|
83
|
+
> and typing when read ad hoc (past incidents: silent `undefined` in Lambda
|
|
84
|
+
> cold starts). Use the config module: `getStandaloneConfig().myValue`."
|
|
85
|
+
|
|
86
|
+
A diagnostic that merely restates the rule name ("no-direct-env: direct env
|
|
87
|
+
access is not allowed") fails the bar and fails the promotion PR with it.
|
|
88
|
+
|
|
89
|
+
## Eager-tier admission policy (demotion-biased)
|
|
90
|
+
|
|
91
|
+
The eager rules tier (auto-loaded rules trees) charges **every session,
|
|
92
|
+
unconditionally**. Admission is therefore **earned, never defaulted**:
|
|
93
|
+
|
|
94
|
+
- A rule enters (or stays in) the eager tier only on cited **repeated-miss
|
|
95
|
+
evidence** — the knowledge was already retrievable (ledger, wiki, skill,
|
|
96
|
+
reference body) and agents still failed repeatedly because they did not
|
|
97
|
+
know to look. Absent that evidence, the content belongs on a cheaper rung.
|
|
98
|
+
- The policy is **demotion-biased**: when in doubt, move down the ladder.
|
|
99
|
+
A wrongly demoted rule earns its way back with fresh failure evidence; a
|
|
100
|
+
wrongly admitted rule taxes every session until someone notices.
|
|
101
|
+
- The gardener audits the eager tier **every run** — and that audit includes
|
|
102
|
+
**Lisa's own shipped eager rules**, not just host-project additions. No
|
|
103
|
+
rule is grandfathered; kernel rules demonstrating no repeated-miss evidence
|
|
104
|
+
get demotion tickets like any other candidate, filed upstream
|
|
105
|
+
(`template-candidate` or `self-hardening` lane as applicable).
|
|
106
|
+
|
|
107
|
+
## AC template for EXECUTABLE-CONTROL promotion tickets
|
|
108
|
+
|
|
109
|
+
The gardener embeds the following snippet **verbatim** (markers included) into
|
|
110
|
+
the acceptance criteria of every EXECUTABLE-CONTROL promotion ticket, so
|
|
111
|
+
implementing agents receive the contract inside the work item itself:
|
|
112
|
+
|
|
113
|
+
<!-- promotion-contract-ac-template:start -->
|
|
114
|
+
### Acceptance Criteria (promotion-to-control contract)
|
|
115
|
+
|
|
116
|
+
One atomic PR that satisfies all four legs — a PR missing any of the four is
|
|
117
|
+
rejected by rule (see the `promotion-contract` rule):
|
|
118
|
+
|
|
119
|
+
- [ ] **Enables the control** — the lint / ast-grep / type constraint / test /
|
|
120
|
+
hook / `package.lisa.json` force entry is active and blocking.
|
|
121
|
+
- [ ] **Fixes the existing violation population** — every current violation is
|
|
122
|
+
migrated in this same PR, so the control lands green with no blanket
|
|
123
|
+
ignores.
|
|
124
|
+
- [ ] **Ships a remediation-teaching diagnostic** — the failure message states
|
|
125
|
+
the violated invariant, why it holds, and the concrete fix.
|
|
126
|
+
- [ ] **Deletes the superseded prose** — the ledger entry / rules section this
|
|
127
|
+
control replaces is removed in this same PR, citing the new mechanical
|
|
128
|
+
owner.
|
|
129
|
+
<!-- promotion-contract-ac-template:end -->
|
|
130
|
+
|
|
131
|
+
Do not paraphrase, reorder, or partially quote the snippet when embedding it —
|
|
132
|
+
verbatim embedding is what keeps the contract identical across every ticket
|
|
133
|
+
and lets reviewers diff against a single source of truth.
|
|
134
|
+
|
|
135
|
+
## Who consumes this rule
|
|
136
|
+
|
|
137
|
+
- **Implementing agents** working a promotion ticket: structure the PR around
|
|
138
|
+
the four legs before writing code.
|
|
139
|
+
- **Review flows** (human, CodeRabbit, `lisa-pull-request-review`,
|
|
140
|
+
verification lifecycle): reject a promotion PR missing any leg, citing this
|
|
141
|
+
rule.
|
|
142
|
+
- **The gardener** (`lisa-learnings-audit`): embeds the AC template above into
|
|
143
|
+
EXECUTABLE-CONTROL promotion tickets and applies the eager-tier admission
|
|
144
|
+
policy when auditing.
|
|
145
|
+
- **Host-rules owners** (`.agents/rules/`, plus any surviving legacy
|
|
146
|
+
`PROJECT_RULES.md`): that surface is human-authored only; machine
|
|
147
|
+
writes go to the learnings ledger, and promotions out of it arrive as
|
|
148
|
+
gardener tickets governed by this contract.
|