acstack 0.48.3 → 0.49.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/cli/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "acstack-cli",
3
- "version": "0.48.3",
3
+ "version": "0.49.0",
4
4
  "description": "CLI for the ACStack agentic coding stack",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -9,7 +9,7 @@
9
9
  },
10
10
  "repository": {
11
11
  "type": "git",
12
- "url": "git+https://github.com/ac8318740/spechub.git",
12
+ "url": "git+https://github.com/ac8318740/acstack.git",
13
13
  "directory": "cli"
14
14
  },
15
15
  "bin": {
@@ -55,7 +55,7 @@
55
55
  "yaml": "^2.7.0",
56
56
  "zod": "^3.24.0"
57
57
  },
58
- "homepage": "https://github.com/ac8318740/spechub/tree/main/cli",
58
+ "homepage": "https://github.com/ac8318740/acstack/tree/main/cli",
59
59
  "keywords": [
60
60
  "agentic-coding",
61
61
  "acstack",
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "acstack",
3
- "version": "0.48.3",
3
+ "version": "0.49.0",
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",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "git+https://github.com/ac8318740/spechub.git"
9
+ "url": "git+https://github.com/ac8318740/acstack.git"
10
10
  },
11
11
  "keywords": [
12
12
  "pi-package",
@@ -131,6 +131,9 @@ dispose – closed issues are already the archive.
131
131
  Also dispose of `acstack/handoffs/<name>/` if it exists. Consumed handoffs
132
132
  hold conversation content and should not outlive the map they served.
133
133
 
134
+ Also dispose of `acstack/alignment-packs/<safe-map>/` if it exists. Alignment
135
+ packs are local review artifacts. Step 3 already verified the durable residue.
136
+
134
137
  Delete the map's decision log, `<main checkout>/acstack/.decisions/<name>.tsv`,
135
138
  on either tracker. Step 3 already extracted what it held. Leave the directory
136
139
  and its `.gitignore` for the next map.
@@ -109,7 +109,8 @@ the tracker's `update` and `create` operations:
109
109
 
110
110
  2. Create a node for each new question the answer surfaced, with `answers`
111
111
  naming the node that surfaced it. Mark precise questions `open`; mark the
112
- rest `fog`.
112
+ rest `fog`. If fog does not change the alignment artifact, write the
113
+ evidence or event that reopens it.
113
114
 
114
115
  3. Invoke the `record-context` skill for each resolution – it decides whether
115
116
  the decision earns an ADR, a glossary term, both, or neither.
@@ -44,6 +44,15 @@ These are the workable nodes: open, unblocked, and containing no decision.
44
44
  Pull them regardless of depth – work can hang anywhere, including straight
45
45
  off the root.
46
46
 
47
+ Before claiming one, check whether the map is ready to build from:
48
+
49
+ - If any `fog` node changes the alignment artifact, stop and point the user at
50
+ `/acstack:map`.
51
+ - If `workflow.alignment_packs.approval_gate` is true and no reviewer approved
52
+ the alignment artifact, stop and point the user at `/acstack:map`.
53
+ - If a `fog` node needs later evidence and does not change the artifact, leave
54
+ it on the map with its reopening trigger.
55
+
47
56
  If the frontier holds only `hitl` nodes – human in the loop, meaning a
48
57
  person must answer them – stop and point the user at `/acstack:map`. Those
49
58
  need a human, not a pipeline.
@@ -186,9 +195,11 @@ With no map, skip the tracker write – still invoke `record-context` when a
186
195
  decision landed. With a map, then:
187
196
 
188
197
  - Invoke `record-context` – implementation decisions can earn ADRs too.
189
- - Create nodes for anything the work surfaced (a question found mid-build is
190
- `hitl`, `--answers <this node>`).
191
-
198
+ - Classify anything the work surfaced:
199
+ - Agent-clearable fog gets research, tests, or a throwaway prototype.
200
+ - Design-changing fog becomes a `hitl` node and returns to `/acstack:map`.
201
+ - Local fog that does not change the artifact stays inside the claim notes.
202
+ - Rebuild or rerun the alignment review when the work changes the artifact.
192
203
  - Recompute the frontier – resolutions unblock nodes.
193
204
 
194
205
  ### 7. Build verification
@@ -20,12 +20,8 @@ Nodes live behind a pluggable tracker. A backend declares four operations –
20
20
  create, read, update, list. ACStack builds everything else from those four:
21
21
  frontier, claim, resolve and walk.
22
22
 
23
- Two backends ship, each declared in this skill's directory:
24
-
25
- | Backend | Doc | When |
26
- | ------- | --- | ---- |
27
- | GitHub issues | `trackers/github.md` | first choice when `gh` holds a login for the repo's GitHub remote |
28
- | Files | `trackers/files.md` | the fallback – no auth, offline, any remote |
23
+ Two backends ship in this skill's directory: `trackers/github.md` for repos
24
+ with GitHub auth, and `trackers/files.md` as the fallback.
29
25
 
30
26
  `workflow.maps.tracker` in `acstack/project.yaml` (`github` or `files`) records
31
27
  the project's choice. If the key names a backend, read the matching doc and use
@@ -34,7 +30,6 @@ you first write the map's nodes down.
34
30
 
35
31
  Recommend `github` when the repo qualifies, `files` otherwise. Confirm the
36
32
  choice with the user. Then write the key, so later sessions need not re-decide.
37
-
38
33
  ## Which mode
39
34
 
40
35
  One command runs two modes, and what already exists picks between them. Check
@@ -45,10 +40,8 @@ If `$ARGUMENTS` names a map, or exactly one exists, work its frontier – the
45
40
  nodes ready to work now. If none exists, chart. If several exist and
46
41
  `$ARGUMENTS` does not pick one, ask.
47
42
 
48
- There are no tiers and no complexity judgement.
49
-
50
- One question is a small map or no map at all. Fifty questions is a long
51
- effort. Nothing declares which.
43
+ There are no tiers. One question is a small map or no map. Fifty questions is
44
+ still one map.
52
45
 
53
46
  ## Charting
54
47
 
@@ -71,18 +64,18 @@ effort. Nothing declares which.
71
64
  sharp. The test is whether you can *state* the question precisely, not
72
65
  whether you can answer it.
73
66
 
74
- ### Progressive materialisation
67
+ 5. **Classify fog.** Read `alignment.md`. Blocking fog changes the alignment
68
+ artifact. Deferred fog does not.
75
69
 
76
- The machinery appears only when it has to persist. After the opening grill:
77
-
78
- - **No fog surfaced** – the way was already clear. No map. Say so and proceed
79
- to the work.
70
+ ### Progressive materialisation
80
71
 
81
- - **At most one session's worth** – settle it in conversation. Invoke
82
- `record-context` on each decision. No map – there is nothing to resume.
72
+ The machinery appears only when it must persist. After the opening grill:
83
73
 
84
- - **More than one session's worth** – materialise the map and work the
85
- frontier across sessions.
74
+ - **No fog surfaced** – say so and proceed to the work
75
+ - **At most one session's worth** – settle it in conversation and invoke
76
+ `record-context` on each decision
77
+ - **More than one session's worth** – materialise the map and work the frontier
78
+ across sessions
86
79
 
87
80
  The test is mechanical. Will the fog outlive this session?
88
81
 
@@ -148,6 +141,8 @@ operation. First the root:
148
141
  diagrams below. A parent draws its subtree, so nothing can draw one earlier.
149
142
  The root is a parent too, and it draws the whole map.
150
143
 
144
+ - Apply `alignment.md` after diagrams are current. Build the artifact, run the
145
+ review gate, and start implementation only after approval.
151
146
  - On the files backend, suggest adding `acstack/maps/` to `.gitignore`
152
147
  (`trackers/files.md` gives the reason).
153
148
 
@@ -208,10 +203,12 @@ the list, marked `skip: <reason>`.
208
203
  5. **After every resolution**, in order:
209
204
  - Invoke `record-context`
210
205
  - Create nodes for anything the resolution surfaced
206
+ - Classify new fog by whether it changes the alignment artifact
211
207
  - Create the critique node when the resolved node changed the frontend,
212
208
  per `frontend.md`
213
209
  - Regenerate the diagram on the resolved node's parent (see Regenerating
214
210
  diagrams)
211
+ - Rebuild or rerun the alignment review when the artifact changes
215
212
  - Recompute the frontier
216
213
 
217
214
  The regeneration comes after the new nodes exist. A surfaced node hangs
@@ -238,10 +235,13 @@ diagram).
238
235
 
239
236
  ## Done
240
237
 
241
- The map clears when the frontier is empty and no fog remains. The durable
242
- residue is what the map leaves behind – the living specs through commit-time
243
- sync, the ADRs and glossary entries through `record-context`. You have already
244
- extracted it along the way.
238
+ The map clears when the frontier is empty and no fog remains. Deferred fog can
239
+ let implementation start, but archive still needs an answer or an out-of-scope
240
+ resolution.
241
+
242
+ The durable residue is what the map leaves behind – the living specs through
243
+ commit-time sync, the ADRs and glossary entries through `record-context`. You
244
+ have already extracted it along the way.
245
245
 
246
246
  Report what the map settled. Point at anything the map left `out-of-scope`.
247
247
 
@@ -0,0 +1,38 @@
1
+ # Alignment review
2
+
3
+ The alignment artifact is the human-readable end-state view that the CLI renders from the map.
4
+
5
+ ## Fog classes
6
+
7
+ - Blocking fog changes the artifact
8
+ - Deferred fog needs later evidence, or sits below the level the artifact must settle
9
+ - Clear blocking fog before implementation starts
10
+ - Leave deferred fog on the map with the evidence or event that reopens it
11
+ - Never defer fog because asking feels inconvenient
12
+
13
+ ## Review gate
14
+
15
+ Build the artifact after diagrams are current:
16
+
17
+ ```bash
18
+ ~/.claude/acstack/bin/acstack map --map <name>
19
+ ```
20
+
21
+ The artifact is disposable. The map remains the source of truth.
22
+
23
+ Run the review before implementation when `workflow.alignment_packs.approval_gate` is true:
24
+
25
+ ```bash
26
+ ~/.claude/acstack/bin/acstack align-viewer --map <name>
27
+ ```
28
+
29
+ If the review requests changes, read the feedback file the command prints.
30
+ Update the map, regenerate the diagrams, and rerun the review.
31
+
32
+ Start implementation only after the reviewer approves the artifact, or after the project disables the approval gate.
33
+
34
+ ## New fog during implementation
35
+
36
+ - If new fog changes the artifact, return to `/acstack:map`
37
+ - If new fog does not change the artifact, keep working with a local note
38
+ - Rebuild or rerun the review when implementation changes the artifact