@codyswann/lisa 2.300.12 → 2.301.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.
Files changed (64) hide show
  1. package/cdk/create-only/.github/workflows/ci.yml +11 -0
  2. package/dist/cli/doctor-readiness-delivery.d.ts.map +1 -1
  3. package/dist/cli/doctor-readiness-delivery.js +82 -10
  4. package/dist/cli/doctor-readiness-delivery.js.map +1 -1
  5. package/dist/core/upstream-evidence-manifest.js +9 -9
  6. package/expo/create-only/.github/workflows/ci.yml +11 -0
  7. package/harper-fabric/copy-overwrite/.github/workflows/ci.yml +11 -0
  8. package/nestjs/create-only/.github/workflows/ci.yml +11 -0
  9. package/package.json +1 -1
  10. package/phaser/copy-overwrite/.github/workflows/ci.yml +11 -0
  11. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  12. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  13. package/plugins/lisa-agy/plugin.json +1 -1
  14. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  15. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  16. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  17. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  18. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  19. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  20. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  21. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  22. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  23. package/plugins/lisa-expo-agy/plugin.json +1 -1
  24. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  25. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  26. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  27. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  28. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  29. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  31. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  32. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  33. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  34. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  35. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  36. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  37. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  38. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  39. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  41. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  43. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  44. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  48. package/plugins/lisa-rails-agy/plugin.json +1 -1
  49. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  51. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  53. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  54. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  57. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  58. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  59. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  60. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  61. package/rails/create-only/.github/workflows/ci.yml +10 -0
  62. package/rails/github-rulesets/quality-checks.json +4 -0
  63. package/typescript/create-only/.github/workflows/ci.yml +10 -0
  64. package/typescript/github-rulesets/quality-checks.json +4 -0
@@ -133,6 +133,11 @@ jobs:
133
133
  # Reference to the quality checks workflow
134
134
  permissions:
135
135
  contents: read
136
+ # work_item_traceability reads the tracker issue to verify the PR
137
+ # backlink. A reusable workflow can only DOWNGRADE the caller's
138
+ # grant, so without issues:read that job cannot enforce anything.
139
+ issues: read
140
+ pull-requests: read
136
141
  uses: CodySwannGT/lisa/.github/workflows/quality.yml@main
137
142
  with:
138
143
  node_version: '22.21.1'
@@ -143,3 +148,9 @@ jobs:
143
148
  GITGUARDIAN_API_KEY: ${{ secrets.GITGUARDIAN_API_KEY }}
144
149
  FOSSA_API_KEY: ${{ secrets.FOSSA_API_KEY }}
145
150
  MAESTRO_API_KEY: ${{ secrets.MAESTRO_API_KEY }}
151
+ # Only the configured tracker's credentials are used. tracker:
152
+ # github needs none of these; jira/linear cannot verify the PR
153
+ # backlink without them and report not-enforceable instead.
154
+ JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
155
+ JIRA_LOGIN: ${{ secrets.JIRA_LOGIN }}
156
+ LINEAR_API_KEY: ${{ secrets.LINEAR_API_KEY }}
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-readiness-delivery.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness-delivery.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EACL,KAAK,cAAc,EAEpB,MAAM,iCAAiC,CAAC;AAGzC,+EAA+E;AAC/E,eAAO,MAAM,+BAA+B,uBAAuB,CAAC;AA8PpE;;;;;;;;;GASG;AACH,wBAAsB,gCAAgC,CACpD,IAAI,EAAE,MAAM,EACZ,eAAe,CAAC,EAAE,SAAS,cAAc,EAAE,GAC1C,OAAO,CAAC,wBAAwB,CAAC,CAoBnC"}
1
+ {"version":3,"file":"doctor-readiness-delivery.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness-delivery.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EACL,KAAK,cAAc,EAEpB,MAAM,iCAAiC,CAAC;AAGzC,+EAA+E;AAC/E,eAAO,MAAM,+BAA+B,uBAAuB,CAAC;AA0UpE;;;;;;;;;GASG;AACH,wBAAsB,gCAAgC,CACpD,IAAI,EAAE,MAAM,EACZ,eAAe,CAAC,EAAE,SAAS,cAAc,EAAE,GAC1C,OAAO,CAAC,wBAAwB,CAAC,CAoBnC"}
@@ -53,29 +53,101 @@ function summarizeReleasePaths(workflows, defaultBranches) {
53
53
  };
54
54
  }
55
55
  /**
56
- * Read the local production branch hint Lisa writes into project config. This
57
- * stays offline and best-effort: unreadable or unusual config falls back to the
58
- * built-in `main`/`master` defaults in the release-path assessor.
56
+ * Resolve the repository's local `.git` directory. Worktrees store this as a
57
+ * pointer file, while ordinary checkouts use a directory.
59
58
  * @param root - Project root to inspect
60
- * @returns Configured default-like branch names
59
+ * @returns The resolved git directory path, or null when it cannot be read
61
60
  */
62
- async function configuredDefaultBranches(root) {
61
+ async function localGitDir(root) {
62
+ const dotGit = path.join(root, ".git");
63
+ try {
64
+ const marker = await readFile(dotGit, "utf8");
65
+ const trimmed = marker.trim();
66
+ const prefix = "gitdir:";
67
+ if (!trimmed.toLowerCase().startsWith(prefix)) {
68
+ return null;
69
+ }
70
+ const target = trimmed.slice(prefix.length).trim();
71
+ return path.isAbsolute(target) ? target : path.resolve(root, target);
72
+ }
73
+ catch (error) {
74
+ return error.code === "EISDIR" ? dotGit : null;
75
+ }
76
+ }
77
+ /**
78
+ * Resolve where shared refs live for a gitdir. Linked worktrees keep refs in
79
+ * the common directory named by `commondir`; ordinary repositories do not.
80
+ * @param gitDir - The resolved `.git` or per-worktree gitdir
81
+ * @returns The directory that owns shared refs
82
+ */
83
+ async function commonGitDir(gitDir) {
84
+ try {
85
+ const raw = await readFile(path.join(gitDir, "commondir"), "utf8");
86
+ const target = raw.trim();
87
+ return path.isAbsolute(target) ? target : path.resolve(gitDir, target);
88
+ }
89
+ catch {
90
+ return gitDir;
91
+ }
92
+ }
93
+ /**
94
+ * Read the default branch cached by git's local `origin/HEAD` symbolic ref.
95
+ * This is best-effort and does not fetch; if the ref is absent, callers fall
96
+ * back to Lisa config and built-in branch names.
97
+ * @param root - Project root to inspect
98
+ * @returns The local remote-default branch name when available
99
+ */
100
+ async function gitDefaultBranch(root) {
101
+ const gitDir = await localGitDir(root);
102
+ if (!gitDir) {
103
+ return null;
104
+ }
105
+ const refsGitDir = await commonGitDir(gitDir);
106
+ try {
107
+ const raw = await readFile(path.join(refsGitDir, "refs", "remotes", "origin", "HEAD"), "utf8");
108
+ const trimmed = raw.trim();
109
+ const prefix = "ref: refs/remotes/origin/";
110
+ return trimmed.startsWith(prefix) ? trimmed.slice(prefix.length) : null;
111
+ }
112
+ catch {
113
+ return null;
114
+ }
115
+ }
116
+ /**
117
+ * Read Lisa's configured production branch hint.
118
+ * @param root - Project root to inspect
119
+ * @returns A one-item branch list, or empty when no hint exists
120
+ */
121
+ async function configDefaultBranches(root) {
63
122
  try {
64
123
  const raw = await readFile(path.join(root, ".lisa.config.json"), "utf8");
65
124
  const parsed = JSON.parse(raw);
66
125
  if (!isJsonObject(parsed) || !isJsonObject(parsed.deploy)) {
67
126
  return [];
68
127
  }
69
- const branches = parsed.deploy.branches;
70
- if (!isJsonObject(branches)) {
71
- return [];
72
- }
73
- return typeof branches.production === "string" ? [branches.production] : [];
128
+ const deployBranches = parsed.deploy.branches;
129
+ return isJsonObject(deployBranches) &&
130
+ typeof deployBranches.production === "string"
131
+ ? [deployBranches.production]
132
+ : [];
74
133
  }
75
134
  catch {
76
135
  return [];
77
136
  }
78
137
  }
138
+ /**
139
+ * Read local default-branch hints Lisa can establish offline. This stays
140
+ * best-effort: unreadable or unusual config/git metadata falls back to the
141
+ * built-in `main`/`master` defaults in the release-path assessor.
142
+ * @param root - Project root to inspect
143
+ * @returns Configured default-like branch names
144
+ */
145
+ async function configuredDefaultBranches(root) {
146
+ const configBranches = await configDefaultBranches(root);
147
+ const gitBranch = await gitDefaultBranch(root);
148
+ const branches = gitBranch ? [...configBranches, gitBranch] : configBranches;
149
+ return [...new Set(branches.map(branch => branch.trim()).filter(Boolean))];
150
+ }
79
151
  /**
80
152
  * Build the B2 finding from its evidence lines.
81
153
  * @param violations - Evidence lines
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-readiness-delivery.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness-delivery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor-readiness-delivery.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness-delivery.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
23
23
  "cdk/copy-overwrite/tsconfig.json": "bd960df819bb1ce01163ac4b28721eea3f07d482f6c454cfea9a8dc90191033a",
24
24
  "cdk/copy-overwrite/vitest.cdk.ts": "aea238d214b7eb4c532cebe5bf732dc30b9fd04d938a215bd34a5ec2eff17046",
25
25
  "cdk/copy-overwrite/vitest.config.ts": "ce14179d4ab31011bb012ee1669af7d86b5189bdf2934e0bd9dd666a30e3d01e",
26
- "cdk/create-only/.github/workflows/ci.yml": "04cca8fbcb7a5c6da1aeb2b2d00d7a328d15618e4252f1d9dd495052d264d0f5",
26
+ "cdk/create-only/.github/workflows/ci.yml": "dc384ef9bd46af723cafd8d140f6d58d2630cfa8a7b07104254d8ecd4a556636",
27
27
  "cdk/create-only/.github/workflows/deploy.yml": "2746e78fb0fbe7b23b30bbcb0f83171e16f6804fd467b3d41d3c69970572af3f",
28
28
  "cdk/create-only/cdk.json": "f89030d8fe145a1dbabd59d89ddee4e16984f222d737f7fcf6b778d911e9fe40",
29
29
  "cdk/create-only/tsconfig.local.json": "d26253827e21fd7c41d30565fe3d339675f119e00bb24c5713a01f57ccd06602",
@@ -73,7 +73,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
73
73
  "expo/copy-overwrite/tsconfig.eslint.json": "375bb2ee8185e4a57d703e078ad57188f6d45b03b0fcbb16ef049fcf9b14c44b",
74
74
  "expo/copy-overwrite/tsconfig.expo.json": "55f3dfe80496f03152d40d364c5a9cabf3fdce3adc8cebea48ba5257d77b7aa9",
75
75
  "expo/copy-overwrite/tsconfig.json": "c92e2c2c109e8794ee351f634361ef46297f5a0cd606aaf5c19911da836df307",
76
- "expo/create-only/.github/workflows/ci.yml": "3ade267cca43e33c68e56b8c4f5d821ed03f642e5a11aa8b70b79e76ec41b96f",
76
+ "expo/create-only/.github/workflows/ci.yml": "bf75c9d3b4f4a2cb24c2214d9fc27a9cb2247a6694b0cf02c40032b4d3e87cd9",
77
77
  "expo/create-only/.github/workflows/deploy.yml": "0978b1f4e19e1ff66bb8cdd037d36a3751d4e917db7ceb5bcf100fad36768516",
78
78
  "expo/create-only/.github/workflows/maestro-e2e.yml": "444367a8cefaa81b484bc6eff5923c34177e10f6a67cbf1befec00c9d0d1d36b",
79
79
  "expo/create-only/.zap/baseline.conf": "ab18d74ba5270dd5d795e740cd6b1292bb78dc36c79a20c1e7b752d14c0c55f5",
@@ -97,7 +97,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
97
97
  "harper-fabric/copy-contents/.prettierignore": "478c782f4c5611187e21584dfd5522e37fc636c5eb03394fea3db45321c6712c",
98
98
  "harper-fabric/copy-contents/gitignore": "d091c40fd0ea3068491f1be0d6510090ae872ca95d0d058ef4595d6492d13897",
99
99
  "harper-fabric/copy-overwrite/.github/dependabot.yml": "e28fde0d906478b3fb7d6b7fc16f7fc5a4a0a20d8160f547f2b4be97c90578b7",
100
- "harper-fabric/copy-overwrite/.github/workflows/ci.yml": "6823d87b989f1fbeb2f471552a041f5c9476e67ece8f6ec7ba75e97738afe2f9",
100
+ "harper-fabric/copy-overwrite/.github/workflows/ci.yml": "d8227671ebec99255c2adac8ef76ec29cdfa5b8f4c56fe376a37dab08accc0cc",
101
101
  "harper-fabric/copy-overwrite/ast-grep/rules/harper/no-early-return-in-search-loop.yml": "c25106e1d4ee3566c70824ba4ecbc2ee0345014008aedb4fac56d0be23029264",
102
102
  "harper-fabric/copy-overwrite/ast-grep/rules/harper/no-empty-conditions-with-sort.yml": "d735e92ea25a4d8fbac8b45e06d73baf8b7cf0b38068623663b928dd6850e26e",
103
103
  "harper-fabric/copy-overwrite/ast-grep/rules/harper/no-full-table-scan.yml": "00f49de6372a3a2825e9e38b6d2d86ac1580e28c1e2e8c8fa07bee0cfe2ac0aa",
@@ -147,7 +147,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
147
147
  "nestjs/create-only/.github/k6/thresholds/normal.json": "1842cf0b617380ce641781589b4084b03aac1beeb4803a696b3ae6329710ad44",
148
148
  "nestjs/create-only/.github/k6/thresholds/relaxed.json": "350c18b2c588fd628db8a6e82fc5c0b3ffc8a09f1c89b64d1f530350bc64a9ca",
149
149
  "nestjs/create-only/.github/k6/thresholds/strict.json": "e121ec72de4596b95c013a8c71f03653bcdf057cf7f8d1fec6f0e13c1381867f",
150
- "nestjs/create-only/.github/workflows/ci.yml": "8db7de7f2e3eb2a1605539849a346b55281cfcd9951526f9d5a1757a210da3c6",
150
+ "nestjs/create-only/.github/workflows/ci.yml": "0985668e6d0478f1993bed8ccd398601d8e73376afd8775e1269ae129418152e",
151
151
  "nestjs/create-only/.github/workflows/deploy.yml": "78abfa87639cb7506418dd34387963a0557614933d823e6fa0413395166b945b",
152
152
  "nestjs/create-only/.zap/baseline.conf": "a7cd559b014555ef2efe7a6ce129384ec376ce4d66d5bc3ae9e2f3f883172c4d",
153
153
  "nestjs/create-only/scripts/zap-baseline.sh": "de3a66a780076f98d5c6306c03b5decac8afbc9ff37583e5e6463c56f3399e3e",
@@ -169,7 +169,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
169
169
  "oxlint/typescript.json": "c7352af5d92a97da1386edfbff873f284c932f5413dce87c4af27520097389aa",
170
170
  "phaser/copy-contents/.prettierignore": "3bd2e016bd4bd23f76d186a4a4ba72f47719b9aa1df5d3352ad5719d93e0bf49",
171
171
  "phaser/copy-contents/gitignore": "4b8d1a5817d35f64f5d4859f9184ebe2e1dc42e63f8e9269fff233e2ec258d6c",
172
- "phaser/copy-overwrite/.github/workflows/ci.yml": "02b7fa8ceb9950b72d000fa1688177e747ef549d1b49d2cb4b1db97ec94a3a61",
172
+ "phaser/copy-overwrite/.github/workflows/ci.yml": "7b037b5961569a09e8407e6b9bf9a91377208f76bc309680870c2b56ff2f4813",
173
173
  "phaser/copy-overwrite/.husky/pre-push.verify": "fef6694c2fde6178f46c62936d2b19515adce4fc8ac694ea66d8342aa1474ee7",
174
174
  "phaser/copy-overwrite/ast-grep/rule-tests/.gitkeep": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
175
175
  "phaser/copy-overwrite/ast-grep/rules/phaser/no-canvas-renderer.yml": "bd0994bbb8f8e6bde2a1a581fb2cb8aa011d91822dabf4366f500359069726b3",
@@ -889,7 +889,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
889
889
  "rails/copy-overwrite/scripts/threshold-ratchet-compare.mjs": "4535a145c5c5cbee13bdf970bc91d390a264043604e607288cdd6bf28de56192",
890
890
  "rails/copy-overwrite/scripts/threshold-ratchet-families.mjs": "db14245ed89b483912af287bdee917a7a921dc21bb29b49be37fc799c05c413f",
891
891
  "rails/copy-overwrite/sgconfig.yml": "0ffe058c791d4d323f98104cf78c763bb0356d88739042060ceb86b6b1cb78d7",
892
- "rails/create-only/.github/workflows/ci.yml": "599805266a47b5c0039145a11df225d4db6c59d35b2ecc582a44d55ab7f4b1f0",
892
+ "rails/create-only/.github/workflows/ci.yml": "ad53014bdd6cf15bfadfaef7740b6094c3c7bd044f9d176c4938154da983529d",
893
893
  "rails/create-only/.github/workflows/claude-code-review-response.yml": "bfbe3127c4941c35886d324d439ae0302fbccd74a11cb4decf05a21195efa0e9",
894
894
  "rails/create-only/.github/workflows/claude-nightly-code-complexity.yml": "3943137c81ed212d7d3f35f7d7f6242a984fda43ed29a5f565ab5c2923d92606",
895
895
  "rails/create-only/.github/workflows/claude-nightly-test-coverage.yml": "f7f2eeb05ddd18e196c4b292c0a846e765ed8b67ddeacfc6b19c3d676d91e459",
@@ -911,7 +911,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
911
911
  "rails/create-only/spec/rails_helper.rb": "aa94dcec9eea6d238c7210ca9ee88ba009061f1ba59bd042eaf09b8f98582689",
912
912
  "rails/create-only/spec/spec_helper.rb": "4308dcddf2ee1b65986ff206a0feac62c8e3a1cae842b115fd2945b7563ed9cd",
913
913
  "rails/deletions.json": "eeadf9a2b1677913199a235091a8d6190477f3e2a5fd598d62cf658cb59a8099",
914
- "rails/github-rulesets/quality-checks.json": "ea42f2bb938881bc6ec129e7300a2b824313951031d4720f46e944c4dfe1a9da",
914
+ "rails/github-rulesets/quality-checks.json": "0ec1c366589edbaa6b8f45f940cef3ada5ed7b1a956d98d3fa6034b0f78fbc7c",
915
915
  "rails/merge/.claude/settings.json": "9c49f8c7c453f8749c90def3e22d412c3345c533d24b30dc7745ffa052ad6fa1",
916
916
  "scripts/build-plugins.sh": "d26321ea10bc3ed8cf096f900622cb4cf7a37117fabf9730f0fe5c9d949582fc",
917
917
  "scripts/check-duplicate-versions.mjs": "84d97e94eb834522848ddce951bb54ae9da1e4be252e2c51fed0c01c4f4d6b72",
@@ -1014,7 +1014,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
1014
1014
  "typescript/copy-overwrite/vitest.config.ts": "da92f06cc3ce68462c6f2f3d95adb1b1464591ce383a24e3334dc986e0c1e0fb",
1015
1015
  "typescript/create-only/.github/workflows/auto-update-pr-branches-dispatch.yml": "347f8a3830efdc3ad701fae0858994f4e45df8100844e91948b017b98115a28c",
1016
1016
  "typescript/create-only/.github/workflows/auto-update-pr-branches.yml": "cf185555bcbe8e9957333abcae2e0c20e00875f8d867f70134efbd2a5c974ee5",
1017
- "typescript/create-only/.github/workflows/ci.yml": "d8c7f65e408a21e344b3a518ddf088d5ada4b08eb24d6b2cfa38ec6755ca8b5a",
1017
+ "typescript/create-only/.github/workflows/ci.yml": "dac98b7ab5a7397461e459b2553101bfdc6451d28b42f3b0115056b62cfb8b1d",
1018
1018
  "typescript/create-only/.github/workflows/claude-ci-auto-fix.yml": "a9155c10d0c28eba0f77ec5bc2a2d99b0eeb5d499218aac81948d3f27e6aa4fb",
1019
1019
  "typescript/create-only/.github/workflows/claude-code-review-response.yml": "68bc8b53c2d4c58ab49b176796d27214415608fe94130e1f465c0bd41a100443",
1020
1020
  "typescript/create-only/.github/workflows/claude-deploy-auto-fix.yml": "5e0f7282b1b97a308bc5b95f6a4ef784d4dfbd02f3126bf9254fbf4576606daf",
@@ -1035,7 +1035,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
1035
1035
  "typescript/create-only/vitest.config.local.ts": "476738b351114a0efbcd3ae4ce1cf016307b55ee41ed8e87c35e28e4639d98f5",
1036
1036
  "typescript/create-only/vitest.thresholds.json": "ce04fe30ad6139f734dbc56d92a801c11cfd86a0d9e49c06c1c2d0a137beeffd",
1037
1037
  "typescript/deletions.json": "fe5f44b7a02148eacc429782e948b1c4aee302d1d56524cc16adec5489bbc308",
1038
- "typescript/github-rulesets/quality-checks.json": "89b9e09267cdb65865728d0e873de9c1225b8ca796e67f06fa8b72ccf6d4515e",
1038
+ "typescript/github-rulesets/quality-checks.json": "d92599b203071b99b8fac1422b8493d2546138961ef04ba98176bc400af60945",
1039
1039
  "typescript/merge/.claude/settings.json": "834e6456cae81f45073bbbb08bf731fef043efb30cae2658cb4a59f17e66d165",
1040
1040
  "typescript/merge/.oxlintrc.json": "4debc093acfd263eb81ae15894073ebf098513204f45f40b83fb8fa5353fa1f8",
1041
1041
  "typescript/package-lisa/package.lisa.json": "bdd1766c2f327290207874b04fd3a577a8188bb57c2fd77d482bb7d6ecf17355",
@@ -30,6 +30,11 @@ jobs:
30
30
  # Reference to the quality checks workflow
31
31
  permissions:
32
32
  contents: read
33
+ # work_item_traceability reads the tracker issue to verify the PR
34
+ # backlink. A reusable workflow can only DOWNGRADE the caller's
35
+ # grant, so without issues:read that job cannot enforce anything.
36
+ issues: read
37
+ pull-requests: read
33
38
  uses: CodySwannGT/lisa/.github/workflows/quality.yml@main
34
39
  with:
35
40
  node_version: '22.21.1'
@@ -47,6 +52,12 @@ jobs:
47
52
  GITGUARDIAN_API_KEY: ${{ secrets.GITGUARDIAN_API_KEY }}
48
53
  FOSSA_API_KEY: ${{ secrets.FOSSA_API_KEY }}
49
54
  MAESTRO_API_KEY: ${{ secrets.MAESTRO_API_KEY }}
55
+ # Only the configured tracker's credentials are used. tracker:
56
+ # github needs none of these; jira/linear cannot verify the PR
57
+ # backlink without them and report not-enforceable instead.
58
+ JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
59
+ JIRA_LOGIN: ${{ secrets.JIRA_LOGIN }}
60
+ LINEAR_API_KEY: ${{ secrets.LINEAR_API_KEY }}
50
61
  lighthouse:
51
62
  name: 💡 Lighthouse CI
52
63
  needs: [quality]
@@ -12,6 +12,11 @@ jobs:
12
12
  name: 🔍 Quality Checks
13
13
  permissions:
14
14
  contents: read
15
+ # work_item_traceability reads the tracker issue to verify the PR
16
+ # backlink. A reusable workflow can only DOWNGRADE the caller's
17
+ # grant, so without issues:read that job cannot enforce anything.
18
+ issues: read
19
+ pull-requests: read
15
20
  uses: CodySwannGT/lisa/.github/workflows/quality.yml@main
16
21
  with:
17
22
  node_version: '22.21.1'
@@ -23,3 +28,9 @@ jobs:
23
28
  GITGUARDIAN_API_KEY: ${{ secrets.GITGUARDIAN_API_KEY }}
24
29
  FOSSA_API_KEY: ${{ secrets.FOSSA_API_KEY }}
25
30
  MAESTRO_API_KEY: ${{ secrets.MAESTRO_API_KEY }}
31
+ # Only the configured tracker's credentials are used. tracker:
32
+ # github needs none of these; jira/linear cannot verify the PR
33
+ # backlink without them and report not-enforceable instead.
34
+ JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
35
+ JIRA_LOGIN: ${{ secrets.JIRA_LOGIN }}
36
+ LINEAR_API_KEY: ${{ secrets.LINEAR_API_KEY }}
@@ -14,6 +14,11 @@ jobs:
14
14
  # Reference to the quality checks workflow
15
15
  permissions:
16
16
  contents: read
17
+ # work_item_traceability reads the tracker issue to verify the PR
18
+ # backlink. A reusable workflow can only DOWNGRADE the caller's
19
+ # grant, so without issues:read that job cannot enforce anything.
20
+ issues: read
21
+ pull-requests: read
17
22
  uses: CodySwannGT/lisa/.github/workflows/quality.yml@main
18
23
  with:
19
24
  node_version: '22.21.1'
@@ -25,6 +30,12 @@ jobs:
25
30
  GITGUARDIAN_API_KEY: ${{ secrets.GITGUARDIAN_API_KEY }}
26
31
  FOSSA_API_KEY: ${{ secrets.FOSSA_API_KEY }}
27
32
  MAESTRO_API_KEY: ${{ secrets.MAESTRO_API_KEY }}
33
+ # Only the configured tracker's credentials are used. tracker:
34
+ # github needs none of these; jira/linear cannot verify the PR
35
+ # backlink without them and report not-enforceable instead.
36
+ JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
37
+ JIRA_LOGIN: ${{ secrets.JIRA_LOGIN }}
38
+ LINEAR_API_KEY: ${{ secrets.LINEAR_API_KEY }}
28
39
 
29
40
  zap:
30
41
  name: 🕷️ ZAP Baseline Scan
package/package.json CHANGED
@@ -115,7 +115,7 @@
115
115
  "brace-expansion": ">=5.0.8"
116
116
  },
117
117
  "name": "@codyswann/lisa",
118
- "version": "2.300.12",
118
+ "version": "2.301.0",
119
119
  "description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
120
120
  "main": "dist/index.js",
121
121
  "exports": {
@@ -15,6 +15,11 @@ jobs:
15
15
  name: 🔍 Quality Checks
16
16
  permissions:
17
17
  contents: read
18
+ # work_item_traceability reads the tracker issue to verify the PR
19
+ # backlink. A reusable workflow can only DOWNGRADE the caller's
20
+ # grant, so without issues:read that job cannot enforce anything.
21
+ issues: read
22
+ pull-requests: read
18
23
  uses: CodySwannGT/lisa/.github/workflows/quality.yml@main
19
24
  with:
20
25
  node_version: '22.21.1'
@@ -29,3 +34,9 @@ jobs:
29
34
  GITGUARDIAN_API_KEY: ${{ secrets.GITGUARDIAN_API_KEY }}
30
35
  FOSSA_API_KEY: ${{ secrets.FOSSA_API_KEY }}
31
36
  MAESTRO_API_KEY: ${{ secrets.MAESTRO_API_KEY }}
37
+ # Only the configured tracker's credentials are used. tracker:
38
+ # github needs none of these; jira/linear cannot verify the PR
39
+ # backlink without them and report not-enforceable instead.
40
+ JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
41
+ JIRA_LOGIN: ${{ secrets.JIRA_LOGIN }}
42
+ LINEAR_API_KEY: ${{ secrets.LINEAR_API_KEY }}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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-cdk",
3
- "version": "2.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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-expo",
3
- "version": "2.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
4
4
  "description": "Expo and 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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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-harper-fabric",
3
- "version": "2.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
4
4
  "description": "NestJS-specific skills and migration write-protection hooks.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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-openclaw",
3
- "version": "2.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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.300.12",
3
+ "version": "2.301.0",
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"
@@ -20,6 +20,10 @@ jobs:
20
20
  contents: read
21
21
  checks: write
22
22
  pull-requests: write
23
+ # work_item_traceability reads the tracker issue to verify the PR
24
+ # backlink. A reusable workflow can only DOWNGRADE the caller's
25
+ # grant, so without issues:read that job cannot enforce anything.
26
+ issues: read
23
27
  uses: CodySwannGT/lisa/.github/workflows/quality-rails.yml@main
24
28
  # Rails projects default to PostgreSQL. For a MySQL app, uncomment:
25
29
  # with:
@@ -27,3 +31,9 @@ jobs:
27
31
  secrets:
28
32
  GITGUARDIAN_API_KEY: ${{ secrets.GITGUARDIAN_API_KEY }}
29
33
  FOSSA_API_KEY: ${{ secrets.FOSSA_API_KEY }}
34
+ # Only the configured tracker's credentials are used. tracker:
35
+ # github needs none of these; jira/linear cannot verify the PR
36
+ # backlink without them and report not-enforceable instead.
37
+ JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
38
+ JIRA_LOGIN: ${{ secrets.JIRA_LOGIN }}
39
+ LINEAR_API_KEY: ${{ secrets.LINEAR_API_KEY }}
@@ -43,6 +43,10 @@
43
43
  {
44
44
  "context": "Quality Checks / Security",
45
45
  "integration_id": 15368
46
+ },
47
+ {
48
+ "context": "Quality Checks / 🔗 Work-Item Traceability",
49
+ "integration_id": 15368
46
50
  }
47
51
  ]
48
52
  }
@@ -14,6 +14,10 @@ jobs:
14
14
  permissions:
15
15
  contents: read
16
16
  pull-requests: read
17
+ # work_item_traceability reads the tracker issue to verify the PR
18
+ # backlink. A reusable workflow can only DOWNGRADE the caller's
19
+ # grant, so without issues:read that job cannot enforce anything.
20
+ issues: read
17
21
  uses: CodySwannGT/lisa/.github/workflows/quality.yml@main
18
22
  with:
19
23
  node_version: '22.21.1'
@@ -25,3 +29,9 @@ jobs:
25
29
  GITGUARDIAN_API_KEY: ${{ secrets.GITGUARDIAN_API_KEY }}
26
30
  FOSSA_API_KEY: ${{ secrets.FOSSA_API_KEY }}
27
31
  MAESTRO_API_KEY: ${{ secrets.MAESTRO_API_KEY }}
32
+ # Only the configured tracker's credentials are used. tracker:
33
+ # github needs none of these; jira/linear cannot verify the PR
34
+ # backlink without them and report not-enforceable instead.
35
+ JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
36
+ JIRA_LOGIN: ${{ secrets.JIRA_LOGIN }}
37
+ LINEAR_API_KEY: ${{ secrets.LINEAR_API_KEY }}
@@ -59,6 +59,10 @@
59
59
  {
60
60
  "context": "🔍 Quality Checks / 🧪 Run Integration Tests",
61
61
  "integration_id": 15368
62
+ },
63
+ {
64
+ "context": "🔍 Quality Checks / 🔗 Work-Item Traceability",
65
+ "integration_id": 15368
62
66
  }
63
67
  ]
64
68
  }