acstack 0.54.0 → 0.54.2

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "acstack",
3
3
  "description": "Agentic coding stack where planning grows only as far as needed: a map of decisions, tasks, checks, and handoffs behind a pluggable tracker.",
4
- "version": "0.54.0",
4
+ "version": "0.54.2",
5
5
  "author": {
6
6
  "name": "ac8318740"
7
7
  },
@@ -363,17 +363,21 @@ Do NOT kill the browser if you connected to an existing one. In `remote` mode th
363
363
 
364
364
  Use the fewest clear words that preserve all necessary information.
365
365
 
366
- ## Answer the reader's question
367
-
368
- - Lead with the answer, recommendation, or result the reader needs
369
- - Give enough context for the reader to understand and act
370
- - A short reply can be a direct sentence or a few bullets
371
- - Add context, a problem statement, or a solution section only when the reader needs it
372
- - Match detail to the audience
373
- - A human needs the facts that change a decision or next action
374
- - An agent handoff needs every constraint required to continue correctly
375
- - A durable document must make sense to someone outside the original conversation
376
- - Preserve necessary qualifications, evidence, errors, security warnings, accessibility requirements, and destructive-action confirmations
366
+ ## Fit the answer to the audience
367
+
368
+ - Start with what the reader knows, what they do not know, and what they need from this answer
369
+ - Lead with the answer, recommendation, or result they need
370
+ - Include only the context needed to understand it and act; repeat known information only when necessary to connect the new information
371
+ - Omit a detail only when it does not affect the reader's understanding, decision, or next action
372
+ - If unsure whether a detail matters, include its essential point briefly rather than relying on the reader to ask
373
+ - When reporting information to the user, be extremely concise and sacrifice grammar for sake of concision
374
+ - A headline or three-word answer is enough when it fully answers the question
375
+ - Use fragments freely; skip introductions, recaps, and supporting detail the user does not need
376
+ - Shorten wording, not meaning; keep conditions and ownership clear
377
+ - Match completeness to the audience, not a length target
378
+ - An agent handoff needs every detail required to continue correctly, without padding
379
+ - A durable document needs enough context and precise wording to stand alone for its intended reader; chat's grammar shortcuts do not apply
380
+ - Preserve necessary qualifications, evidence, errors, security warnings, accessibility requirements, and destructive-action confirmations; concision never overrides required disclosures
377
381
  - Separate the current answer from decision history
378
382
  - State what applies now before explaining how the decision changed
379
383
 
@@ -405,7 +409,7 @@ Use the fewest clear words that preserve all necessary information.
405
409
 
406
410
  ## Write in plain language
407
411
 
408
- - Prefer common, concrete words and natural word order
412
+ - Prefer common, concrete words; use natural word order when it helps understanding
409
413
  - Keep necessary technical terms and define unfamiliar abbreviations
410
414
  - Cut grand claims, filler, repeated points, and metaphors the reader must decode
411
415
  - Use examples when they explain a point faster than an abstract description
@@ -417,20 +421,24 @@ Use the fewest clear words that preserve all necessary information.
417
421
  - Prefer active voice, present-tense descriptions, and direct instructions
418
422
  - Keep passive voice when the actor is unknown or irrelevant
419
423
  - State claims at the strength supported by evidence
420
- - Name sources, checks run, results, and remaining uncertainty
424
+ - Include sources, checks run, results, and uncertainty when the reader needs them to judge the claim or act
425
+ - Keep verification rigorous even when its supporting detail stays out of the report
421
426
  - Explain an important distinction, including what something does not do, when the reader needs it
422
427
  - Use sentence-case headings and restrained emphasis
423
- - Use straight quotes, the Oxford comma, and three periods for an ellipsis
424
- - Use a period, parentheses, or a spaced en dash instead of an em dash
428
+ - Use straight quotes and three periods for an ellipsis; use the Oxford comma in durable prose
429
+ - Prefer parentheses over spaced en dashes for asides; use a period for a separate thought, never an em dash
430
+ - Use short parenthetical clarifications or examples (e.g., a concrete input) when they make something complex or ambiguous easier to understand
425
431
  - Carry meaning in words, not emoji or color alone
426
432
  - Format Markdown so the reader sees the intended grouping
427
433
  - Indent nested bullets four spaces per level and leave a blank line before a list
428
- - Use parallel grammar and consistent punctuation within a list
434
+ - Keep list items parallel in meaning; in durable prose, also use parallel grammar and consistent punctuation
429
435
  - Short bullet fragments need no final period
430
436
 
431
437
  ## Before you send
432
438
 
433
- - Can the reader find the answer without reading every detail?
439
+ - Does this give the reader exactly what they need, given what they already know?
440
+ - Can a headline alone answer the question? If so, stop there.
441
+ - Have you removed unnecessary detail without hiding anything that could change the reader's understanding, decision, or next action?
434
442
  - Does every level summarize the detail below it?
435
443
  - Do siblings answer the same question at the same level?
436
444
  - Can the reader follow the same names from overview to detail?
@@ -81,17 +81,21 @@ Never present a focused PASS as completion of the whole effort.
81
81
 
82
82
  Use the fewest clear words that preserve all necessary information.
83
83
 
84
- ## Answer the reader's question
85
-
86
- - Lead with the answer, recommendation, or result the reader needs
87
- - Give enough context for the reader to understand and act
88
- - A short reply can be a direct sentence or a few bullets
89
- - Add context, a problem statement, or a solution section only when the reader needs it
90
- - Match detail to the audience
91
- - A human needs the facts that change a decision or next action
92
- - An agent handoff needs every constraint required to continue correctly
93
- - A durable document must make sense to someone outside the original conversation
94
- - Preserve necessary qualifications, evidence, errors, security warnings, accessibility requirements, and destructive-action confirmations
84
+ ## Fit the answer to the audience
85
+
86
+ - Start with what the reader knows, what they do not know, and what they need from this answer
87
+ - Lead with the answer, recommendation, or result they need
88
+ - Include only the context needed to understand it and act; repeat known information only when necessary to connect the new information
89
+ - Omit a detail only when it does not affect the reader's understanding, decision, or next action
90
+ - If unsure whether a detail matters, include its essential point briefly rather than relying on the reader to ask
91
+ - When reporting information to the user, be extremely concise and sacrifice grammar for sake of concision
92
+ - A headline or three-word answer is enough when it fully answers the question
93
+ - Use fragments freely; skip introductions, recaps, and supporting detail the user does not need
94
+ - Shorten wording, not meaning; keep conditions and ownership clear
95
+ - Match completeness to the audience, not a length target
96
+ - An agent handoff needs every detail required to continue correctly, without padding
97
+ - A durable document needs enough context and precise wording to stand alone for its intended reader; chat's grammar shortcuts do not apply
98
+ - Preserve necessary qualifications, evidence, errors, security warnings, accessibility requirements, and destructive-action confirmations; concision never overrides required disclosures
95
99
  - Separate the current answer from decision history
96
100
  - State what applies now before explaining how the decision changed
97
101
 
@@ -123,7 +127,7 @@ Use the fewest clear words that preserve all necessary information.
123
127
 
124
128
  ## Write in plain language
125
129
 
126
- - Prefer common, concrete words and natural word order
130
+ - Prefer common, concrete words; use natural word order when it helps understanding
127
131
  - Keep necessary technical terms and define unfamiliar abbreviations
128
132
  - Cut grand claims, filler, repeated points, and metaphors the reader must decode
129
133
  - Use examples when they explain a point faster than an abstract description
@@ -135,20 +139,24 @@ Use the fewest clear words that preserve all necessary information.
135
139
  - Prefer active voice, present-tense descriptions, and direct instructions
136
140
  - Keep passive voice when the actor is unknown or irrelevant
137
141
  - State claims at the strength supported by evidence
138
- - Name sources, checks run, results, and remaining uncertainty
142
+ - Include sources, checks run, results, and uncertainty when the reader needs them to judge the claim or act
143
+ - Keep verification rigorous even when its supporting detail stays out of the report
139
144
  - Explain an important distinction, including what something does not do, when the reader needs it
140
145
  - Use sentence-case headings and restrained emphasis
141
- - Use straight quotes, the Oxford comma, and three periods for an ellipsis
142
- - Use a period, parentheses, or a spaced en dash instead of an em dash
146
+ - Use straight quotes and three periods for an ellipsis; use the Oxford comma in durable prose
147
+ - Prefer parentheses over spaced en dashes for asides; use a period for a separate thought, never an em dash
148
+ - Use short parenthetical clarifications or examples (e.g., a concrete input) when they make something complex or ambiguous easier to understand
143
149
  - Carry meaning in words, not emoji or color alone
144
150
  - Format Markdown so the reader sees the intended grouping
145
151
  - Indent nested bullets four spaces per level and leave a blank line before a list
146
- - Use parallel grammar and consistent punctuation within a list
152
+ - Keep list items parallel in meaning; in durable prose, also use parallel grammar and consistent punctuation
147
153
  - Short bullet fragments need no final period
148
154
 
149
155
  ## Before you send
150
156
 
151
- - Can the reader find the answer without reading every detail?
157
+ - Does this give the reader exactly what they need, given what they already know?
158
+ - Can a headline alone answer the question? If so, stop there.
159
+ - Have you removed unnecessary detail without hiding anything that could change the reader's understanding, decision, or next action?
152
160
  - Does every level summarize the detail below it?
153
161
  - Do siblings answer the same question at the same level?
154
162
  - Can the reader follow the same names from overview to detail?
@@ -94,17 +94,21 @@ Say what stopped you.
94
94
 
95
95
  Use the fewest clear words that preserve all necessary information.
96
96
 
97
- ## Answer the reader's question
98
-
99
- - Lead with the answer, recommendation, or result the reader needs
100
- - Give enough context for the reader to understand and act
101
- - A short reply can be a direct sentence or a few bullets
102
- - Add context, a problem statement, or a solution section only when the reader needs it
103
- - Match detail to the audience
104
- - A human needs the facts that change a decision or next action
105
- - An agent handoff needs every constraint required to continue correctly
106
- - A durable document must make sense to someone outside the original conversation
107
- - Preserve necessary qualifications, evidence, errors, security warnings, accessibility requirements, and destructive-action confirmations
97
+ ## Fit the answer to the audience
98
+
99
+ - Start with what the reader knows, what they do not know, and what they need from this answer
100
+ - Lead with the answer, recommendation, or result they need
101
+ - Include only the context needed to understand it and act; repeat known information only when necessary to connect the new information
102
+ - Omit a detail only when it does not affect the reader's understanding, decision, or next action
103
+ - If unsure whether a detail matters, include its essential point briefly rather than relying on the reader to ask
104
+ - When reporting information to the user, be extremely concise and sacrifice grammar for sake of concision
105
+ - A headline or three-word answer is enough when it fully answers the question
106
+ - Use fragments freely; skip introductions, recaps, and supporting detail the user does not need
107
+ - Shorten wording, not meaning; keep conditions and ownership clear
108
+ - Match completeness to the audience, not a length target
109
+ - An agent handoff needs every detail required to continue correctly, without padding
110
+ - A durable document needs enough context and precise wording to stand alone for its intended reader; chat's grammar shortcuts do not apply
111
+ - Preserve necessary qualifications, evidence, errors, security warnings, accessibility requirements, and destructive-action confirmations; concision never overrides required disclosures
108
112
  - Separate the current answer from decision history
109
113
  - State what applies now before explaining how the decision changed
110
114
 
@@ -136,7 +140,7 @@ Use the fewest clear words that preserve all necessary information.
136
140
 
137
141
  ## Write in plain language
138
142
 
139
- - Prefer common, concrete words and natural word order
143
+ - Prefer common, concrete words; use natural word order when it helps understanding
140
144
  - Keep necessary technical terms and define unfamiliar abbreviations
141
145
  - Cut grand claims, filler, repeated points, and metaphors the reader must decode
142
146
  - Use examples when they explain a point faster than an abstract description
@@ -148,20 +152,24 @@ Use the fewest clear words that preserve all necessary information.
148
152
  - Prefer active voice, present-tense descriptions, and direct instructions
149
153
  - Keep passive voice when the actor is unknown or irrelevant
150
154
  - State claims at the strength supported by evidence
151
- - Name sources, checks run, results, and remaining uncertainty
155
+ - Include sources, checks run, results, and uncertainty when the reader needs them to judge the claim or act
156
+ - Keep verification rigorous even when its supporting detail stays out of the report
152
157
  - Explain an important distinction, including what something does not do, when the reader needs it
153
158
  - Use sentence-case headings and restrained emphasis
154
- - Use straight quotes, the Oxford comma, and three periods for an ellipsis
155
- - Use a period, parentheses, or a spaced en dash instead of an em dash
159
+ - Use straight quotes and three periods for an ellipsis; use the Oxford comma in durable prose
160
+ - Prefer parentheses over spaced en dashes for asides; use a period for a separate thought, never an em dash
161
+ - Use short parenthetical clarifications or examples (e.g., a concrete input) when they make something complex or ambiguous easier to understand
156
162
  - Carry meaning in words, not emoji or color alone
157
163
  - Format Markdown so the reader sees the intended grouping
158
164
  - Indent nested bullets four spaces per level and leave a blank line before a list
159
- - Use parallel grammar and consistent punctuation within a list
165
+ - Keep list items parallel in meaning; in durable prose, also use parallel grammar and consistent punctuation
160
166
  - Short bullet fragments need no final period
161
167
 
162
168
  ## Before you send
163
169
 
164
- - Can the reader find the answer without reading every detail?
170
+ - Does this give the reader exactly what they need, given what they already know?
171
+ - Can a headline alone answer the question? If so, stop there.
172
+ - Have you removed unnecessary detail without hiding anything that could change the reader's understanding, decision, or next action?
165
173
  - Does every level summarize the detail below it?
166
174
  - Do siblings answer the same question at the same level?
167
175
  - Can the reader follow the same names from overview to detail?
@@ -144,17 +144,21 @@ When complete, report:
144
144
 
145
145
  Use the fewest clear words that preserve all necessary information.
146
146
 
147
- ## Answer the reader's question
148
-
149
- - Lead with the answer, recommendation, or result the reader needs
150
- - Give enough context for the reader to understand and act
151
- - A short reply can be a direct sentence or a few bullets
152
- - Add context, a problem statement, or a solution section only when the reader needs it
153
- - Match detail to the audience
154
- - A human needs the facts that change a decision or next action
155
- - An agent handoff needs every constraint required to continue correctly
156
- - A durable document must make sense to someone outside the original conversation
157
- - Preserve necessary qualifications, evidence, errors, security warnings, accessibility requirements, and destructive-action confirmations
147
+ ## Fit the answer to the audience
148
+
149
+ - Start with what the reader knows, what they do not know, and what they need from this answer
150
+ - Lead with the answer, recommendation, or result they need
151
+ - Include only the context needed to understand it and act; repeat known information only when necessary to connect the new information
152
+ - Omit a detail only when it does not affect the reader's understanding, decision, or next action
153
+ - If unsure whether a detail matters, include its essential point briefly rather than relying on the reader to ask
154
+ - When reporting information to the user, be extremely concise and sacrifice grammar for sake of concision
155
+ - A headline or three-word answer is enough when it fully answers the question
156
+ - Use fragments freely; skip introductions, recaps, and supporting detail the user does not need
157
+ - Shorten wording, not meaning; keep conditions and ownership clear
158
+ - Match completeness to the audience, not a length target
159
+ - An agent handoff needs every detail required to continue correctly, without padding
160
+ - A durable document needs enough context and precise wording to stand alone for its intended reader; chat's grammar shortcuts do not apply
161
+ - Preserve necessary qualifications, evidence, errors, security warnings, accessibility requirements, and destructive-action confirmations; concision never overrides required disclosures
158
162
  - Separate the current answer from decision history
159
163
  - State what applies now before explaining how the decision changed
160
164
 
@@ -186,7 +190,7 @@ Use the fewest clear words that preserve all necessary information.
186
190
 
187
191
  ## Write in plain language
188
192
 
189
- - Prefer common, concrete words and natural word order
193
+ - Prefer common, concrete words; use natural word order when it helps understanding
190
194
  - Keep necessary technical terms and define unfamiliar abbreviations
191
195
  - Cut grand claims, filler, repeated points, and metaphors the reader must decode
192
196
  - Use examples when they explain a point faster than an abstract description
@@ -198,20 +202,24 @@ Use the fewest clear words that preserve all necessary information.
198
202
  - Prefer active voice, present-tense descriptions, and direct instructions
199
203
  - Keep passive voice when the actor is unknown or irrelevant
200
204
  - State claims at the strength supported by evidence
201
- - Name sources, checks run, results, and remaining uncertainty
205
+ - Include sources, checks run, results, and uncertainty when the reader needs them to judge the claim or act
206
+ - Keep verification rigorous even when its supporting detail stays out of the report
202
207
  - Explain an important distinction, including what something does not do, when the reader needs it
203
208
  - Use sentence-case headings and restrained emphasis
204
- - Use straight quotes, the Oxford comma, and three periods for an ellipsis
205
- - Use a period, parentheses, or a spaced en dash instead of an em dash
209
+ - Use straight quotes and three periods for an ellipsis; use the Oxford comma in durable prose
210
+ - Prefer parentheses over spaced en dashes for asides; use a period for a separate thought, never an em dash
211
+ - Use short parenthetical clarifications or examples (e.g., a concrete input) when they make something complex or ambiguous easier to understand
206
212
  - Carry meaning in words, not emoji or color alone
207
213
  - Format Markdown so the reader sees the intended grouping
208
214
  - Indent nested bullets four spaces per level and leave a blank line before a list
209
- - Use parallel grammar and consistent punctuation within a list
215
+ - Keep list items parallel in meaning; in durable prose, also use parallel grammar and consistent punctuation
210
216
  - Short bullet fragments need no final period
211
217
 
212
218
  ## Before you send
213
219
 
214
- - Can the reader find the answer without reading every detail?
220
+ - Does this give the reader exactly what they need, given what they already know?
221
+ - Can a headline alone answer the question? If so, stop there.
222
+ - Have you removed unnecessary detail without hiding anything that could change the reader's understanding, decision, or next action?
215
223
  - Does every level summarize the detail below it?
216
224
  - Do siblings answer the same question at the same level?
217
225
  - Can the reader follow the same names from overview to detail?
package/cli/dist/index.js CHANGED
@@ -20275,12 +20275,12 @@ function openDesignLifecycle(root, entry, reviewFile) {
20275
20275
  const staleRendered = doc.sourceRevision !== rendered.sourceRevision;
20276
20276
  const inputs = designMapInputs(root, doc, entry);
20277
20277
  const feedbackPath = reviewFile ? resolve6(reviewFile) : review.reviewPath;
20278
- const latestReceipts = new Map(saved.lifecycle?.reconciliations.map((receipt) => [resolve6(root, receipt.reviewPath), receipt]));
20278
+ const latestReceipts = new Map(saved.lifecycle?.reconciliations.map((receipt) => [historyPath(root, receipt.reviewPath), receipt]));
20279
20279
  const histories = readDesignReviewHistories(root, doc.id);
20280
20280
  histories.set(review.reviewPath, saved);
20281
20281
  const obligations = /* @__PURE__ */ new Set();
20282
20282
  for (const [path, snapshot] of histories) {
20283
- const receipts = new Map(snapshot.lifecycle?.reconciliations.map((receipt) => [resolve6(root, receipt.reviewPath), receipt]));
20283
+ const receipts = new Map(snapshot.lifecycle?.reconciliations.map((receipt) => [historyPath(root, receipt.reviewPath), receipt]));
20284
20284
  for (const [selected, receipt] of receipts) {
20285
20285
  if (selected !== path || snapshot.annotations.length || receipt.decisions.some((decision) => decision.outcome === "needs-human")) obligations.add(selected);
20286
20286
  }
@@ -20293,24 +20293,21 @@ function openDesignLifecycle(root, entry, reviewFile) {
20293
20293
  return { path, snapshot, receipt, fresh };
20294
20294
  });
20295
20295
  const feedback = scopes.find((scope) => scope.path === feedbackPath).snapshot;
20296
- const tuple = {
20297
- sourceRevision: doc.sourceRevision,
20298
- reviewRevision: feedback.revision,
20299
- mapInputsDigest: inputs.mapInputsDigest,
20300
- commentsDigest: digest(scopes.map(({ path, snapshot }) => ({
20301
- path: relative4(root, path).split(sep).join("/"),
20302
- packVersion: snapshot.packVersion,
20303
- revision: snapshot.revision,
20304
- annotations: snapshot.annotations
20305
- })))
20306
- };
20296
+ const commentsDigest = (prefix) => digest(scopes.map(({ path, snapshot }) => ({
20297
+ path: prefix + relative4(root, path).split(sep).join("/"),
20298
+ packVersion: snapshot.packVersion,
20299
+ revision: snapshot.revision,
20300
+ annotations: snapshot.annotations
20301
+ })));
20302
+ const tuple = { sourceRevision: doc.sourceRevision, reviewRevision: feedback.revision, mapInputsDigest: inputs.mapInputsDigest, commentsDigest: commentsDigest("") };
20303
+ const legacyTuple = { ...tuple, commentsDigest: commentsDigest(LEGACY_PREFIX) };
20307
20304
  const unsettled = scopes.find((scope) => (obligations.has(scope.path) || scope.receipt || scope.snapshot.annotations.length) && (!scope.fresh || scope.receipt?.decisions.some((decision) => decision.outcome === "needs-human")));
20308
20305
  let reason;
20309
20306
  if (staleRendered) reason = "Authored source changed. Reopen this revision before reviewing.";
20310
20307
  else if (inputs.blockingQuestions.length) reason = "Unresolved design decisions";
20311
20308
  else if (unsettled) reason = unsettled.fresh ? "Reconciliation needs a human decision" : "Feedback and contributions need explicit reconciliation";
20312
20309
  else if (inputs.contributions.length && !scopes.some((scope) => scope.fresh)) reason = "Feedback and contributions need explicit reconciliation";
20313
- const approved = saved.lifecycle?.approvals.some((item) => sameTuple(item, tuple)) ?? false;
20310
+ const approved = saved.lifecycle?.approvals.some((item) => sameTuple(item, tuple) || sameTuple(item, legacyTuple)) ?? false;
20314
20311
  return {
20315
20312
  ...tuple,
20316
20313
  planning: doc.planning ?? null,
@@ -20381,9 +20378,13 @@ function openDesignLifecycle(root, entry, reviewFile) {
20381
20378
  })
20382
20379
  };
20383
20380
  }
20381
+ function historyPath(root, reviewPath) {
20382
+ return resolve6(root, reviewPath.startsWith(LEGACY_PREFIX) ? reviewPath.slice(LEGACY_PREFIX.length) : reviewPath);
20383
+ }
20384
20384
  function sameTuple(a, b) {
20385
20385
  return a.sourceRevision === b.sourceRevision && a.reviewRevision === b.reviewRevision && a.commentsDigest === b.commentsDigest && a.mapInputsDigest === b.mapInputsDigest;
20386
20386
  }
20387
+ var LEGACY_PREFIX;
20387
20388
  var init_design_lifecycle = __esm({
20388
20389
  "src/lib/design-lifecycle.ts"() {
20389
20390
  "use strict";
@@ -20392,6 +20393,7 @@ var init_design_lifecycle = __esm({
20392
20393
  init_design_map();
20393
20394
  init_design_review();
20394
20395
  init_review_server();
20396
+ LEGACY_PREFIX = ".acstack/";
20395
20397
  }
20396
20398
  });
20397
20399