llm-wb 0.1.0-beta.0 → 0.1.0-beta.1

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.
@@ -58,6 +58,7 @@ bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat
58
58
  bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat/session-log/record-chat-commit/smoke-test.sh
59
59
  bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat/command/package-scripts/smoke-test.sh
60
60
  bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat/command/dispatcher/smoke-test.sh
61
+ bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat/export/smoke-test.sh
61
62
  bash scripts/01.harness/run-governed-script.sh --approved-action scripts/01.harness/artifact-metadata/check-headers/smoke-test.sh
62
63
  bash scripts/01.harness/artifact-metadata/check-headers/script.sh --all
63
64
  bash scripts/01.harness/check-governed-script-command-drift.sh
@@ -68,6 +68,10 @@ scripts/00.chat/command/dispatcher/README.md
68
68
  - `new <prompt>` - starts a new chat session from an explicit prompt.
69
69
  - `open window [worktree-path|session-log]` - opens a new VS Code window for the
70
70
  current or specified chat-owned worktree.
71
+ - `download repo [worktree-path|session-log]` - exports the selected chat
72
+ worktree as a portable review bundle.
73
+ - `download repo diff [--base <ref>] [worktree-path|session-log]` - exports only
74
+ files changed relative to a base ref, defaulting to local `main`.
71
75
  - `close` - prints or copies a governed prompt for committing approved work, if
72
76
  needed, then promoting the chat branch into local `main`.
73
77
 
@@ -151,6 +151,7 @@ bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat
151
151
  bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat/session-log/record-chat-commit/smoke-test.sh
152
152
  bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat/command/package-scripts/smoke-test.sh
153
153
  bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat/command/dispatcher/smoke-test.sh
154
+ bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat/export/smoke-test.sh
154
155
  bash scripts/01.harness/run-governed-script.sh --approved-action scripts/01.harness/artifact-metadata/check-headers/smoke-test.sh
155
156
  bash scripts/01.harness/artifact-metadata/check-headers/script.sh --all
156
157
  bash scripts/01.harness/check-governed-script-command-drift.sh
package/docs/workflows.md CHANGED
@@ -101,3 +101,22 @@ empty chat branches when it is safe.
101
101
 
102
102
  `llm-wb list` intentionally lists installed workbench commands. Use
103
103
  `llm-wb sessions list` to list active chat sessions.
104
+
105
+ ## Export Work For Review
106
+
107
+ To send the active chat worktree to another model, engineer, or verification
108
+ environment:
109
+
110
+ ```bash
111
+ npm run chat -- download repo
112
+ ```
113
+
114
+ To send only files changed relative to local `main`:
115
+
116
+ ```bash
117
+ npm run chat -- download repo diff
118
+ ```
119
+
120
+ Both commands create a zip review bundle outside the repo by default and include
121
+ `llm-workbench-export-manifest.json` with branch, base ref, included files,
122
+ deleted files, and untracked files.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "llm-wb",
3
- "version": "0.1.0-beta.0",
3
+ "version": "0.1.0-beta.1",
4
4
  "description": "A portable chat harness for governed agentic development workflows.",
5
5
  "license": "MIT",
6
6
  "author": "Gordon Rose",
@@ -55,6 +55,7 @@
55
55
  "scripts/00.chat/bootstrap/",
56
56
  "scripts/00.chat/closeout/",
57
57
  "scripts/00.chat/command/",
58
+ "scripts/00.chat/export/",
58
59
  "scripts/00.chat/git/",
59
60
  "scripts/00.chat/local-merge/",
60
61
  "scripts/00.chat/main-refresh/",
@@ -80,6 +81,8 @@
80
81
  "chat:list": "bash scripts/00.chat/command/dispatcher/script.sh list",
81
82
  "chat:new": "bash scripts/00.chat/command/dispatcher/script.sh new",
82
83
  "chat:open-window": "bash scripts/00.chat/command/dispatcher/script.sh open-window",
84
+ "chat:download-repo": "bash scripts/00.chat/command/dispatcher/script.sh download-repo",
85
+ "chat:download-repo-diff": "bash scripts/00.chat/command/dispatcher/script.sh download-repo-diff",
83
86
  "chat:close": "bash scripts/00.chat/command/dispatcher/script.sh close",
84
87
  "chat:audit-bootstrap": "bash scripts/00.chat/bootstrap/audit-chat-bootstrap-file-set/script.sh",
85
88
  "chat:audit-layer-migration": "bash scripts/00.chat/migration/audit-chat-layer-migration/script.sh",
@@ -29,3 +29,6 @@ capabilities to live in domain folders such as `startup`, `closeout`, or
29
29
  The command domain is mostly routing. A command entrypoint should delegate to a
30
30
  capability script rather than duplicating the capability's logic.
31
31
 
32
+ Spaced human commands may be normalized by the dispatcher. For example,
33
+ `download repo` routes to `download-repo`, while `download repo diff` routes to
34
+ `download-repo-diff`.
@@ -66,6 +66,15 @@ if [ "$COMMAND_NAME" = "open" ] && [ "${1:-}" = "window" ]; then
66
66
  shift
67
67
  fi
68
68
 
69
+ if [ "$COMMAND_NAME" = "download" ] && [ "${1:-}" = "repo" ]; then
70
+ COMMAND_NAME="download-repo"
71
+ shift
72
+ if [ "${1:-}" = "diff" ]; then
73
+ COMMAND_NAME="download-repo-diff"
74
+ shift
75
+ fi
76
+ fi
77
+
69
78
  case "$COMMAND_NAME" in
70
79
  *[!a-zA-Z0-9_-]*|'')
71
80
  echo "ERROR: invalid chat command name: $COMMAND_NAME" >&2
@@ -50,8 +50,13 @@ mkdir -p \
50
50
  "$REPO/scripts/00.chat/closeout/build-closeout-prompt" \
51
51
  "$REPO/scripts/00.chat/command/close" \
52
52
  "$REPO/scripts/00.chat/command/dispatcher" \
53
+ "$REPO/scripts/00.chat/command/download-repo" \
54
+ "$REPO/scripts/00.chat/command/download-repo-diff" \
53
55
  "$REPO/scripts/00.chat/command/new" \
54
56
  "$REPO/scripts/00.chat/command/open-window" \
57
+ "$REPO/scripts/00.chat/export/create-worktree-bundle" \
58
+ "$REPO/scripts/00.chat/export/worktree" \
59
+ "$REPO/scripts/00.chat/export/worktree-diff" \
55
60
  "$REPO/scripts/00.chat/git/cleanup-empty-chat-branches" \
56
61
  "$REPO/scripts/00.chat/session-log/paths" \
57
62
  "$REPO/scripts/00.chat/startup/auto-start-missing-session" \
@@ -65,6 +70,11 @@ cp "$SOURCE_ROOT/scripts/00.chat/command/dispatcher/script.sh" "$REPO/scripts/00
65
70
  cp "$SOURCE_ROOT/scripts/00.chat/command/new/script.sh" "$REPO/scripts/00.chat/command/new/script.sh"
66
71
  cp "$SOURCE_ROOT/scripts/00.chat/command/close/script.sh" "$REPO/scripts/00.chat/command/close/script.sh"
67
72
  cp "$SOURCE_ROOT/scripts/00.chat/command/open-window/script.sh" "$REPO/scripts/00.chat/command/open-window/script.sh"
73
+ cp "$SOURCE_ROOT/scripts/00.chat/command/download-repo/script.sh" "$REPO/scripts/00.chat/command/download-repo/script.sh"
74
+ cp "$SOURCE_ROOT/scripts/00.chat/command/download-repo-diff/script.sh" "$REPO/scripts/00.chat/command/download-repo-diff/script.sh"
75
+ cp "$SOURCE_ROOT/scripts/00.chat/export/create-worktree-bundle/script.js" "$REPO/scripts/00.chat/export/create-worktree-bundle/script.js"
76
+ cp "$SOURCE_ROOT/scripts/00.chat/export/worktree/script.sh" "$REPO/scripts/00.chat/export/worktree/script.sh"
77
+ cp "$SOURCE_ROOT/scripts/00.chat/export/worktree-diff/script.sh" "$REPO/scripts/00.chat/export/worktree-diff/script.sh"
68
78
  cp "$SOURCE_ROOT/scripts/00.chat/session-log/paths/lib.sh" "$REPO/scripts/00.chat/session-log/paths/lib.sh"
69
79
  cp "$SOURCE_ROOT/scripts/00.chat/worktree/paths/lib.sh" "$REPO/scripts/00.chat/worktree/paths/lib.sh"
70
80
  cp "$SOURCE_ROOT/scripts/00.chat/worktree/ensure-chat-worktree/script.sh" "$REPO/scripts/00.chat/worktree/ensure-chat-worktree/script.sh"
@@ -74,7 +84,7 @@ cp "$SOURCE_ROOT/scripts/00.chat/startup/start-new-chat/script.sh" "$REPO/script
74
84
  cp "$SOURCE_ROOT/scripts/00.chat/closeout/build-closeout-prompt/script.sh" "$REPO/scripts/00.chat/closeout/build-closeout-prompt/script.sh"
75
85
  cp "$SOURCE_ROOT/scripts/00.chat/startup/auto-start-missing-session/script.sh" "$REPO/scripts/00.chat/startup/auto-start-missing-session/script.sh"
76
86
  cp "$SOURCE_ROOT/scripts/00.chat/git/cleanup-empty-chat-branches/script.sh" "$REPO/scripts/00.chat/git/cleanup-empty-chat-branches/script.sh"
77
- chmod +x "$REPO/scripts/00.chat/closeout/build-closeout-prompt/script.sh" "$REPO/scripts/00.chat/command/dispatcher/script.sh" "$REPO/scripts/00.chat/command/new/script.sh" "$REPO/scripts/00.chat/command/close/script.sh" "$REPO/scripts/00.chat/command/open-window/script.sh" "$REPO/scripts/00.chat/startup/auto-start-missing-session/script.sh" "$REPO/scripts/00.chat/startup/start-chat-session/script.sh" "$REPO/scripts/00.chat/startup/start-new-chat/script.sh" "$REPO/scripts/00.chat/worktree/ensure-chat-worktree/script.sh" "$REPO/scripts/00.chat/worktree/open-window/script.sh" "$REPO/scripts/00.chat/git/cleanup-empty-chat-branches/script.sh"
87
+ chmod +x "$REPO/scripts/00.chat/closeout/build-closeout-prompt/script.sh" "$REPO/scripts/00.chat/command/dispatcher/script.sh" "$REPO/scripts/00.chat/command/new/script.sh" "$REPO/scripts/00.chat/command/close/script.sh" "$REPO/scripts/00.chat/command/open-window/script.sh" "$REPO/scripts/00.chat/command/download-repo/script.sh" "$REPO/scripts/00.chat/command/download-repo-diff/script.sh" "$REPO/scripts/00.chat/export/worktree/script.sh" "$REPO/scripts/00.chat/export/worktree-diff/script.sh" "$REPO/scripts/00.chat/startup/auto-start-missing-session/script.sh" "$REPO/scripts/00.chat/startup/start-chat-session/script.sh" "$REPO/scripts/00.chat/startup/start-new-chat/script.sh" "$REPO/scripts/00.chat/worktree/ensure-chat-worktree/script.sh" "$REPO/scripts/00.chat/worktree/open-window/script.sh" "$REPO/scripts/00.chat/git/cleanup-empty-chat-branches/script.sh"
78
88
  chmod 0644 "$REPO/scripts/00.chat/command/new/script.sh"
79
89
 
80
90
  printf 'base\n' > "$REPO/README.md"
@@ -89,6 +99,8 @@ CHAT_COPY_PROMPT=skip \
89
99
  grep -q '^ new$' "$TMP_ROOT/list.out" || fail "new command was not listed"
90
100
  grep -q '^ close$' "$TMP_ROOT/list.out" || fail "close command was not listed"
91
101
  grep -q '^ open-window$' "$TMP_ROOT/list.out" || fail "open-window command was not listed"
102
+ grep -q '^ download-repo$' "$TMP_ROOT/list.out" || fail "download-repo command was not listed"
103
+ grep -q '^ download-repo-diff$' "$TMP_ROOT/list.out" || fail "download-repo-diff command was not listed"
92
104
 
93
105
  AGENTIC_CHAT_WORKTREE_ROOT="$TMP_ROOT/worktrees" \
94
106
  CHAT_CLEANUP_EMPTY_BRANCHES=skip \
@@ -153,6 +165,27 @@ grep -q '^Opened VS Code window: ' "$TMP_ROOT/open-window.out" \
153
165
  grep -q -- '^--new-window ' "$TMP_ROOT/code-args.out" \
154
166
  || fail "open window command did not call code with the chat worktree"
155
167
 
168
+ bash -c 'cd "$1" && shift && "$@"' sh "$worktree_path" \
169
+ bash scripts/00.chat/command/dispatcher/script.sh download repo \
170
+ --output "$TMP_ROOT/dispatcher-full.zip" \
171
+ >"$TMP_ROOT/download-repo.out"
172
+
173
+ test -f "$TMP_ROOT/dispatcher-full.zip" \
174
+ || fail "download repo command did not create an export zip"
175
+ grep -q '^Export kind: worktree$' "$TMP_ROOT/download-repo.out" \
176
+ || fail "download repo command did not route to full worktree export"
177
+
178
+ bash -c 'cd "$1" && shift && "$@"' sh "$worktree_path" \
179
+ bash scripts/00.chat/command/dispatcher/script.sh download repo diff \
180
+ --base main \
181
+ --output "$TMP_ROOT/dispatcher-diff.zip" \
182
+ >"$TMP_ROOT/download-repo-diff.out"
183
+
184
+ test -f "$TMP_ROOT/dispatcher-diff.zip" \
185
+ || fail "download repo diff command did not create an export zip"
186
+ grep -q '^Export kind: worktree-diff$' "$TMP_ROOT/download-repo-diff.out" \
187
+ || fail "download repo diff command did not route to changed-files export"
188
+
156
189
  CHAT_COPY_PROMPT=skip \
157
190
  bash -c 'cd "$1" && shift && "$@"' sh "$worktree_path" \
158
191
  bash scripts/00.chat/command/dispatcher/script.sh close \
@@ -0,0 +1,23 @@
1
+ <!-- agentic-artifact:
2
+ schema: agentic-artifact/v2
3
+ id: chat.script.command.download-repo.readme
4
+ version: 1
5
+ status: active
6
+ layer: 00.chat
7
+ domain: command
8
+ disciplines:
9
+ - agentic
10
+ kind: capability-readme
11
+ purpose: Explain the public download repo chat command.
12
+ portability:
13
+ class: required
14
+ targets:
15
+ - llm-workbench
16
+ used_by:
17
+ - id: chat.script.command.download-repo
18
+ path: scripts/00.chat/command/download-repo/script.sh
19
+ -->
20
+ # Download Repo Command
21
+
22
+ Routes the public `download repo` command to the full chat worktree export
23
+ capability.
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ # agentic-artifact:
5
+ # schema: agentic-artifact/v2
6
+ # id: chat.script.command.download-repo
7
+ # version: 1
8
+ # status: active
9
+ # layer: 00.chat
10
+ # domain: command
11
+ # disciplines:
12
+ # - agentic
13
+ # kind: script
14
+ # purpose: Dispatch the public download repo command to the worktree export capability.
15
+ # portability:
16
+ # class: required
17
+ # targets:
18
+ # - llm-workbench
19
+ # used_by:
20
+ # - id: chat.script.command.dispatcher
21
+ # path: scripts/00.chat/command/dispatcher/script.sh
22
+ # effects:
23
+ # - writes-files
24
+
25
+ exec bash scripts/00.chat/export/worktree/script.sh "$@"
@@ -0,0 +1,23 @@
1
+ <!-- agentic-artifact:
2
+ schema: agentic-artifact/v2
3
+ id: chat.script.command.download-repo-diff.readme
4
+ version: 1
5
+ status: active
6
+ layer: 00.chat
7
+ domain: command
8
+ disciplines:
9
+ - agentic
10
+ kind: capability-readme
11
+ purpose: Explain the public download repo diff chat command.
12
+ portability:
13
+ class: required
14
+ targets:
15
+ - llm-workbench
16
+ used_by:
17
+ - id: chat.script.command.download-repo-diff
18
+ path: scripts/00.chat/command/download-repo-diff/script.sh
19
+ -->
20
+ # Download Repo Diff Command
21
+
22
+ Routes the public `download repo diff` command to the changed-files chat
23
+ worktree export capability.
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ # agentic-artifact:
5
+ # schema: agentic-artifact/v2
6
+ # id: chat.script.command.download-repo-diff
7
+ # version: 1
8
+ # status: active
9
+ # layer: 00.chat
10
+ # domain: command
11
+ # disciplines:
12
+ # - agentic
13
+ # kind: script
14
+ # purpose: Dispatch the public download repo diff command to the changed-files export capability.
15
+ # portability:
16
+ # class: required
17
+ # targets:
18
+ # - llm-workbench
19
+ # used_by:
20
+ # - id: chat.script.command.dispatcher
21
+ # path: scripts/00.chat/command/dispatcher/script.sh
22
+ # effects:
23
+ # - writes-files
24
+
25
+ exec bash scripts/00.chat/export/worktree-diff/script.sh "$@"
@@ -43,8 +43,13 @@ mkdir -p \
43
43
  "$REPO/scripts/00.chat/closeout/build-closeout-prompt" \
44
44
  "$REPO/scripts/00.chat/command/close" \
45
45
  "$REPO/scripts/00.chat/command/dispatcher" \
46
+ "$REPO/scripts/00.chat/command/download-repo" \
47
+ "$REPO/scripts/00.chat/command/download-repo-diff" \
46
48
  "$REPO/scripts/00.chat/command/new" \
47
49
  "$REPO/scripts/00.chat/command/open-window" \
50
+ "$REPO/scripts/00.chat/export/create-worktree-bundle" \
51
+ "$REPO/scripts/00.chat/export/worktree" \
52
+ "$REPO/scripts/00.chat/export/worktree-diff" \
48
53
  "$REPO/scripts/00.chat/git/cleanup-empty-chat-branches" \
49
54
  "$REPO/scripts/00.chat/reporting/generate-commit-log-summary" \
50
55
  "$REPO/scripts/00.chat/reporting/report-chat-workspaces" \
@@ -61,6 +66,11 @@ cp "$SOURCE_ROOT/scripts/00.chat/command/dispatcher/script.sh" "$REPO/scripts/00
61
66
  cp "$SOURCE_ROOT/scripts/00.chat/command/new/script.sh" "$REPO/scripts/00.chat/command/new/script.sh"
62
67
  cp "$SOURCE_ROOT/scripts/00.chat/command/close/script.sh" "$REPO/scripts/00.chat/command/close/script.sh"
63
68
  cp "$SOURCE_ROOT/scripts/00.chat/command/open-window/script.sh" "$REPO/scripts/00.chat/command/open-window/script.sh"
69
+ cp "$SOURCE_ROOT/scripts/00.chat/command/download-repo/script.sh" "$REPO/scripts/00.chat/command/download-repo/script.sh"
70
+ cp "$SOURCE_ROOT/scripts/00.chat/command/download-repo-diff/script.sh" "$REPO/scripts/00.chat/command/download-repo-diff/script.sh"
71
+ cp "$SOURCE_ROOT/scripts/00.chat/export/create-worktree-bundle/script.js" "$REPO/scripts/00.chat/export/create-worktree-bundle/script.js"
72
+ cp "$SOURCE_ROOT/scripts/00.chat/export/worktree/script.sh" "$REPO/scripts/00.chat/export/worktree/script.sh"
73
+ cp "$SOURCE_ROOT/scripts/00.chat/export/worktree-diff/script.sh" "$REPO/scripts/00.chat/export/worktree-diff/script.sh"
64
74
  cp "$SOURCE_ROOT/scripts/00.chat/reporting/generate-commit-log-summary/script.sh" "$REPO/scripts/00.chat/reporting/generate-commit-log-summary/script.sh"
65
75
  cp "$SOURCE_ROOT/scripts/00.chat/reporting/report-chat-workspaces/script.sh" "$REPO/scripts/00.chat/reporting/report-chat-workspaces/script.sh"
66
76
  cp "$SOURCE_ROOT/scripts/00.chat/session-log/paths/lib.sh" "$REPO/scripts/00.chat/session-log/paths/lib.sh"
@@ -75,6 +85,10 @@ chmod +x \
75
85
  "$REPO/scripts/00.chat/command/new/script.sh" \
76
86
  "$REPO/scripts/00.chat/command/close/script.sh" \
77
87
  "$REPO/scripts/00.chat/command/open-window/script.sh" \
88
+ "$REPO/scripts/00.chat/command/download-repo/script.sh" \
89
+ "$REPO/scripts/00.chat/command/download-repo-diff/script.sh" \
90
+ "$REPO/scripts/00.chat/export/worktree/script.sh" \
91
+ "$REPO/scripts/00.chat/export/worktree-diff/script.sh" \
78
92
  "$REPO/scripts/00.chat/reporting/generate-commit-log-summary/script.sh" \
79
93
  "$REPO/scripts/00.chat/reporting/report-chat-workspaces/script.sh" \
80
94
  "$REPO/scripts/00.chat/worktree/open-window/script.sh" \
@@ -101,13 +115,21 @@ git -C "$REPO" -c user.name='Smoke Test' -c user.email='smoke@example.invalid' c
101
115
  npm run --silent chat:commit-log-summary > "$TMP_ROOT/summary.out"
102
116
  npm run --silent chat:cleanup-empty-branches -- --dry-run > "$TMP_ROOT/cleanup.out"
103
117
  CHAT_OPEN_WORKTREE_WINDOW=skip npm run --silent chat:open-window -- "$REPO" > "$TMP_ROOT/open-window.out"
118
+ npm run --silent chat:download-repo -- --output "$TMP_ROOT/package-full.zip" "$REPO" > "$TMP_ROOT/download-repo.out"
119
+ npm run --silent chat:download-repo-diff -- --base main --output "$TMP_ROOT/package-diff.zip" "$REPO" > "$TMP_ROOT/download-repo-diff.out"
104
120
  )
105
121
 
106
122
  grep -q '^ close$' "$TMP_ROOT/list.out" || fail "chat:list did not list close"
107
123
  grep -q '^ new$' "$TMP_ROOT/list.out" || fail "chat:list did not list new"
108
124
  grep -q '^ open-window$' "$TMP_ROOT/list.out" || fail "chat:list did not list open-window"
125
+ grep -q '^ download-repo$' "$TMP_ROOT/list.out" || fail "chat:list did not list download-repo"
126
+ grep -q '^ download-repo-diff$' "$TMP_ROOT/list.out" || fail "chat:list did not list download-repo-diff"
109
127
  grep -q '| Total | USD 0.0006 |' "$TMP_ROOT/summary.out" || fail "chat:commit-log-summary did not delegate"
110
128
  grep -q 'Mode: dry-run' "$TMP_ROOT/cleanup.out" || fail "chat:cleanup-empty-branches did not delegate"
111
129
  grep -q '^Skipping VS Code window open: ' "$TMP_ROOT/open-window.out" || fail "chat:open-window did not delegate"
130
+ test -f "$TMP_ROOT/package-full.zip" || fail "chat:download-repo did not create a zip"
131
+ test -f "$TMP_ROOT/package-diff.zip" || fail "chat:download-repo-diff did not create a zip"
132
+ grep -q '^Export kind: worktree$' "$TMP_ROOT/download-repo.out" || fail "chat:download-repo did not delegate"
133
+ grep -q '^Export kind: worktree-diff$' "$TMP_ROOT/download-repo-diff.out" || fail "chat:download-repo-diff did not delegate"
112
134
 
113
135
  echo "chat package scripts smoke test passed."
@@ -0,0 +1,29 @@
1
+ <!-- agentic-artifact:
2
+ schema: agentic-artifact/v2
3
+ id: chat.script.export.readme
4
+ version: 1
5
+ status: active
6
+ layer: 00.chat
7
+ domain: export
8
+ disciplines:
9
+ - agentic
10
+ kind: script-domain-readme
11
+ purpose: Explain chat worktree export capabilities.
12
+ portability:
13
+ class: required
14
+ targets:
15
+ - llm-workbench
16
+ used_by:
17
+ - id: chat.commands.readme
18
+ path: .agentic/00.chat/commands/README.md
19
+ - id: chat.script.command.readme
20
+ path: scripts/00.chat/command/README.md
21
+ -->
22
+ # Export Scripts
23
+
24
+ Export scripts create portable review bundles from chat-owned worktrees.
25
+
26
+ Use this domain when the user needs to hand the active chat worktree, or only
27
+ its changed files, to another model, engineer, or verification environment.
28
+ The export capability owns the selection and manifest semantics. Zip is only
29
+ the default transport format for the resulting bundle.
@@ -0,0 +1,37 @@
1
+ <!-- agentic-artifact:
2
+ schema: agentic-artifact/v2
3
+ id: chat.script.export.create-worktree-bundle.readme
4
+ version: 1
5
+ status: active
6
+ layer: 00.chat
7
+ domain: export
8
+ disciplines:
9
+ - agentic
10
+ kind: capability-readme
11
+ purpose: Explain the internal chat worktree bundle writer.
12
+ portability:
13
+ class: required
14
+ targets:
15
+ - llm-workbench
16
+ used_by:
17
+ - id: chat.script.export.create-worktree-bundle
18
+ path: scripts/00.chat/export/create-worktree-bundle/script.js
19
+ - id: chat.script.export.worktree
20
+ path: scripts/00.chat/export/worktree/script.sh
21
+ - id: chat.script.export.worktree-diff
22
+ path: scripts/00.chat/export/worktree-diff/script.sh
23
+ -->
24
+ # Create Worktree Bundle
25
+
26
+ This internal helper writes portable zip bundles for chat worktree exports.
27
+
28
+ Public callers should use:
29
+
30
+ ```bash
31
+ npm run chat -- download repo
32
+ npm run chat -- download repo diff
33
+ ```
34
+
35
+ The helper is intentionally dependency-light: it uses Node built-in modules and
36
+ Git only, so exported `llm-workbench` installs do not depend on a system `zip`
37
+ binary.