@codyswann/lisa 2.195.1 → 2.195.3

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.
Files changed (87) hide show
  1. package/expo/{copy-overwrite → create-only}/tsconfig.json +4 -3
  2. package/package.json +1 -1
  3. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  4. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  5. package/plugins/lisa/commands/lisa/validate-tracker-mapping.md +2 -2
  6. package/plugins/lisa/rules/reference/config-resolution.md +1 -1
  7. package/plugins/lisa/skills/lisa-atlassian-access/SKILL.md +1 -1
  8. package/plugins/lisa/skills/lisa-notion-prd-intake/SKILL.md +1 -1
  9. package/plugins/lisa/skills/lisa-validate-tracker-mapping/SKILL.md +2 -2
  10. package/plugins/lisa-agy/commands/lisa/validate-tracker-mapping.md +2 -2
  11. package/plugins/lisa-agy/plugin.json +1 -1
  12. package/plugins/lisa-agy/skills/lisa-atlassian-access/SKILL.md +1 -1
  13. package/plugins/lisa-agy/skills/lisa-notion-prd-intake/SKILL.md +1 -1
  14. package/plugins/lisa-agy/skills/lisa-validate-tracker-mapping/SKILL.md +2 -2
  15. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  16. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  17. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  18. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  19. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  20. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  21. package/plugins/lisa-copilot/commands/lisa/validate-tracker-mapping.md +2 -2
  22. package/plugins/lisa-copilot/rules/reference/config-resolution.md +1 -1
  23. package/plugins/lisa-copilot/skills/lisa-atlassian-access/SKILL.md +1 -1
  24. package/plugins/lisa-copilot/skills/lisa-notion-prd-intake/SKILL.md +1 -1
  25. package/plugins/lisa-copilot/skills/lisa-validate-tracker-mapping/SKILL.md +2 -2
  26. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  27. package/plugins/lisa-cursor/commands/lisa/validate-tracker-mapping.md +2 -2
  28. package/plugins/lisa-cursor/rules/config-resolution-reference.mdc +1 -1
  29. package/plugins/lisa-cursor/skills/lisa-atlassian-access/SKILL.md +1 -1
  30. package/plugins/lisa-cursor/skills/lisa-notion-prd-intake/SKILL.md +1 -1
  31. package/plugins/lisa-cursor/skills/lisa-validate-tracker-mapping/SKILL.md +2 -2
  32. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  33. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  34. package/plugins/lisa-expo/skills/atomic-design-gluestack/references/folder-structure.md +1 -1
  35. package/plugins/lisa-expo-agy/plugin.json +1 -1
  36. package/plugins/lisa-expo-agy/skills/atomic-design-gluestack/references/folder-structure.md +1 -1
  37. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  38. package/plugins/lisa-expo-copilot/skills/atomic-design-gluestack/references/folder-structure.md +1 -1
  39. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-expo-cursor/skills/atomic-design-gluestack/references/folder-structure.md +1 -1
  41. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  43. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  44. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  48. package/plugins/lisa-nestjs/skills/typeorm-patterns/references/configuration-patterns.md +8 -8
  49. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  50. package/plugins/lisa-nestjs-agy/skills/typeorm-patterns/references/configuration-patterns.md +8 -8
  51. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-nestjs-copilot/skills/typeorm-patterns/references/configuration-patterns.md +8 -8
  53. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  54. package/plugins/lisa-nestjs-cursor/skills/typeorm-patterns/references/configuration-patterns.md +8 -8
  55. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  57. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  58. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  59. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  60. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  61. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  62. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  63. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  64. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  65. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  66. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  67. package/plugins/lisa-rails-agy/plugin.json +1 -1
  68. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  69. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  70. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  71. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  72. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  73. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  74. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  75. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  76. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  77. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  78. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  79. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  80. package/plugins/src/base/commands/lisa/validate-tracker-mapping.md +2 -2
  81. package/plugins/src/base/rules/reference/config-resolution.md +1 -1
  82. package/plugins/src/base/skills/lisa-atlassian-access/SKILL.md +1 -1
  83. package/plugins/src/base/skills/lisa-notion-prd-intake/SKILL.md +1 -1
  84. package/plugins/src/base/skills/lisa-validate-tracker-mapping/SKILL.md +2 -2
  85. package/plugins/src/expo/skills/atomic-design-gluestack/references/folder-structure.md +1 -1
  86. package/plugins/src/nestjs/skills/typeorm-patterns/references/configuration-patterns.md +8 -8
  87. package/typescript/copy-overwrite/.lintstagedrc.json +5 -1
@@ -1,5 +1,8 @@
1
1
  {
2
- "extends": ["@codyswann/lisa/tsconfig/expo", "./tsconfig.local.json"],
2
+ "extends": [
3
+ "@codyswann/lisa/tsconfig/expo",
4
+ "./tsconfig.local.json"
5
+ ],
3
6
  "compilerOptions": {
4
7
  "baseUrl": "./",
5
8
  "ignoreDeprecations": "6.0"
@@ -7,8 +10,6 @@
7
10
  "include": [
8
11
  "**/*.ts",
9
12
  "**/*.tsx",
10
- ".expo/types/**/*.ts",
11
- "expo-env.d.ts",
12
13
  "nativewind-env.d.ts"
13
14
  ]
14
15
  }
package/package.json CHANGED
@@ -95,7 +95,7 @@
95
95
  "ws": ">=8.20.1"
96
96
  },
97
97
  "name": "@codyswann/lisa",
98
- "version": "2.195.1",
98
+ "version": "2.195.3",
99
99
  "description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
100
100
  "main": "dist/index.js",
101
101
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Universal governance: agents, skills, commands, hooks, and rules for all projects.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -9,7 +9,7 @@ Common usage:
9
9
 
10
10
  - `/lisa:validate-tracker-mapping` — audit the current repo's mapping (read-only).
11
11
  - `/lisa:validate-tracker-mapping repair=true` — audit and repair config drift in the current repo.
12
- - `/lisa:validate-tracker-mapping projects=~/workspace/geminisportsai/projects/*` — sweep every Lisa project under a directory.
13
- - `/lisa:validate-tracker-mapping workspaces=~/workspace/lisa/.lisa.workspaces.json filter=geminisportsai` — sweep the projects in a workspaces file whose paths match a substring.
12
+ - `/lisa:validate-tracker-mapping projects=~/workspace/acme/projects/*` — sweep every Lisa project under a directory.
13
+ - `/lisa:validate-tracker-mapping workspaces=~/workspace/lisa/.lisa.workspaces.json filter=acme` — sweep the projects in a workspaces file whose paths match a substring.
14
14
 
15
15
  Use this when you suspect a JIRA/GitHub/Linear/Notion status, label, or option was renamed or deleted out from under Lisa — the failure mode that leaves builds unable to find their completion transition and items silently stuck. Run it read-only (or on a schedule) to detect drift; run it with `repair=true` to fix the config. Repair only ever edits the config to match the live names — it never renames anything in the tracker.
@@ -248,7 +248,7 @@ Each vendor section is **conditionally required**: required only when that vendo
248
248
  | Field | Required when | Where it lives | Notes |
249
249
  |-------|---------------|----------------|-------|
250
250
  | `atlassian.cloudId` | `tracker = "jira"`, `source = "jira"`, `source = "confluence"`, or any `confluence-*` / `jira-*` skill is invoked | **committed** (`.lisa.config.json`) | Atlassian Cloud site UUID. Same for every developer on the project. Resolve once via `curl https://<site>/_edge/tenant_info` or `getAccessibleAtlassianResources`. Shared between JIRA and Confluence (same Atlassian site). |
251
- | `atlassian.site` | same as above | **committed** | Human-readable site URL (e.g. `propswap.atlassian.net`). Same for every developer. |
251
+ | `atlassian.site` | same as above | **committed** | Human-readable site URL (e.g. `acme.atlassian.net`). Same for every developer. |
252
252
  | `atlassian.email` | when the developer's machine has multiple Atlassian accounts that can access the configured site | **local** (`.lisa.config.local.json`) | Per-developer. `--site` alone cannot disambiguate which acli profile to switch to when two accounts both have access to the same site (e.g., a personal account and a work account both invited to a customer's site). The setup skill writes this to the local override file, NEVER the committed file. |
253
253
 
254
254
  #### `jira`
@@ -282,7 +282,7 @@ Substrate column meanings:
282
282
  - Multiple cells filled means tier ordering applies — try acli, then MCP, then curl, taking the first that has an adapter for the op AND is identity-matched.
283
283
  - One cell means only that substrate can perform the op.
284
284
 
285
- `<SITE>` = `.atlassian.site` (e.g. `propswap.atlassian.net`). `<CLOUDID>` = `.atlassian.cloudId`. `<AUTH>` = `Basic $(printf '%s:%s' "$email" "$ATLASSIAN_API_TOKEN" | base64)`. JIRA curl writes use the cloudId-bound Atlassian gateway `https://api.atlassian.com/ex/jira/<CLOUDID>/rest/api/3/...`; JIRA curl reads may use either that gateway or `https://<SITE>/rest/api/3/...` after the token account check. Confluence uses `/wiki/rest/api/...` (v1) or `/api/v2/...` (v2).
285
+ `<SITE>` = `.atlassian.site` (e.g. `acme.atlassian.net`). `<CLOUDID>` = `.atlassian.cloudId`. `<AUTH>` = `Basic $(printf '%s:%s' "$email" "$ATLASSIAN_API_TOKEN" | base64)`. JIRA curl writes use the cloudId-bound Atlassian gateway `https://api.atlassian.com/ex/jira/<CLOUDID>/rest/api/3/...`; JIRA curl reads may use either that gateway or `https://<SITE>/rest/api/3/...` after the token account check. Confluence uses `/wiki/rest/api/...` (v1) or `/api/v2/...` (v2).
286
286
 
287
287
  | Operation | acli adapter | MCP adapter | curl adapter |
288
288
  |---|---|---|---|
@@ -11,7 +11,7 @@ allowed-tools: ["Skill", "Bash", "Read", "Write", "Edit", "AskUserQuestion"]
11
11
  `$ARGUMENTS` is a Notion database URL (or bare database ID) — for example:
12
12
 
13
13
  ```text
14
- https://www.notion.so/geminisports/28fd00244d7d47c5866876f7de48c0fe?v=34eba63a2800815891a3000c643f0ea8
14
+ https://www.notion.so/acme/<database-id>?v=<view-id>
15
15
  ```
16
16
 
17
17
  Run one intake cycle against that database. The first eligible PRD in the configured `ready` status is claimed, validated, routed to either `blocked` (with clarifying comments) or `ticketed` (with destination tickets created), then the cycle exits. Remaining ready PRDs stay queued for later scheduler invocations.
@@ -23,8 +23,8 @@ It is the audit/repair counterpart to `/lisa:setup:jira` (and the other `setup:*
23
23
  ## Arguments
24
24
 
25
25
  - (none) — audit the **current repo** (`./.lisa.config.json`).
26
- - `projects=<glob-or-path>` — batch sweep. Expands to every directory under the glob that contains a `.lisa.config.json`. Example: `projects=~/workspace/geminisportsai/projects/*`.
27
- - `workspaces=<file>` — batch sweep driven by a Lisa workspaces file (the `{ "<project-path>": "<branch>" }` map used by `/lisa:update-projects`). Each key is a project path to audit. Combine with `filter=<substring>` to restrict to matching paths (e.g. `filter=geminisportsai`).
26
+ - `projects=<glob-or-path>` — batch sweep. Expands to every directory under the glob that contains a `.lisa.config.json`. Example: `projects=~/workspace/acme/projects/*`.
27
+ - `workspaces=<file>` — batch sweep driven by a Lisa workspaces file (the `{ "<project-path>": "<branch>" }` map used by `/lisa:update-projects`). Each key is a project path to audit. Combine with `filter=<substring>` to restrict to matching paths (e.g. `filter=acme`).
28
28
  - `repair=true` — enable config repair (see confirmation policy). Default `false`.
29
29
  - `lane=build|prd|both` — which mapping family to check. Default `both`. `build` = the destination `tracker` workflow; `prd` = the PRD `source` status/label mapping.
30
30
 
@@ -9,7 +9,7 @@ Common usage:
9
9
 
10
10
  - `/lisa:validate-tracker-mapping` — audit the current repo's mapping (read-only).
11
11
  - `/lisa:validate-tracker-mapping repair=true` — audit and repair config drift in the current repo.
12
- - `/lisa:validate-tracker-mapping projects=~/workspace/geminisportsai/projects/*` — sweep every Lisa project under a directory.
13
- - `/lisa:validate-tracker-mapping workspaces=~/workspace/lisa/.lisa.workspaces.json filter=geminisportsai` — sweep the projects in a workspaces file whose paths match a substring.
12
+ - `/lisa:validate-tracker-mapping projects=~/workspace/acme/projects/*` — sweep every Lisa project under a directory.
13
+ - `/lisa:validate-tracker-mapping workspaces=~/workspace/lisa/.lisa.workspaces.json filter=acme` — sweep the projects in a workspaces file whose paths match a substring.
14
14
 
15
15
  Use this when you suspect a JIRA/GitHub/Linear/Notion status, label, or option was renamed or deleted out from under Lisa — the failure mode that leaves builds unable to find their completion transition and items silently stuck. Run it read-only (or on a schedule) to detect drift; run it with `repair=true` to fix the config. Repair only ever edits the config to match the live names — it never renames anything in the tracker.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -282,7 +282,7 @@ Substrate column meanings:
282
282
  - Multiple cells filled means tier ordering applies — try acli, then MCP, then curl, taking the first that has an adapter for the op AND is identity-matched.
283
283
  - One cell means only that substrate can perform the op.
284
284
 
285
- `<SITE>` = `.atlassian.site` (e.g. `propswap.atlassian.net`). `<CLOUDID>` = `.atlassian.cloudId`. `<AUTH>` = `Basic $(printf '%s:%s' "$email" "$ATLASSIAN_API_TOKEN" | base64)`. JIRA curl writes use the cloudId-bound Atlassian gateway `https://api.atlassian.com/ex/jira/<CLOUDID>/rest/api/3/...`; JIRA curl reads may use either that gateway or `https://<SITE>/rest/api/3/...` after the token account check. Confluence uses `/wiki/rest/api/...` (v1) or `/api/v2/...` (v2).
285
+ `<SITE>` = `.atlassian.site` (e.g. `acme.atlassian.net`). `<CLOUDID>` = `.atlassian.cloudId`. `<AUTH>` = `Basic $(printf '%s:%s' "$email" "$ATLASSIAN_API_TOKEN" | base64)`. JIRA curl writes use the cloudId-bound Atlassian gateway `https://api.atlassian.com/ex/jira/<CLOUDID>/rest/api/3/...`; JIRA curl reads may use either that gateway or `https://<SITE>/rest/api/3/...` after the token account check. Confluence uses `/wiki/rest/api/...` (v1) or `/api/v2/...` (v2).
286
286
 
287
287
  | Operation | acli adapter | MCP adapter | curl adapter |
288
288
  |---|---|---|---|
@@ -11,7 +11,7 @@ allowed-tools: ["Skill", "Bash", "Read", "Write", "Edit", "AskUserQuestion"]
11
11
  `$ARGUMENTS` is a Notion database URL (or bare database ID) — for example:
12
12
 
13
13
  ```text
14
- https://www.notion.so/geminisports/28fd00244d7d47c5866876f7de48c0fe?v=34eba63a2800815891a3000c643f0ea8
14
+ https://www.notion.so/acme/<database-id>?v=<view-id>
15
15
  ```
16
16
 
17
17
  Run one intake cycle against that database. The first eligible PRD in the configured `ready` status is claimed, validated, routed to either `blocked` (with clarifying comments) or `ticketed` (with destination tickets created), then the cycle exits. Remaining ready PRDs stay queued for later scheduler invocations.
@@ -23,8 +23,8 @@ It is the audit/repair counterpart to `/lisa:setup:jira` (and the other `setup:*
23
23
  ## Arguments
24
24
 
25
25
  - (none) — audit the **current repo** (`./.lisa.config.json`).
26
- - `projects=<glob-or-path>` — batch sweep. Expands to every directory under the glob that contains a `.lisa.config.json`. Example: `projects=~/workspace/geminisportsai/projects/*`.
27
- - `workspaces=<file>` — batch sweep driven by a Lisa workspaces file (the `{ "<project-path>": "<branch>" }` map used by `/lisa:update-projects`). Each key is a project path to audit. Combine with `filter=<substring>` to restrict to matching paths (e.g. `filter=geminisportsai`).
26
+ - `projects=<glob-or-path>` — batch sweep. Expands to every directory under the glob that contains a `.lisa.config.json`. Example: `projects=~/workspace/acme/projects/*`.
27
+ - `workspaces=<file>` — batch sweep driven by a Lisa workspaces file (the `{ "<project-path>": "<branch>" }` map used by `/lisa:update-projects`). Each key is a project path to audit. Combine with `filter=<substring>` to restrict to matching paths (e.g. `filter=acme`).
28
28
  - `repair=true` — enable config repair (see confirmation policy). Default `false`.
29
29
  - `lane=build|prd|both` — which mapping family to check. Default `both`. `build` = the destination `tracker` workflow; `prd` = the PRD `source` status/label mapping.
30
30
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "AWS CDK-specific plugin",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "AWS CDK-specific Lisa plugin.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "AWS CDK-specific plugin",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "AWS CDK-specific plugin",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "AWS CDK-specific plugin",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -9,7 +9,7 @@ Common usage:
9
9
 
10
10
  - `/lisa:validate-tracker-mapping` — audit the current repo's mapping (read-only).
11
11
  - `/lisa:validate-tracker-mapping repair=true` — audit and repair config drift in the current repo.
12
- - `/lisa:validate-tracker-mapping projects=~/workspace/geminisportsai/projects/*` — sweep every Lisa project under a directory.
13
- - `/lisa:validate-tracker-mapping workspaces=~/workspace/lisa/.lisa.workspaces.json filter=geminisportsai` — sweep the projects in a workspaces file whose paths match a substring.
12
+ - `/lisa:validate-tracker-mapping projects=~/workspace/acme/projects/*` — sweep every Lisa project under a directory.
13
+ - `/lisa:validate-tracker-mapping workspaces=~/workspace/lisa/.lisa.workspaces.json filter=acme` — sweep the projects in a workspaces file whose paths match a substring.
14
14
 
15
15
  Use this when you suspect a JIRA/GitHub/Linear/Notion status, label, or option was renamed or deleted out from under Lisa — the failure mode that leaves builds unable to find their completion transition and items silently stuck. Run it read-only (or on a schedule) to detect drift; run it with `repair=true` to fix the config. Repair only ever edits the config to match the live names — it never renames anything in the tracker.
@@ -248,7 +248,7 @@ Each vendor section is **conditionally required**: required only when that vendo
248
248
  | Field | Required when | Where it lives | Notes |
249
249
  |-------|---------------|----------------|-------|
250
250
  | `atlassian.cloudId` | `tracker = "jira"`, `source = "jira"`, `source = "confluence"`, or any `confluence-*` / `jira-*` skill is invoked | **committed** (`.lisa.config.json`) | Atlassian Cloud site UUID. Same for every developer on the project. Resolve once via `curl https://<site>/_edge/tenant_info` or `getAccessibleAtlassianResources`. Shared between JIRA and Confluence (same Atlassian site). |
251
- | `atlassian.site` | same as above | **committed** | Human-readable site URL (e.g. `propswap.atlassian.net`). Same for every developer. |
251
+ | `atlassian.site` | same as above | **committed** | Human-readable site URL (e.g. `acme.atlassian.net`). Same for every developer. |
252
252
  | `atlassian.email` | when the developer's machine has multiple Atlassian accounts that can access the configured site | **local** (`.lisa.config.local.json`) | Per-developer. `--site` alone cannot disambiguate which acli profile to switch to when two accounts both have access to the same site (e.g., a personal account and a work account both invited to a customer's site). The setup skill writes this to the local override file, NEVER the committed file. |
253
253
 
254
254
  #### `jira`
@@ -282,7 +282,7 @@ Substrate column meanings:
282
282
  - Multiple cells filled means tier ordering applies — try acli, then MCP, then curl, taking the first that has an adapter for the op AND is identity-matched.
283
283
  - One cell means only that substrate can perform the op.
284
284
 
285
- `<SITE>` = `.atlassian.site` (e.g. `propswap.atlassian.net`). `<CLOUDID>` = `.atlassian.cloudId`. `<AUTH>` = `Basic $(printf '%s:%s' "$email" "$ATLASSIAN_API_TOKEN" | base64)`. JIRA curl writes use the cloudId-bound Atlassian gateway `https://api.atlassian.com/ex/jira/<CLOUDID>/rest/api/3/...`; JIRA curl reads may use either that gateway or `https://<SITE>/rest/api/3/...` after the token account check. Confluence uses `/wiki/rest/api/...` (v1) or `/api/v2/...` (v2).
285
+ `<SITE>` = `.atlassian.site` (e.g. `acme.atlassian.net`). `<CLOUDID>` = `.atlassian.cloudId`. `<AUTH>` = `Basic $(printf '%s:%s' "$email" "$ATLASSIAN_API_TOKEN" | base64)`. JIRA curl writes use the cloudId-bound Atlassian gateway `https://api.atlassian.com/ex/jira/<CLOUDID>/rest/api/3/...`; JIRA curl reads may use either that gateway or `https://<SITE>/rest/api/3/...` after the token account check. Confluence uses `/wiki/rest/api/...` (v1) or `/api/v2/...` (v2).
286
286
 
287
287
  | Operation | acli adapter | MCP adapter | curl adapter |
288
288
  |---|---|---|---|
@@ -11,7 +11,7 @@ allowed-tools: ["Skill", "Bash", "Read", "Write", "Edit", "AskUserQuestion"]
11
11
  `$ARGUMENTS` is a Notion database URL (or bare database ID) — for example:
12
12
 
13
13
  ```text
14
- https://www.notion.so/geminisports/28fd00244d7d47c5866876f7de48c0fe?v=34eba63a2800815891a3000c643f0ea8
14
+ https://www.notion.so/acme/<database-id>?v=<view-id>
15
15
  ```
16
16
 
17
17
  Run one intake cycle against that database. The first eligible PRD in the configured `ready` status is claimed, validated, routed to either `blocked` (with clarifying comments) or `ticketed` (with destination tickets created), then the cycle exits. Remaining ready PRDs stay queued for later scheduler invocations.
@@ -23,8 +23,8 @@ It is the audit/repair counterpart to `/lisa:setup:jira` (and the other `setup:*
23
23
  ## Arguments
24
24
 
25
25
  - (none) — audit the **current repo** (`./.lisa.config.json`).
26
- - `projects=<glob-or-path>` — batch sweep. Expands to every directory under the glob that contains a `.lisa.config.json`. Example: `projects=~/workspace/geminisportsai/projects/*`.
27
- - `workspaces=<file>` — batch sweep driven by a Lisa workspaces file (the `{ "<project-path>": "<branch>" }` map used by `/lisa:update-projects`). Each key is a project path to audit. Combine with `filter=<substring>` to restrict to matching paths (e.g. `filter=geminisportsai`).
26
+ - `projects=<glob-or-path>` — batch sweep. Expands to every directory under the glob that contains a `.lisa.config.json`. Example: `projects=~/workspace/acme/projects/*`.
27
+ - `workspaces=<file>` — batch sweep driven by a Lisa workspaces file (the `{ "<project-path>": "<branch>" }` map used by `/lisa:update-projects`). Each key is a project path to audit. Combine with `filter=<substring>` to restrict to matching paths (e.g. `filter=acme`).
28
28
  - `repair=true` — enable config repair (see confirmation policy). Default `false`.
29
29
  - `lane=build|prd|both` — which mapping family to check. Default `both`. `build` = the destination `tracker` workflow; `prd` = the PRD `source` status/label mapping.
30
30
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -9,7 +9,7 @@ Common usage:
9
9
 
10
10
  - `/lisa:validate-tracker-mapping` — audit the current repo's mapping (read-only).
11
11
  - `/lisa:validate-tracker-mapping repair=true` — audit and repair config drift in the current repo.
12
- - `/lisa:validate-tracker-mapping projects=~/workspace/geminisportsai/projects/*` — sweep every Lisa project under a directory.
13
- - `/lisa:validate-tracker-mapping workspaces=~/workspace/lisa/.lisa.workspaces.json filter=geminisportsai` — sweep the projects in a workspaces file whose paths match a substring.
12
+ - `/lisa:validate-tracker-mapping projects=~/workspace/acme/projects/*` — sweep every Lisa project under a directory.
13
+ - `/lisa:validate-tracker-mapping workspaces=~/workspace/lisa/.lisa.workspaces.json filter=acme` — sweep the projects in a workspaces file whose paths match a substring.
14
14
 
15
15
  Use this when you suspect a JIRA/GitHub/Linear/Notion status, label, or option was renamed or deleted out from under Lisa — the failure mode that leaves builds unable to find their completion transition and items silently stuck. Run it read-only (or on a schedule) to detect drift; run it with `repair=true` to fix the config. Repair only ever edits the config to match the live names — it never renames anything in the tracker.
@@ -253,7 +253,7 @@ Each vendor section is **conditionally required**: required only when that vendo
253
253
  | Field | Required when | Where it lives | Notes |
254
254
  |-------|---------------|----------------|-------|
255
255
  | `atlassian.cloudId` | `tracker = "jira"`, `source = "jira"`, `source = "confluence"`, or any `confluence-*` / `jira-*` skill is invoked | **committed** (`.lisa.config.json`) | Atlassian Cloud site UUID. Same for every developer on the project. Resolve once via `curl https://<site>/_edge/tenant_info` or `getAccessibleAtlassianResources`. Shared between JIRA and Confluence (same Atlassian site). |
256
- | `atlassian.site` | same as above | **committed** | Human-readable site URL (e.g. `propswap.atlassian.net`). Same for every developer. |
256
+ | `atlassian.site` | same as above | **committed** | Human-readable site URL (e.g. `acme.atlassian.net`). Same for every developer. |
257
257
  | `atlassian.email` | when the developer's machine has multiple Atlassian accounts that can access the configured site | **local** (`.lisa.config.local.json`) | Per-developer. `--site` alone cannot disambiguate which acli profile to switch to when two accounts both have access to the same site (e.g., a personal account and a work account both invited to a customer's site). The setup skill writes this to the local override file, NEVER the committed file. |
258
258
 
259
259
  #### `jira`
@@ -282,7 +282,7 @@ Substrate column meanings:
282
282
  - Multiple cells filled means tier ordering applies — try acli, then MCP, then curl, taking the first that has an adapter for the op AND is identity-matched.
283
283
  - One cell means only that substrate can perform the op.
284
284
 
285
- `<SITE>` = `.atlassian.site` (e.g. `propswap.atlassian.net`). `<CLOUDID>` = `.atlassian.cloudId`. `<AUTH>` = `Basic $(printf '%s:%s' "$email" "$ATLASSIAN_API_TOKEN" | base64)`. JIRA curl writes use the cloudId-bound Atlassian gateway `https://api.atlassian.com/ex/jira/<CLOUDID>/rest/api/3/...`; JIRA curl reads may use either that gateway or `https://<SITE>/rest/api/3/...` after the token account check. Confluence uses `/wiki/rest/api/...` (v1) or `/api/v2/...` (v2).
285
+ `<SITE>` = `.atlassian.site` (e.g. `acme.atlassian.net`). `<CLOUDID>` = `.atlassian.cloudId`. `<AUTH>` = `Basic $(printf '%s:%s' "$email" "$ATLASSIAN_API_TOKEN" | base64)`. JIRA curl writes use the cloudId-bound Atlassian gateway `https://api.atlassian.com/ex/jira/<CLOUDID>/rest/api/3/...`; JIRA curl reads may use either that gateway or `https://<SITE>/rest/api/3/...` after the token account check. Confluence uses `/wiki/rest/api/...` (v1) or `/api/v2/...` (v2).
286
286
 
287
287
  | Operation | acli adapter | MCP adapter | curl adapter |
288
288
  |---|---|---|---|
@@ -11,7 +11,7 @@ allowed-tools: ["Skill", "Bash", "Read", "Write", "Edit", "AskUserQuestion"]
11
11
  `$ARGUMENTS` is a Notion database URL (or bare database ID) — for example:
12
12
 
13
13
  ```text
14
- https://www.notion.so/geminisports/28fd00244d7d47c5866876f7de48c0fe?v=34eba63a2800815891a3000c643f0ea8
14
+ https://www.notion.so/acme/<database-id>?v=<view-id>
15
15
  ```
16
16
 
17
17
  Run one intake cycle against that database. The first eligible PRD in the configured `ready` status is claimed, validated, routed to either `blocked` (with clarifying comments) or `ticketed` (with destination tickets created), then the cycle exits. Remaining ready PRDs stay queued for later scheduler invocations.
@@ -23,8 +23,8 @@ It is the audit/repair counterpart to `/lisa:setup:jira` (and the other `setup:*
23
23
  ## Arguments
24
24
 
25
25
  - (none) — audit the **current repo** (`./.lisa.config.json`).
26
- - `projects=<glob-or-path>` — batch sweep. Expands to every directory under the glob that contains a `.lisa.config.json`. Example: `projects=~/workspace/geminisportsai/projects/*`.
27
- - `workspaces=<file>` — batch sweep driven by a Lisa workspaces file (the `{ "<project-path>": "<branch>" }` map used by `/lisa:update-projects`). Each key is a project path to audit. Combine with `filter=<substring>` to restrict to matching paths (e.g. `filter=geminisportsai`).
26
+ - `projects=<glob-or-path>` — batch sweep. Expands to every directory under the glob that contains a `.lisa.config.json`. Example: `projects=~/workspace/acme/projects/*`.
27
+ - `workspaces=<file>` — batch sweep driven by a Lisa workspaces file (the `{ "<project-path>": "<branch>" }` map used by `/lisa:update-projects`). Each key is a project path to audit. Combine with `filter=<substring>` to restrict to matching paths (e.g. `filter=acme`).
28
28
  - `repair=true` — enable config repair (see confirmation policy). Default `false`.
29
29
  - `lane=build|prd|both` — which mapping family to check. Default `both`. `build` = the destination `tracker` workflow; `prd` = the PRD `source` status/label mapping.
30
30
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Expo/React Native-specific skills, agents, rules, and MCP servers",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Expo and React Native-specific skills, agents, rules, and MCP servers.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -3,7 +3,7 @@
3
3
  ## Complete Directory Structure
4
4
 
5
5
  ```
6
- thumbwar-frontend/
6
+ acme-frontend/
7
7
  ├── app/ # Expo Router - PAGES live here
8
8
  │ ├── (auth)/ # Auth route group
9
9
  │ │ ├── login.tsx # Login page
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Expo/React Native-specific skills, agents, rules, and MCP servers",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -3,7 +3,7 @@
3
3
  ## Complete Directory Structure
4
4
 
5
5
  ```
6
- thumbwar-frontend/
6
+ acme-frontend/
7
7
  ├── app/ # Expo Router - PAGES live here
8
8
  │ ├── (auth)/ # Auth route group
9
9
  │ │ ├── login.tsx # Login page
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Expo/React Native-specific skills, agents, rules, and MCP servers",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -3,7 +3,7 @@
3
3
  ## Complete Directory Structure
4
4
 
5
5
  ```
6
- thumbwar-frontend/
6
+ acme-frontend/
7
7
  ├── app/ # Expo Router - PAGES live here
8
8
  │ ├── (auth)/ # Auth route group
9
9
  │ │ ├── login.tsx # Login page
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Expo/React Native-specific skills, agents, rules, and MCP servers",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -3,7 +3,7 @@
3
3
  ## Complete Directory Structure
4
4
 
5
5
  ```
6
- thumbwar-frontend/
6
+ acme-frontend/
7
7
  ├── app/ # Expo Router - PAGES live here
8
8
  │ ├── (auth)/ # Auth route group
9
9
  │ │ ├── login.tsx # Login page
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Harper/Fabric-specific rules for TypeScript component apps",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Harper/Fabric-specific Lisa rules for TypeScript component apps.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Harper/Fabric-specific rules for TypeScript component apps",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Harper/Fabric-specific rules for TypeScript component apps",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Harper/Fabric-specific rules for TypeScript component apps",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "NestJS-specific skills (GraphQL, TypeORM) and hooks (migration write-protection)",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "NestJS-specific skills and migration write-protection hooks.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -259,9 +259,9 @@ export const configuration = (): Configuration => ({
259
259
  database: {
260
260
  host: process.env.DATABASE_HOST ?? "localhost",
261
261
  port: parseInt(process.env.DATABASE_PORT ?? "5432", 10),
262
- username: process.env.DATABASE_USER ?? "thumbwar",
263
- password: process.env.DATABASE_PASSWORD ?? "thumbwar_local",
264
- name: process.env.DATABASE_NAME ?? "thumbwar",
262
+ username: process.env.DATABASE_USER ?? "acme",
263
+ password: process.env.DATABASE_PASSWORD ?? "acme_local",
264
+ name: process.env.DATABASE_NAME ?? "acme",
265
265
  ssl: process.env.DATABASE_SSL === "true",
266
266
  sslRejectUnauthorized: process.env.DATABASE_SSL_REJECT_UNAUTHORIZED !== "false",
267
267
  proxyHost: process.env.DATABASE_PROXY_HOST,
@@ -400,9 +400,9 @@ export default new DataSource({
400
400
  # Database Configuration
401
401
  DATABASE_HOST=localhost
402
402
  DATABASE_PORT=5432
403
- DATABASE_USER=thumbwar
404
- DATABASE_PASSWORD=thumbwar_local
405
- DATABASE_NAME=thumbwar
403
+ DATABASE_USER=acme
404
+ DATABASE_PASSWORD=acme_local
405
+ DATABASE_NAME=acme
406
406
  DATABASE_SSL=false
407
407
  DATABASE_SSL_REJECT_UNAUTHORIZED=true
408
408
 
@@ -410,8 +410,8 @@ DATABASE_SSL_REJECT_UNAUTHORIZED=true
410
410
  IS_OFFLINE=true
411
411
 
412
412
  # Production Only - RDS Proxy endpoints
413
- # DATABASE_PROXY_HOST=thumbwar-proxy.proxy-xxxxx.us-east-1.rds.amazonaws.com
414
- # DATABASE_PROXY_HOST_READ_1=thumbwar-proxy-read.proxy-xxxxx.us-east-1.rds.amazonaws.com
413
+ # DATABASE_PROXY_HOST=acme-proxy.proxy-xxxxx.us-east-1.rds.amazonaws.com
414
+ # DATABASE_PROXY_HOST_READ_1=acme-proxy-read.proxy-xxxxx.us-east-1.rds.amazonaws.com
415
415
 
416
416
  # AWS Configuration (production)
417
417
  # AWS_REGION=us-east-1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "NestJS-specific skills (GraphQL, TypeORM) and hooks (migration write-protection)",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -259,9 +259,9 @@ export const configuration = (): Configuration => ({
259
259
  database: {
260
260
  host: process.env.DATABASE_HOST ?? "localhost",
261
261
  port: parseInt(process.env.DATABASE_PORT ?? "5432", 10),
262
- username: process.env.DATABASE_USER ?? "thumbwar",
263
- password: process.env.DATABASE_PASSWORD ?? "thumbwar_local",
264
- name: process.env.DATABASE_NAME ?? "thumbwar",
262
+ username: process.env.DATABASE_USER ?? "acme",
263
+ password: process.env.DATABASE_PASSWORD ?? "acme_local",
264
+ name: process.env.DATABASE_NAME ?? "acme",
265
265
  ssl: process.env.DATABASE_SSL === "true",
266
266
  sslRejectUnauthorized: process.env.DATABASE_SSL_REJECT_UNAUTHORIZED !== "false",
267
267
  proxyHost: process.env.DATABASE_PROXY_HOST,
@@ -400,9 +400,9 @@ export default new DataSource({
400
400
  # Database Configuration
401
401
  DATABASE_HOST=localhost
402
402
  DATABASE_PORT=5432
403
- DATABASE_USER=thumbwar
404
- DATABASE_PASSWORD=thumbwar_local
405
- DATABASE_NAME=thumbwar
403
+ DATABASE_USER=acme
404
+ DATABASE_PASSWORD=acme_local
405
+ DATABASE_NAME=acme
406
406
  DATABASE_SSL=false
407
407
  DATABASE_SSL_REJECT_UNAUTHORIZED=true
408
408
 
@@ -410,8 +410,8 @@ DATABASE_SSL_REJECT_UNAUTHORIZED=true
410
410
  IS_OFFLINE=true
411
411
 
412
412
  # Production Only - RDS Proxy endpoints
413
- # DATABASE_PROXY_HOST=thumbwar-proxy.proxy-xxxxx.us-east-1.rds.amazonaws.com
414
- # DATABASE_PROXY_HOST_READ_1=thumbwar-proxy-read.proxy-xxxxx.us-east-1.rds.amazonaws.com
413
+ # DATABASE_PROXY_HOST=acme-proxy.proxy-xxxxx.us-east-1.rds.amazonaws.com
414
+ # DATABASE_PROXY_HOST_READ_1=acme-proxy-read.proxy-xxxxx.us-east-1.rds.amazonaws.com
415
415
 
416
416
  # AWS Configuration (production)
417
417
  # AWS_REGION=us-east-1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "NestJS-specific skills (GraphQL, TypeORM) and hooks (migration write-protection)",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -259,9 +259,9 @@ export const configuration = (): Configuration => ({
259
259
  database: {
260
260
  host: process.env.DATABASE_HOST ?? "localhost",
261
261
  port: parseInt(process.env.DATABASE_PORT ?? "5432", 10),
262
- username: process.env.DATABASE_USER ?? "thumbwar",
263
- password: process.env.DATABASE_PASSWORD ?? "thumbwar_local",
264
- name: process.env.DATABASE_NAME ?? "thumbwar",
262
+ username: process.env.DATABASE_USER ?? "acme",
263
+ password: process.env.DATABASE_PASSWORD ?? "acme_local",
264
+ name: process.env.DATABASE_NAME ?? "acme",
265
265
  ssl: process.env.DATABASE_SSL === "true",
266
266
  sslRejectUnauthorized: process.env.DATABASE_SSL_REJECT_UNAUTHORIZED !== "false",
267
267
  proxyHost: process.env.DATABASE_PROXY_HOST,
@@ -400,9 +400,9 @@ export default new DataSource({
400
400
  # Database Configuration
401
401
  DATABASE_HOST=localhost
402
402
  DATABASE_PORT=5432
403
- DATABASE_USER=thumbwar
404
- DATABASE_PASSWORD=thumbwar_local
405
- DATABASE_NAME=thumbwar
403
+ DATABASE_USER=acme
404
+ DATABASE_PASSWORD=acme_local
405
+ DATABASE_NAME=acme
406
406
  DATABASE_SSL=false
407
407
  DATABASE_SSL_REJECT_UNAUTHORIZED=true
408
408
 
@@ -410,8 +410,8 @@ DATABASE_SSL_REJECT_UNAUTHORIZED=true
410
410
  IS_OFFLINE=true
411
411
 
412
412
  # Production Only - RDS Proxy endpoints
413
- # DATABASE_PROXY_HOST=thumbwar-proxy.proxy-xxxxx.us-east-1.rds.amazonaws.com
414
- # DATABASE_PROXY_HOST_READ_1=thumbwar-proxy-read.proxy-xxxxx.us-east-1.rds.amazonaws.com
413
+ # DATABASE_PROXY_HOST=acme-proxy.proxy-xxxxx.us-east-1.rds.amazonaws.com
414
+ # DATABASE_PROXY_HOST_READ_1=acme-proxy-read.proxy-xxxxx.us-east-1.rds.amazonaws.com
415
415
 
416
416
  # AWS Configuration (production)
417
417
  # AWS_REGION=us-east-1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "NestJS-specific skills (GraphQL, TypeORM) and hooks (migration write-protection)",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -259,9 +259,9 @@ export const configuration = (): Configuration => ({
259
259
  database: {
260
260
  host: process.env.DATABASE_HOST ?? "localhost",
261
261
  port: parseInt(process.env.DATABASE_PORT ?? "5432", 10),
262
- username: process.env.DATABASE_USER ?? "thumbwar",
263
- password: process.env.DATABASE_PASSWORD ?? "thumbwar_local",
264
- name: process.env.DATABASE_NAME ?? "thumbwar",
262
+ username: process.env.DATABASE_USER ?? "acme",
263
+ password: process.env.DATABASE_PASSWORD ?? "acme_local",
264
+ name: process.env.DATABASE_NAME ?? "acme",
265
265
  ssl: process.env.DATABASE_SSL === "true",
266
266
  sslRejectUnauthorized: process.env.DATABASE_SSL_REJECT_UNAUTHORIZED !== "false",
267
267
  proxyHost: process.env.DATABASE_PROXY_HOST,
@@ -400,9 +400,9 @@ export default new DataSource({
400
400
  # Database Configuration
401
401
  DATABASE_HOST=localhost
402
402
  DATABASE_PORT=5432
403
- DATABASE_USER=thumbwar
404
- DATABASE_PASSWORD=thumbwar_local
405
- DATABASE_NAME=thumbwar
403
+ DATABASE_USER=acme
404
+ DATABASE_PASSWORD=acme_local
405
+ DATABASE_NAME=acme
406
406
  DATABASE_SSL=false
407
407
  DATABASE_SSL_REJECT_UNAUTHORIZED=true
408
408
 
@@ -410,8 +410,8 @@ DATABASE_SSL_REJECT_UNAUTHORIZED=true
410
410
  IS_OFFLINE=true
411
411
 
412
412
  # Production Only - RDS Proxy endpoints
413
- # DATABASE_PROXY_HOST=thumbwar-proxy.proxy-xxxxx.us-east-1.rds.amazonaws.com
414
- # DATABASE_PROXY_HOST_READ_1=thumbwar-proxy-read.proxy-xxxxx.us-east-1.rds.amazonaws.com
413
+ # DATABASE_PROXY_HOST=acme-proxy.proxy-xxxxx.us-east-1.rds.amazonaws.com
414
+ # DATABASE_PROXY_HOST_READ_1=acme-proxy-read.proxy-xxxxx.us-east-1.rds.amazonaws.com
415
415
 
416
416
  # AWS Configuration (production)
417
417
  # AWS_REGION=us-east-1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-openclaw",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-openclaw",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, across Claude and Codex.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-openclaw",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-openclaw",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-openclaw",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Ruby on Rails-specific skills and hooks for RuboCop and ast-grep scanning on edit.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "TypeScript-specific hooks for formatting, linting, and ast-grep scanning on edit.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "Distributable LLM Wiki kernel — ingest, query, lint, and maintain a git-native markdown knowledge base across Claude and Codex.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.195.1",
3
+ "version": "2.195.3",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -9,7 +9,7 @@ Common usage:
9
9
 
10
10
  - `/lisa:validate-tracker-mapping` — audit the current repo's mapping (read-only).
11
11
  - `/lisa:validate-tracker-mapping repair=true` — audit and repair config drift in the current repo.
12
- - `/lisa:validate-tracker-mapping projects=~/workspace/geminisportsai/projects/*` — sweep every Lisa project under a directory.
13
- - `/lisa:validate-tracker-mapping workspaces=~/workspace/lisa/.lisa.workspaces.json filter=geminisportsai` — sweep the projects in a workspaces file whose paths match a substring.
12
+ - `/lisa:validate-tracker-mapping projects=~/workspace/acme/projects/*` — sweep every Lisa project under a directory.
13
+ - `/lisa:validate-tracker-mapping workspaces=~/workspace/lisa/.lisa.workspaces.json filter=acme` — sweep the projects in a workspaces file whose paths match a substring.
14
14
 
15
15
  Use this when you suspect a JIRA/GitHub/Linear/Notion status, label, or option was renamed or deleted out from under Lisa — the failure mode that leaves builds unable to find their completion transition and items silently stuck. Run it read-only (or on a schedule) to detect drift; run it with `repair=true` to fix the config. Repair only ever edits the config to match the live names — it never renames anything in the tracker.
@@ -248,7 +248,7 @@ Each vendor section is **conditionally required**: required only when that vendo
248
248
  | Field | Required when | Where it lives | Notes |
249
249
  |-------|---------------|----------------|-------|
250
250
  | `atlassian.cloudId` | `tracker = "jira"`, `source = "jira"`, `source = "confluence"`, or any `confluence-*` / `jira-*` skill is invoked | **committed** (`.lisa.config.json`) | Atlassian Cloud site UUID. Same for every developer on the project. Resolve once via `curl https://<site>/_edge/tenant_info` or `getAccessibleAtlassianResources`. Shared between JIRA and Confluence (same Atlassian site). |
251
- | `atlassian.site` | same as above | **committed** | Human-readable site URL (e.g. `propswap.atlassian.net`). Same for every developer. |
251
+ | `atlassian.site` | same as above | **committed** | Human-readable site URL (e.g. `acme.atlassian.net`). Same for every developer. |
252
252
  | `atlassian.email` | when the developer's machine has multiple Atlassian accounts that can access the configured site | **local** (`.lisa.config.local.json`) | Per-developer. `--site` alone cannot disambiguate which acli profile to switch to when two accounts both have access to the same site (e.g., a personal account and a work account both invited to a customer's site). The setup skill writes this to the local override file, NEVER the committed file. |
253
253
 
254
254
  #### `jira`
@@ -282,7 +282,7 @@ Substrate column meanings:
282
282
  - Multiple cells filled means tier ordering applies — try acli, then MCP, then curl, taking the first that has an adapter for the op AND is identity-matched.
283
283
  - One cell means only that substrate can perform the op.
284
284
 
285
- `<SITE>` = `.atlassian.site` (e.g. `propswap.atlassian.net`). `<CLOUDID>` = `.atlassian.cloudId`. `<AUTH>` = `Basic $(printf '%s:%s' "$email" "$ATLASSIAN_API_TOKEN" | base64)`. JIRA curl writes use the cloudId-bound Atlassian gateway `https://api.atlassian.com/ex/jira/<CLOUDID>/rest/api/3/...`; JIRA curl reads may use either that gateway or `https://<SITE>/rest/api/3/...` after the token account check. Confluence uses `/wiki/rest/api/...` (v1) or `/api/v2/...` (v2).
285
+ `<SITE>` = `.atlassian.site` (e.g. `acme.atlassian.net`). `<CLOUDID>` = `.atlassian.cloudId`. `<AUTH>` = `Basic $(printf '%s:%s' "$email" "$ATLASSIAN_API_TOKEN" | base64)`. JIRA curl writes use the cloudId-bound Atlassian gateway `https://api.atlassian.com/ex/jira/<CLOUDID>/rest/api/3/...`; JIRA curl reads may use either that gateway or `https://<SITE>/rest/api/3/...` after the token account check. Confluence uses `/wiki/rest/api/...` (v1) or `/api/v2/...` (v2).
286
286
 
287
287
  | Operation | acli adapter | MCP adapter | curl adapter |
288
288
  |---|---|---|---|
@@ -11,7 +11,7 @@ allowed-tools: ["Skill", "Bash", "Read", "Write", "Edit", "AskUserQuestion"]
11
11
  `$ARGUMENTS` is a Notion database URL (or bare database ID) — for example:
12
12
 
13
13
  ```text
14
- https://www.notion.so/geminisports/28fd00244d7d47c5866876f7de48c0fe?v=34eba63a2800815891a3000c643f0ea8
14
+ https://www.notion.so/acme/<database-id>?v=<view-id>
15
15
  ```
16
16
 
17
17
  Run one intake cycle against that database. The first eligible PRD in the configured `ready` status is claimed, validated, routed to either `blocked` (with clarifying comments) or `ticketed` (with destination tickets created), then the cycle exits. Remaining ready PRDs stay queued for later scheduler invocations.
@@ -23,8 +23,8 @@ It is the audit/repair counterpart to `/lisa:setup:jira` (and the other `setup:*
23
23
  ## Arguments
24
24
 
25
25
  - (none) — audit the **current repo** (`./.lisa.config.json`).
26
- - `projects=<glob-or-path>` — batch sweep. Expands to every directory under the glob that contains a `.lisa.config.json`. Example: `projects=~/workspace/geminisportsai/projects/*`.
27
- - `workspaces=<file>` — batch sweep driven by a Lisa workspaces file (the `{ "<project-path>": "<branch>" }` map used by `/lisa:update-projects`). Each key is a project path to audit. Combine with `filter=<substring>` to restrict to matching paths (e.g. `filter=geminisportsai`).
26
+ - `projects=<glob-or-path>` — batch sweep. Expands to every directory under the glob that contains a `.lisa.config.json`. Example: `projects=~/workspace/acme/projects/*`.
27
+ - `workspaces=<file>` — batch sweep driven by a Lisa workspaces file (the `{ "<project-path>": "<branch>" }` map used by `/lisa:update-projects`). Each key is a project path to audit. Combine with `filter=<substring>` to restrict to matching paths (e.g. `filter=acme`).
28
28
  - `repair=true` — enable config repair (see confirmation policy). Default `false`.
29
29
  - `lane=build|prd|both` — which mapping family to check. Default `both`. `build` = the destination `tracker` workflow; `prd` = the PRD `source` status/label mapping.
30
30
 
@@ -3,7 +3,7 @@
3
3
  ## Complete Directory Structure
4
4
 
5
5
  ```
6
- thumbwar-frontend/
6
+ acme-frontend/
7
7
  ├── app/ # Expo Router - PAGES live here
8
8
  │ ├── (auth)/ # Auth route group
9
9
  │ │ ├── login.tsx # Login page
@@ -259,9 +259,9 @@ export const configuration = (): Configuration => ({
259
259
  database: {
260
260
  host: process.env.DATABASE_HOST ?? "localhost",
261
261
  port: parseInt(process.env.DATABASE_PORT ?? "5432", 10),
262
- username: process.env.DATABASE_USER ?? "thumbwar",
263
- password: process.env.DATABASE_PASSWORD ?? "thumbwar_local",
264
- name: process.env.DATABASE_NAME ?? "thumbwar",
262
+ username: process.env.DATABASE_USER ?? "acme",
263
+ password: process.env.DATABASE_PASSWORD ?? "acme_local",
264
+ name: process.env.DATABASE_NAME ?? "acme",
265
265
  ssl: process.env.DATABASE_SSL === "true",
266
266
  sslRejectUnauthorized: process.env.DATABASE_SSL_REJECT_UNAUTHORIZED !== "false",
267
267
  proxyHost: process.env.DATABASE_PROXY_HOST,
@@ -400,9 +400,9 @@ export default new DataSource({
400
400
  # Database Configuration
401
401
  DATABASE_HOST=localhost
402
402
  DATABASE_PORT=5432
403
- DATABASE_USER=thumbwar
404
- DATABASE_PASSWORD=thumbwar_local
405
- DATABASE_NAME=thumbwar
403
+ DATABASE_USER=acme
404
+ DATABASE_PASSWORD=acme_local
405
+ DATABASE_NAME=acme
406
406
  DATABASE_SSL=false
407
407
  DATABASE_SSL_REJECT_UNAUTHORIZED=true
408
408
 
@@ -410,8 +410,8 @@ DATABASE_SSL_REJECT_UNAUTHORIZED=true
410
410
  IS_OFFLINE=true
411
411
 
412
412
  # Production Only - RDS Proxy endpoints
413
- # DATABASE_PROXY_HOST=thumbwar-proxy.proxy-xxxxx.us-east-1.rds.amazonaws.com
414
- # DATABASE_PROXY_HOST_READ_1=thumbwar-proxy-read.proxy-xxxxx.us-east-1.rds.amazonaws.com
413
+ # DATABASE_PROXY_HOST=acme-proxy.proxy-xxxxx.us-east-1.rds.amazonaws.com
414
+ # DATABASE_PROXY_HOST_READ_1=acme-proxy-read.proxy-xxxxx.us-east-1.rds.amazonaws.com
415
415
 
416
416
  # AWS Configuration (production)
417
417
  # AWS_REGION=us-east-1
@@ -1,5 +1,9 @@
1
1
  {
2
- "*.{js,mjs,ts,tsx}": ["oxlint --fix", "eslint --quiet --cache --fix", "ast-grep scan"],
2
+ "*.{js,mjs,ts,tsx}": [
3
+ "oxlint --fix --no-error-on-unmatched-pattern",
4
+ "eslint --quiet --cache --fix --no-error-on-unmatched-pattern --no-warn-ignored",
5
+ "ast-grep scan"
6
+ ],
3
7
  "*.{json,mjs,js,ts,jsx,tsx,html,md,mdx,css,scss,yaml,yml,graphql}": [
4
8
  "prettier --write"
5
9
  ]