@haaaiawd/loom 2.1.0 → 2.1.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.
- package/CHANGELOG.md +44 -40
- package/EVIL_EVAL.md +22 -22
- package/design.md +29 -29
- package/docs/PROMPT_CATALOG.md +31 -31
- package/docs/RELEASE_CHECKLIST.md +3 -3
- package/docs/UX_FLOW.md +18 -18
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,40 +1,44 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
## Unreleased
|
|
4
|
-
|
|
5
|
-
- Added environment-aware clarification through `loom context --human-channel available|unavailable`. Unattended Agents inspect first, research only permitted objective facts, and then use bounded assumptions or blocks rather than fabricating users or substituting web search for intent.
|
|
6
|
-
- Added `--state-dir <outside-workspace-dir>` sidecars for isolated benchmark and sandbox runs. Sidecars preserve virtual `.loom/` Task references without mutating the scored workspace or its `AGENTS.md`.
|
|
7
|
-
- Added equal human-channel controls and unattended condition prompts to Evil Eval scaffolding.
|
|
8
|
-
|
|
9
|
-
## 2.1.
|
|
10
|
-
|
|
11
|
-
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
- Added
|
|
19
|
-
-
|
|
20
|
-
- Added
|
|
21
|
-
- Added
|
|
22
|
-
- Added `loom
|
|
23
|
-
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
- Added
|
|
39
|
-
- Added
|
|
40
|
-
-
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## Unreleased
|
|
4
|
+
|
|
5
|
+
- Added environment-aware clarification through `loom context --human-channel available|unavailable`. Unattended Agents inspect first, research only permitted objective facts, and then use bounded assumptions or blocks rather than fabricating users or substituting web search for intent.
|
|
6
|
+
- Added `--state-dir <outside-workspace-dir>` sidecars for isolated benchmark and sandbox runs. Sidecars preserve virtual `.loom/` Task references without mutating the scored workspace or its `AGENTS.md`.
|
|
7
|
+
- Added equal human-channel controls and unattended condition prompts to Evil Eval scaffolding.
|
|
8
|
+
|
|
9
|
+
## 2.1.1
|
|
10
|
+
|
|
11
|
+
- Re-published 2.1.0 content with corrected CHANGELOG line endings.
|
|
12
|
+
|
|
13
|
+
## 2.1.0
|
|
14
|
+
|
|
15
|
+
- Added a current-state and recommended-action header to `loom context` output. Agents entering a project or resuming after compression now see project status, active task, work-map counts, and a recommended next action before the full protocol. The recommendation is advisory, not a script.
|
|
16
|
+
- Rewrote `AGENTS.md` with explicit LOOM trigger conditions (project entry, context reset, before substantial work, between Tasks) and a standard work rhythm that keeps Agent judgment while making the next step obvious.
|
|
17
|
+
- Integrated Crux integrity-chain review into the Keeper handoff. The Keeper now checks that responsible intent, project promises, design and capability decisions, Work Map, executable behavior, and human feedback loop form an intact chain, and looks for omission, substitution, drift, unsupported leaps, blindness, and ownerless gaps.
|
|
18
|
+
- Added staged visibility and review guidance to the project template and active-Task execution protocol. Tasks should prefer human-visible acceptance evidence, the Agent should show real working things at milestones, run `loom check` and project tests together before declaring a batch done, and prioritize reaching an exciting surface early to sustain the human's momentum.
|
|
19
|
+
- Strengthened capability source validation: `loom capability synthesize` now requires each decision-tree node's `source:` citation to reference a real `.md` file in the dossier's `research/` directory.
|
|
20
|
+
- Added `research/_guide.md` generation in `loom capability research` so Agents know what good research material looks like, what to avoid, and how to cite sources.
|
|
21
|
+
- Added `.loom/STRUCTURE.md` as a fifth project-truth layer declaring where source code, tests, docs, assets, and configuration files live. `loom check` warns when it is missing or still templated.
|
|
22
|
+
- Added `loom decision --json-file` for recording consequential superseding decisions with affected files and tasks. `loom check` warns when a done Task is marked affected by a later decision.
|
|
23
|
+
- Added `acceptance[]` as the primary Task completion structure, pairing `criterion`, `verify_by`, and `evidence`. Legacy `done_when[]` remains supported.
|
|
24
|
+
- Added Keeper auto-pass: when all Keeper gaps are minor and 3 or fewer, fixing them and running `loom project ready` auto-passes without another Keeper round.
|
|
25
|
+
- Added deliverable coverage tracking through `loom deliverable add` and Task `covers` field. `loom check` reports uncovered delivery units.
|
|
26
|
+
- Added `loom capability research → synthesize → confirm` lifecycle with status tracking per dossier.
|
|
27
|
+
- Updated help text with a typical first-pass flow and capability lifecycle sequence.
|
|
28
|
+
|
|
29
|
+
## 2.0.1
|
|
30
|
+
|
|
31
|
+
- Added an active-Task execution protocol that restores workspace-aware coding guidance, risk-based testing, restartable progress, criterion-level proof, and conditional commit/PR boundaries after context resets.
|
|
32
|
+
- Strengthened the generated `AGENTS.md` anchor so Agents reload LOOM at project entry, after context loss, and before resumed editing without invoking it before every tool call.
|
|
33
|
+
|
|
34
|
+
## 2.0.0
|
|
35
|
+
|
|
36
|
+
- Rebuilt LOOM as invisible Agent infrastructure around project understanding, a scalable design-document graph, separate professional-field dossiers, a broad Work Map, and one active Task.
|
|
37
|
+
- Replaced fixed roles and stages with an adaptive clarification protocol and explicit convergence conditions.
|
|
38
|
+
- Added human-editable project truth, structured continuity state, and superseding decision history.
|
|
39
|
+
- Added context selection that keeps very large Task maps on disk and injects only the active horizon.
|
|
40
|
+
- Added seven adaptable design-document templates and `loom prompts` as a complete live prompt inventory.
|
|
41
|
+
- Reduced Keeper to one independent build-readiness handoff with revision, changed-digest, fresh-run, and stale-state enforcement.
|
|
42
|
+
- Added controlled Evil Eval scaffolding for equal-condition, repeated, reset-heavy blind comparison.
|
|
43
|
+
- Added bilingual English/Chinese release documentation and a flat, minimal visual system with editable loop diagrams.
|
|
44
|
+
- Deliberately stopped automatic mutation of legacy `.loom/v1` projects.
|
package/EVIL_EVAL.md
CHANGED
|
@@ -22,11 +22,11 @@ baseline and does not answer whether LOOM itself adds value.
|
|
|
22
22
|
|
|
23
23
|
A scenario records:
|
|
24
24
|
|
|
25
|
-
- the identical raw brief;
|
|
26
|
-
- workspace setup and immutable snapshot;
|
|
27
|
-
- hidden user facts and a deterministic answer script;
|
|
28
|
-
- human-channel availability (`available` or `unavailable`), identical across conditions;
|
|
29
|
-
- success criteria that judges can observe;
|
|
25
|
+
- the identical raw brief;
|
|
26
|
+
- workspace setup and immutable snapshot;
|
|
27
|
+
- hidden user facts and a deterministic answer script;
|
|
28
|
+
- human-channel availability (`available` or `unavailable`), identical across conditions;
|
|
29
|
+
- success criteria that judges can observe;
|
|
30
30
|
- context-reset points;
|
|
31
31
|
- equal token, time, and tool budgets;
|
|
32
32
|
- at least three repetitions per condition.
|
|
@@ -43,18 +43,18 @@ decision.
|
|
|
43
43
|
4. Change one consequential user answer after the first plan is formed.
|
|
44
44
|
5. Give both conditions equal access to discoverable repository facts.
|
|
45
45
|
6. Penalize unnecessary questions, ceremony, document volume, time, and token cost.
|
|
46
|
-
7. Require an implementation attempt or operational transcript; documents alone cannot win.
|
|
47
|
-
|
|
48
|
-
## Unattended external benchmarks
|
|
49
|
-
|
|
50
|
-
An external benchmark such as a terminal-use suite may provide no human response channel. In that condition,
|
|
51
|
-
set `human_channel` to `unavailable` for both arms. Neither arm may invent a user answer or treat web search as
|
|
52
|
-
a substitute for user intent, preference, or authority. Both may inspect the workspace and use only the research
|
|
53
|
-
tools the benchmark makes available; unresolved consequential choices require a bounded reversible assumption or
|
|
54
|
-
a block.
|
|
55
|
-
|
|
56
|
-
Run LOOM with `--state-dir` pointing outside the scored workspace. The sidecar must be fresh per run and passed
|
|
57
|
-
to every LOOM command, so `.loom/` state cannot alter task files or hidden-test behavior.
|
|
46
|
+
7. Require an implementation attempt or operational transcript; documents alone cannot win.
|
|
47
|
+
|
|
48
|
+
## Unattended external benchmarks
|
|
49
|
+
|
|
50
|
+
An external benchmark such as a terminal-use suite may provide no human response channel. In that condition,
|
|
51
|
+
set `human_channel` to `unavailable` for both arms. Neither arm may invent a user answer or treat web search as
|
|
52
|
+
a substitute for user intent, preference, or authority. Both may inspect the workspace and use only the research
|
|
53
|
+
tools the benchmark makes available; unresolved consequential choices require a bounded reversible assumption or
|
|
54
|
+
a block.
|
|
55
|
+
|
|
56
|
+
Run LOOM with `--state-dir` pointing outside the scored workspace. The sidecar must be fresh per run and passed
|
|
57
|
+
to every LOOM command, so `.loom/` state cannot alter task files or hidden-test behavior.
|
|
58
58
|
|
|
59
59
|
## Measures
|
|
60
60
|
|
|
@@ -105,11 +105,11 @@ Create a scenario description:
|
|
|
105
105
|
```json
|
|
106
106
|
{
|
|
107
107
|
"id": "EVAL-001",
|
|
108
|
-
"title": "Ambiguous multidisciplinary build",
|
|
109
|
-
"brief": "Build a calming recovery tool from this repository.",
|
|
110
|
-
"hidden_user_facts": ["The user must retain manual control."],
|
|
111
|
-
"human_channel": "available",
|
|
112
|
-
"success_criteria": ["A fresh Agent resumes correctly after a forced reset."],
|
|
108
|
+
"title": "Ambiguous multidisciplinary build",
|
|
109
|
+
"brief": "Build a calming recovery tool from this repository.",
|
|
110
|
+
"hidden_user_facts": ["The user must retain manual control."],
|
|
111
|
+
"human_channel": "available",
|
|
112
|
+
"success_criteria": ["A fresh Agent resumes correctly after a forced reset."],
|
|
113
113
|
"context_reset_points": ["after-shaping", "mid-task"],
|
|
114
114
|
"repetitions": 3
|
|
115
115
|
}
|
package/design.md
CHANGED
|
@@ -132,15 +132,15 @@ cli/src/protocol.js layered Agent prompts and every human-readable template
|
|
|
132
132
|
cli/test/run-all.js end-to-end contract tests
|
|
133
133
|
```
|
|
134
134
|
|
|
135
|
-
The CLI has six responsibilities:
|
|
135
|
+
The CLI has six responsibilities:
|
|
136
136
|
|
|
137
137
|
1. Initialize the minimal project backbone.
|
|
138
138
|
2. Record structured understanding and decision history safely.
|
|
139
139
|
3. Scaffold a scalable design-document graph and separate professional-field dossiers.
|
|
140
|
-
4. Maintain a large Work Map and a single active Task.
|
|
141
|
-
5. Compile only decision-relevant context after reset.
|
|
142
|
-
6. Adapt clarification to whether a human response channel is actually available.
|
|
143
|
-
7. Prepare one-time Keeper and controlled Evil Eval artifacts.
|
|
140
|
+
4. Maintain a large Work Map and a single active Task.
|
|
141
|
+
5. Compile only decision-relevant context after reset.
|
|
142
|
+
6. Adapt clarification to whether a human response channel is actually available.
|
|
143
|
+
7. Prepare one-time Keeper and controlled Evil Eval artifacts.
|
|
144
144
|
|
|
145
145
|
It does not orchestrate models, browse the web, generate project documents, or pretend that a CLI command
|
|
146
146
|
clears model memory. Those capabilities belong to the host Agent and its tools.
|
|
@@ -165,34 +165,34 @@ generic updates cannot change status, and completion requires criterion-by-crite
|
|
|
165
165
|
|
|
166
166
|
## Context selection
|
|
167
167
|
|
|
168
|
-
`loom context` always injects:
|
|
168
|
+
`loom context` always injects:
|
|
169
169
|
|
|
170
170
|
- the stable Agent protocol;
|
|
171
171
|
- compact state counts and open uncertainty;
|
|
172
172
|
- PROJECT.md, with decision history identified as on-demand context;
|
|
173
|
-
- the active Task, if one exists;
|
|
174
|
-
- the exact design, capability, source, contract, or fixture files named in that Task's `reads` list.
|
|
175
|
-
|
|
176
|
-
### Environment adaptation and isolated state
|
|
177
|
-
|
|
178
|
-
The host supplies human-channel availability at context time. With `available` (the default), the Agent may
|
|
179
|
-
ask the human for consequential intent, preference, authority, or facts that only they hold. With
|
|
180
|
-
`unavailable`, it must not fabricate a user exchange or replace an intent/authority question with web search.
|
|
181
|
-
It first inspects discoverable workspace facts and permitted tools, researches only objective external facts when
|
|
182
|
-
the task allows it, then records a bounded assumption and chooses a safe reversible action or blocks on
|
|
183
|
-
unavailable authority.
|
|
184
|
-
|
|
185
|
-
`--state-dir <outside-workspace-dir>` places LOOM's state tree in a per-run sidecar rather than the workspace.
|
|
186
|
-
This is for benchmark or sandbox runners whose scored workspace must remain pristine. The sidecar remains
|
|
187
|
-
semantically `.loom/` to LOOM documents and Task references, but initialization does not edit the workspace
|
|
188
|
-
or add an AGENTS.md anchor. Every command in that run must receive the same state directory.
|
|
189
|
-
|
|
190
|
-
When a Task is active, context also injects a short execution protocol. It tells a reset Agent to reconcile
|
|
191
|
-
the Task with the current workspace and version-control state, inspect relevant tests before editing, choose
|
|
192
|
-
verification according to risk and the exact `done_when` claims, persist `completed/current/next` at meaningful
|
|
193
|
-
handoff boundaries, and close only with reproducible criterion-level evidence. It deliberately does not require
|
|
194
|
-
a ceremonial unit test for every kind of work or a branch, commit, or pull request for every Task. Those
|
|
195
|
-
delivery mechanisms remain conditional on the human request and repository workflow.
|
|
173
|
+
- the active Task, if one exists;
|
|
174
|
+
- the exact design, capability, source, contract, or fixture files named in that Task's `reads` list.
|
|
175
|
+
|
|
176
|
+
### Environment adaptation and isolated state
|
|
177
|
+
|
|
178
|
+
The host supplies human-channel availability at context time. With `available` (the default), the Agent may
|
|
179
|
+
ask the human for consequential intent, preference, authority, or facts that only they hold. With
|
|
180
|
+
`unavailable`, it must not fabricate a user exchange or replace an intent/authority question with web search.
|
|
181
|
+
It first inspects discoverable workspace facts and permitted tools, researches only objective external facts when
|
|
182
|
+
the task allows it, then records a bounded assumption and chooses a safe reversible action or blocks on
|
|
183
|
+
unavailable authority.
|
|
184
|
+
|
|
185
|
+
`--state-dir <outside-workspace-dir>` places LOOM's state tree in a per-run sidecar rather than the workspace.
|
|
186
|
+
This is for benchmark or sandbox runners whose scored workspace must remain pristine. The sidecar remains
|
|
187
|
+
semantically `.loom/` to LOOM documents and Task references, but initialization does not edit the workspace
|
|
188
|
+
or add an AGENTS.md anchor. Every command in that run must receive the same state directory.
|
|
189
|
+
|
|
190
|
+
When a Task is active, context also injects a short execution protocol. It tells a reset Agent to reconcile
|
|
191
|
+
the Task with the current workspace and version-control state, inspect relevant tests before editing, choose
|
|
192
|
+
verification according to risk and the exact `done_when` claims, persist `completed/current/next` at meaningful
|
|
193
|
+
handoff boundaries, and close only with reproducible criterion-level evidence. It deliberately does not require
|
|
194
|
+
a ceremonial unit test for every kind of work or a branch, commit, or pull request for every Task. Those
|
|
195
|
+
delivery mechanisms remain conditional on the human request and repository workflow.
|
|
196
196
|
|
|
197
197
|
Workspace code paths in `touches` are identified but not automatically copied into context. Full decision
|
|
198
198
|
history is not repeatedly injected because current truth belongs in PROJECT.md and linked design documents.
|
package/docs/PROMPT_CATALOG.md
CHANGED
|
@@ -12,29 +12,29 @@ order as JSON, so documentation cannot quietly describe a different prompt from
|
|
|
12
12
|
|
|
13
13
|
## Instruction layers
|
|
14
14
|
|
|
15
|
-
| Layer | Message | Injected when | Purpose |
|
|
16
|
-
|---|---|---|---|
|
|
17
|
-
| Stable core | `layers.stable_core` | Every `loom context` | Durable collaboration judgment: user ownership, evidence classes, question threshold, corrections, reversible delegation |
|
|
18
|
-
| Environment adaptation | `layers.environment_adaptation_available` or `layers.environment_adaptation_unavailable` | Every `loom context` | States whether a human can answer; routes uncertainty through inspection, permitted factual research, clarification, bounded assumption, or block |
|
|
19
|
-
| Runtime adaptation | `layers.runtime_protocol` | Every `loom context` | LOOM-specific disk model, document graph, capability boundaries, Work Map, and three production loops |
|
|
20
|
-
| Project state | `layers.project_state` | Every `loom context` | Dynamic status, uncertainty, assumptions, document/capability inventory, Task counts, and Keeper feedback |
|
|
21
|
-
| Execution protocol | `layers.execution_protocol` | Active Task or `--task` | Recovery, workspace inspection, risk-based testing, progress persistence, exact proof, and delivery boundaries |
|
|
22
|
-
| Current task | `layers.current_task` | Active Task or `--task` | Exact Task JSON followed by the exact contents of every path in `reads` |
|
|
15
|
+
| Layer | Message | Injected when | Purpose |
|
|
16
|
+
|---|---|---|---|
|
|
17
|
+
| Stable core | `layers.stable_core` | Every `loom context` | Durable collaboration judgment: user ownership, evidence classes, question threshold, corrections, reversible delegation |
|
|
18
|
+
| Environment adaptation | `layers.environment_adaptation_available` or `layers.environment_adaptation_unavailable` | Every `loom context` | States whether a human can answer; routes uncertainty through inspection, permitted factual research, clarification, bounded assumption, or block |
|
|
19
|
+
| Runtime adaptation | `layers.runtime_protocol` | Every `loom context` | LOOM-specific disk model, document graph, capability boundaries, Work Map, and three production loops |
|
|
20
|
+
| Project state | `layers.project_state` | Every `loom context` | Dynamic status, uncertainty, assumptions, document/capability inventory, Task counts, and Keeper feedback |
|
|
21
|
+
| Execution protocol | `layers.execution_protocol` | Active Task or `--task` | Recovery, workspace inspection, risk-based testing, progress persistence, exact proof, and delivery boundaries |
|
|
22
|
+
| Current task | `layers.current_task` | Active Task or `--task` | Exact Task JSON followed by the exact contents of every path in `reads` |
|
|
23
23
|
|
|
24
24
|
This separation is deliberate. Project-specific expertise does not inflate the stable prompt; it lives in
|
|
25
|
-
field dossiers. One-off Task instructions do not become global doctrine. Host permissions and tools are not
|
|
26
|
-
claimed by prompt text.
|
|
27
|
-
|
|
28
|
-
When the human channel is unavailable, the environment message explicitly forbids fabricated user interaction and
|
|
29
|
-
forbids treating web research as a substitute for user intent, preference, or authority. It preserves factual
|
|
30
|
-
research when the task and host actually permit it, then requires a reversible assumption or block for what cannot
|
|
31
|
-
be learned.
|
|
25
|
+
field dossiers. One-off Task instructions do not become global doctrine. Host permissions and tools are not
|
|
26
|
+
claimed by prompt text.
|
|
27
|
+
|
|
28
|
+
When the human channel is unavailable, the environment message explicitly forbids fabricated user interaction and
|
|
29
|
+
forbids treating web research as a substitute for user intent, preference, or authority. It preserves factual
|
|
30
|
+
research when the task and host actually permit it, then requires a reversible assumption or block for what cannot
|
|
31
|
+
be learned.
|
|
32
32
|
|
|
33
33
|
## Workspace and document messages
|
|
34
34
|
|
|
35
|
-
`workspace_anchor` is the short block added to `AGENTS.md`. It tells an entering or reset Agent to run
|
|
36
|
-
`loom context`, rerun it before editing after an interruption, persist state at meaningful boundaries rather
|
|
37
|
-
than before every tool call, and keep CLI operation invisible to the human.
|
|
35
|
+
`workspace_anchor` is the short block added to `AGENTS.md`. It tells an entering or reset Agent to run
|
|
36
|
+
`loom context`, rerun it before editing after an interruption, persist state at meaningful boundaries rather
|
|
37
|
+
than before every tool call, and keep CLI operation invisible to the human.
|
|
38
38
|
|
|
39
39
|
`templates.project_index` creates `.loom/PROJECT.md` as a concise whole and document map. It explicitly
|
|
40
40
|
prevents a large project's systems from being compressed into one file.
|
|
@@ -77,12 +77,12 @@ new digest, and another fresh Keeper.
|
|
|
77
77
|
`evaluation.baseline_condition` gives a normal capable Agent the identical brief and ordinary tools without
|
|
78
78
|
LOOM. It does not weaken the baseline or prohibit normal planning.
|
|
79
79
|
|
|
80
|
-
`evaluation.loom_condition` gives the same brief, model class, tools, workspace facts, and budget, adding only
|
|
81
|
-
LOOM continuity infrastructure and no extra authority.
|
|
82
|
-
|
|
83
|
-
`evaluation.unattended_baseline_condition` and `evaluation.unattended_loom_condition` are the same two
|
|
84
|
-
conditions when no user response channel exists. The environment fact is equal in both arms; only the LOOM arm
|
|
85
|
-
uses `loom context --human-channel unavailable`.
|
|
80
|
+
`evaluation.loom_condition` gives the same brief, model class, tools, workspace facts, and budget, adding only
|
|
81
|
+
LOOM continuity infrastructure and no extra authority.
|
|
82
|
+
|
|
83
|
+
`evaluation.unattended_baseline_condition` and `evaluation.unattended_loom_condition` are the same two
|
|
84
|
+
conditions when no user response channel exists. The environment fact is equal in both arms; only the LOOM arm
|
|
85
|
+
uses `loom context --human-channel unavailable`.
|
|
86
86
|
|
|
87
87
|
`evaluation.blind_judge` scores anonymized output on intent fidelity, question value, whole coverage,
|
|
88
88
|
professional depth, buildability, reset continuity, implementation evidence, human burden, and cost. It
|
|
@@ -92,13 +92,13 @@ penalizes ceremony and runs an order swap.
|
|
|
92
92
|
|
|
93
93
|
`composition.normal_resume`, `composition.active_task`, and `composition.keeper_handoff` list the exact block
|
|
94
94
|
order. Keeper receives every design and capability document; a normal active Task receives only its declared
|
|
95
|
-
reads. This difference is intentional: Keeper audits whole-project coverage, while delivery protects context
|
|
96
|
-
focus.
|
|
97
|
-
|
|
98
|
-
The active Task composition adds `execution_protocol` between the recovered project whole and the exact Task.
|
|
99
|
-
It requires inspection of current workspace/version-control reality, risk-appropriate tests, restartable
|
|
100
|
-
progress, and criterion-level proof. It does not force a unit test for non-code claims or a branch/PR for every
|
|
101
|
-
Task; those are selected when the behavior, human request, or repository workflow makes them meaningful.
|
|
95
|
+
reads. This difference is intentional: Keeper audits whole-project coverage, while delivery protects context
|
|
96
|
+
focus.
|
|
97
|
+
|
|
98
|
+
The active Task composition adds `execution_protocol` between the recovered project whole and the exact Task.
|
|
99
|
+
It requires inspection of current workspace/version-control reality, risk-appropriate tests, restartable
|
|
100
|
+
progress, and criterion-level proof. It does not force a unit test for non-code claims or a branch/PR for every
|
|
101
|
+
Task; those are selected when the behavior, human request, or repository workflow makes them meaningful.
|
|
102
102
|
|
|
103
103
|
## CLI operational messages
|
|
104
104
|
|
|
@@ -31,9 +31,9 @@ already exist in the registry.
|
|
|
31
31
|
## 3. Publish deliberately
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
git tag v2.0.1
|
|
34
|
+
git tag v2.0.1
|
|
35
35
|
git push origin HEAD
|
|
36
|
-
git push origin v2.0.1
|
|
36
|
+
git push origin v2.0.1
|
|
37
37
|
npm publish --access public
|
|
38
38
|
```
|
|
39
39
|
|
|
@@ -46,7 +46,7 @@ In a clean temporary directory:
|
|
|
46
46
|
|
|
47
47
|
```bash
|
|
48
48
|
npm view @haaaiawd/loom version
|
|
49
|
-
npx @haaaiawd/loom@2.0.1 --version
|
|
49
|
+
npx @haaaiawd/loom@2.0.1 --version
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
Then open the GitHub README and npm package page to confirm the SVG header, diagrams, links, and changelog
|
package/docs/UX_FLOW.md
CHANGED
|
@@ -56,17 +56,17 @@ details that do not affect the current whole, or framework questions whose only
|
|
|
56
56
|
| `I don't know` | Research or decide when safe; ask again only if the human owns the missing preference or authority |
|
|
57
57
|
| `Skip questions and continue` | Name the concrete quality or risk loss, record skipped uncertainty, then proceed |
|
|
58
58
|
|
|
59
|
-
After every answer round, the Agent re-evaluates the whole. If material uncertainty remains, it loops to another adaptive
|
|
60
|
-
round. If only reversible local uncertainty remains, it continues.
|
|
61
|
-
|
|
62
|
-
### When no human response channel exists
|
|
63
|
-
|
|
64
|
-
Some unattended, sandboxed, or benchmark runs have no human to answer. The host invokes
|
|
65
|
-
`loom context --human-channel unavailable`; this does not create a synthetic user. The Agent first inspects
|
|
66
|
-
discoverable workspace facts and permitted tools, researches only objective external facts when the task permits it,
|
|
67
|
-
and never treats web research as a substitute for user intent, preference, or authority. It records a bounded
|
|
68
|
-
assumption and selects a safe reversible action, or blocks if the missing answer controls irreversible, high-risk,
|
|
69
|
-
or materially costly work.
|
|
59
|
+
After every answer round, the Agent re-evaluates the whole. If material uncertainty remains, it loops to another adaptive
|
|
60
|
+
round. If only reversible local uncertainty remains, it continues.
|
|
61
|
+
|
|
62
|
+
### When no human response channel exists
|
|
63
|
+
|
|
64
|
+
Some unattended, sandboxed, or benchmark runs have no human to answer. The host invokes
|
|
65
|
+
`loom context --human-channel unavailable`; this does not create a synthetic user. The Agent first inspects
|
|
66
|
+
discoverable workspace facts and permitted tools, researches only objective external facts when the task permits it,
|
|
67
|
+
and never treats web research as a substitute for user intent, preference, or authority. It records a bounded
|
|
68
|
+
assumption and selects a safe reversible action, or blocks if the missing answer controls irreversible, high-risk,
|
|
69
|
+
or materially costly work.
|
|
70
70
|
|
|
71
71
|
## 3. Build project-specific capability
|
|
72
72
|
|
|
@@ -172,13 +172,13 @@ human authority govern later changes.
|
|
|
172
172
|
|
|
173
173
|
## Primary evaluation question
|
|
174
174
|
|
|
175
|
-
The causal baseline is a normal capable Agent with no LOOM—not LOOM v1. Both conditions receive the same raw brief, model,
|
|
176
|
-
tools, workspace, human-channel availability, user oracle when one exists, budget, and reset schedule. LOOM v1 may be added as a secondary regression condition, but it does
|
|
177
|
-
not answer whether the framework itself creates value over no framework.
|
|
178
|
-
|
|
179
|
-
For an unattended external benchmark, both conditions receive `human_channel: unavailable` and no fabricated user
|
|
180
|
-
oracle. A fresh LOOM sidecar sits outside the scored workspace and is passed through `--state-dir` on every LOOM
|
|
181
|
-
command, so framework state cannot alter task files or hidden-test behavior.
|
|
175
|
+
The causal baseline is a normal capable Agent with no LOOM—not LOOM v1. Both conditions receive the same raw brief, model,
|
|
176
|
+
tools, workspace, human-channel availability, user oracle when one exists, budget, and reset schedule. LOOM v1 may be added as a secondary regression condition, but it does
|
|
177
|
+
not answer whether the framework itself creates value over no framework.
|
|
178
|
+
|
|
179
|
+
For an unattended external benchmark, both conditions receive `human_channel: unavailable` and no fabricated user
|
|
180
|
+
oracle. A fresh LOOM sidecar sits outside the scored workspace and is passed through `--state-dir` on every LOOM
|
|
181
|
+
command, so framework state cannot alter task files or hidden-test behavior.
|
|
182
182
|
|
|
183
183
|
The anonymization harness must preserve runnable relative layout, record a file/digest manifest, and rerun each condition's
|
|
184
184
|
declared tests and smoke command before judging. Packet-construction failures are eval failures, never evidence against a run.
|