acstack 0.47.1 → 0.48.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.47.1",
3
+ "version": "0.48.0",
4
4
  "description": "CLI for the ACStack agentic coding stack",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -25,7 +25,7 @@
25
25
  "node": ">=20.0.0"
26
26
  },
27
27
  "scripts": {
28
- "build": "npm run sync-version && node build.mjs",
28
+ "build": "npm run sync-version && node scripts/build-viewer.mjs && node build.mjs",
29
29
  "dev": "node build.mjs --watch",
30
30
  "typecheck": "tsc --noEmit",
31
31
  "lint": "eslint src/",
@@ -36,11 +36,19 @@
36
36
  "devDependencies": {
37
37
  "@eslint/js": "^9.39.5",
38
38
  "@types/node": "^22.0.0",
39
+ "@types/react": "^19.3.0",
40
+ "@types/react-dom": "^19.3.0",
41
+ "@xyflow/react": "^12.12.0",
39
42
  "chalk": "^5.4.0",
40
43
  "commander": "^14.0.0",
44
+ "elkjs": "^0.12.0",
41
45
  "esbuild": "^0.24.0",
42
46
  "eslint": "^9.39.5",
43
47
  "fast-glob": "^3.3.0",
48
+ "lucide-react": "^1.55.0",
49
+ "react": "^19.3.0",
50
+ "react-dom": "^19.3.0",
51
+ "react-markdown": "^10.1.0",
44
52
  "typescript": "^5.7.0",
45
53
  "typescript-eslint": "^8.67.0",
46
54
  "vitest": "^3.0.0",
@@ -0,0 +1,11 @@
1
+ # Alignment packs use local viewers
2
+
3
+ Alignment packs must not depend on a remote viewer or remote script. ACStack can open a generated pack in a local browser, including through a localhost server.
4
+
5
+ ## Considered options
6
+
7
+ A pinned remote viewer keeps generated files smaller. It also makes review depend on network access and trust in a hosted script.
8
+
9
+ ## Consequences
10
+
11
+ ACStack must inline or vendor the viewer code it needs. A Herdr-style terminal view can follow later if a clean graph viewer exists.
package/docs/adr/index.md CHANGED
@@ -15,3 +15,4 @@
15
15
  - [0015](0015-a-node-id-links-to-its-issue-through-an-anchor.md) – A node id links to its issue through an anchor
16
16
  - [0016](0016-the-map-root-carries-no-status-of-its-own.md) – The map root carries no status of its own
17
17
  - [0017](0017-call-impeccable-copy-only-its-questions.md) – Call impeccable's command line, and copy only its question sets
18
+ - [0018](0018-alignment-packs-use-local-viewers.md) – Alignment packs use local viewers
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "acstack",
3
- "version": "0.47.1",
3
+ "version": "0.48.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",
@@ -94,7 +94,7 @@ operation. First the root:
94
94
  ```bash
95
95
  # files backend – github.md has the equivalent
96
96
  ~/.claude/acstack/bin/acstack node create --map <name> --title "<destination>" \
97
- --kind destination --label "<at most four words>" \
97
+ --kind destination --label "<at most four words>" --summary "<one sentence>" \
98
98
  --body "<the destination, as settled>"
99
99
  ```
100
100
 
@@ -111,9 +111,9 @@ operation. First the root:
111
111
  - On GitHub, every node body opens with a header line that encodes its edges.
112
112
  `trackers/github.md` holds the format. The files backend writes none.
113
113
 
114
- - Every node carries a `kind` and a `label`, both required. A `label` is the
115
- node's short name for a diagram. `trackers/files.md` holds the kinds, the
116
- caps, and the contract the CLI enforces.
114
+ - Every node carries a required `kind` and `label`, its short diagram name.
115
+ Work nodes and the destination add a one-sentence business `--summary`.
116
+ `trackers/files.md` holds the kinds, the caps, and the CLI's contract.
117
117
 
118
118
  - Every node body carries a diagram, two at most. A childless `notes` node is
119
119
  the one exception.
@@ -16,15 +16,18 @@ To enumerate a project's maps: `ls acstack/maps/`.
16
16
 
17
17
  | Operation | Command |
18
18
  | --------- | ------- |
19
- | create | `acstack node create --map <name> --title <t> --kind <k> --label <l> [--status] [--mode] [--answers <id>] [--blocked-by <ids>] [--pinned] [--body <md>] [--body-file <path>]` |
19
+ | create | `acstack node create --map <name> --title <t> --kind <k> --label <l> [--summary <s>] [--status] [--mode] [--answers <id>] [--blocked-by <ids>] [--pinned] [--body <md>] [--body-file <path>]` |
20
20
  | read | `acstack node read <id> --map <name> [--json] [--visuals]` |
21
- | update | `acstack node update <id> --map <name> [--title] [--status] [--mode] [--kind] [--label] [--answers] [--blocked-by] [--pinned true\|false] [--body] [--body-file] [--append-body]` |
21
+ | update | `acstack node update <id> --map <name> [--title] [--status] [--mode] [--kind] [--label] [--summary] [--answers] [--blocked-by] [--pinned true\|false] [--body] [--body-file] [--append-body]` |
22
22
  | list | `acstack node list --map <name> [--status <s>] [--json]` |
23
23
 
24
24
  `create` rejects a node that omits `--kind` or `--label`. `--kind` takes one of
25
25
  `destination`, `notes`, `decision`, `research`, or `work`. `--label` takes the
26
26
  node's short name for a diagram, at most four words and thirty characters.
27
27
 
28
+ `--summary` is optional: one plain sentence, on one line, for a business
29
+ reader. `create` refuses a blank one, and on `update` an empty string clears it.
30
+
28
31
  ## No body header
29
32
 
30
33
  The GitHub backend opens every node body with a header line, because an issue