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,131 @@
|
|
|
1
|
+
<!-- agentic-artifact:
|
|
2
|
+
schema: agentic-artifact/v2
|
|
3
|
+
id: shared.standards.upstream-repo-bootstrap
|
|
4
|
+
version: 1
|
|
5
|
+
status: active
|
|
6
|
+
layer: 06.shared
|
|
7
|
+
domain: bootstrap
|
|
8
|
+
disciplines:
|
|
9
|
+
- agentic
|
|
10
|
+
kind: standard
|
|
11
|
+
purpose: Define the Upstream Repo Bootstrap Standard standard.
|
|
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
|
+
|
|
23
|
+
# Upstream Repo Bootstrap Standard
|
|
24
|
+
|
|
25
|
+
## Purpose
|
|
26
|
+
|
|
27
|
+
Use this when seeding a reusable upstream repo from a source repo that already
|
|
28
|
+
contains working harness, product, infrastructure, or process artifacts.
|
|
29
|
+
|
|
30
|
+
The standard applies across layers. Layer workflows define the specific
|
|
31
|
+
portable file set for chat, frontend, CRUD factory, AWS CI/CD, or other
|
|
32
|
+
upstream repo types.
|
|
33
|
+
|
|
34
|
+
For public `llm-workbench` bootstrap or sync work, also apply
|
|
35
|
+
`.agentic/00.chat/standards/llm-workbench-public-beta-contract.md`.
|
|
36
|
+
|
|
37
|
+
## Ownership
|
|
38
|
+
|
|
39
|
+
- The source repo provides working evidence and candidate files.
|
|
40
|
+
- The upstream repo owns reusable behavior after bootstrap.
|
|
41
|
+
- The layer-specific bootstrap workflow owns the portable file set.
|
|
42
|
+
- Source-repo-specific product, deployment, customer, environment, credential,
|
|
43
|
+
path, and session-history details stay out of the upstream repo.
|
|
44
|
+
|
|
45
|
+
## Required Inspection
|
|
46
|
+
|
|
47
|
+
Before writing to the upstream repo, inspect and record:
|
|
48
|
+
|
|
49
|
+
- source repo absolute path
|
|
50
|
+
- upstream repo absolute path
|
|
51
|
+
- target upstream repo purpose
|
|
52
|
+
- whether the upstream repo is empty or already initialized
|
|
53
|
+
- whether the upstream repo has a valid `HEAD`
|
|
54
|
+
- current branch name, or the intended initial branch for an unborn `HEAD`
|
|
55
|
+
- candidate portable paths
|
|
56
|
+
- deterministic audit output for the layer-specific portable file set, when a
|
|
57
|
+
layer provides one
|
|
58
|
+
- required exclusions
|
|
59
|
+
- source paths that must remain private or source-specific
|
|
60
|
+
- whether any target paths would be overwritten
|
|
61
|
+
- whether the bootstrap creates a minimal usable product surface or only an
|
|
62
|
+
internal file baseline
|
|
63
|
+
|
|
64
|
+
## Approval Boundaries
|
|
65
|
+
|
|
66
|
+
- Read-only inspection does not approve writes.
|
|
67
|
+
- Writing or overwriting upstream files requires explicit approval.
|
|
68
|
+
- Creating an upstream commit requires explicit approval.
|
|
69
|
+
- Pushing upstream changes requires separate explicit approval.
|
|
70
|
+
- Deleting, moving, or rewriting upstream history requires separate explicit
|
|
71
|
+
approval and a workflow that governs that action.
|
|
72
|
+
|
|
73
|
+
## Empty Repo Bootstrap
|
|
74
|
+
|
|
75
|
+
For an empty upstream repo with no valid `HEAD`:
|
|
76
|
+
|
|
77
|
+
- establish the initial branch before running workflows that require a current
|
|
78
|
+
branch
|
|
79
|
+
- add starter public files required by the layer workflow
|
|
80
|
+
- create an initial commit before attempting normal chat startup in the
|
|
81
|
+
upstream repo
|
|
82
|
+
- do not push the initial commit without separate explicit approval
|
|
83
|
+
|
|
84
|
+
Do not pre-copy source repo `commitLogs/`. The upstream repo's first chat
|
|
85
|
+
startup creates its own `commitLogs/<date>/<session>/README.md` after the
|
|
86
|
+
initial commit exists.
|
|
87
|
+
|
|
88
|
+
## Required Exclusions
|
|
89
|
+
|
|
90
|
+
Exclude by default:
|
|
91
|
+
|
|
92
|
+
- `commitLogs/`
|
|
93
|
+
- chat transcripts and local session artifacts
|
|
94
|
+
- source repo product code
|
|
95
|
+
- source repo deployment, cloud, or environment-specific rules
|
|
96
|
+
- credentials, tokens, local profiles, and machine-specific paths
|
|
97
|
+
- customer, tenant, or private business data
|
|
98
|
+
- generated reports unless the layer workflow explicitly defines them as
|
|
99
|
+
reusable source material
|
|
100
|
+
|
|
101
|
+
## Required Output
|
|
102
|
+
|
|
103
|
+
A bootstrap workflow must produce or record:
|
|
104
|
+
|
|
105
|
+
- source repo and upstream repo paths
|
|
106
|
+
- file set copied or proposed
|
|
107
|
+
- exclusions applied
|
|
108
|
+
- initial branch and initial commit status for empty upstream repos
|
|
109
|
+
- product-shell files created, when the upstream repo is intended for external
|
|
110
|
+
use
|
|
111
|
+
- whether `commitLogs/` was created by a first upstream chat or intentionally
|
|
112
|
+
left absent until then
|
|
113
|
+
- checks run
|
|
114
|
+
- commit status
|
|
115
|
+
- push status
|
|
116
|
+
- follow-up needed before downstream repos can install or sync the upstream
|
|
117
|
+
repo
|
|
118
|
+
|
|
119
|
+
## Stop Conditions
|
|
120
|
+
|
|
121
|
+
Stop before writing when:
|
|
122
|
+
|
|
123
|
+
- upstream ownership is ambiguous
|
|
124
|
+
- the portable file set is not defined by a layer workflow or deterministic
|
|
125
|
+
audit when the layer provides one
|
|
126
|
+
- target repo contains files that would be overwritten without approval
|
|
127
|
+
- source-specific or private material cannot be cleanly separated
|
|
128
|
+
- an externally usable upstream repo lacks install docs, examples, or smoke
|
|
129
|
+
tests defined by its layer workflow
|
|
130
|
+
- the requested bootstrap would require a copy, commit, push, delete, move, or
|
|
131
|
+
overwrite action not governed by the current workflow
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<!-- agentic-artifact:
|
|
2
|
+
schema: agentic-artifact/v2
|
|
3
|
+
id: shared.workflows.readme
|
|
4
|
+
version: 1
|
|
5
|
+
status: active
|
|
6
|
+
layer: 06.shared
|
|
7
|
+
domain: process
|
|
8
|
+
disciplines:
|
|
9
|
+
- agentic
|
|
10
|
+
kind: readme
|
|
11
|
+
purpose: Index the active shared process 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
|
+
- id: chat.migration-plan
|
|
22
|
+
path: .agentic/00.chat/migration-plan.md
|
|
23
|
+
-->
|
|
24
|
+
|
|
25
|
+
# Shared Workflows
|
|
26
|
+
|
|
27
|
+
Shared workflows govern cross-layer process that does not belong to one
|
|
28
|
+
specialized layer. Chat lifecycle ownership belongs in `.agentic/00.chat/`.
|
|
29
|
+
|
|
30
|
+
## Workflows
|
|
31
|
+
|
|
32
|
+
- `change-shared-process.md` - change cross-layer git, commit, merge, handoff,
|
|
33
|
+
deployment, release, or context-preservation process.
|
|
34
|
+
- `capability-resolution-workflow.md` - propose or resolve capabilities before
|
|
35
|
+
implementation.
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
<!-- agentic-artifact:
|
|
2
|
+
schema: agentic-artifact/v2
|
|
3
|
+
id: shared.workflows.capability-resolution-workflow
|
|
4
|
+
version: 1
|
|
5
|
+
status: active
|
|
6
|
+
layer: 06.shared
|
|
7
|
+
domain: governance
|
|
8
|
+
disciplines:
|
|
9
|
+
- agentic
|
|
10
|
+
kind: workflow
|
|
11
|
+
purpose: Govern the Capability Resolution Workflow workflow.
|
|
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
|
+
|
|
23
|
+
# Capability Resolution Workflow
|
|
24
|
+
|
|
25
|
+
## Purpose
|
|
26
|
+
|
|
27
|
+
Resolve a user request into the smallest safe execution path for the harness.
|
|
28
|
+
|
|
29
|
+
Capability resolution happens after chat-start session discovery and before any workflow-specific gates are executed.
|
|
30
|
+
|
|
31
|
+
The resolution order is:
|
|
32
|
+
|
|
33
|
+
```text
|
|
34
|
+
task -> layer -> mode -> workflow -> gates
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Resolution Fields
|
|
38
|
+
|
|
39
|
+
### Layer
|
|
40
|
+
|
|
41
|
+
Layer identifies the ownership area affected by the request.
|
|
42
|
+
|
|
43
|
+
Allowed values:
|
|
44
|
+
|
|
45
|
+
- `shared`
|
|
46
|
+
- `chat`
|
|
47
|
+
- `harness`
|
|
48
|
+
- `education`
|
|
49
|
+
- `product`
|
|
50
|
+
- `mixed`
|
|
51
|
+
- `unknown`
|
|
52
|
+
|
|
53
|
+
Use `.agentic/routing-policy.yaml` as the source of truth for layer
|
|
54
|
+
definitions.
|
|
55
|
+
|
|
56
|
+
### Mode
|
|
57
|
+
|
|
58
|
+
Mode identifies the kind of work the user is asking the agent to perform.
|
|
59
|
+
|
|
60
|
+
Mode is independent of layer. The same mode can apply to chat, shared,
|
|
61
|
+
harness, education, or product work.
|
|
62
|
+
|
|
63
|
+
Allowed values:
|
|
64
|
+
|
|
65
|
+
- `discovery`
|
|
66
|
+
- `planning`
|
|
67
|
+
- `execution`
|
|
68
|
+
- `implementation`
|
|
69
|
+
- `unknown`
|
|
70
|
+
|
|
71
|
+
## Mode Definitions
|
|
72
|
+
|
|
73
|
+
### discovery
|
|
74
|
+
|
|
75
|
+
Use when the user wants explanation, discussion, brainstorming, conceptual guidance, or read-only inspection of files, logs, repository state, runtime state, or configuration.
|
|
76
|
+
|
|
77
|
+
Default action: read-only response or inspection.
|
|
78
|
+
|
|
79
|
+
### planning
|
|
80
|
+
|
|
81
|
+
Use when the user wants a proposal, architecture, implementation plan, migration plan, or ordered change list.
|
|
82
|
+
|
|
83
|
+
Default action: read-only planning.
|
|
84
|
+
|
|
85
|
+
### execution
|
|
86
|
+
|
|
87
|
+
Use when the user wants the agent to use an existing capability, workflow, gate, script, tool, or documented process without changing or adding capabilities.
|
|
88
|
+
|
|
89
|
+
Default action: follow the selected workflow's gates before running the existing capability.
|
|
90
|
+
|
|
91
|
+
### implementation
|
|
92
|
+
|
|
93
|
+
Use when the user wants the agent to create, edit, move, delete, format, or otherwise modify files, or add/change capabilities, workflows, gates, scripts, tools, documentation, or process rules.
|
|
94
|
+
|
|
95
|
+
Default action: require explicit write permission for the current chat before editing.
|
|
96
|
+
|
|
97
|
+
### unknown
|
|
98
|
+
|
|
99
|
+
Use when the mode cannot be resolved with enough confidence.
|
|
100
|
+
|
|
101
|
+
Default action: stop and ask one clarifying question before selecting a workflow or editing files.
|
|
102
|
+
|
|
103
|
+
## Workflow Selection
|
|
104
|
+
|
|
105
|
+
Select a workflow only after both layer and mode are known.
|
|
106
|
+
|
|
107
|
+
Workflow selection must respect both dimensions:
|
|
108
|
+
|
|
109
|
+
- Layer determines ownership.
|
|
110
|
+
- Mode determines posture and permissions.
|
|
111
|
+
|
|
112
|
+
Examples:
|
|
113
|
+
|
|
114
|
+
```text
|
|
115
|
+
Layer: harness
|
|
116
|
+
Mode: planning
|
|
117
|
+
Workflow: upstream llm-workbench harness-maintenance process
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
```text
|
|
121
|
+
Layer: chat
|
|
122
|
+
Mode: implementation
|
|
123
|
+
Workflow: .agentic/00.chat/workflows/chat-refresh-from-main.md
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
```text
|
|
127
|
+
Layer: product
|
|
128
|
+
Mode: implementation
|
|
129
|
+
Workflow: .agentic/product/workflows/default.md
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Gates
|
|
133
|
+
|
|
134
|
+
Gates run after workflow selection and before action.
|
|
135
|
+
|
|
136
|
+
At minimum:
|
|
137
|
+
|
|
138
|
+
- `execution` must use an existing capability, workflow, gate, script, tool, or documented process. If the capability must be created or changed first, treat the request as `implementation`.
|
|
139
|
+
- `implementation` requires explicit write permission for the current chat.
|
|
140
|
+
- `unknown` must not proceed to edits or commands that mutate state.
|
|
141
|
+
- If a required action, recovery path, workaround, or substitution is not
|
|
142
|
+
governed by the selected workflow, gate, script, or standard, stop and report
|
|
143
|
+
the missing governance gap before acting.
|
|
144
|
+
|
|
145
|
+
Workflows may define stricter gates.
|
|
146
|
+
|
|
147
|
+
## Ambiguity
|
|
148
|
+
|
|
149
|
+
Stop if any of these are ambiguous:
|
|
150
|
+
|
|
151
|
+
- layer
|
|
152
|
+
- mode
|
|
153
|
+
- workflow
|
|
154
|
+
- required permissions
|
|
155
|
+
- whether a requested action mutates state
|
|
156
|
+
|
|
157
|
+
Ask exactly one clarifying question, then resume resolution from the earliest ambiguous field.
|
|
158
|
+
|
|
159
|
+
If a request contains more than one mode, split it into ordered phases and resolve each phase separately.
|
|
160
|
+
|
|
161
|
+
Example:
|
|
162
|
+
|
|
163
|
+
```text
|
|
164
|
+
Phase 1: discovery
|
|
165
|
+
Phase 2: implementation
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## Prompt Routing Fixtures
|
|
169
|
+
|
|
170
|
+
Prompt-level routing examples belong to the repo's context router when one
|
|
171
|
+
exists. Use that router's fixtures and context-packet checks when prompt
|
|
172
|
+
routing behavior changes.
|
|
173
|
+
|
|
174
|
+
Add or update routing fixtures when:
|
|
175
|
+
|
|
176
|
+
- prompt routing behavior surprises the user or agent
|
|
177
|
+
- a prompt selector bug is fixed
|
|
178
|
+
- a new layer or mode concept is introduced
|
|
179
|
+
- routing rules are changed and existing behavior should be preserved
|
|
180
|
+
|
|
181
|
+
## Session Metadata
|
|
182
|
+
|
|
183
|
+
Chat session metadata records lifecycle continuity: session log, branch,
|
|
184
|
+
worktree, transcript metrics, and latest context-packet references.
|
|
185
|
+
|
|
186
|
+
Do not write durable chat-session `layer`, `mode`, or `workflow` fields. When a
|
|
187
|
+
prompt needs those values, resolve them for the current prompt through this
|
|
188
|
+
repo's assistant instructions and any repo-provided context router, then retain
|
|
189
|
+
the packet reference as continuity evidence if a router returns one.
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
<!-- agentic-artifact:
|
|
2
|
+
schema: agentic-artifact/v2
|
|
3
|
+
id: shared.workflows.change-shared-process
|
|
4
|
+
version: 1
|
|
5
|
+
status: active
|
|
6
|
+
layer: 06.shared
|
|
7
|
+
domain: process
|
|
8
|
+
disciplines:
|
|
9
|
+
- agentic
|
|
10
|
+
kind: workflow
|
|
11
|
+
purpose: Govern changes to cross-layer shared process.
|
|
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
|
+
|
|
23
|
+
# Change Shared Process Workflow
|
|
24
|
+
|
|
25
|
+
## Use When
|
|
26
|
+
|
|
27
|
+
Use this when a request changes cross-layer git, commit, merge, handoff,
|
|
28
|
+
deployment, release, or context-preservation process.
|
|
29
|
+
|
|
30
|
+
Chat lifecycle changes belong to `.agentic/00.chat/`.
|
|
31
|
+
|
|
32
|
+
## Required Gates
|
|
33
|
+
|
|
34
|
+
Before editing files:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
bash scripts/00.chat/worktree/dirty-worktree-check/script.sh --allow-session-bookkeeping
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
`bookkeeping-only` is acceptable after explicit write permission for the chat.
|
|
41
|
+
<!-- deterministic-check: allow reason="workflow defines exact blocked response around dirty-worktree gate output" -->
|
|
42
|
+
If dirty, respond exactly:
|
|
43
|
+
|
|
44
|
+
```txt
|
|
45
|
+
Blocked: dirty worktree. Confirm proceed? Layer: shared. Mode: <mode>. Workflow: .agentic/shared/workflows/change-shared-process.md
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Do not edit files while blocked.
|
|
49
|
+
|
|
50
|
+
## Rules
|
|
51
|
+
|
|
52
|
+
- Use the current branch session log as the first source of truth.
|
|
53
|
+
- Keep `AGENTS.md` as a router; put procedure in shared workflows, checklists,
|
|
54
|
+
gates, or scripts.
|
|
55
|
+
- Prefer deterministic scripts for repeatable checks.
|
|
56
|
+
- Do not create a task commit, push, delete branches, rewrite history, discard
|
|
57
|
+
work, overwrite work, or perform destructive actions without explicit user
|
|
58
|
+
approval.
|
|
59
|
+
- Chat task work must run in the chat-owned worktree recorded in the current
|
|
60
|
+
session log. The root worktree is the local integration console and must not
|
|
61
|
+
receive task edits, staging, formatting, or commits.
|
|
62
|
+
- After explicit write permission for the chat, routine session bookkeeping may
|
|
63
|
+
be staged without another prompt when limited to the current chat session log.
|
|
64
|
+
- Preserve unrelated user changes in a dirty worktree.
|
|
65
|
+
- Before any commit, complete `.agentic/00.chat/checklists/before-commit.md`.
|
|
66
|
+
|
|
67
|
+
## Chat Harness Delegation
|
|
68
|
+
|
|
69
|
+
Shared-process changes still run inside the chat harness. Before writing, run:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
bash scripts/00.chat/worktree/check-write-location/script.sh
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
<!-- deterministic-check: allow reason="ensure-chat-worktree enforces worktree creation and verification; workflow states when agents should invoke it" -->
|
|
76
|
+
If a session log exists but its worktree is missing, recreate or verify it with:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat/worktree/ensure-chat-worktree/script.sh <session-log>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
The chat-owned worktree has its own files and index. Stage only approved
|
|
83
|
+
repository-relative paths inside that worktree. The root worktree remains the
|
|
84
|
+
local convergence console.
|
|
85
|
+
|
|
86
|
+
Do not duplicate chat lifecycle, commit recording, transcript metrics,
|
|
87
|
+
bookkeeping checkpoint, or commit-log deletion rules here. Use the canonical
|
|
88
|
+
before-commit checklist for those gates:
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
.agentic/00.chat/checklists/before-commit.md
|
|
92
|
+
```
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Use the llm-workbench chat harness
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
At the start of a chat, follow `.agentic/00.chat/workflows/chat-start.md`.
|
|
7
|
+
Use the current branch's `commitLogs/<session>/README.md` as the first source
|
|
8
|
+
of truth for chat lifecycle, branch, worktree, context-packet references,
|
|
9
|
+
commits, and metrics.
|
|
10
|
+
|
|
11
|
+
Do not assign the whole chat a durable layer, mode, or workflow. When a prompt
|
|
12
|
+
needs layer, mode, workflow, corpus, or rule context, use the current user
|
|
13
|
+
request, this repo's assistant instructions, and any repo-provided context
|
|
14
|
+
router if one exists.
|
|
15
|
+
|
|
16
|
+
Default mode after governed chat-start bootstrap is read-only until the user
|
|
17
|
+
explicitly grants write permission for task files.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Copilot Instructions
|
|
2
|
+
|
|
3
|
+
This repo uses the `llm-workbench` chat harness.
|
|
4
|
+
|
|
5
|
+
At the start of a chat, follow `.agentic/00.chat/workflows/chat-start.md`.
|
|
6
|
+
Use the current branch's `commitLogs/<session>/README.md` as the first source
|
|
7
|
+
of truth for chat lifecycle, branch, worktree, context-packet references,
|
|
8
|
+
commits, and metrics.
|
|
9
|
+
|
|
10
|
+
Do not assign the whole chat a durable layer, mode, or workflow. When a prompt
|
|
11
|
+
needs layer, mode, workflow, corpus, or rule context, use the current user
|
|
12
|
+
request, this repo's assistant instructions, and any repo-provided context
|
|
13
|
+
router if one exists.
|
|
14
|
+
|
|
15
|
+
Do not push, rewrite history, discard work, or overwrite work without explicit
|
|
16
|
+
human approval.
|
package/AGENTS.md
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# AGENTS.md
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
This repo is governed by the llm-workbench chat harness. Keep this file small.
|
|
6
|
+
Do not add project-specific or procedural rules here.
|
|
7
|
+
|
|
8
|
+
## Before Acting
|
|
9
|
+
|
|
10
|
+
0. Skip steps 1-7 if the user starts a chat with `ignore chat start`.
|
|
11
|
+
1. Follow `.agentic/00.chat/workflows/chat-start.md`.
|
|
12
|
+
2. Use the current branch's `commitLogs/<session>/README.md` session metadata
|
|
13
|
+
as the first source of truth for chat lifecycle, branch, worktree, latest
|
|
14
|
+
context packet references, commits, and metrics.
|
|
15
|
+
3. Do not assign the whole chat a durable layer, mode, or workflow. Use the
|
|
16
|
+
current user request, this repo's assistant instructions, and any
|
|
17
|
+
repo-provided context router if one exists when a prompt needs layer, mode,
|
|
18
|
+
workflow, corpus, or rule context.
|
|
19
|
+
4. Use `chat_lifecycle_workflow` for chat startup/session lifecycle gates; use
|
|
20
|
+
the latest context packet only as continuity evidence for future prompt-level
|
|
21
|
+
context queries.
|
|
22
|
+
5. Follow the applicable chat lifecycle gate and any prompt-level context-router
|
|
23
|
+
packet checks before editing files.
|
|
24
|
+
6. Stop when repo state, branch state, task ownership, prompt-level routing,
|
|
25
|
+
chat lifecycle state, or governance coverage is ambiguous or absent.
|
|
26
|
+
7. Missing governance is a stop condition. If a required action, recovery path,
|
|
27
|
+
workaround, or substitution is not governed by the current workflow, gate,
|
|
28
|
+
script, or standard, stop before acting.
|
|
29
|
+
8. Follow shared approval rules before commits or destructive actions; never
|
|
30
|
+
push, delete branches, rewrite history, discard work, or overwrite work
|
|
31
|
+
without explicit user approval.
|
|
32
|
+
9. Default mode is read-only after governed chat-start bootstrap. The
|
|
33
|
+
chat-start workflow may create or verify the chat branch, worktree, and
|
|
34
|
+
session log from the opening prompt without separate permission unless the
|
|
35
|
+
prompt starts with `ignore chat start`. Do not create, edit, move, delete,
|
|
36
|
+
stage, commit, or format task files unless the user explicitly grants write
|
|
37
|
+
permission for this chat.
|
|
38
|
+
|
|
39
|
+
## Operating Layers
|
|
40
|
+
|
|
41
|
+
* `.agentic/00.chat/` governs chat lifecycle, including chat sessions, chat
|
|
42
|
+
worktrees, session logs, chat refresh, closeout, cleanup, shortcuts,
|
|
43
|
+
reporting, and upstream reusable lessons.
|
|
44
|
+
* `.agentic/shared/` governs cross-layer process primitives, including git
|
|
45
|
+
approval rules, handoff, context compaction, and upstream repo bootstrap
|
|
46
|
+
standards.
|
|
47
|
+
* Workbench maintenance belongs upstream in `llm-workbench`; target repos should
|
|
48
|
+
promote reusable harness lessons upstream instead of editing the harness in
|
|
49
|
+
place.
|
|
50
|
+
|
|
51
|
+
## Source Of Truth
|
|
52
|
+
|
|
53
|
+
* Session state: current branch's `commitLogs/<session>/README.md`
|
|
54
|
+
* Chat lifecycle process: `.agentic/00.chat/`
|
|
55
|
+
* Shared operating process: `.agentic/shared/`
|
|
56
|
+
* Executable checks: `scripts/`
|
|
57
|
+
* Human documentation: `docs/`
|
|
58
|
+
* Commit/task logs: `commitLogs/`
|
|
59
|
+
|
|
60
|
+
## Size Rule
|
|
61
|
+
|
|
62
|
+
Keep `AGENTS.md` short. If a rule only applies to a specific workflow,
|
|
63
|
+
checklist, standard, script, or install path, move it into that artifact.
|
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
This repo uses the `llm-workbench` chat harness.
|
|
4
|
+
|
|
5
|
+
At the start of a chat, follow `.agentic/00.chat/workflows/chat-start.md`.
|
|
6
|
+
Use the current branch's `commitLogs/<session>/README.md` as the first source
|
|
7
|
+
of truth for chat lifecycle, branch, worktree, context-packet references,
|
|
8
|
+
commits, and metrics.
|
|
9
|
+
|
|
10
|
+
Do not assign the whole chat a durable layer, mode, or workflow. When a prompt
|
|
11
|
+
needs layer, mode, workflow, corpus, or rule context, use the current user
|
|
12
|
+
request, this repo's assistant instructions, and any repo-provided context
|
|
13
|
+
router if one exists.
|
|
14
|
+
|
|
15
|
+
Default mode after governed chat-start bootstrap is read-only until the user
|
|
16
|
+
explicitly grants write permission for task files.
|
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Contributing
|
|
2
|
+
|
|
3
|
+
Thanks for taking an interest in `llm-workbench`.
|
|
4
|
+
|
|
5
|
+
This repo is a portable chat harness for governed agentic development. The
|
|
6
|
+
main goal is to make chat startup, worktree use, commit gates, refreshes, and
|
|
7
|
+
reusable lesson promotion repeatable enough that another engineer can install
|
|
8
|
+
the harness into their own Git repo and understand what will happen.
|
|
9
|
+
|
|
10
|
+
## Good First Contributions
|
|
11
|
+
|
|
12
|
+
Good early contributions are usually small and inspectable:
|
|
13
|
+
|
|
14
|
+
- clearer onboarding docs
|
|
15
|
+
- safer install or uninstall behavior
|
|
16
|
+
- better smoke tests
|
|
17
|
+
- clearer names for scripts, workflows, or concepts
|
|
18
|
+
- fixes where a documented command no longer matches the script it describes
|
|
19
|
+
|
|
20
|
+
Avoid broad rewrites unless there is an issue or discussion that explains the
|
|
21
|
+
new shape. The harness is intentionally explicit, so small changes are easier
|
|
22
|
+
to review and safer for downstream repos.
|
|
23
|
+
|
|
24
|
+
## Before Changing Harness Behavior
|
|
25
|
+
|
|
26
|
+
If a change affects chat startup, branch/worktree handling, commit gates,
|
|
27
|
+
refresh from `main`, local merge readiness, install/uninstall, or reusable
|
|
28
|
+
lesson promotion, update the relevant docs and tests in the same change.
|
|
29
|
+
|
|
30
|
+
At minimum, check:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npm run test:install
|
|
34
|
+
bash tests/smoke-test-cli.sh
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
If you add or move a script, keep its nearby README current. The README should
|
|
38
|
+
teach a new reader what the script does, when it runs, what it writes, and what
|
|
39
|
+
approval boundaries it respects.
|
|
40
|
+
|
|
41
|
+
## Pull Requests
|
|
42
|
+
|
|
43
|
+
Please include:
|
|
44
|
+
|
|
45
|
+
- what changed
|
|
46
|
+
- why it changed
|
|
47
|
+
- how you tested it
|
|
48
|
+
- any behavior that downstream repos should notice
|
|
49
|
+
|
|
50
|
+
Do not include private repo paths, local transcripts, API keys, customer data,
|
|
51
|
+
or project-specific secrets in issues or pull requests.
|
|
52
|
+
|
|
53
|
+
## Style
|
|
54
|
+
|
|
55
|
+
Prefer plain Bash and Markdown unless a stronger reason exists. Keep public
|
|
56
|
+
docs educational: assume the reader is new to this harness and explain the
|
|
57
|
+
purpose of each moving part before asking them to rely on it.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Gordon Rose
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/LLM_WORKBENCH.md
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# LLM Workbench Instructions
|
|
2
|
+
|
|
3
|
+
This generic adapter is for CLI agents and assistants without a native
|
|
4
|
+
repository-instruction filename, including Mistral-backed tools.
|
|
5
|
+
|
|
6
|
+
At the start of a chat, follow `.agentic/00.chat/workflows/chat-start.md`.
|
|
7
|
+
Use the current branch's `commitLogs/<session>/README.md` as the first source
|
|
8
|
+
of truth for chat lifecycle, branch, worktree, context-packet references,
|
|
9
|
+
commits, and metrics.
|
|
10
|
+
|
|
11
|
+
Do not assign the whole chat a durable layer, mode, or workflow. When a prompt
|
|
12
|
+
needs layer, mode, workflow, corpus, or rule context, use the current user
|
|
13
|
+
request, this repo's assistant instructions, and any repo-provided context
|
|
14
|
+
router if one exists.
|
|
15
|
+
|
|
16
|
+
Default mode after governed chat-start bootstrap is read-only until the user
|
|
17
|
+
explicitly grants write permission for task files.
|