acstack 0.54.1 → 0.54.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "acstack",
3
- "version": "0.54.1",
3
+ "version": "0.54.3",
4
4
  "private": false,
5
5
  "description": "Agentic coding stack with first-class Claude Code and pi support: skills, orchestrator instructions, and verification agents.",
6
6
  "license": "MIT",
@@ -39,7 +39,7 @@ ACStack keeps project data in the project folder, the path `~/.claude/acstack/bi
39
39
 
40
40
  You do not read `frontend.browser.mode` or `frontend.browser.fallback`. Step 3 asks the ACStack CLI which browser mode to use, and the CLI reads both.
41
41
 
42
- If `<project folder>/project.yaml` has no `frontend` section, report SKIP and exit.
42
+ If `<project folder>/project.yaml` is absent or has no `frontend` section, report SKIP (no configured frontend verification) and exit. Do not create configuration or require setup for general work. Report unreadable or invalid configuration and project-data resolution errors instead of treating them as absent.
43
43
 
44
44
  ## Step 0: Read the knowledge base
45
45
 
@@ -369,17 +369,21 @@ Do NOT kill the browser if you connected to an existing one. In `remote` mode th
369
369
 
370
370
  Use the fewest clear words that preserve all necessary information.
371
371
 
372
- ## Answer the reader's question
373
-
374
- - Lead with the answer, recommendation, or result the reader needs
375
- - Give enough context for the reader to understand and act
376
- - A short reply can be a direct sentence or a few bullets
377
- - Add context, a problem statement, or a solution section only when the reader needs it
378
- - Match detail to the audience
379
- - A human needs the facts that change a decision or next action
380
- - An agent handoff needs every constraint required to continue correctly
381
- - A durable document must make sense to someone outside the original conversation
382
- - Preserve necessary qualifications, evidence, errors, security warnings, accessibility requirements, and destructive-action confirmations
372
+ ## Fit the answer to the audience
373
+
374
+ - Start with what the reader knows, what they do not know, and what they need from this answer
375
+ - Lead with the answer, recommendation, or result they need
376
+ - Include only the context needed to understand it and act; repeat known information only when necessary to connect the new information
377
+ - Omit a detail only when it does not affect the reader's understanding, decision, or next action
378
+ - If unsure whether a detail matters, include its essential point briefly rather than relying on the reader to ask
379
+ - When reporting information to the user, be extremely concise and sacrifice grammar for sake of concision
380
+ - A headline or three-word answer is enough when it fully answers the question
381
+ - Use fragments freely; skip introductions, recaps, and supporting detail the user does not need
382
+ - Shorten wording, not meaning; keep conditions and ownership clear
383
+ - Match completeness to the audience, not a length target
384
+ - An agent handoff needs every detail required to continue correctly, without padding
385
+ - A durable document needs enough context and precise wording to stand alone for its intended reader; chat's grammar shortcuts do not apply
386
+ - Preserve necessary qualifications, evidence, errors, security warnings, accessibility requirements, and destructive-action confirmations; concision never overrides required disclosures
383
387
  - Separate the current answer from decision history
384
388
  - State what applies now before explaining how the decision changed
385
389
 
@@ -411,7 +415,7 @@ Use the fewest clear words that preserve all necessary information.
411
415
 
412
416
  ## Write in plain language
413
417
 
414
- - Prefer common, concrete words and natural word order
418
+ - Prefer common, concrete words; use natural word order when it helps understanding
415
419
  - Keep necessary technical terms and define unfamiliar abbreviations
416
420
  - Cut grand claims, filler, repeated points, and metaphors the reader must decode
417
421
  - Use examples when they explain a point faster than an abstract description
@@ -423,20 +427,24 @@ Use the fewest clear words that preserve all necessary information.
423
427
  - Prefer active voice, present-tense descriptions, and direct instructions
424
428
  - Keep passive voice when the actor is unknown or irrelevant
425
429
  - State claims at the strength supported by evidence
426
- - Name sources, checks run, results, and remaining uncertainty
430
+ - Include sources, checks run, results, and uncertainty when the reader needs them to judge the claim or act
431
+ - Keep verification rigorous even when its supporting detail stays out of the report
427
432
  - Explain an important distinction, including what something does not do, when the reader needs it
428
433
  - Use sentence-case headings and restrained emphasis
429
- - Use straight quotes, the Oxford comma, and three periods for an ellipsis
430
- - Use a period, parentheses, or a spaced en dash instead of an em dash
434
+ - Use straight quotes and three periods for an ellipsis; use the Oxford comma in durable prose
435
+ - Prefer parentheses over spaced en dashes for asides; use a period for a separate thought, never an em dash
436
+ - Use short parenthetical clarifications or examples (e.g., a concrete input) when they make something complex or ambiguous easier to understand
431
437
  - Carry meaning in words, not emoji or color alone
432
438
  - Format Markdown so the reader sees the intended grouping
433
439
  - Indent nested bullets four spaces per level and leave a blank line before a list
434
- - Use parallel grammar and consistent punctuation within a list
440
+ - Keep list items parallel in meaning; in durable prose, also use parallel grammar and consistent punctuation
435
441
  - Short bullet fragments need no final period
436
442
 
437
443
  ## Before you send
438
444
 
439
- - Can the reader find the answer without reading every detail?
445
+ - Does this give the reader exactly what they need, given what they already know?
446
+ - Can a headline alone answer the question? If so, stop there.
447
+ - Have you removed unnecessary detail without hiding anything that could change the reader's understanding, decision, or next action?
440
448
  - Does every level summarize the detail below it?
441
449
  - Do siblings answer the same question at the same level?
442
450
  - Can the reader follow the same names from overview to detail?
@@ -19,7 +19,7 @@ You are read-only: do not edit source, tests, or specs.
19
19
  ## Establish scope and ownership
20
20
 
21
21
  Read the supplied requirements, affected paths, known risks, and available command results.
22
- Read `project.yaml` in the project folder that `~/.claude/acstack/bin/acstack project-data path` prints for commands, directories, environment activation, and applicable frontend gates.
22
+ Read `project.yaml` when present in the project folder that `~/.claude/acstack/bin/acstack project-data path` prints for commands, directories, environment activation, and applicable frontend gates. Without it, discover tooling from repository instructions, manifests, existing tests, and CI under Project configuration in `orchestrator/AGENTS.md`. Do not require setup, invent commands, or bypass invalid config or resolution errors.
23
23
 
24
24
  - Distinguish focused review from ownership of completion verification
25
25
  - If the assignment is unclear, clarify it with the delegating session before duplicating checks
@@ -85,17 +85,21 @@ Never present a focused PASS as completion of the whole effort.
85
85
 
86
86
  Use the fewest clear words that preserve all necessary information.
87
87
 
88
- ## Answer the reader's question
89
-
90
- - Lead with the answer, recommendation, or result the reader needs
91
- - Give enough context for the reader to understand and act
92
- - A short reply can be a direct sentence or a few bullets
93
- - Add context, a problem statement, or a solution section only when the reader needs it
94
- - Match detail to the audience
95
- - A human needs the facts that change a decision or next action
96
- - An agent handoff needs every constraint required to continue correctly
97
- - A durable document must make sense to someone outside the original conversation
98
- - Preserve necessary qualifications, evidence, errors, security warnings, accessibility requirements, and destructive-action confirmations
88
+ ## Fit the answer to the audience
89
+
90
+ - Start with what the reader knows, what they do not know, and what they need from this answer
91
+ - Lead with the answer, recommendation, or result they need
92
+ - Include only the context needed to understand it and act; repeat known information only when necessary to connect the new information
93
+ - Omit a detail only when it does not affect the reader's understanding, decision, or next action
94
+ - If unsure whether a detail matters, include its essential point briefly rather than relying on the reader to ask
95
+ - When reporting information to the user, be extremely concise and sacrifice grammar for sake of concision
96
+ - A headline or three-word answer is enough when it fully answers the question
97
+ - Use fragments freely; skip introductions, recaps, and supporting detail the user does not need
98
+ - Shorten wording, not meaning; keep conditions and ownership clear
99
+ - Match completeness to the audience, not a length target
100
+ - An agent handoff needs every detail required to continue correctly, without padding
101
+ - A durable document needs enough context and precise wording to stand alone for its intended reader; chat's grammar shortcuts do not apply
102
+ - Preserve necessary qualifications, evidence, errors, security warnings, accessibility requirements, and destructive-action confirmations; concision never overrides required disclosures
99
103
  - Separate the current answer from decision history
100
104
  - State what applies now before explaining how the decision changed
101
105
 
@@ -127,7 +131,7 @@ Use the fewest clear words that preserve all necessary information.
127
131
 
128
132
  ## Write in plain language
129
133
 
130
- - Prefer common, concrete words and natural word order
134
+ - Prefer common, concrete words; use natural word order when it helps understanding
131
135
  - Keep necessary technical terms and define unfamiliar abbreviations
132
136
  - Cut grand claims, filler, repeated points, and metaphors the reader must decode
133
137
  - Use examples when they explain a point faster than an abstract description
@@ -139,20 +143,24 @@ Use the fewest clear words that preserve all necessary information.
139
143
  - Prefer active voice, present-tense descriptions, and direct instructions
140
144
  - Keep passive voice when the actor is unknown or irrelevant
141
145
  - State claims at the strength supported by evidence
142
- - Name sources, checks run, results, and remaining uncertainty
146
+ - Include sources, checks run, results, and uncertainty when the reader needs them to judge the claim or act
147
+ - Keep verification rigorous even when its supporting detail stays out of the report
143
148
  - Explain an important distinction, including what something does not do, when the reader needs it
144
149
  - Use sentence-case headings and restrained emphasis
145
- - Use straight quotes, the Oxford comma, and three periods for an ellipsis
146
- - Use a period, parentheses, or a spaced en dash instead of an em dash
150
+ - Use straight quotes and three periods for an ellipsis; use the Oxford comma in durable prose
151
+ - Prefer parentheses over spaced en dashes for asides; use a period for a separate thought, never an em dash
152
+ - Use short parenthetical clarifications or examples (e.g., a concrete input) when they make something complex or ambiguous easier to understand
147
153
  - Carry meaning in words, not emoji or color alone
148
154
  - Format Markdown so the reader sees the intended grouping
149
155
  - Indent nested bullets four spaces per level and leave a blank line before a list
150
- - Use parallel grammar and consistent punctuation within a list
156
+ - Keep list items parallel in meaning; in durable prose, also use parallel grammar and consistent punctuation
151
157
  - Short bullet fragments need no final period
152
158
 
153
159
  ## Before you send
154
160
 
155
- - Can the reader find the answer without reading every detail?
161
+ - Does this give the reader exactly what they need, given what they already know?
162
+ - Can a headline alone answer the question? If so, stop there.
163
+ - Have you removed unnecessary detail without hiding anything that could change the reader's understanding, decision, or next action?
156
164
  - Does every level summarize the detail below it?
157
165
  - Do siblings answer the same question at the same level?
158
166
  - Can the reader follow the same names from overview to detail?
@@ -23,7 +23,9 @@ Implement the assigned requirements under the shared Implementation discipline i
23
23
 
24
24
  ## Project configuration
25
25
 
26
- Read `project.yaml` in the project folder that `~/.claude/acstack/bin/acstack project-data path` prints for project-specific settings:
26
+ Read `project.yaml` when present in the project folder that `~/.claude/acstack/bin/acstack project-data path` prints. Without configuration, discover settings from repository instructions, manifests, existing tests, and CI under Project configuration in `orchestrator/AGENTS.md`; do not require setup or invent commands. Report invalid config and resolution errors rather than bypassing them.
27
+
28
+ Configured settings:
27
29
 
28
30
  - `directories.source` – where to write source code
29
31
  - `directories.tests` – test directory, subject to assigned ownership
@@ -100,17 +102,21 @@ Say what stopped you.
100
102
 
101
103
  Use the fewest clear words that preserve all necessary information.
102
104
 
103
- ## Answer the reader's question
104
-
105
- - Lead with the answer, recommendation, or result the reader needs
106
- - Give enough context for the reader to understand and act
107
- - A short reply can be a direct sentence or a few bullets
108
- - Add context, a problem statement, or a solution section only when the reader needs it
109
- - Match detail to the audience
110
- - A human needs the facts that change a decision or next action
111
- - An agent handoff needs every constraint required to continue correctly
112
- - A durable document must make sense to someone outside the original conversation
113
- - Preserve necessary qualifications, evidence, errors, security warnings, accessibility requirements, and destructive-action confirmations
105
+ ## Fit the answer to the audience
106
+
107
+ - Start with what the reader knows, what they do not know, and what they need from this answer
108
+ - Lead with the answer, recommendation, or result they need
109
+ - Include only the context needed to understand it and act; repeat known information only when necessary to connect the new information
110
+ - Omit a detail only when it does not affect the reader's understanding, decision, or next action
111
+ - If unsure whether a detail matters, include its essential point briefly rather than relying on the reader to ask
112
+ - When reporting information to the user, be extremely concise and sacrifice grammar for sake of concision
113
+ - A headline or three-word answer is enough when it fully answers the question
114
+ - Use fragments freely; skip introductions, recaps, and supporting detail the user does not need
115
+ - Shorten wording, not meaning; keep conditions and ownership clear
116
+ - Match completeness to the audience, not a length target
117
+ - An agent handoff needs every detail required to continue correctly, without padding
118
+ - A durable document needs enough context and precise wording to stand alone for its intended reader; chat's grammar shortcuts do not apply
119
+ - Preserve necessary qualifications, evidence, errors, security warnings, accessibility requirements, and destructive-action confirmations; concision never overrides required disclosures
114
120
  - Separate the current answer from decision history
115
121
  - State what applies now before explaining how the decision changed
116
122
 
@@ -142,7 +148,7 @@ Use the fewest clear words that preserve all necessary information.
142
148
 
143
149
  ## Write in plain language
144
150
 
145
- - Prefer common, concrete words and natural word order
151
+ - Prefer common, concrete words; use natural word order when it helps understanding
146
152
  - Keep necessary technical terms and define unfamiliar abbreviations
147
153
  - Cut grand claims, filler, repeated points, and metaphors the reader must decode
148
154
  - Use examples when they explain a point faster than an abstract description
@@ -154,20 +160,24 @@ Use the fewest clear words that preserve all necessary information.
154
160
  - Prefer active voice, present-tense descriptions, and direct instructions
155
161
  - Keep passive voice when the actor is unknown or irrelevant
156
162
  - State claims at the strength supported by evidence
157
- - Name sources, checks run, results, and remaining uncertainty
163
+ - Include sources, checks run, results, and uncertainty when the reader needs them to judge the claim or act
164
+ - Keep verification rigorous even when its supporting detail stays out of the report
158
165
  - Explain an important distinction, including what something does not do, when the reader needs it
159
166
  - Use sentence-case headings and restrained emphasis
160
- - Use straight quotes, the Oxford comma, and three periods for an ellipsis
161
- - Use a period, parentheses, or a spaced en dash instead of an em dash
167
+ - Use straight quotes and three periods for an ellipsis; use the Oxford comma in durable prose
168
+ - Prefer parentheses over spaced en dashes for asides; use a period for a separate thought, never an em dash
169
+ - Use short parenthetical clarifications or examples (e.g., a concrete input) when they make something complex or ambiguous easier to understand
162
170
  - Carry meaning in words, not emoji or color alone
163
171
  - Format Markdown so the reader sees the intended grouping
164
172
  - Indent nested bullets four spaces per level and leave a blank line before a list
165
- - Use parallel grammar and consistent punctuation within a list
173
+ - Keep list items parallel in meaning; in durable prose, also use parallel grammar and consistent punctuation
166
174
  - Short bullet fragments need no final period
167
175
 
168
176
  ## Before you send
169
177
 
170
- - Can the reader find the answer without reading every detail?
178
+ - Does this give the reader exactly what they need, given what they already know?
179
+ - Can a headline alone answer the question? If so, stop there.
180
+ - Have you removed unnecessary detail without hiding anything that could change the reader's understanding, decision, or next action?
171
181
  - Does every level summarize the detail below it?
172
182
  - Do siblings answer the same question at the same level?
173
183
  - Can the reader follow the same names from overview to detail?
@@ -32,7 +32,9 @@ You write tests from requirements and application programming interface (API) co
32
32
 
33
33
  ## Project configuration
34
34
 
35
- Read `project.yaml` in the project folder that `~/.claude/acstack/bin/acstack project-data path` prints for project-specific settings:
35
+ Read `project.yaml` when present in the project folder that `~/.claude/acstack/bin/acstack project-data path` prints. Without configuration, discover settings from repository instructions, manifests, existing tests, and CI under Project configuration in `orchestrator/AGENTS.md`; do not require setup or invent commands. Report invalid config and resolution errors rather than bypassing them.
36
+
37
+ Configured settings:
36
38
 
37
39
  - `directories.tests` – where to create test files
38
40
  - `directories.source` – source code root (for mirroring structure)
@@ -150,17 +152,21 @@ When complete, report:
150
152
 
151
153
  Use the fewest clear words that preserve all necessary information.
152
154
 
153
- ## Answer the reader's question
154
-
155
- - Lead with the answer, recommendation, or result the reader needs
156
- - Give enough context for the reader to understand and act
157
- - A short reply can be a direct sentence or a few bullets
158
- - Add context, a problem statement, or a solution section only when the reader needs it
159
- - Match detail to the audience
160
- - A human needs the facts that change a decision or next action
161
- - An agent handoff needs every constraint required to continue correctly
162
- - A durable document must make sense to someone outside the original conversation
163
- - Preserve necessary qualifications, evidence, errors, security warnings, accessibility requirements, and destructive-action confirmations
155
+ ## Fit the answer to the audience
156
+
157
+ - Start with what the reader knows, what they do not know, and what they need from this answer
158
+ - Lead with the answer, recommendation, or result they need
159
+ - Include only the context needed to understand it and act; repeat known information only when necessary to connect the new information
160
+ - Omit a detail only when it does not affect the reader's understanding, decision, or next action
161
+ - If unsure whether a detail matters, include its essential point briefly rather than relying on the reader to ask
162
+ - When reporting information to the user, be extremely concise and sacrifice grammar for sake of concision
163
+ - A headline or three-word answer is enough when it fully answers the question
164
+ - Use fragments freely; skip introductions, recaps, and supporting detail the user does not need
165
+ - Shorten wording, not meaning; keep conditions and ownership clear
166
+ - Match completeness to the audience, not a length target
167
+ - An agent handoff needs every detail required to continue correctly, without padding
168
+ - A durable document needs enough context and precise wording to stand alone for its intended reader; chat's grammar shortcuts do not apply
169
+ - Preserve necessary qualifications, evidence, errors, security warnings, accessibility requirements, and destructive-action confirmations; concision never overrides required disclosures
164
170
  - Separate the current answer from decision history
165
171
  - State what applies now before explaining how the decision changed
166
172
 
@@ -192,7 +198,7 @@ Use the fewest clear words that preserve all necessary information.
192
198
 
193
199
  ## Write in plain language
194
200
 
195
- - Prefer common, concrete words and natural word order
201
+ - Prefer common, concrete words; use natural word order when it helps understanding
196
202
  - Keep necessary technical terms and define unfamiliar abbreviations
197
203
  - Cut grand claims, filler, repeated points, and metaphors the reader must decode
198
204
  - Use examples when they explain a point faster than an abstract description
@@ -204,20 +210,24 @@ Use the fewest clear words that preserve all necessary information.
204
210
  - Prefer active voice, present-tense descriptions, and direct instructions
205
211
  - Keep passive voice when the actor is unknown or irrelevant
206
212
  - State claims at the strength supported by evidence
207
- - Name sources, checks run, results, and remaining uncertainty
213
+ - Include sources, checks run, results, and uncertainty when the reader needs them to judge the claim or act
214
+ - Keep verification rigorous even when its supporting detail stays out of the report
208
215
  - Explain an important distinction, including what something does not do, when the reader needs it
209
216
  - Use sentence-case headings and restrained emphasis
210
- - Use straight quotes, the Oxford comma, and three periods for an ellipsis
211
- - Use a period, parentheses, or a spaced en dash instead of an em dash
217
+ - Use straight quotes and three periods for an ellipsis; use the Oxford comma in durable prose
218
+ - Prefer parentheses over spaced en dashes for asides; use a period for a separate thought, never an em dash
219
+ - Use short parenthetical clarifications or examples (e.g., a concrete input) when they make something complex or ambiguous easier to understand
212
220
  - Carry meaning in words, not emoji or color alone
213
221
  - Format Markdown so the reader sees the intended grouping
214
222
  - Indent nested bullets four spaces per level and leave a blank line before a list
215
- - Use parallel grammar and consistent punctuation within a list
223
+ - Keep list items parallel in meaning; in durable prose, also use parallel grammar and consistent punctuation
216
224
  - Short bullet fragments need no final period
217
225
 
218
226
  ## Before you send
219
227
 
220
- - Can the reader find the answer without reading every detail?
228
+ - Does this give the reader exactly what they need, given what they already know?
229
+ - Can a headline alone answer the question? If so, stop there.
230
+ - Have you removed unnecessary detail without hiding anything that could change the reader's understanding, decision, or next action?
221
231
  - Does every level summarize the detail below it?
222
232
  - Do siblings answer the same question at the same level?
223
233
  - Can the reader follow the same names from overview to detail?
package/pi/extension.ts CHANGED
@@ -648,13 +648,9 @@ export default function acstack(pi: ExtensionAPI): void {
648
648
 
649
649
  const orchestratorFile = path.join(packageRoot, "orchestrator", "AGENTS.md");
650
650
  const styleFile = path.join(packageRoot, "output-styles", "ac-writing-style.md");
651
- const isProject = (cwd: string) => {
652
- const folder = projectFolder(undefined, cwd);
653
- return folder !== null && fs.existsSync(path.join(folder, "project.yaml"));
654
- };
655
651
  let warnedSubagents = false;
656
652
 
657
- pi.on("session_start", async (event, ctx) => {
653
+ pi.on("session_start", async (_event, ctx) => {
658
654
  if (!delegated) linkClis(ctx);
659
655
  projectFolders.delete(path.resolve(ctx.cwd));
660
656
  if (projectFolder(ctx, ctx.cwd) === null) return;
@@ -668,10 +664,6 @@ export default function acstack(pi: ExtensionAPI): void {
668
664
  "warning",
669
665
  );
670
666
  }
671
-
672
- if (event.reason === "startup" && !isProject(ctx.cwd)) {
673
- report(ctx, "acstack: no project config found. Run /acstack:setup to set up.");
674
- }
675
667
  });
676
668
 
677
669
  // /acstack map <args> and /acstack:map <args> both run ACStack's own map
@@ -685,9 +677,10 @@ export default function acstack(pi: ExtensionAPI): void {
685
677
  // Every session, like the plugin's skills on Claude Code.
686
678
  if (skillsPrompt) sections["acstack-skills"] = skillsPrompt;
687
679
 
688
- if (isProject(ctx.cwd)) {
680
+ const folder = projectFolder(undefined, ctx.cwd);
681
+ if (folder !== null) {
689
682
  const orchestrator = readText(orchestratorFile);
690
- if (orchestrator) sections["acstack-orchestrator"] = `${orchestratorFor(orchestrator, delegated ? "delegated" : "lead")}\n\nThis repository's ACStack project folder: ${projectFolder(undefined, ctx.cwd)}\n`;
683
+ if (orchestrator) sections["acstack-orchestrator"] = `${orchestratorFor(orchestrator, delegated ? "delegated" : "lead")}\n\nThis repository's ACStack project folder: ${folder}\n`;
691
684
  else report(ctx, `acstack: could not read ${orchestratorFile}`, "warning");
692
685
  }
693
686
 
@@ -45,7 +45,7 @@ For each planned commit:
45
45
 
46
46
  **This step is non-negotiable.** After drafting the commit message but BEFORE creating the commit, spec sync runs automatically.
47
47
 
48
- The project folder is the path `~/.claude/acstack/bin/acstack project-data path` prints. Read `<project folder>/project.yaml` – if `workflow.spec_sync` is `true` (or not explicitly `false`), run spec sync:
48
+ The project folder is the path `~/.claude/acstack/bin/acstack project-data path` prints. Follow Project configuration in `orchestrator/AGENTS.md` for resolution errors and invalid config. If `project.yaml` is absent, commit using repository instructions without creating ACStack records. When present, read it; if `workflow.spec_sync` is `true` (or not explicitly `false`), run spec sync:
49
49
 
50
50
  1. Read `<project folder>/domain-map.yaml` (if exists)
51
51
  2. Map staged files to spec domains
@@ -62,7 +62,7 @@ The project folder is the path `~/.claude/acstack/bin/acstack project-data path`
62
62
 
63
63
  **Skip spec sync ONLY when:**
64
64
 
65
- - `workflow.spec_sync` is explicitly `false` in project.yaml
65
+ - `project.yaml` is absent, or `workflow.spec_sync` is explicitly `false`
66
66
  - No `<project folder>/domain-map.yaml` exists
67
67
  - Changed files don't match any domain
68
68
  - Changes are docs/config only (no behavioral changes)
@@ -104,4 +104,4 @@ If commit fails due to pre-commit hooks:
104
104
  - NEVER use `git add -A` or `git add .` – stage specific files
105
105
  - Always create NEW commits after hook failures
106
106
  - Prefer specific file staging over broad patterns
107
- - Spec sync is MANDATORY – do not skip it unless explicitly disabled in project.yaml
107
+ - Spec sync is MANDATORY when configured project records exist, unless disabled or the skip conditions above apply
@@ -91,9 +91,11 @@ You have full context of the ACStack system. Use it naturally, don't force it.
91
91
 
92
92
  ### Check for context
93
93
 
94
- At the start, quickly check what exists – maps on the configured tracker
95
- (`ls "$(~/.claude/acstack/bin/acstack project-data path)/maps/"` on the files backend) and living specs
96
- (`~/.claude/acstack/bin/acstack list --specs --json`).
94
+ When project configuration exists, check existing maps on its configured tracker
95
+ and existing living specs. Without configuration, explore from repository guidance
96
+ and code without requiring setup or creating records. Follow Project configuration
97
+ in `orchestrator/AGENTS.md` for resolution errors and invalid configuration;
98
+ neither is an absent-config fallback.
97
99
 
98
100
  ### When no map exists
99
101
 
@@ -21,10 +21,13 @@ $ARGUMENTS
21
21
 
22
22
  ### 1. Find the work
23
23
 
24
- Check the configured tracker for maps (`workflow.maps.tracker` in
25
- `<project folder>/project.yaml`, where the project folder is the path
26
- `~/.claude/acstack/bin/acstack project-data path` prints; the map skill's `trackers/` docs declare the
27
- operations – files backend shown below).
24
+ Resolve the project folder with `~/.claude/acstack/bin/acstack project-data path`.
25
+ Preserve reported resolution errors; do not treat them as missing setup.
26
+ When `project.yaml` exists and configures `workflow.maps.tracker`, check that
27
+ tracker for maps (the map skill's `trackers/` docs declare its operations).
28
+ Without configuration, work directly on the request without tracker writes.
29
+ If the request names a map, establish its storage prerequisite first rather
30
+ than silently ignoring it.
28
31
 
29
32
  **A map exists** (or `$ARGUMENTS` names one):
30
33
 
@@ -56,7 +59,10 @@ small unit of work, and nothing has to declare it small.
56
59
 
57
60
  ### 2. Read project configuration
58
61
 
59
- Read `<project folder>/project.yaml` for build/test/lint commands and directory paths.
62
+ Read `<project folder>/project.yaml` when present. Otherwise discover commands,
63
+ directories, and environment activation from repository instructions, manifests,
64
+ existing tests, and CI, under Project configuration in `orchestrator/AGENTS.md`.
65
+ Do not invent commands or treat invalid configuration as absent.
60
66
 
61
67
  ### 3. Create feature branch
62
68
 
@@ -32,6 +32,8 @@ Load that context before your first edit under `frontend.directory`. Load it onc
32
32
 
33
33
  **Check the design gate first**
34
34
 
35
+ This pass requires project configuration with a `frontend` section. If configuration is absent, skip this optional pass and use discovered repository checks; do not require setup. Follow Project configuration in `orchestrator/AGENTS.md` for invalid configuration and resolution errors rather than silently skipping them.
36
+
35
37
  The design gate is the set of optional checks impeccable adds to acstack's pipeline. `workflow.design_review` in `<project folder>/project.yaml` turns the gate on; the project folder is the path `~/.claude/acstack/bin/acstack project-data path` prints. Ask acstack for the answer:
36
38
 
37
39
  ```bash
@@ -24,7 +24,11 @@ Two backends ship in this skill's directory: `trackers/github.md` for repos
24
24
  with GitHub auth, and `trackers/files.md` as the fallback.
25
25
 
26
26
  ACStack keeps project data in the project folder, the path
27
- `~/.claude/acstack/bin/acstack project-data path` prints.
27
+ `~/.claude/acstack/bin/acstack project-data path` prints. If `project.yaml` is
28
+ absent, chart in conversation without tracker writes. Before persisting a map,
29
+ ask the user to establish its project settings through `/acstack:setup`;
30
+ do not create configuration implicitly. Invalid configuration or resolution
31
+ errors require repair under Project configuration in `orchestrator/AGENTS.md`.
28
32
  `workflow.maps.tracker` in `<project folder>/project.yaml` (`github` or `files`) records
29
33
  the project's choice. If the key names a backend, read the matching doc and use
30
34
  its operations. If the key is absent, pick at materialisation time – the moment
@@ -34,8 +38,8 @@ Recommend `github` when the repo qualifies, `files` otherwise. Confirm the
34
38
  choice with the user. Then write the key, so later sessions need not re-decide.
35
39
  ## Which mode
36
40
 
37
- One command runs two modes, and what already exists picks between them. Check
38
- the configured tracker for existing maps – `ls "$(~/.claude/acstack/bin/acstack project-data path)/maps/"` on the files
41
+ One command runs two modes, and what already exists picks between them. When
42
+ a tracker is configured, check it for existing maps – `ls "$(~/.claude/acstack/bin/acstack project-data path)/maps/"` on the files
39
43
  backend, `gh label list --search "map:" --json name` on GitHub.
40
44
 
41
45
  If `$ARGUMENTS` names a map, or exactly one exists, work its frontier – the
@@ -59,14 +59,14 @@ git status --short
59
59
  git log --oneline -3 # recent context
60
60
  ```
61
61
 
62
- Read `<project folder>/project.yaml` to understand the project's directory layout, commands, and conventions. ACStack keeps it in the project folder, the path `~/.claude/acstack/bin/acstack project-data path` prints.
62
+ Read `<project folder>/project.yaml` when present to understand directories, commands, and conventions. The project folder is the path `~/.claude/acstack/bin/acstack project-data path` prints. Without configuration, discover these from repository instructions, manifests, existing tests, and CI under Project configuration in `orchestrator/AGENTS.md`; do not require setup. Report resolution errors or invalid config rather than treating them as absent.
63
63
 
64
- Categorize changed files into scopes using the project configuration:
64
+ Categorize changed files using configured or discovered directories:
65
65
 
66
- - **source**: files under `directories.source` from project.yaml
67
- - **frontend**: files under `frontend.directory` from project.yaml (if configured)
66
+ - **source**: files under configured `directories.source`, or discovered source directories
67
+ - **frontend**: files under configured `frontend.directory`, or discovered frontend directories
68
68
  - **config**: `*.yaml`, `*.toml`, `*.json`, config files, etc.
69
- - **tests**: files under `directories.tests` from project.yaml
69
+ - **tests**: files under configured `directories.tests`, or discovered test directories
70
70
  - **other**: everything else
71
71
 
72
72
  Judge changes by effect, including behavior changed through config, assets, or shipped guidance.
@@ -85,7 +85,7 @@ Read `../../output-styles/ac-writing-style.md` relative to this skill directory;
85
85
  **Living specs and architecture:**
86
86
 
87
87
  ```
88
- Read the living specs relevant to this change:
88
+ Read existing living specs relevant to this change; skip if none exist:
89
89
  - Check the <project folder>/specs/ directory listing
90
90
  - Read spec.md files for domains touched by the changed files
91
91
  (use <project folder>/domain-map.yaml to map files -> domains)
@@ -95,9 +95,11 @@ Apply the shared policy to the minimal fix.
95
95
  ## Step 6: Verify
96
96
 
97
97
  Use focused regression checks while fixing. One verification owner gathers the
98
- required final checks from `project.yaml` in the project folder, the path `~/.claude/acstack/bin/acstack project-data path` prints, under Build verification in
99
- `orchestrator/AGENTS.md`, reusing valid evidence rather than rerunning commands
100
- for every fix or handoff.
98
+ required final checks under Build verification in `orchestrator/AGENTS.md`,
99
+ using `project.yaml` when present or discovered repository tooling when absent.
100
+ Follow its Project configuration policy for resolution errors and invalid config;
101
+ do not require setup for a general fix. Reuse valid evidence rather than rerunning
102
+ commands for every fix or handoff.
101
103
 
102
104
  Preserve configured frontend gates. Do not claim completion with failed or blocked
103
105
  required checks or unverified configured browser behavior.
@@ -7,7 +7,7 @@ description: Test placement rules and framework conventions. Invoke before writi
7
7
 
8
8
  ## Decision Tree: Where Does My Test Go?
9
9
 
10
- Read `<project folder>/project.yaml` for `directories.source`, `directories.tests`, and `frontend` config. The project folder is the path `~/.claude/acstack/bin/acstack project-data path` prints.
10
+ Read `<project folder>/project.yaml` when present for `directories.source`, `directories.tests`, and `frontend`. The project folder is the path `~/.claude/acstack/bin/acstack project-data path` prints. Without config, follow repository instructions and existing tests for placement and runner commands; use the examples below only where they fit that project. Follow Project configuration in `orchestrator/AGENTS.md` for invalid config or resolution errors, not a silent fallback.
11
11
 
12
12
  ```
13
13
  Backend code? → <tests-dir>/<mirror-source-path>/test_<module>.py
@@ -32,7 +32,7 @@ Mirror the source directory structure. Example: `src/auth/sessions.py` → `test
32
32
  Colocated with source. Example: `src/hooks/useAuth.ts` → `src/hooks/__tests__/useAuth.test.ts`.
33
33
 
34
34
  - Components: `.test.tsx`, pure functions: `.test.ts`
35
- - Run with `frontend.commands.test` from project.yaml
35
+ - Run with configured `frontend.commands.test`, or the discovered repository test command
36
36
 
37
37
  ## Layer 3: E2E Tests (Browser)
38
38
 
@@ -2,10 +2,20 @@
2
2
 
3
3
  These examples apply the shared communication standard in `../../output-styles/ac-writing-style.md` without prescribing one shape for every answer.
4
4
 
5
- ## A short reply needs only the answer
5
+ ## Fit the answer to what the reader needs
6
6
 
7
- - Write: The build passes
8
- - Avoid: `## Context`, `## Problem`, and `## Solution` sections to report a successful build
7
+ - Asked whether the build passed: `Build passes`
8
+ - Avoid: Listing commands, timings, and passing checks when the result alone answers the question
9
+ - Asked whether the change is ready: `Tests pass; permission to deploy still needed`
10
+ - Avoid: `Tests pass` when that hides a blocker; keep any detail that changes the reader's understanding, decision, or next action
11
+ - If unsure whether a caveat matters, include its essential point briefly
12
+ - Asked five yes/no questions: give five short answers in the same order, not five explanations
13
+ - Asked which backend works offline, after discussing the options: `Files backend`
14
+ - Avoid: Repeating the options and their trade-offs when the reader already knows them
15
+ - Handing work to another agent: include the files, constraints, checked behavior, blockers, and next action needed to continue
16
+ - Avoid: `Use files backend` as a handoff when the receiving agent lacks the decision's context
17
+
18
+ Reports to the user can use fragments. Durable documents need precise wording and enough context for their intended reader to understand them without the conversation.
9
19
 
10
20
  ## Preserve the reason when it changes the action
11
21
 
@@ -82,5 +92,7 @@ The second makes the reader guess whether the names identify the same thing.
82
92
  - Keep a connected explanation in prose when splitting it would hide the causal relationship
83
93
  - Indent nested Markdown bullets four spaces and leave a blank line before a list
84
94
  - Write `## Before you finish`, not `## Before You Finish.`
85
- - Write `proposals, designs, and tasks`, with the Oxford comma
95
+ - In durable prose, write `proposals, designs, and tasks`, with the Oxford comma
86
96
  - Report `12 tests pass` in words rather than relying on an icon
97
+ - Prefer parentheses for asides: `Use the local backend (no network needed)`
98
+ - Add a short parenthetical example when it clarifies ambiguity: `Reject reserved names (e.g., CON on Windows)`