@codyswann/lisa 2.328.2 → 2.328.4

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 (127) hide show
  1. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  2. package/dist/core/upstream-evidence-manifest.js +15 -12
  3. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  4. package/dist/sync/lifecycle-defaults.d.ts +12 -3
  5. package/dist/sync/lifecycle-defaults.d.ts.map +1 -1
  6. package/dist/sync/lifecycle-defaults.js +13 -4
  7. package/dist/sync/lifecycle-defaults.js.map +1 -1
  8. package/dist/utils/usage-accounting.d.ts +42 -0
  9. package/dist/utils/usage-accounting.d.ts.map +1 -1
  10. package/dist/utils/usage-accounting.js +116 -3
  11. package/dist/utils/usage-accounting.js.map +1 -1
  12. package/package.json +1 -1
  13. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  14. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  15. package/plugins/lisa/.codex-plugin/skills/lisa-linear-build-intake/SKILL.md +8 -8
  16. package/plugins/lisa/.codex-plugin/skills/lisa-linear-claim/SKILL.md +5 -4
  17. package/plugins/lisa/.codex-plugin/skills/lisa-linear-sync/SKILL.md +19 -19
  18. package/plugins/lisa/.codex-plugin/skills/lisa-linear-validate-issue/SKILL.md +5 -5
  19. package/plugins/lisa/.codex-plugin/skills/lisa-linear-write-issue/SKILL.md +2 -2
  20. package/plugins/lisa/.codex-plugin/skills/lisa-setup-linear/SKILL.md +2 -2
  21. package/plugins/lisa/.codex-plugin/skills/lisa-usage-accounting/SKILL.md +16 -2
  22. package/plugins/lisa/agents/linear-agent.md +2 -2
  23. package/plugins/lisa/agents/linear-build-intake.md +13 -13
  24. package/plugins/lisa/rules/reference/config-resolution.md +5 -3
  25. package/plugins/lisa/rules/reference/usage-accounting.md +37 -4
  26. package/plugins/lisa/scripts/queue-contract-resolution.mjs +20 -8
  27. package/plugins/lisa/skills/lisa-linear-build-intake/SKILL.md +8 -8
  28. package/plugins/lisa/skills/lisa-linear-claim/SKILL.md +6 -5
  29. package/plugins/lisa/skills/lisa-linear-sync/SKILL.md +19 -19
  30. package/plugins/lisa/skills/lisa-linear-validate-issue/SKILL.md +5 -5
  31. package/plugins/lisa/skills/lisa-linear-write-issue/SKILL.md +2 -2
  32. package/plugins/lisa/skills/lisa-setup-linear/SKILL.md +2 -2
  33. package/plugins/lisa/skills/lisa-usage-accounting/SKILL.md +16 -2
  34. package/plugins/lisa-agy/agents/linear-agent.md +2 -2
  35. package/plugins/lisa-agy/agents/linear-build-intake.md +13 -13
  36. package/plugins/lisa-agy/plugin.json +1 -1
  37. package/plugins/lisa-agy/scripts/queue-contract-resolution.mjs +20 -8
  38. package/plugins/lisa-agy/skills/lisa-linear-build-intake/SKILL.md +8 -8
  39. package/plugins/lisa-agy/skills/lisa-linear-claim/SKILL.md +6 -5
  40. package/plugins/lisa-agy/skills/lisa-linear-sync/SKILL.md +19 -19
  41. package/plugins/lisa-agy/skills/lisa-linear-validate-issue/SKILL.md +5 -5
  42. package/plugins/lisa-agy/skills/lisa-linear-write-issue/SKILL.md +2 -2
  43. package/plugins/lisa-agy/skills/lisa-setup-linear/SKILL.md +2 -2
  44. package/plugins/lisa-agy/skills/lisa-usage-accounting/SKILL.md +16 -2
  45. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  47. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  48. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  49. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  51. package/plugins/lisa-copilot/agents/linear-agent.agent.md +2 -2
  52. package/plugins/lisa-copilot/agents/linear-build-intake.agent.md +13 -13
  53. package/plugins/lisa-copilot/rules/reference/config-resolution.md +5 -3
  54. package/plugins/lisa-copilot/rules/reference/usage-accounting.md +37 -4
  55. package/plugins/lisa-copilot/scripts/queue-contract-resolution.mjs +20 -8
  56. package/plugins/lisa-copilot/skills/lisa-linear-build-intake/SKILL.md +8 -8
  57. package/plugins/lisa-copilot/skills/lisa-linear-claim/SKILL.md +6 -5
  58. package/plugins/lisa-copilot/skills/lisa-linear-sync/SKILL.md +19 -19
  59. package/plugins/lisa-copilot/skills/lisa-linear-validate-issue/SKILL.md +5 -5
  60. package/plugins/lisa-copilot/skills/lisa-linear-write-issue/SKILL.md +2 -2
  61. package/plugins/lisa-copilot/skills/lisa-setup-linear/SKILL.md +2 -2
  62. package/plugins/lisa-copilot/skills/lisa-usage-accounting/SKILL.md +16 -2
  63. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  64. package/plugins/lisa-cursor/agents/linear-agent.md +2 -2
  65. package/plugins/lisa-cursor/agents/linear-build-intake.md +13 -13
  66. package/plugins/lisa-cursor/rules/config-resolution-reference.mdc +5 -3
  67. package/plugins/lisa-cursor/rules/usage-accounting-reference.mdc +37 -4
  68. package/plugins/lisa-cursor/scripts/queue-contract-resolution.mjs +20 -8
  69. package/plugins/lisa-cursor/skills/lisa-linear-build-intake/SKILL.md +8 -8
  70. package/plugins/lisa-cursor/skills/lisa-linear-claim/SKILL.md +6 -5
  71. package/plugins/lisa-cursor/skills/lisa-linear-sync/SKILL.md +19 -19
  72. package/plugins/lisa-cursor/skills/lisa-linear-validate-issue/SKILL.md +5 -5
  73. package/plugins/lisa-cursor/skills/lisa-linear-write-issue/SKILL.md +2 -2
  74. package/plugins/lisa-cursor/skills/lisa-setup-linear/SKILL.md +2 -2
  75. package/plugins/lisa-cursor/skills/lisa-usage-accounting/SKILL.md +16 -2
  76. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  77. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  78. package/plugins/lisa-expo-agy/plugin.json +1 -1
  79. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  80. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  81. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  82. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  83. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  84. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  85. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  86. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  87. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  88. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  89. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  90. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  91. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  92. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  93. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  94. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  95. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  96. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  97. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  98. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  99. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  100. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  101. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  102. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  103. package/plugins/lisa-rails-agy/plugin.json +1 -1
  104. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  105. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  106. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  107. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  108. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  109. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  110. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  111. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  112. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  113. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  114. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  115. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  116. package/plugins/src/base/agents/linear-agent.md +2 -2
  117. package/plugins/src/base/agents/linear-build-intake.md +13 -13
  118. package/plugins/src/base/rules/reference/config-resolution.md +5 -3
  119. package/plugins/src/base/rules/reference/usage-accounting.md +37 -4
  120. package/plugins/src/base/scripts/queue-contract-resolution.mjs +20 -8
  121. package/plugins/src/base/skills/lisa-linear-build-intake/SKILL.md +8 -8
  122. package/plugins/src/base/skills/lisa-linear-claim/SKILL.md +6 -5
  123. package/plugins/src/base/skills/lisa-linear-sync/SKILL.md +19 -19
  124. package/plugins/src/base/skills/lisa-linear-validate-issue/SKILL.md +5 -5
  125. package/plugins/src/base/skills/lisa-linear-write-issue/SKILL.md +2 -2
  126. package/plugins/src/base/skills/lisa-setup-linear/SKILL.md +2 -2
  127. package/plugins/src/base/skills/lisa-usage-accounting/SKILL.md +16 -2
@@ -45,10 +45,19 @@ export declare const BUILD_LABEL_DEFAULTS: {
45
45
  * is a one-key override.
46
46
  *
47
47
  * A stock Linear team ships `Todo`, `In Progress`, `In Review` and `Done` but
48
- * NOT `Blocked`, `On Dev` or `On Stg`. `lisa-setup-linear` resolves each role
49
- * and offers to create what is missing; it never invents a name silently. The
50
- * env rungs must be typed `started`, never `completed` — see the
48
+ * NOT `Ready`, `Blocked`, `On Dev` or `On Stg`. `lisa-setup-linear` resolves
49
+ * each role and offers to create what is missing; it never invents a name
50
+ * silently. The env rungs must be typed `started`, never `completed` — see the
51
51
  * `config-resolution` rule.
52
+ *
53
+ * **`ready` must be a DEDICATED state, never the tracker's default.** `Todo` is
54
+ * where Linear puts a brand-new issue, so mapping `ready` to it inverts the
55
+ * gate — the lane stops meaning "a human flipped this to build-ready" and
56
+ * starts meaning "nobody has touched this", making every untouched backlog item
57
+ * claimable. Measured on the first team migrated: 20 issues in the lane, only 8
58
+ * ever explicitly marked ready. JIRA avoids this because `jira.workflow.ready`
59
+ * is `Ready` while a fresh ticket lands in the project default; this mirrors
60
+ * that. Do not "simplify" it back to `Todo`.
52
61
  */
53
62
  export declare const LINEAR_WORKFLOW_DEFAULTS: JsonValue;
54
63
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle-defaults.d.ts","sourceRoot":"","sources":["../../src/sync/lifecycle-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;CAUvB,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAMtC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAShC,CAAC"}
1
+ {"version":3,"file":"lifecycle-defaults.d.ts","sourceRoot":"","sources":["../../src/sync/lifecycle-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;CAUvB,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAMtC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAShC,CAAC"}
@@ -44,13 +44,22 @@ export const BUILD_LABEL_DEFAULTS = {
44
44
  * is a one-key override.
45
45
  *
46
46
  * A stock Linear team ships `Todo`, `In Progress`, `In Review` and `Done` but
47
- * NOT `Blocked`, `On Dev` or `On Stg`. `lisa-setup-linear` resolves each role
48
- * and offers to create what is missing; it never invents a name silently. The
49
- * env rungs must be typed `started`, never `completed` — see the
47
+ * NOT `Ready`, `Blocked`, `On Dev` or `On Stg`. `lisa-setup-linear` resolves
48
+ * each role and offers to create what is missing; it never invents a name
49
+ * silently. The env rungs must be typed `started`, never `completed` — see the
50
50
  * `config-resolution` rule.
51
+ *
52
+ * **`ready` must be a DEDICATED state, never the tracker's default.** `Todo` is
53
+ * where Linear puts a brand-new issue, so mapping `ready` to it inverts the
54
+ * gate — the lane stops meaning "a human flipped this to build-ready" and
55
+ * starts meaning "nobody has touched this", making every untouched backlog item
56
+ * claimable. Measured on the first team migrated: 20 issues in the lane, only 8
57
+ * ever explicitly marked ready. JIRA avoids this because `jira.workflow.ready`
58
+ * is `Ready` while a fresh ticket lands in the project default; this mirrors
59
+ * that. Do not "simplify" it back to `Todo`.
51
60
  */
52
61
  export const LINEAR_WORKFLOW_DEFAULTS = {
53
- ready: "Todo",
62
+ ready: "Ready",
54
63
  claimed: "In Progress",
55
64
  review: "In Review",
56
65
  blocked: "Blocked",
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle-defaults.js","sourceRoot":"","sources":["../../src/sync/lifecycle-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,KAAK,EAAE,cAAc;IACrB,OAAO,EAAE,oBAAoB;IAC7B,OAAO,EAAE,gBAAgB;IACzB,YAAY,EAAE,cAAc;IAC5B,IAAI,EAAE;QACJ,GAAG,EAAE,eAAe;QACpB,OAAO,EAAE,eAAe;QACxB,UAAU,EAAE,aAAa;KAC1B;CACO,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAc;IACjD,KAAK,EAAE,MAAM;IACb,OAAO,EAAE,aAAa;IACtB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE;CAC/D,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAc;IAC3C,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,SAAS,EAAE,eAAe;IAC1B,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,cAAc;IACxB,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,cAAc;IACxB,QAAQ,EAAE,qBAAqB;CAChC,CAAC"}
1
+ {"version":3,"file":"lifecycle-defaults.js","sourceRoot":"","sources":["../../src/sync/lifecycle-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,KAAK,EAAE,cAAc;IACrB,OAAO,EAAE,oBAAoB;IAC7B,OAAO,EAAE,gBAAgB;IACzB,YAAY,EAAE,cAAc;IAC5B,IAAI,EAAE;QACJ,GAAG,EAAE,eAAe;QACpB,OAAO,EAAE,eAAe;QACxB,UAAU,EAAE,aAAa;KAC1B;CACO,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAc;IACjD,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,aAAa;IACtB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE;CAC/D,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAc;IAC3C,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,SAAS,EAAE,eAAe;IAC1B,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,cAAc;IACxB,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,cAAc;IACxB,QAAQ,EAAE,qBAAqB;CAChC,CAAC"}
@@ -94,6 +94,16 @@ export declare function renderLisaUsageRollupToken(rollup: LisaUsageRollup): str
94
94
  * Render the canonical `## Lisa Usage` section body from direct entries and a
95
95
  * rollup token.
96
96
  *
97
+ * Entry tokens are rendered on their own lines BELOW the visible table, never
98
+ * trailing a table row. Hosts that normalize markdown re-serialize a table from
99
+ * its parsed cell model and discard anything that is not a cell — measured
100
+ * against Linear on 2026-08-04, an HTML comment trailing a table row is
101
+ * destroyed on write while the same comment on its own line round-trips
102
+ * byte-identically. Trailing the row therefore produced a silently unreadable
103
+ * ledger whose surviving rollup token named entries no reader could resolve.
104
+ * Parsing has always been position-agnostic, so sections written in the old
105
+ * layout still enumerate and migrate to this layout on their next rewrite.
106
+ *
97
107
  * @param input Section payload containing direct entries and rollup totals.
98
108
  * @param input.entries Direct entries to render in document order.
99
109
  * @param input.rollup Rollup token to end the section with.
@@ -110,6 +120,38 @@ export declare function renderLisaUsageSection(input: {
110
120
  * @returns Parsed direct entries, rollup token, and the located section range.
111
121
  */
112
122
  export declare function parseLisaUsageSection(document: string): ParsedLisaUsageSection;
123
+ /**
124
+ * Describe one way a stored managed usage section fails to be a readable ledger.
125
+ */
126
+ export interface LisaUsageSectionIntegrityIssue {
127
+ code: "missing-entry-token" | "missing-rollup-token" | "missing-section" | "unrecorded-entry";
128
+ entryIds: readonly string[];
129
+ message: string;
130
+ }
131
+ /**
132
+ *
133
+ */
134
+ export interface LisaUsageSectionIntegrityResult {
135
+ issues: readonly LisaUsageSectionIntegrityIssue[];
136
+ ok: boolean;
137
+ }
138
+ /**
139
+ * Verify that a STORED managed usage section is still a readable ledger.
140
+ *
141
+ * This exists because a write surface can accept a section, report success, and
142
+ * silently destroy part of it. Callers must run this against the bytes read back
143
+ * from the host, never against the payload they sent and never against the
144
+ * mutation's return value — trusting the mutation result is precisely what let a
145
+ * Linear description strip every entry token while reporting `success: true`.
146
+ *
147
+ * @param storedDocument Artifact body or comment body as read back from the host.
148
+ * @param expected Optional expectations from the write that was just performed.
149
+ * @param expected.entryIds Entry ids the caller believes it just persisted.
150
+ * @returns Whether the stored ledger is enumerable, plus every issue found.
151
+ */
152
+ export declare function verifyLisaUsageSectionIntegrity(storedDocument: string, expected?: {
153
+ entryIds?: readonly string[];
154
+ }): LisaUsageSectionIntegrityResult;
113
155
  /**
114
156
  * Append or replace the canonical `## Lisa Usage` section in a markdown
115
157
  * artifact while preserving prior entries that are not being refreshed.
@@ -1 +1 @@
1
- {"version":3,"file":"usage-accounting.d.ts","sourceRoot":"","sources":["../../src/utils/usage-accounting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usage-accounting.d.ts","sourceRoot":"","sources":["../../src/utils/usage-accounting.ts"],"names":[],"mappings":"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"}
@@ -370,6 +370,16 @@ export function renderLisaUsageRollupToken(rollup) {
370
370
  * Render the canonical `## Lisa Usage` section body from direct entries and a
371
371
  * rollup token.
372
372
  *
373
+ * Entry tokens are rendered on their own lines BELOW the visible table, never
374
+ * trailing a table row. Hosts that normalize markdown re-serialize a table from
375
+ * its parsed cell model and discard anything that is not a cell — measured
376
+ * against Linear on 2026-08-04, an HTML comment trailing a table row is
377
+ * destroyed on write while the same comment on its own line round-trips
378
+ * byte-identically. Trailing the row therefore produced a silently unreadable
379
+ * ledger whose surviving rollup token named entries no reader could resolve.
380
+ * Parsing has always been position-agnostic, so sections written in the old
381
+ * layout still enumerate and migrate to this layout on their next rewrite.
382
+ *
373
383
  * @param input Section payload containing direct entries and rollup totals.
374
384
  * @param input.entries Direct entries to render in document order.
375
385
  * @param input.rollup Rollup token to end the section with.
@@ -377,9 +387,10 @@ export function renderLisaUsageRollupToken(rollup) {
377
387
  */
378
388
  export function renderLisaUsageSection(input) {
379
389
  const { entries, rollup } = input;
380
- const entryLines = entries.length === 0
390
+ const entryRows = entries.length === 0
381
391
  ? ["| _No direct entries recorded_ | | | | |"]
382
- : entries.map(entry => `| ${entry.flow} | ${entry.source} | ${entry.provider}/${entry.model} | ${formatEntryTokens(entry)} | ${formatCost(entry.cost, entry.currency)} | ${renderLisaUsageEntryToken(entry)}`);
392
+ : entries.map(entry => `| ${entry.flow} | ${entry.source} | ${entry.provider}/${entry.model} | ${formatEntryTokens(entry)} | ${formatCost(entry.cost, entry.currency)} |`);
393
+ const entryTokenLines = entries.length === 0 ? [] : [...entries.map(renderLisaUsageEntryToken), ""];
383
394
  const lines = [
384
395
  LISA_USAGE_HEADING,
385
396
  "",
@@ -387,8 +398,9 @@ export function renderLisaUsageSection(input) {
387
398
  "",
388
399
  "| Flow | Source | Model | Tokens | Cost |",
389
400
  "| --- | --- | --- | ---: | ---: |",
390
- ...entryLines,
401
+ ...entryRows,
391
402
  "",
403
+ ...entryTokenLines,
392
404
  renderLisaUsageRollupToken(rollup),
393
405
  ];
394
406
  return `${lines.join("\n")}\n`;
@@ -471,6 +483,107 @@ export function parseLisaUsageSection(document) {
471
483
  });
472
484
  return { entries, rollup: parseLisaUsageRollup(section), range };
473
485
  }
486
+ /**
487
+ * Sort ids so an integrity report is deterministic regardless of document order.
488
+ *
489
+ * @param ids Entry ids to normalize.
490
+ * @returns The ids in stable sorted order.
491
+ */
492
+ function sortedIds(ids) {
493
+ return [...ids].sort((left, right) => left > right ? 1 : left < right ? -1 : 0);
494
+ }
495
+ /**
496
+ * Emit an issue only when it actually names something, so callers can compose
497
+ * checks by concatenation instead of conditional accumulation.
498
+ *
499
+ * @param code Stable issue code.
500
+ * @param entryIds Entry ids the issue is about.
501
+ * @param message Operator-readable description.
502
+ * @returns A zero- or one-element issue list.
503
+ */
504
+ function reportIssue(code, entryIds, message) {
505
+ return entryIds.length === 0 ? [] : [{ code, entryIds, message }];
506
+ }
507
+ /**
508
+ * Report entries the caller just wrote that the stored surface cannot produce.
509
+ *
510
+ * @param expectedEntryIds Entry ids the caller believes it persisted.
511
+ * @param parsedEntryIds Entry ids actually parseable from the stored section.
512
+ * @returns Zero or one `missing-entry-token` issue.
513
+ */
514
+ function findDroppedExpectedEntries(expectedEntryIds, parsedEntryIds) {
515
+ const missing = sortedIds(expectedEntryIds.filter(entryId => !parsedEntryIds.has(entryId)));
516
+ return reportIssue("missing-entry-token", missing, `Stored section does not contain a parseable lisa:usage-entry token for: ${missing.join(", ")}. The write surface dropped them.`);
517
+ }
518
+ /**
519
+ * Report rollup references that resolve to no direct entry in the same section.
520
+ *
521
+ * @param rollupEntryIds Entry ids named by the stored rollup token.
522
+ * @param parsedEntryIds Entry ids actually parseable from the stored section.
523
+ * @param alreadyReported Ids already reported as dropped caller expectations.
524
+ * @returns Zero or one `missing-entry-token` issue.
525
+ */
526
+ function findUnresolvableRollupReferences(rollupEntryIds, parsedEntryIds, alreadyReported) {
527
+ const unresolvable = sortedIds(rollupEntryIds.filter(entryId => !parsedEntryIds.has(entryId) && !alreadyReported.includes(entryId)));
528
+ return reportIssue("missing-entry-token", unresolvable, `Rollup direct_entry_ids names entries that cannot be parsed from the same section: ${unresolvable.join(", ")}.`);
529
+ }
530
+ /**
531
+ * Report direct entries the stored rollup token fails to account for.
532
+ *
533
+ * @param rollup Stored rollup token, or null when the section carries none.
534
+ * @param parsedEntryIds Entry ids actually parseable from the stored section.
535
+ * @returns Zero or one issue describing the disagreement.
536
+ */
537
+ function findRollupCoverageGaps(rollup, parsedEntryIds) {
538
+ const entryIds = sortedIds(parsedEntryIds);
539
+ if (rollup === null) {
540
+ // Every section Lisa writes carries a rollup token, even a child-only or
541
+ // fully empty ledger, so a missing token is always corruption -- report
542
+ // it unconditionally rather than routing through reportIssue(), which
543
+ // suppresses issues that name zero entries.
544
+ return [
545
+ {
546
+ code: "missing-rollup-token",
547
+ entryIds,
548
+ message: `Stored section has ${entryIds.length} direct entr${entryIds.length === 1 ? "y" : "ies"} but no lisa:usage-rollup token.`,
549
+ },
550
+ ];
551
+ }
552
+ const recorded = new Set(rollup.directEntryIds);
553
+ const unrecorded = entryIds.filter(entryId => !recorded.has(entryId));
554
+ return reportIssue("unrecorded-entry", unrecorded, `Stored section contains direct entries absent from rollup direct_entry_ids: ${unrecorded.join(", ")}.`);
555
+ }
556
+ /**
557
+ * Verify that a STORED managed usage section is still a readable ledger.
558
+ *
559
+ * This exists because a write surface can accept a section, report success, and
560
+ * silently destroy part of it. Callers must run this against the bytes read back
561
+ * from the host, never against the payload they sent and never against the
562
+ * mutation's return value — trusting the mutation result is precisely what let a
563
+ * Linear description strip every entry token while reporting `success: true`.
564
+ *
565
+ * @param storedDocument Artifact body or comment body as read back from the host.
566
+ * @param expected Optional expectations from the write that was just performed.
567
+ * @param expected.entryIds Entry ids the caller believes it just persisted.
568
+ * @returns Whether the stored ledger is enumerable, plus every issue found.
569
+ */
570
+ export function verifyLisaUsageSectionIntegrity(storedDocument, expected) {
571
+ const parsed = parseLisaUsageSection(storedDocument);
572
+ const expectedEntryIds = expected?.entryIds ?? [];
573
+ if (parsed.range === null) {
574
+ const missing = sortedIds(expectedEntryIds);
575
+ const issues = reportIssue("missing-section", missing, `Stored artifact has no ${LISA_USAGE_HEADING} section, but ${missing.length} usage entr${missing.length === 1 ? "y was" : "ies were"} written to it.`);
576
+ return { ok: issues.length === 0, issues };
577
+ }
578
+ const parsedEntryIds = new Set(parsed.entries.map(entry => entry.entryId));
579
+ const droppedExpected = findDroppedExpectedEntries(expectedEntryIds, parsedEntryIds);
580
+ const issues = [
581
+ ...droppedExpected,
582
+ ...findUnresolvableRollupReferences(parsed.rollup?.directEntryIds ?? [], parsedEntryIds, droppedExpected.flatMap(issue => issue.entryIds)),
583
+ ...findRollupCoverageGaps(parsed.rollup, parsedEntryIds),
584
+ ];
585
+ return { ok: issues.length === 0, issues };
586
+ }
474
587
  /**
475
588
  * Append or replace the canonical `## Lisa Usage` section in a markdown
476
589
  * artifact while preserving prior entries that are not being refreshed.
@@ -1 +1 @@
1
- {"version":3,"file":"usage-accounting.js","sourceRoot":"","sources":["../../src/utils/usage-accounting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usage-accounting.js","sourceRoot":"","sources":["../../src/utils/usage-accounting.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -115,7 +115,7 @@
115
115
  "brace-expansion": ">=5.0.9"
116
116
  },
117
117
  "name": "@codyswann/lisa",
118
- "version": "2.328.2",
118
+ "version": "2.328.4",
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": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.328.2",
3
+ "version": "2.328.4",
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.328.2",
3
+ "version": "2.328.4",
4
4
  "description": "Universal governance: agents, skills, commands, hooks, and rules for all projects.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -30,7 +30,7 @@ read_role() {
30
30
  echo "${local_v:-${global_v:-$default}}"
31
31
  }
32
32
 
33
- READY=$(read_role ready "Todo")
33
+ READY=$(read_role ready "Ready")
34
34
  CLAIMED=$(read_role claimed "In Progress")
35
35
  REVIEW=$(read_role review "In Review")
36
36
  BLOCKED=$(read_role blocked "Blocked")
@@ -68,7 +68,7 @@ else
68
68
  fi
69
69
  ```
70
70
 
71
- In prose below, the role names refer to the resolved **states**: e.g. "the `ready` state" means whatever `linear.workflow.ready` resolves to (default: `Todo`).
71
+ In prose below, the role names refer to the resolved **states**: e.g. "the `ready` state" means whatever `linear.workflow.ready` resolves to (default: `Ready`).
72
72
 
73
73
  ## Why native states, not labels
74
74
 
@@ -110,7 +110,7 @@ ready → claimed → review → done(env-keyed) (downstream)
110
110
  (human/PM) (us claim) (us PR ready) (us build done)
111
111
  ```
112
112
 
113
- (Defaults: `Todo` / `In Progress` / `In Review` / `On Dev`/`On Stg`/`Done`.)
113
+ (Defaults: `Ready` / `In Progress` / `In Review` / `On Dev`/`On Stg`/`Done`.)
114
114
 
115
115
  This skill ONLY transitions `$READY → $CLAIMED` on claim, and `$CLAIMED → $DONE` on completion. It never touches the terminal production `done`, `$REVIEW` (owned by the lifecycle / `lisa-linear-evidence`), or `$BLOCKED` (owned by the pre-flight gate).
116
116
 
@@ -152,7 +152,7 @@ A Linear team can oversee multiple repos (`frontend` / `backend` / `infrastructu
152
152
 
153
153
  #### 3a. Leaf-only claim gate (skip / safe-block containers)
154
154
 
155
- Build intake claims **only independently implementable leaf work units**. This enforces the claim-time arm of the vendor-neutral `leaf-only-lifecycle` rule: a parent/container that still sits in the build-ready state (e.g. moved to `$READY` before this rule existed, or hand-moved on a Project-grouped parent Issue) is **never claimed** — intake skips it or safe-blocks it with a clear lifecycle-repair message. It is the claim-time complement to the write-time labeling in `lisa-linear-write-issue` and the validate-time S15 gate in `lisa-linear-validate-issue`; all three cite the same rule so the classification never drifts. **Never silently implement a container.**
155
+ Build intake claims **only independently implementable leaf work units**. This enforces the claim-time arm of the vendor-neutral `leaf-only-lifecycle` rule: a parent/container that still sits in the build-ready state (e.g. moved to `$READY` before this rule existed, or hand-moved on a Project-grouped parent Issue) is **never claimed** — intake skips it or safe-blocks it with a clear lifecycle-repair message. It is the claim-time complement to the write-time state assignment in `lisa-linear-write-issue` and the validate-time S15 gate in `lisa-linear-validate-issue`; all three cite the same rule so the classification never drifts. **Never silently implement a container.**
156
156
 
157
157
  Run this gate **before** the claim transition, starting with the oldest/highest-priority ready candidate. Do NOT transition, comment "Claimed", or dispatch the lifecycle for an Issue that fails the gate.
158
158
 
@@ -197,11 +197,11 @@ This gate never blocks a legitimate flat Task/Bug: those have no open children a
197
197
 
198
198
  **Rejection detection runs first — before the transition below.** Per the vendor-neutral `rejection-detection` rule (cite the slug; do not restate its classification table), classify this Issue at the **top of 3b, BEFORE** the `$READY → $CLAIMED` transition — afterwards the current-lane signal is gone. Read the Issue's history via `lisa-linear-access operation: history id: <ISSUE-ID>`, keyed on **workflow-state** history, and classify it `rejection-reclaim | forward-only | never-left-ready | unknown` (a `rejection-reclaim` is a move back into `$READY` from a later lane). State names come from `.lisa.config.json`, never hardcoded.
199
199
 
200
- > Reading state history is strictly simpler than the label history this used to key on: `IssueHistory` inlines `fromState.name` / `toState.name` on each node, so the transition is read directly with no label-ID resolution against `list-issue-labels` and no reconstruction from `addedLabelIds`/`removedLabelIds` deltas. That reconstruction was lossy — the deltas carry no prior/next full set — which is one more reason the build lane moved to states. A failing/absent history yields `unknown` and the claim proceeds — detection never blocks the build. Issues carrying a learning marker (`[lisa-learning-drop]` / `[lisa-learning-pr]` / `[lisa-learning-upstream-handoff]`) or the `learning:needs-triage` label are never rejection triggers (no learning-about-learning). Carry the classification into the relabel and lifecycle below.
200
+ > Reading state history is strictly simpler than the label history this used to key on: `IssueHistory` inlines `fromState.name` / `toState.name` on each node, so the transition is read directly with no label-ID resolution against `list-issue-labels` and no reconstruction from `addedLabelIds`/`removedLabelIds` deltas. That reconstruction was lossy — the deltas carry no prior/next full set — which is one more reason the build lane moved to states. A failing/absent history yields `unknown` and the claim proceeds — detection never blocks the build. Issues carrying a learning marker (`[lisa-learning-drop]` / `[lisa-learning-pr]` / `[lisa-learning-upstream-handoff]`) or the `learning:needs-triage` label are never rejection triggers (no learning-about-learning). Carry the classification into the transition and lifecycle below.
201
201
 
202
202
  **On `rejection-reclaim`, reflect before re-implementing** (per `rejection-detection`): read the rejection evidence through the access layer — the Issue comments posted after the backward transition (the QA rejection comment) via `lisa-linear-access operation: list-comments` and the review threads on the rejected PR — assemble ONE candidate learning (rule, why, provenance linking the rejection comment + rejected PR, evidence links, scope hint, triggering issue, fingerprint `sll4-sha1(rule\ntriggering_issue)[:12]`), and route it to the `lisa-persist-learning` skill. If that skill is absent, record the candidate via `lisa-linear-access operation: save-comment` as a comment carrying a **visible prose line plus** the marker (a bare marker renders as an empty bubble) — `Recorded a candidate learning from this rejection (queued for the judgment gate): <one-line candidate rule>.` then `<!-- [lisa-rejection-candidate] key=<issue>-<transition-ts> -->` — and proceed. Dedupe on `<issue>-<backward-transition-timestamp>` — a second re-claim produces no duplicate. Unreadable/absent evidence → no candidate, still implement.
203
203
 
204
- **Claim-time archaeology runs second — after rejection detection, still before the relabel below.** Classify this Issue per the vendor-neutral `claim-archaeology` rule, with the rejection classification above as its input. All shared semantics — ancestry signals, classification, learning-loop exclusion, cost budget, candidate derivation, marker dedupe, and the never-block degrade — live in that one slug; change them there, never here. Linear wiring only: the native relations are already in the read bundle; text-similarity searches run through `lisa-linear-access operation: list-issues` filtered to recently-closed Issues; the fallback candidate comment is posted via `lisa-linear-access operation: save-comment`.
204
+ **Claim-time archaeology runs second — after rejection detection, still before the transition below.** Classify this Issue per the vendor-neutral `claim-archaeology` rule, with the rejection classification above as its input. All shared semantics — ancestry signals, classification, learning-loop exclusion, cost budget, candidate derivation, marker dedupe, and the never-block degrade — live in that one slug; change them there, never here. Linear wiring only: the native relations are already in the read bundle; text-similarity searches run through `lisa-linear-access operation: list-issues` filtered to recently-closed Issues; the fallback candidate comment is posted via `lisa-linear-access operation: save-comment`.
205
205
 
206
206
  Transition the Issue via `lisa-linear-access operation: save-issue` by setting `stateId` to the `$CLAIMED` state. Resolve state IDs via `list-workflow-states`; a missing `$CLAIMED` state is a setup defect (see the pre-flight check) — never create one here.
207
207
 
@@ -355,9 +355,9 @@ Total PRs opened: <n>
355
355
 
356
356
  ## Adoption (one-time per team)
357
357
 
358
- Before this skill can run against a Linear team, the team must have the build-queue workflow states. Run `/lisa:setup:linear`, which resolves each role and offers to create what is missing — a stock Linear team ships `Todo`, `In Progress`, `In Review` and `Done` but **not** `Blocked`, `On Dev` or `On Stg`.
358
+ Before this skill can run against a Linear team, the team must have the build-queue workflow states. Run `/lisa:setup:linear`, which resolves each role and offers to create what is missing — a stock Linear team ships `Todo`, `In Progress`, `In Review` and `Done` but **not** `Ready`, `Blocked`, `On Dev` or `On Stg`.
359
359
 
360
- 1. Ensure states exist for every role in `linear.workflow` (defaults `Todo`, `In Progress`, `In Review`, `Blocked`, `On Dev`, `On Stg`, `Done`). Override any role name in config rather than renaming to match.
360
+ 1. Ensure states exist for every role in `linear.workflow` (defaults `Ready`, `In Progress`, `In Review`, `Blocked`, `On Dev`, `On Stg`, `Done`). Note `ready` is a DEDICATED state, not Linear's default `Todo` — mapping it to the default would make every untouched backlog item claimable. Override any role name in config rather than renaming to match.
361
361
  2. Move Issues to `$READY` when they are ready for development.
362
362
  3. Reserve `$CLAIMED`, `$REVIEW`, `$DONE` for Lisa — humans should not set them manually except to recover from an error.
363
363
  4. Remove the team's `merge → Done` git automation. It is a second writer that jumps an Issue to terminal on a `dev` merge, skipping the env rungs; `/lisa:setup:linear` detects and offers to delete it.
@@ -8,11 +8,12 @@ allowed-tools: ["Bash", "Skill", "Read"]
8
8
 
9
9
  Claim exactly one canonical Linear identifier such as `ENG-123`. All Linear access goes through `lisa-linear-access`. This is the reusable direct-session counterpart of `lisa-linear-build-intake` Phase 3b.
10
10
 
11
- 1. Resolve merged `linear.workspace`, `linear.teamKey`, and Linear build-label roles from local-over-global config. Require the identifier's team key to equal the configured team. Resolve ready and claimed roles from config (defaults `Todo` and `In Progress`); do not hardcode lifecycle decisions.
11
+ 1. Resolve merged `linear.workspace`, `linear.teamKey`, and the Linear build-lifecycle roles from local-over-global config. Require the identifier's team key to equal the configured team. Resolve ready and claimed roles from `linear.workflow` (defaults `Ready` and `In Progress`); do not hardcode lifecycle decisions.
12
12
  2. Invoke `lisa-linear-read-issue <identifier>` immediately before mutation. Reject a completed/canceled issue, active blocker, `repo:<other>` issue, any issue with open sub-Issues, or an Epic per `repo-scope-split` and `leaf-only-lifecycle`.
13
- 3. Inspect live build labels/workflow state:
13
+ 3. Inspect the Issue's live workflow **state**:
14
14
  - Already claimed, review, environment-done, or another configured later non-terminal role -> preserve it and set `claim_outcome: reused`.
15
- - Ready or no build lifecycle label -> invoke `lisa-linear-access operation: save-issue`, remove ready when present, and add claimed (resolve label IDs with `list-issue-labels`, creating claimed only when missing). This is the idempotency lock.
15
+ - In the configured `ready` state -> invoke `lisa-linear-access operation: save-issue` setting `stateId` to the `claimed` state (resolve state IDs with `list-workflow-states`; a missing state is a setup defect, never created here). This is the idempotency lock.
16
+ - In any OTHER non-terminal state -> reject. An Issue that is not in the `ready` state has not been sanctioned for build, and absence of a lifecycle marker is no longer evidence of readiness: since the lane moved to states, every Issue always has one, so "no lifecycle label" is not a state this can observe.
16
17
  - Terminal/completed -> reject; never regress completed work.
17
18
  4. If and only if the Issue is unassigned, resolve the authenticated viewer and set its `assigneeId` through `lisa-linear-access operation: save-issue`. Leave an existing assignee untouched.
18
19
  5. Post this stable comment once through `lisa-linear-access operation: save-comment`, deduped against all existing comments:
@@ -21,7 +22,7 @@ Claim exactly one canonical Linear identifier such as `ENG-123`. All Linear acce
21
22
  [lisa-tracker-claim] Claimed by Lisa. Starting implementation.
22
23
  ```
23
24
 
24
- 6. Invoke `lisa-linear-read-issue <identifier>` again. Success requires a non-terminal, current-repo leaf in claimed or a later non-terminal role. A failed relabel or failed verification is a hard failure and must not authorize a binding.
25
+ 6. Invoke `lisa-linear-read-issue <identifier>` again. Success requires a non-terminal, current-repo leaf in claimed or a later non-terminal role. A failed state transition or failed verification is a hard failure and must not authorize a binding.
25
26
  7. Return `tracker_provider: linear`, canonical `work_item_ref: <IDENTIFIER>`, `claim_outcome: claimed|reused`, assignee outcome, and the post-write status evidence.
26
27
 
27
28
  Never create an Issue here. Never bypass `lisa-linear-access`.
@@ -18,10 +18,10 @@ Callers (planning skills, lifecycle skills) invoke this skill at:
18
18
 
19
19
  | Milestone | What to post |
20
20
  |-----------|--------------|
21
- | Plan created | Plan contents (sections + ordered tasks) as a comment, suggest transition `Backlog → Todo` (label: `Todo`) |
22
- | Implementation in progress | Branch URL + first commit, suggest transition `Todo → In Progress` (label: `In Progress`) |
23
- | PR ready for review | PR URL + summary, the implementation handoff comment, suggest transition `In Progress → In Review` (label: `In Review`) |
24
- | PR merged | Merge SHA + deploy environment (if known), suggest transition `In Review → Done` (label: `Done`), **then run Phase 4b — mandatory when the merge target is a non-terminal env branch** |
21
+ | Plan created | Plan contents (sections + ordered tasks) as a comment, suggest transition `Backlog → Ready` (state: `Ready`) |
22
+ | Implementation in progress | Branch URL + first commit, suggest transition `Ready → In Progress` (state: `In Progress`) |
23
+ | PR ready for review | PR URL + summary, the implementation handoff comment, suggest transition `In Progress → In Review` (state: `In Review`) |
24
+ | PR merged | Merge SHA + deploy environment (if known), suggest transition `In Review → Done` (state: `Done`), **then run Phase 4b — mandatory when the merge target is a non-terminal env branch** |
25
25
 
26
26
  This skill **suggests** transitions and applies them to the native Linear `state` field when the caller asks — the build queue is keyed off states, so the state IS the lane. Without `--update-state` it only suggests; an unasked-for transition remains a human / triage decision.
27
27
 
@@ -60,7 +60,7 @@ Sections:
60
60
 
61
61
  Tasks: 7 ordered items.
62
62
 
63
- Next: implementation begins. Suggested status: **Todo** (label: `Todo`).
63
+ Next: implementation begins. Suggested state: **Ready**.
64
64
  ```
65
65
 
66
66
  ## Phase 3 — Post Comment
@@ -77,20 +77,20 @@ When `$ARGUMENTS` includes `pr_url=<url>` for `pr-ready` or `pr-merged`, ensure
77
77
 
78
78
  The PR branch/title/body identifier is the PR -> Linear side. This phase is the required Linear -> PR side.
79
79
 
80
- ## Phase 4 — Update Status Label (when caller requests)
80
+ ## Phase 4 — Update Workflow State (when caller requests)
81
81
 
82
82
  If the caller passes `--update-state`, set the Issue's `stateId` via `lisa-linear-access operation: save-issue`:
83
83
 
84
- - `plan-created` → add `Todo`
85
- - `implementation-in-progress` → remove `Todo`, add `In Progress`
86
- - `pr-ready` → remove `In Progress`, add `In Review`
87
- - `pr-merged` → remove `In Review`, add `Done`
84
+ - `plan-created` → set state `Ready`
85
+ - `implementation-in-progress` → set state `In Progress`
86
+ - `pr-ready` → set state `In Review`
87
+ - `pr-merged` → set state `Done`
88
88
 
89
- If the requested label doesn't exist on the team, create it via `lisa-linear-access operation: create-issue-label`.
89
+ If the requested STATE doesn't exist on the team, that is a setup defect — report it and point at `/lisa:setup:linear`. Never create a workflow state here: a state carries a `type` and a board position, and guessing either puts the Issue somewhere no human sanctioned.
90
90
 
91
- No single-lane verification is needed: an Issue holds exactly one workflow state by construction, so the two-labels-at-once corruption the old label lane could produce is unrepresentable.
91
+ No single-lane verification is needed: an Issue holds exactly one workflow state by construction, so the two-lanes-at-once corruption the old label-driven lane could produce is unrepresentable. (It was not hypothetical — 16 issues carried two `status:*` labels at the time of the migration.)
92
92
 
93
- Without `--update-state`, this skill posts the comment only and does NOT touch labels.
93
+ Without `--update-state`, this skill posts the comment only and does NOT touch the Issue's state.
94
94
 
95
95
  ## Phase 4b — Reconcile Native Auto-Close (Linear-specific)
96
96
 
@@ -113,26 +113,26 @@ When the caller passes `--rollup`, this skill **derives a parent/container's wor
113
113
 
114
114
  **Evaluate the required children over the env ladder `in-progress < dev < staging < production` (the ordered keys of the Linear env-keyed `done` map, e.g. `On Dev < On Stg < Done`) and take the first match** (canonical roles from `config-resolution`; the Linear state map is `Blocked`, `In Progress`, `In Review`, env-keyed `done`):
115
115
 
116
- | If among the required child leaves… | Derived parent role | Linear label |
116
+ | If among the required child leaves… | Derived parent role | Linear state |
117
117
  |---|---|---|
118
118
  | any child carries `Blocked` | `blocked` | `Blocked` |
119
- | else **every** required child has shipped to some env (each at a `done`-map label, e.g. `On Dev`/`On Stg`/`Done`) | `done[min-env]` | the **least-advanced** env label among them (all `On Stg` → `On Stg`; mixed dev+staging → `On Dev`; all production → `Done`) |
119
+ | else **every** required child has shipped to some env (each at a `done`-map state, e.g. `On Dev`/`On Stg`/`Done`) | `done[min-env]` | the **least-advanced** env state among them (all `On Stg` → `On Stg`; mixed dev+staging → `On Dev`; all production → `Done`) |
120
120
  | else any child has **started** (`In Progress` / `In Review`, or shipped to an env while a sibling has not) | `claimed` | `In Progress` |
121
- | else (children exist, none started) | — | unchanged — parent keeps its non-ready container label |
121
+ | else (children exist, none started) | — | unchanged — parent keeps its non-ready container state |
122
122
 
123
123
  - **Blocked dominates** — one blocked child surfaces `Blocked` on the parent even while siblings progress.
124
124
  - **Least-advanced env wins** — the parent reaches an env only when every required child has reached at least that env; it never sits ahead of its laggard child. Native completion (moving the workflow `state` to Done) fires only when the resolved env is the production `Done`, never at `On Dev`/`On Stg`.
125
125
  - **"Required" children only** — won't-do / optional (e.g. `Canceled`) children do not hold the parent open.
126
126
  - **Recursive** — a Project reaches an env only when its Issues have themselves rolled up to at least that env. Evaluate bottom-up.
127
- - **Never set the parent to `Todo`** — `ready` is leaf-only. Rollup only moves the parent between non-ready container labels.
127
+ - **Never roll a parent into the `ready` state** — `ready` is leaf-only. Rollup only moves the parent between non-ready container states.
128
128
 
129
- **Single-environment collapse (this repo).** The env rungs resolve via the env-keyed `done` logic in `config-resolution`. In this repo `deploy.branches` declares only `production: main`, so `done` collapses to the single `Done` state, the only env rung is production, and the lifecycle is `Todo → In Progress → In Review → Done` with **no** dev/staging promotion hops; the rollup never resolves a dev or staging `done`. Multi-environment projects keep the env-keyed map and roll a parent up to the intermediate env states (`On Dev`/`On Stg`).
129
+ **Single-environment collapse (this repo).** The env rungs resolve via the env-keyed `done` logic in `config-resolution`. In this repo `deploy.branches` declares only `production: main`, so `done` collapses to the single `Done` state, the only env rung is production, and the lifecycle is `Ready → In Progress → In Review → Done` with **no** dev/staging promotion hops; the rollup never resolves a dev or staging `done`. Multi-environment projects keep the env-keyed map and roll a parent up to the intermediate env states (`On Dev`/`On Stg`).
130
130
 
131
131
  **Apply the derived state** via `lisa-linear-access operation: save-issue` (Project or Issue), setting the parent's `stateId` to the derived role. Post an idempotent rollup comment naming the derived state and the child tally. Because the terminal `done` state is itself typed `completed`, a parent rolled to terminal is natively closed by the same write — there is no second closure step. **Safe default:** if the derived terminal cannot be resolved (ambiguous required-set or unresolvable env `done`), do not guess — post the derived suggestion as a comment and leave the parent's state untouched.
132
132
 
133
133
  ## Rules
134
134
 
135
- - Never auto-transition the native Linear `state` only the label, and only when the caller explicitly asks (`--update-state`, or `--rollup` for parent derivation per the `leaf-only-lifecycle` rule).
135
+ - Never transition the Issue's workflow `state` unless the caller explicitly asks (`--update-state`, or `--rollup` for parent derivation per the `leaf-only-lifecycle` rule). Without a flag this skill only SUGGESTS a transition in its comment. The state is the lifecycle lane now, so an unrequested write here would move the item in the build queue.
136
136
  - Rollup derives a *parent's* workflow state from its children and never rolls a parent into the human-owned ready lane (never `$READY`). It cites the `leaf-only-lifecycle` rule by slug rather than restating the state machine.
137
137
  - Never post empty or minimal comments — if a milestone has no meaningful content, skip the post.
138
138
  - Do not delete prior milestone comments. They are the audit trail.