llm-wb 0.1.0-beta.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/.agentic/00.chat/README.md +78 -0
- package/.agentic/00.chat/checklists/before-commit.md +195 -0
- package/.agentic/00.chat/checklists/llm-workbench-public-beta.md +94 -0
- package/.agentic/00.chat/commands/README.md +108 -0
- package/.agentic/00.chat/migration-plan.md +132 -0
- package/.agentic/00.chat/skills/session-summary.md +48 -0
- package/.agentic/00.chat/standards/llm-workbench-public-beta-contract.md +216 -0
- package/.agentic/00.chat/standards/main-refresh-conflict-types.md +358 -0
- package/.agentic/00.chat/workflows/README.md +40 -0
- package/.agentic/00.chat/workflows/bootstrap-chat-workbench-repo.md +212 -0
- package/.agentic/00.chat/workflows/chat-cleanup.md +102 -0
- package/.agentic/00.chat/workflows/chat-commit.md +56 -0
- package/.agentic/00.chat/workflows/chat-promote-to-main.md +169 -0
- package/.agentic/00.chat/workflows/chat-refresh-from-main.md +242 -0
- package/.agentic/00.chat/workflows/chat-reporting.md +69 -0
- package/.agentic/00.chat/workflows/chat-start.md +173 -0
- package/.agentic/00.chat/workflows/chat-upstream-reusable-lesson.md +123 -0
- package/.agentic/shared/standards/README.md +32 -0
- package/.agentic/shared/standards/upstream-repo-bootstrap.md +131 -0
- package/.agentic/shared/workflows/README.md +35 -0
- package/.agentic/shared/workflows/capability-resolution-workflow.md +189 -0
- package/.agentic/shared/workflows/change-shared-process.md +92 -0
- package/.cursor/rules/llm-workbench.mdc +17 -0
- package/.github/copilot-instructions.md +16 -0
- package/AGENTS.md +63 -0
- package/CLAUDE.md +16 -0
- package/CONTRIBUTING.md +57 -0
- package/LICENSE +21 -0
- package/LLM_WORKBENCH.md +17 -0
- package/README.md +98 -0
- package/SECURITY.md +44 -0
- package/bin/llm-workbench.js +672 -0
- package/docs/00.chat/README.md +47 -0
- package/docs/00.chat/llm-workbench-acceptance-matrix.md +55 -0
- package/docs/00.chat/script-layout.md +107 -0
- package/docs/adapting-to-your-repo.md +29 -0
- package/docs/concepts.md +38 -0
- package/docs/install.md +114 -0
- package/docs/public-beta-contract.md +45 -0
- package/docs/workflows.md +103 -0
- package/examples/minimal-repo/README.md +13 -0
- package/package.json +93 -0
- package/scripts/00.chat/README.md +46 -0
- package/scripts/00.chat/bootstrap/README.md +35 -0
- package/scripts/00.chat/bootstrap/audit-chat-bootstrap-file-set/README.md +39 -0
- package/scripts/00.chat/bootstrap/audit-chat-bootstrap-file-set/script.sh +213 -0
- package/scripts/00.chat/closeout/README.md +30 -0
- package/scripts/00.chat/closeout/build-closeout-prompt/README.md +35 -0
- package/scripts/00.chat/closeout/build-closeout-prompt/script.sh +124 -0
- package/scripts/00.chat/command/README.md +31 -0
- package/scripts/00.chat/command/close/README.md +30 -0
- package/scripts/00.chat/command/close/script.sh +25 -0
- package/scripts/00.chat/command/dispatcher/README.md +46 -0
- package/scripts/00.chat/command/dispatcher/script.sh +91 -0
- package/scripts/00.chat/command/dispatcher/smoke-test.sh +168 -0
- package/scripts/00.chat/command/new/README.md +32 -0
- package/scripts/00.chat/command/new/script.sh +28 -0
- package/scripts/00.chat/command/open-window/README.md +38 -0
- package/scripts/00.chat/command/open-window/script.sh +25 -0
- package/scripts/00.chat/command/package-scripts/README.md +34 -0
- package/scripts/00.chat/command/package-scripts/smoke-test.sh +113 -0
- package/scripts/00.chat/git/README.md +30 -0
- package/scripts/00.chat/git/cleanup-empty-chat-branches/README.md +36 -0
- package/scripts/00.chat/git/cleanup-empty-chat-branches/script.sh +243 -0
- package/scripts/00.chat/git/cleanup-empty-chat-branches/smoke-test.sh +136 -0
- package/scripts/00.chat/local-merge/README.md +30 -0
- package/scripts/00.chat/local-merge/list-active-chat-branches/README.md +29 -0
- package/scripts/00.chat/local-merge/list-active-chat-branches/script.sh +109 -0
- package/scripts/00.chat/local-merge/report-chat-branch-overlaps/README.md +29 -0
- package/scripts/00.chat/local-merge/report-chat-branch-overlaps/script.sh +142 -0
- package/scripts/00.chat/local-merge/verify-chat-ready-to-merge-local-main/README.md +33 -0
- package/scripts/00.chat/local-merge/verify-chat-ready-to-merge-local-main/script.sh +345 -0
- package/scripts/00.chat/local-merge/verify-chat-ready-to-merge-local-main/smoke-test.sh +244 -0
- package/scripts/00.chat/main-refresh/README.md +39 -0
- package/scripts/00.chat/main-refresh/apply-rehearsed-refresh/README.md +32 -0
- package/scripts/00.chat/main-refresh/apply-rehearsed-refresh/script.sh +198 -0
- package/scripts/00.chat/main-refresh/check-chat-is-current-with-main/README.md +30 -0
- package/scripts/00.chat/main-refresh/check-chat-is-current-with-main/script.sh +121 -0
- package/scripts/00.chat/main-refresh/classify-conflict/README.md +39 -0
- package/scripts/00.chat/main-refresh/classify-conflict/script.sh +169 -0
- package/scripts/00.chat/main-refresh/classify-conflict/smoke-test.sh +137 -0
- package/scripts/00.chat/main-refresh/classify-refresh-readiness/README.md +35 -0
- package/scripts/00.chat/main-refresh/classify-refresh-readiness/script.sh +171 -0
- package/scripts/00.chat/main-refresh/classify-refresh-readiness/smoke-test.sh +132 -0
- package/scripts/00.chat/main-refresh/rehearse-refresh-from-main/README.md +34 -0
- package/scripts/00.chat/main-refresh/rehearse-refresh-from-main/script.sh +124 -0
- package/scripts/00.chat/main-refresh/rehearse-refresh-from-main/smoke-test.sh +257 -0
- package/scripts/00.chat/main-refresh/show-main-update-status/README.md +31 -0
- package/scripts/00.chat/main-refresh/show-main-update-status/script.sh +73 -0
- package/scripts/00.chat/main-refresh/verify-conflict-audit/README.md +37 -0
- package/scripts/00.chat/main-refresh/verify-conflict-audit/script.sh +154 -0
- package/scripts/00.chat/main-refresh/verify-conflict-audit/smoke-test.sh +99 -0
- package/scripts/00.chat/metrics/README.md +35 -0
- package/scripts/00.chat/metrics/data/chat-pricing.json +107 -0
- package/scripts/00.chat/metrics/data/chat-pricing.schema.json +63 -0
- package/scripts/00.chat/metrics/estimate-chat-cost/README.md +40 -0
- package/scripts/00.chat/metrics/estimate-chat-cost/script.js +130 -0
- package/scripts/00.chat/migration/README.md +30 -0
- package/scripts/00.chat/migration/audit-chat-layer-migration/README.md +33 -0
- package/scripts/00.chat/migration/audit-chat-layer-migration/script.sh +127 -0
- package/scripts/00.chat/recovery/README.md +30 -0
- package/scripts/00.chat/recovery/import-active-paths-to-chat-worktree/README.md +76 -0
- package/scripts/00.chat/recovery/import-active-paths-to-chat-worktree/script.sh +212 -0
- package/scripts/00.chat/recovery/import-active-paths-to-chat-worktree/smoke-test.sh +162 -0
- package/scripts/00.chat/reporting/README.md +30 -0
- package/scripts/00.chat/reporting/generate-commit-log-summary/README.md +35 -0
- package/scripts/00.chat/reporting/generate-commit-log-summary/script.sh +299 -0
- package/scripts/00.chat/reporting/generate-commit-log-summary/smoke-test.sh +93 -0
- package/scripts/00.chat/reporting/report-chat-workspaces/README.md +32 -0
- package/scripts/00.chat/reporting/report-chat-workspaces/script.sh +82 -0
- package/scripts/00.chat/session-log/README.md +33 -0
- package/scripts/00.chat/session-log/check-commit-prerequisites/README.md +89 -0
- package/scripts/00.chat/session-log/check-commit-prerequisites/script.sh +121 -0
- package/scripts/00.chat/session-log/check-commit-prerequisites/smoke-test.sh +119 -0
- package/scripts/00.chat/session-log/check-commitlog-deletions/README.md +90 -0
- package/scripts/00.chat/session-log/check-commitlog-deletions/script.sh +131 -0
- package/scripts/00.chat/session-log/check-commitlog-deletions/smoke-test.sh +123 -0
- package/scripts/00.chat/session-log/checkpoint-chat-session-log/README.md +98 -0
- package/scripts/00.chat/session-log/checkpoint-chat-session-log/script.sh +126 -0
- package/scripts/00.chat/session-log/paths/README.md +38 -0
- package/scripts/00.chat/session-log/paths/lib.sh +133 -0
- package/scripts/00.chat/session-log/prepare-chat-session-before-commit/README.md +90 -0
- package/scripts/00.chat/session-log/prepare-chat-session-before-commit/script.sh +145 -0
- package/scripts/00.chat/session-log/read-current-chat-log/README.md +44 -0
- package/scripts/00.chat/session-log/read-current-chat-log/script.sh +92 -0
- package/scripts/00.chat/session-log/read-current-chat-log/smoke-test.sh +127 -0
- package/scripts/00.chat/session-log/record-chat-commit/README.md +133 -0
- package/scripts/00.chat/session-log/record-chat-commit/script.sh +394 -0
- package/scripts/00.chat/session-log/record-chat-commit/smoke-test.sh +227 -0
- package/scripts/00.chat/session-log/record-main-refresh-conflict/README.md +34 -0
- package/scripts/00.chat/session-log/record-main-refresh-conflict/script.sh +239 -0
- package/scripts/00.chat/session-log/rename-current-chat-log-folder/README.md +32 -0
- package/scripts/00.chat/session-log/rename-current-chat-log-folder/script.sh +112 -0
- package/scripts/00.chat/session-log/update-chat-log/README.md +32 -0
- package/scripts/00.chat/session-log/update-chat-log/script.sh +294 -0
- package/scripts/00.chat/startup/README.md +37 -0
- package/scripts/00.chat/startup/auto-start-missing-session/README.md +113 -0
- package/scripts/00.chat/startup/auto-start-missing-session/script.sh +54 -0
- package/scripts/00.chat/startup/resolve-current-chat-session/README.md +57 -0
- package/scripts/00.chat/startup/resolve-current-chat-session/script.sh +47 -0
- package/scripts/00.chat/startup/resolve-current-chat-session/smoke-test.sh +130 -0
- package/scripts/00.chat/startup/start-chat-session/README.md +197 -0
- package/scripts/00.chat/startup/start-chat-session/script.sh +330 -0
- package/scripts/00.chat/startup/start-chat-session/smoke-test.sh +182 -0
- package/scripts/00.chat/startup/start-new-chat/README.md +31 -0
- package/scripts/00.chat/startup/start-new-chat/script.sh +29 -0
- package/scripts/00.chat/transcript/README.md +36 -0
- package/scripts/00.chat/transcript/discover-codex-session-log/README.md +32 -0
- package/scripts/00.chat/transcript/discover-codex-session-log/script.sh +106 -0
- package/scripts/00.chat/transcript/register-codex-session-log/README.md +32 -0
- package/scripts/00.chat/transcript/register-codex-session-log/script.sh +115 -0
- package/scripts/00.chat/worktree/README.md +32 -0
- package/scripts/00.chat/worktree/check-write-location/README.md +87 -0
- package/scripts/00.chat/worktree/check-write-location/script.sh +95 -0
- package/scripts/00.chat/worktree/dirty-worktree-check/README.md +77 -0
- package/scripts/00.chat/worktree/dirty-worktree-check/script.sh +93 -0
- package/scripts/00.chat/worktree/ensure-chat-worktree/README.md +33 -0
- package/scripts/00.chat/worktree/ensure-chat-worktree/script.sh +132 -0
- package/scripts/00.chat/worktree/open-window/README.md +34 -0
- package/scripts/00.chat/worktree/open-window/script.sh +131 -0
- package/scripts/00.chat/worktree/paths/README.md +32 -0
- package/scripts/00.chat/worktree/paths/lib.sh +71 -0
- package/scripts/01.harness/artifact-metadata/check-headers/script.sh +522 -0
- package/scripts/01.harness/artifact-metadata/check-headers/smoke-test.sh +48 -0
- package/scripts/01.harness/check-deterministic-process-drift.sh +416 -0
- package/scripts/01.harness/check-governed-script-command-drift.sh +184 -0
- package/scripts/01.harness/run-governed-script.sh +178 -0
- package/scripts/install.sh +503 -0
- package/scripts/uninstall.sh +199 -0
- package/tests/smoke-test-install.sh +70 -0
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
<!-- agentic-artifact:
|
|
2
|
+
schema: agentic-artifact/v2
|
|
3
|
+
id: chat.standards.llm-workbench-public-beta-contract
|
|
4
|
+
version: 1
|
|
5
|
+
status: active
|
|
6
|
+
layer: 00.chat
|
|
7
|
+
domain: portability
|
|
8
|
+
disciplines:
|
|
9
|
+
- agentic
|
|
10
|
+
kind: standard
|
|
11
|
+
purpose: Define the public-beta contract for standalone provider-neutral llm-workbench behavior.
|
|
12
|
+
portability:
|
|
13
|
+
class: required
|
|
14
|
+
targets:
|
|
15
|
+
- llm-workbench
|
|
16
|
+
used_by:
|
|
17
|
+
- id: chat.checklists.llm-workbench-public-beta
|
|
18
|
+
path: .agentic/00.chat/checklists/llm-workbench-public-beta.md
|
|
19
|
+
- id: chat.workflows.bootstrap-chat-workbench-repo
|
|
20
|
+
path: .agentic/00.chat/workflows/bootstrap-chat-workbench-repo.md
|
|
21
|
+
- id: chat.workflows.chat-upstream-reusable-lesson
|
|
22
|
+
path: .agentic/00.chat/workflows/chat-upstream-reusable-lesson.md
|
|
23
|
+
-->
|
|
24
|
+
# llm-workbench Public-Beta Contract
|
|
25
|
+
|
|
26
|
+
## Definition Of Done
|
|
27
|
+
|
|
28
|
+
`llm-workbench` is a standalone, provider-neutral Git/Bash/npm chat harness for
|
|
29
|
+
blank or existing repos, with safe install/uninstall, assistant adapters, JSON
|
|
30
|
+
startup packets, and portable transcript metadata across common CLI and
|
|
31
|
+
code-assistant workflows.
|
|
32
|
+
|
|
33
|
+
Do not claim it works perfectly with every LLM assistant or every editor setup.
|
|
34
|
+
No repository can guarantee that every assistant will read and obey instruction
|
|
35
|
+
files.
|
|
36
|
+
|
|
37
|
+
## Core Invariants
|
|
38
|
+
|
|
39
|
+
### No Durable Chat Classification
|
|
40
|
+
|
|
41
|
+
- Do not reintroduce durable whole-chat `layer`, `mode`, or `workflow`
|
|
42
|
+
classification metadata.
|
|
43
|
+
- Chat startup may record `chat_lifecycle_workflow` and context-packet
|
|
44
|
+
continuity metadata.
|
|
45
|
+
- Prompt-level routing is local and optional: use the current user request,
|
|
46
|
+
repo assistant instructions, and any repo-provided context router if one
|
|
47
|
+
exists.
|
|
48
|
+
- Base chat startup must not require RAG/rulebook, classifier scripts, or
|
|
49
|
+
source-specific routers.
|
|
50
|
+
|
|
51
|
+
### Public Export Is Standalone
|
|
52
|
+
|
|
53
|
+
Generated public exports and installed target repos must not contain source-only
|
|
54
|
+
wrapper trees, duplicate generated trees, upstream harness-maintenance trees, or
|
|
55
|
+
retired chat-classification scripts. The exact excluded paths are enforced by
|
|
56
|
+
the portability suite and summarized in the source-side acceptance matrix.
|
|
57
|
+
|
|
58
|
+
Public `.agentic` surfaces must not reference missing exported paths.
|
|
59
|
+
`check-headers --all` must pass in both the generated public workbench repo and
|
|
60
|
+
an installed target repo. When a public-exported directory is removed, remove or
|
|
61
|
+
sanitize any `used_by.path` references to it.
|
|
62
|
+
|
|
63
|
+
### No Source-Specific Rulebook Or Codex Defaults
|
|
64
|
+
|
|
65
|
+
- Generic chat startup, commit, docs, and assistant surfaces must not require
|
|
66
|
+
mandatory RAG/rulebook runtime behavior.
|
|
67
|
+
- Do not hard-code `.agentic/02.rag-rulebook` or `scripts/02.rag-rulebook`
|
|
68
|
+
into generic chat commit gates.
|
|
69
|
+
- Repos that need extra gates must use neutral optional extension hooks.
|
|
70
|
+
- Codex support may exist as an adapter, but Codex must not be the default
|
|
71
|
+
transcript, startup, metrics, docs, or assistant assumption.
|
|
72
|
+
|
|
73
|
+
### Provider-Neutral Transcript And Cost Metrics
|
|
74
|
+
|
|
75
|
+
Core transcript metadata is neutral:
|
|
76
|
+
|
|
77
|
+
- `transcript_provider`
|
|
78
|
+
- `transcript_path`
|
|
79
|
+
- `transcript_bytes`
|
|
80
|
+
- `transcript_token_estimate`
|
|
81
|
+
- `transcript_source`
|
|
82
|
+
|
|
83
|
+
Codex transcript discovery is optional adapter behavior only. Missing transcript
|
|
84
|
+
metrics must not block portable/default operation unless strict mode is
|
|
85
|
+
explicitly enabled.
|
|
86
|
+
|
|
87
|
+
Chat pricing belongs to the chat metrics surface:
|
|
88
|
+
|
|
89
|
+
- `scripts/00.chat/metrics/data/chat-pricing.json`
|
|
90
|
+
- `scripts/00.chat/metrics/data/chat-pricing.schema.json`
|
|
91
|
+
|
|
92
|
+
Bundled pricing data is a local best-effort profile store, not a universal
|
|
93
|
+
source of truth. The default bundled profile must be provider-neutral and
|
|
94
|
+
unpriced unless a pricing profile is explicitly selected. Keep
|
|
95
|
+
`CHAT_COST_PRICING_FILE` and `CHAT_COST_PROFILE` as overrides.
|
|
96
|
+
|
|
97
|
+
### Safe Blank And Existing Repo Installs
|
|
98
|
+
|
|
99
|
+
`scripts/install.sh` must support `--dry-run`, `--apply`, and `--init-commit`.
|
|
100
|
+
Dry runs must not mutate the target repo. Apply mode must not overwrite user
|
|
101
|
+
files silently.
|
|
102
|
+
|
|
103
|
+
Existing `package.json` files are merged only for workbench-owned `chat:*`
|
|
104
|
+
scripts. Assistant instruction files are patched with managed blocks, not
|
|
105
|
+
overwritten. Install writes a manifest of created files, package-script changes,
|
|
106
|
+
and managed blocks. Uninstall removes only manifest-owned material.
|
|
107
|
+
|
|
108
|
+
`--init-commit` is only for repos with no existing `HEAD`. It stages only
|
|
109
|
+
manifest-owned install paths, never `git add -A`. In unborn repos with unrelated
|
|
110
|
+
pre-existing files, the install commit leaves unrelated files uncommitted.
|
|
111
|
+
|
|
112
|
+
### Thin Assistant Adapters
|
|
113
|
+
|
|
114
|
+
Public assistant surfaces may include:
|
|
115
|
+
|
|
116
|
+
- `AGENTS.md`
|
|
117
|
+
- `CLAUDE.md`
|
|
118
|
+
- `.github/copilot-instructions.md`
|
|
119
|
+
- `.cursor/rules/llm-workbench.mdc`
|
|
120
|
+
- `LLM_WORKBENCH.md`
|
|
121
|
+
|
|
122
|
+
Adapters point to the same canonical chat lifecycle workflow. They do not
|
|
123
|
+
duplicate detailed policy or make provider-specific assumptions. They preserve
|
|
124
|
+
this rule:
|
|
125
|
+
|
|
126
|
+
```txt
|
|
127
|
+
For prompt-level routing, use the current user request, this repo's assistant instructions, and any repo-provided context router if one exists. Do not assign the whole chat a durable layer, mode, or workflow.
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### CLI And Code-Assistant Robustness
|
|
131
|
+
|
|
132
|
+
- `chat:new` supports structured JSON output for code assistants:
|
|
133
|
+
`npm run chat:new -- --json "task summary"`.
|
|
134
|
+
- Clipboard handoff is optional/fallback only.
|
|
135
|
+
- Do not rely on executable bits surviving zip extraction or Windows
|
|
136
|
+
filesystems where avoidable.
|
|
137
|
+
- Dispatchers invoke shell scripts with Bash when appropriate instead of
|
|
138
|
+
failing only because a script is not executable.
|
|
139
|
+
- Bash, Git, and Node assumptions are documented and tested across Linux,
|
|
140
|
+
macOS, Windows, and WSL paths.
|
|
141
|
+
|
|
142
|
+
## Validation Contract
|
|
143
|
+
|
|
144
|
+
Before calling related work complete, run the permanent portability suite and
|
|
145
|
+
add tests for any newly discovered edge case:
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat/upstream/validate-llm-workbench-portability/script.sh
|
|
149
|
+
bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat/upstream/bootstrap-llm-workbench-repo/smoke-test.sh
|
|
150
|
+
bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat/startup/start-chat-session/smoke-test.sh
|
|
151
|
+
bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat/session-log/record-chat-commit/smoke-test.sh
|
|
152
|
+
bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat/command/package-scripts/smoke-test.sh
|
|
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/01.harness/artifact-metadata/check-headers/smoke-test.sh
|
|
155
|
+
bash scripts/01.harness/artifact-metadata/check-headers/script.sh --all
|
|
156
|
+
bash scripts/01.harness/check-governed-script-command-drift.sh
|
|
157
|
+
bash scripts/01.harness/check-deterministic-process-drift.sh --paths <changed-governed-files>
|
|
158
|
+
bash -n <changed-shell-scripts-and-templates>
|
|
159
|
+
git diff --check
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
The portability suite must cover Codex, Claude-style, Mistral/manual, Copilot,
|
|
163
|
+
Cursor, and generic CLI assistant surfaces; Linux, macOS, Windows, and WSL
|
|
164
|
+
signals; blank unborn repos; existing repos with `package.json` and
|
|
165
|
+
`AGENTS.md`; conflicting package scripts; missing transcript providers; manual
|
|
166
|
+
transcript metrics; explicit pricing overrides; missing clipboard utilities;
|
|
167
|
+
JSON startup handoff; public export self-consistency; and installed target
|
|
168
|
+
self-consistency.
|
|
169
|
+
|
|
170
|
+
## Temporary Eval Loop
|
|
171
|
+
|
|
172
|
+
For each feature or patch:
|
|
173
|
+
|
|
174
|
+
1. Write a temporary eval or failing smoke case proving the desired behavior.
|
|
175
|
+
2. Implement the smallest change that should make the eval pass.
|
|
176
|
+
3. Run the eval.
|
|
177
|
+
4. Refine until it passes.
|
|
178
|
+
5. Promote durable edge cases into the permanent portability suite.
|
|
179
|
+
6. Remove temporary eval files before finishing.
|
|
180
|
+
|
|
181
|
+
## Public Export Boundary
|
|
182
|
+
|
|
183
|
+
When touching bootstrap/export logic, materialize the generated public
|
|
184
|
+
workbench, inspect its top-level tree, install it into blank and existing repos,
|
|
185
|
+
and run `check-headers --all` in both the generated public repo and installed
|
|
186
|
+
target.
|
|
187
|
+
|
|
188
|
+
Canonical public paths are:
|
|
189
|
+
|
|
190
|
+
- `.agentic/00.chat`
|
|
191
|
+
- `.agentic/shared`
|
|
192
|
+
- `docs`
|
|
193
|
+
- `scripts/00.chat`
|
|
194
|
+
- `scripts/01.harness`, only when required for portable checks and not
|
|
195
|
+
dependent on an upstream harness-maintenance tree
|
|
196
|
+
- `package.json`
|
|
197
|
+
- `README.md`
|
|
198
|
+
- assistant adapter files
|
|
199
|
+
- install/uninstall scripts
|
|
200
|
+
|
|
201
|
+
## Documentation
|
|
202
|
+
|
|
203
|
+
When behavior changes, update public docs and templates: README, install docs,
|
|
204
|
+
workflow docs, assistant adapter templates, relevant script READMEs, and the
|
|
205
|
+
generated GitHub Actions workflow template when affected. Docs must match
|
|
206
|
+
behavior and avoid overclaiming.
|
|
207
|
+
|
|
208
|
+
## Closeout Evidence
|
|
209
|
+
|
|
210
|
+
Before reporting success, provide:
|
|
211
|
+
|
|
212
|
+
- changed files summary
|
|
213
|
+
- exact validation commands run
|
|
214
|
+
- skipped checks and why
|
|
215
|
+
- whether temporary eval files remain
|
|
216
|
+
- whether changes are committed or still uncommitted
|
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
<!-- agentic-artifact:
|
|
2
|
+
schema: agentic-artifact/v2
|
|
3
|
+
id: chat.standards.main-refresh-conflict-types
|
|
4
|
+
version: 1
|
|
5
|
+
status: active
|
|
6
|
+
layer: 00.chat
|
|
7
|
+
domain: main-refresh
|
|
8
|
+
disciplines:
|
|
9
|
+
- agentic
|
|
10
|
+
kind: standard
|
|
11
|
+
purpose: Define governed conflict classification and resolution during chat refresh
|
|
12
|
+
from main.
|
|
13
|
+
portability:
|
|
14
|
+
class: required
|
|
15
|
+
targets:
|
|
16
|
+
- llm-workbench
|
|
17
|
+
used_by:
|
|
18
|
+
- id: chat.workflows.chat-refresh-from-main
|
|
19
|
+
path: .agentic/00.chat/workflows/chat-refresh-from-main.md
|
|
20
|
+
- id: chat.script.main-refresh.apply-rehearsed-refresh
|
|
21
|
+
path: scripts/00.chat/main-refresh/apply-rehearsed-refresh/script.sh
|
|
22
|
+
- id: chat.script.main-refresh.classify-conflict
|
|
23
|
+
path: scripts/00.chat/main-refresh/classify-conflict/script.sh
|
|
24
|
+
- id: chat.script.main-refresh.verify-conflict-audit
|
|
25
|
+
path: scripts/00.chat/main-refresh/verify-conflict-audit/script.sh
|
|
26
|
+
-->
|
|
27
|
+
# Main Refresh Conflict Types
|
|
28
|
+
|
|
29
|
+
## Purpose
|
|
30
|
+
|
|
31
|
+
Classify conflicts found while refreshing a chat branch from `main`.
|
|
32
|
+
|
|
33
|
+
Use this standard after preflight reports conflicts and before resolving any
|
|
34
|
+
conflicted path. Resolve only conflicts with a deterministic action. If no type
|
|
35
|
+
fits, stop and propose either a new type or an expansion of an existing type.
|
|
36
|
+
|
|
37
|
+
Use the deterministic classifier for known conflict shapes:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
bash scripts/00.chat/main-refresh/classify-conflict/script.sh <conflicted-path>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
The classifier is a guardrail, not a substitute for judgment. If the classifier
|
|
44
|
+
returns `normal-repo-conflict` or `unsupported-conflict`, stop before resolving
|
|
45
|
+
unless the user approves the next step or the harness is updated.
|
|
46
|
+
|
|
47
|
+
## Classification Method
|
|
48
|
+
|
|
49
|
+
For each conflicted path, compare:
|
|
50
|
+
|
|
51
|
+
- file ownership: canonical owner, compatibility path, generated artifact, or
|
|
52
|
+
session evidence
|
|
53
|
+
- conflict shape: both modified, add/add, delete/modify, or deleted by them
|
|
54
|
+
- content source: authored prose/code, generated output, or bookkeeping
|
|
55
|
+
- governance direction: stricter rule added, ownership moved, artifact retired,
|
|
56
|
+
or normal repo behavior changed
|
|
57
|
+
- risk: whether either side would discard user-authored work, session evidence,
|
|
58
|
+
or stricter governance
|
|
59
|
+
|
|
60
|
+
Inspect Git stages when needed:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
git show :1:<path> # base
|
|
64
|
+
git show :2:<path> # chat branch
|
|
65
|
+
git show :3:<path> # incoming main
|
|
66
|
+
git diff :2:<path> :3:<path>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Session Log Audit Trail
|
|
70
|
+
|
|
71
|
+
For every preflight conflict, record an audit entry under the current chat
|
|
72
|
+
session log's `## Main Refresh Conflicts` section before promoting the
|
|
73
|
+
preflight result.
|
|
74
|
+
|
|
75
|
+
Use:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat/session-log/record-main-refresh-conflict/script.sh \
|
|
79
|
+
--path <conflicted-path> \
|
|
80
|
+
--type <conflict-type> \
|
|
81
|
+
--reason <classification-reason> \
|
|
82
|
+
--action <resolution-action> \
|
|
83
|
+
--mode <deterministic|skill-assisted|manual|stopped> \
|
|
84
|
+
--preflight-branch <branch> \
|
|
85
|
+
--preflight-worktree <path> \
|
|
86
|
+
--files <changed-files-summary> \
|
|
87
|
+
--checks <checks-summary>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Each entry must record:
|
|
91
|
+
|
|
92
|
+
- preflight branch
|
|
93
|
+
- preflight worktree
|
|
94
|
+
- conflicted path
|
|
95
|
+
- conflict type
|
|
96
|
+
- classification reason
|
|
97
|
+
- resolution mode
|
|
98
|
+
- deterministic action, skill-assisted action, manual action, or stop reason
|
|
99
|
+
- files changed by the resolution
|
|
100
|
+
- checks run or still pending
|
|
101
|
+
|
|
102
|
+
## Applying After Conflict Resolution
|
|
103
|
+
|
|
104
|
+
Approval to run a governed main-refresh rehearsal includes approval to apply a
|
|
105
|
+
clean, tested rehearsed result back to the chat branch.
|
|
106
|
+
|
|
107
|
+
After every conflicted path has a `## Main Refresh Conflicts` audit entry and
|
|
108
|
+
the required checks pass, apply the preflight branch automatically with:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
bash scripts/00.chat/main-refresh/verify-conflict-audit/script.sh \
|
|
112
|
+
--path <conflicted-path> ...
|
|
113
|
+
bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat/main-refresh/apply-rehearsed-refresh/script.sh <preflight-branch>
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Stop before applying if:
|
|
117
|
+
|
|
118
|
+
- unresolved conflicts remain
|
|
119
|
+
- required checks failed or were skipped
|
|
120
|
+
- the preflight worktree is dirty
|
|
121
|
+
- the preflight branch no longer descends from the chat branch
|
|
122
|
+
- the apply script refuses cleanup
|
|
123
|
+
- the user explicitly asked to inspect before applying
|
|
124
|
+
|
|
125
|
+
Do not ask for a second approval when none of those stop conditions apply.
|
|
126
|
+
|
|
127
|
+
## Type Index
|
|
128
|
+
|
|
129
|
+
| Type | Detect | Deterministic action |
|
|
130
|
+
| --- | --- | --- |
|
|
131
|
+
| `ownership-migration-conflict` | One side moves behavior to a canonical owner while the other side improves the old path | Keep the canonical owner; migrate useful improvements into it |
|
|
132
|
+
| `generated-artifact-conflict` | Conflict is only in a generated artifact that can be recreated from source evidence | Remove or restore the generated artifact according to its governing workflow, then regenerate only if an explicit output is requested |
|
|
133
|
+
| `session-bookkeeping-conflict` | Conflict is limited to the current chat session log or chat-owned bookkeeping | Preserve current session evidence; never discard recorded commits or retention markers |
|
|
134
|
+
| `retired-artifact-delete-modify-conflict` | Chat branch deletes a retired generated artifact while `main` modifies it | Keep the deletion when the retirement ADR/workflow is present; preserve useful policy references in canonical docs if needed |
|
|
135
|
+
| `retired-artifact-generator-conflict` | One side preserves generator behavior for a retired tracked artifact while the other side makes generation on-demand only | Preserve retired-artifact policy; keep safe print/explicit-output behavior; block recreation of the retired tracked artifact |
|
|
136
|
+
| `retired-artifact-policy-script-conflict` | One side adds classifier or workflow behavior for a retired tracked artifact while the other side retires that artifact | Preserve retired-artifact policy; remove recoverability paths for the retired tracked artifact |
|
|
137
|
+
| `script-add-add-conflict` | Both sides add the same script path independently | Compare behavior, tests, and call sites; if both implement the same governed capability, merge behavior and tests; otherwise stop |
|
|
138
|
+
| `normal-repo-conflict` | Conflict changes authored code/prose without a matching governed type | Stop for approval before resolving |
|
|
139
|
+
| `unsupported-conflict` | No existing type fits or classification is ambiguous | Stop with missing-governance response and propose a new or expanded type |
|
|
140
|
+
|
|
141
|
+
## Type Details
|
|
142
|
+
|
|
143
|
+
### ownership-migration-conflict
|
|
144
|
+
|
|
145
|
+
Detect:
|
|
146
|
+
- A workflow, checklist, or script path has moved to a canonical owner on one
|
|
147
|
+
side.
|
|
148
|
+
- The other side keeps the old path as the implementation and adds useful
|
|
149
|
+
governance, checks, or stricter safety behavior.
|
|
150
|
+
|
|
151
|
+
Examples:
|
|
152
|
+
- `.agentic/00.chat/workflows/chat-promote-to-main.md` owns chat promotion on
|
|
153
|
+
one side, while the other side adds verifier-based local convergence rules to
|
|
154
|
+
a retired shared workflow path.
|
|
155
|
+
|
|
156
|
+
Deterministic action:
|
|
157
|
+
- Keep the canonical owner path.
|
|
158
|
+
- Migrate useful main-side improvements into the canonical owner named by the
|
|
159
|
+
current workflow or artifact metadata.
|
|
160
|
+
- Adjust layer names, workflow paths, and exact blocked responses to the
|
|
161
|
+
canonical owner.
|
|
162
|
+
|
|
163
|
+
Required checks:
|
|
164
|
+
- Run deterministic process drift checks on the legacy pointer and canonical
|
|
165
|
+
owner.
|
|
166
|
+
- Run any script tests that cover the migrated behavior.
|
|
167
|
+
|
|
168
|
+
Session log entry:
|
|
169
|
+
- Record the conflicted path, canonical owner, migrated improvement, changed
|
|
170
|
+
files, and checks.
|
|
171
|
+
|
|
172
|
+
Stop if:
|
|
173
|
+
- The canonical owner is missing.
|
|
174
|
+
- The improvement cannot be migrated without changing behavior outside the
|
|
175
|
+
owner.
|
|
176
|
+
- Either side contains user-authored content whose ownership is unclear.
|
|
177
|
+
|
|
178
|
+
### generated-artifact-conflict
|
|
179
|
+
|
|
180
|
+
Detect:
|
|
181
|
+
- The conflicted path is a generated report, summary, build product, or other
|
|
182
|
+
reproducible artifact.
|
|
183
|
+
- A workflow, script, or ADR defines the source evidence and output policy.
|
|
184
|
+
|
|
185
|
+
Deterministic action:
|
|
186
|
+
- Follow the artifact policy.
|
|
187
|
+
- Do not preserve stale generated content just because it appears in a conflict.
|
|
188
|
+
- Do not recreate tracked `commitLogs/README.md`.
|
|
189
|
+
|
|
190
|
+
Required checks:
|
|
191
|
+
- Run the generator smoke test or verifier when one exists.
|
|
192
|
+
|
|
193
|
+
Session log entry:
|
|
194
|
+
- Record source evidence, artifact path, and whether regeneration happened.
|
|
195
|
+
|
|
196
|
+
Stop if:
|
|
197
|
+
- The source evidence is missing.
|
|
198
|
+
- The artifact is not reproducible.
|
|
199
|
+
- The artifact policy is unclear.
|
|
200
|
+
|
|
201
|
+
### session-bookkeeping-conflict
|
|
202
|
+
|
|
203
|
+
Detect:
|
|
204
|
+
- The conflict is limited to the current chat session log or chat-owned metadata.
|
|
205
|
+
|
|
206
|
+
Deterministic action:
|
|
207
|
+
- Preserve recorded commits, latest commit metadata, decisions, issues, ADR
|
|
208
|
+
disposition, and retention markers.
|
|
209
|
+
- Prefer additive merge of session evidence when entries are independent.
|
|
210
|
+
|
|
211
|
+
Required checks:
|
|
212
|
+
- Run commit prerequisite and session-log gates when applicable.
|
|
213
|
+
|
|
214
|
+
Session log entry:
|
|
215
|
+
- Record that session evidence was preserved and how.
|
|
216
|
+
|
|
217
|
+
Stop if:
|
|
218
|
+
- The conflict involves another chat's session log.
|
|
219
|
+
- Recorded commits or retention markers disagree.
|
|
220
|
+
|
|
221
|
+
### retired-artifact-delete-modify-conflict
|
|
222
|
+
|
|
223
|
+
Detect:
|
|
224
|
+
- One side deletes a generated artifact because it has been retired.
|
|
225
|
+
- The other side modifies the same artifact.
|
|
226
|
+
- A workflow or ADR records the retirement.
|
|
227
|
+
|
|
228
|
+
Deterministic action:
|
|
229
|
+
- Keep the deletion.
|
|
230
|
+
- Move any durable policy value into the canonical doc only if it is not already
|
|
231
|
+
represented there.
|
|
232
|
+
|
|
233
|
+
Required checks:
|
|
234
|
+
- Run artifact generator and retirement smoke tests when present.
|
|
235
|
+
|
|
236
|
+
Session log entry:
|
|
237
|
+
- Record artifact path, retirement source, and whether any policy text moved.
|
|
238
|
+
|
|
239
|
+
Stop if:
|
|
240
|
+
- Retirement evidence is missing.
|
|
241
|
+
- The modified content includes non-generated user-authored decisions.
|
|
242
|
+
|
|
243
|
+
### retired-artifact-generator-conflict
|
|
244
|
+
|
|
245
|
+
Detect:
|
|
246
|
+
- The conflicted path is a generator script or generator test.
|
|
247
|
+
- One side writes, checks, or recreates a tracked artifact that another side has
|
|
248
|
+
retired.
|
|
249
|
+
- A workflow or ADR records the artifact retirement.
|
|
250
|
+
|
|
251
|
+
Deterministic action:
|
|
252
|
+
- Preserve the retired-artifact policy.
|
|
253
|
+
- Do not restore default writes to the retired tracked artifact.
|
|
254
|
+
- Do not restore checks that require the retired tracked artifact to exist.
|
|
255
|
+
- Preserve safe non-persistent behavior such as stdout printing.
|
|
256
|
+
- Preserve explicit-output behavior only when it refuses the retired tracked
|
|
257
|
+
artifact path.
|
|
258
|
+
|
|
259
|
+
Required checks:
|
|
260
|
+
- Run the generator smoke test.
|
|
261
|
+
- Run shell syntax checks for shell-based generators.
|
|
262
|
+
|
|
263
|
+
Session log entry:
|
|
264
|
+
- Record retired artifact path, generator path, retirement source, preserved
|
|
265
|
+
safe behavior, and blocked behavior.
|
|
266
|
+
|
|
267
|
+
Stop if:
|
|
268
|
+
- The generator also produces non-retired artifacts and behavior cannot be
|
|
269
|
+
separated deterministically.
|
|
270
|
+
- The retirement source is missing or ambiguous.
|
|
271
|
+
|
|
272
|
+
### retired-artifact-policy-script-conflict
|
|
273
|
+
|
|
274
|
+
Detect:
|
|
275
|
+
- The conflicted path is a classifier, workflow, verifier, or test.
|
|
276
|
+
- One side adds recoverability, validation, or workflow behavior for a tracked
|
|
277
|
+
artifact that another side has retired.
|
|
278
|
+
- A workflow or ADR records the artifact retirement.
|
|
279
|
+
|
|
280
|
+
Deterministic action:
|
|
281
|
+
- Preserve the retired-artifact policy.
|
|
282
|
+
- Remove or avoid recoverability classes that treat the retired artifact as
|
|
283
|
+
active state.
|
|
284
|
+
- Preserve unrelated classifier, verifier, or workflow behavior.
|
|
285
|
+
- Update tests so they verify the retired artifact is not reintroduced as an
|
|
286
|
+
active governed path.
|
|
287
|
+
|
|
288
|
+
Required checks:
|
|
289
|
+
- Run the relevant classifier/verifier smoke tests.
|
|
290
|
+
- Run shell syntax checks for shell scripts.
|
|
291
|
+
|
|
292
|
+
Session log entry:
|
|
293
|
+
- Record retired artifact path, policy script path, removed recoverability, and
|
|
294
|
+
preserved behavior.
|
|
295
|
+
|
|
296
|
+
Stop if:
|
|
297
|
+
- The policy script behavior cannot be separated from unrelated active
|
|
298
|
+
behavior.
|
|
299
|
+
- The retirement source is missing or ambiguous.
|
|
300
|
+
|
|
301
|
+
### script-add-add-conflict
|
|
302
|
+
|
|
303
|
+
Detect:
|
|
304
|
+
- Both sides add the same script or test path.
|
|
305
|
+
- Git reports add/add (`AA`).
|
|
306
|
+
|
|
307
|
+
Deterministic action:
|
|
308
|
+
- Compare scripts by behavior, not just text.
|
|
309
|
+
- If both implement the same capability, produce a merged script that preserves
|
|
310
|
+
stricter validation and all relevant tests.
|
|
311
|
+
- If the capability differs, stop.
|
|
312
|
+
|
|
313
|
+
Required checks:
|
|
314
|
+
- Run shell syntax checks and the relevant smoke tests.
|
|
315
|
+
|
|
316
|
+
Session log entry:
|
|
317
|
+
- Record merged behavior and tests run.
|
|
318
|
+
|
|
319
|
+
Stop if:
|
|
320
|
+
- Behavior differs in a way that changes ownership, safety, or data mutation.
|
|
321
|
+
- No test covers the merged script.
|
|
322
|
+
|
|
323
|
+
### normal-repo-conflict
|
|
324
|
+
|
|
325
|
+
Detect:
|
|
326
|
+
- Conflict is user-authored code/prose and no more specific governed type fits.
|
|
327
|
+
|
|
328
|
+
Deterministic action:
|
|
329
|
+
- None.
|
|
330
|
+
|
|
331
|
+
Required checks:
|
|
332
|
+
- N/A until resolution is approved.
|
|
333
|
+
|
|
334
|
+
Session log entry:
|
|
335
|
+
- Record the stop and requested next step.
|
|
336
|
+
|
|
337
|
+
Stop if:
|
|
338
|
+
- Always stop before resolving.
|
|
339
|
+
|
|
340
|
+
### unsupported-conflict
|
|
341
|
+
|
|
342
|
+
Detect:
|
|
343
|
+
- Existing types do not fit.
|
|
344
|
+
- More than one type fits and the action differs.
|
|
345
|
+
- The model cannot explain the classification in terms of ownership, shape,
|
|
346
|
+
source, governance direction, and risk.
|
|
347
|
+
|
|
348
|
+
Deterministic action:
|
|
349
|
+
- None.
|
|
350
|
+
|
|
351
|
+
Required checks:
|
|
352
|
+
- N/A until governance is updated.
|
|
353
|
+
|
|
354
|
+
Session log entry:
|
|
355
|
+
- Record proposed new type or proposed expansion.
|
|
356
|
+
|
|
357
|
+
Stop if:
|
|
358
|
+
- Always stop with the missing-governance response.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<!-- agentic-artifact:
|
|
2
|
+
schema: agentic-artifact/v2
|
|
3
|
+
id: chat.workflows.readme
|
|
4
|
+
version: 1
|
|
5
|
+
status: active
|
|
6
|
+
layer: 00.chat
|
|
7
|
+
domain: chat
|
|
8
|
+
disciplines:
|
|
9
|
+
- agentic
|
|
10
|
+
kind: workflow
|
|
11
|
+
purpose: Document 00.chat Workflows.
|
|
12
|
+
portability:
|
|
13
|
+
class: required
|
|
14
|
+
targets:
|
|
15
|
+
- llm-workbench
|
|
16
|
+
- entity-builder
|
|
17
|
+
- design-system-builder
|
|
18
|
+
used_by:
|
|
19
|
+
- id: repo.agents
|
|
20
|
+
path: AGENTS.md
|
|
21
|
+
-->
|
|
22
|
+
# 00.chat Workflows
|
|
23
|
+
|
|
24
|
+
This index tracks chat lifecycle workflows as they migrate out of shared
|
|
25
|
+
process locations.
|
|
26
|
+
|
|
27
|
+
## Workflows
|
|
28
|
+
|
|
29
|
+
- `chat-start.md` - chat startup and active session discovery.
|
|
30
|
+
- `chat-refresh-from-main.md` - refresh chat branches from `main`.
|
|
31
|
+
- `chat-commit.md` - task commits, commit recording, and session checkpoints.
|
|
32
|
+
- `chat-promote-to-main.md` - local convergence from chat branch to `main`.
|
|
33
|
+
- `chat-cleanup.md` - chat branch, worktree, preflight, and empty-log cleanup.
|
|
34
|
+
- `chat-reporting.md` - on-demand reports from session logs.
|
|
35
|
+
- `chat-upstream-reusable-lesson.md` - handoff reusable chat harness lessons
|
|
36
|
+
from a source repo to an upstream workbench repo.
|
|
37
|
+
- `bootstrap-chat-workbench-repo.md` - seed an upstream chat workbench repo
|
|
38
|
+
using the shared upstream repo bootstrap standard.
|
|
39
|
+
|
|
40
|
+
Keep this index current as chat-specific workflows move into this layer.
|