@haaaiawd/loom 2.1.2 → 2.1.3
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 +50 -40
- package/README.md +223 -224
- package/README.zh-CN.md +172 -172
- package/cli/bin/loom.js +293 -254
- package/cli/src/protocol.js +697 -691
- package/cli/src/store.js +1017 -946
- package/docs/PROMPT_CATALOG.md +139 -116
- package/docs/UX_FLOW.md +188 -184
- package/package.json +56 -56
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
##
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 2.1.3
|
|
4
|
+
|
|
5
|
+
- Removed Keeper auto-pass: every still-open finding must be closed with evidence in a later independently attested pass. A changed project digest proves a change, not that findings were resolved.
|
|
6
|
+
- `loom task start` now requires an independently attested Keeper pass (`review.mode: "independent"`) or a recorded `loom keeper skip`; `loom check` reports an unattested legacy pass as an error instead of a quiet warning.
|
|
7
|
+
- Keeper findings are cumulative across attempts: a passing record must carry `closure_results` for every gap still open from earlier rounds.
|
|
8
|
+
- Task references are verified, not just non-empty: `implements` must resolve to an existing design file and section (or a decision name present in project truth), and `capability_hooks` must resolve to an existing dossier and node. `loom project ready` runs this integrity check.
|
|
9
|
+
- `loom context` lists each blocked Task with its reason and recovery conditions, and recommends `loom task reopen <id> --reason` when nothing is executable.
|
|
10
|
+
- Done Tasks resist silent rewrites: `loom task update` on a done Task is rejected with a reopen pointer, and reopening a blocked Task requires a concrete reason describing how the recovery conditions were met.
|
|
11
|
+
- Decision-affected done Tasks warn only until re-verified: reopening and re-completing the Task after the decision clears the warning.
|
|
12
|
+
- Deliverable coverage now distinguishes planned from delivered: units covered only by open or blocked Tasks no longer count as delivered.
|
|
13
|
+
- `loom record --help` documents `resolved` and `retire_assumptions` so Agents can close questions and assumptions they opened.
|
|
4
14
|
|
|
5
15
|
## 2.1.2
|
|
6
16
|
|
|
@@ -12,40 +22,40 @@
|
|
|
12
22
|
- Added Task integrity enforcement for design links, capability hooks or explicit exemptions, plus declared output existence checks before completion.
|
|
13
23
|
- Added command-specific canonical JSON help and recovery pointers for every structured-write command.
|
|
14
24
|
- Updated generated Agent guidance and both public READMEs so installed and source-checkout invocation paths are unambiguous.
|
|
15
|
-
|
|
16
|
-
## 2.1.1
|
|
17
|
-
|
|
18
|
-
- Re-published 2.1.0 content with corrected CHANGELOG line endings.
|
|
19
|
-
|
|
20
|
-
## 2.1.0
|
|
21
|
-
|
|
22
|
-
- 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.
|
|
23
|
-
- 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.
|
|
24
|
-
- 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.
|
|
25
|
-
- 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.
|
|
26
|
-
- 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.
|
|
27
|
-
- 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.
|
|
28
|
-
- 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.
|
|
29
|
-
- 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.
|
|
30
|
-
- Added `acceptance[]` as the primary Task completion structure, pairing `criterion`, `verify_by`, and `evidence`. Legacy `done_when[]` remains supported.
|
|
31
|
-
- 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.
|
|
32
|
-
- Added deliverable coverage tracking through `loom deliverable add` and Task `covers` field. `loom check` reports uncovered delivery units.
|
|
33
|
-
- Added `loom capability research → synthesize → confirm` lifecycle with status tracking per dossier.
|
|
34
|
-
- Updated help text with a typical first-pass flow and capability lifecycle sequence.
|
|
35
|
-
|
|
36
|
-
## 2.0.1
|
|
37
|
-
|
|
38
|
-
- 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.
|
|
39
|
-
- 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.
|
|
40
|
-
|
|
41
|
-
## 2.0.0
|
|
42
|
-
|
|
43
|
-
- 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.
|
|
44
|
-
- Replaced fixed roles and stages with an adaptive clarification protocol and explicit convergence conditions.
|
|
45
|
-
- Added human-editable project truth, structured continuity state, and superseding decision history.
|
|
46
|
-
- Added context selection that keeps very large Task maps on disk and injects only the active horizon.
|
|
47
|
-
- Added seven adaptable design-document templates and `loom prompts` as a complete live prompt inventory.
|
|
48
|
-
- Reduced Keeper to one independent build-readiness handoff with revision, changed-digest, fresh-run, and stale-state enforcement.
|
|
49
|
-
- Added controlled Evil Eval scaffolding for equal-condition, repeated, reset-heavy blind comparison.
|
|
50
|
-
- Added bilingual English/Chinese release documentation and a flat, minimal visual system with editable loop diagrams.
|
|
51
|
-
- Deliberately stopped automatic mutation of legacy `.loom/v1` projects.
|
|
25
|
+
|
|
26
|
+
## 2.1.1
|
|
27
|
+
|
|
28
|
+
- Re-published 2.1.0 content with corrected CHANGELOG line endings.
|
|
29
|
+
|
|
30
|
+
## 2.1.0
|
|
31
|
+
|
|
32
|
+
- 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.
|
|
33
|
+
- 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.
|
|
34
|
+
- 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.
|
|
35
|
+
- 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.
|
|
36
|
+
- 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.
|
|
37
|
+
- 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.
|
|
38
|
+
- 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.
|
|
39
|
+
- 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.
|
|
40
|
+
- Added `acceptance[]` as the primary Task completion structure, pairing `criterion`, `verify_by`, and `evidence`. Legacy `done_when[]` remains supported.
|
|
41
|
+
- 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. (removed in 2.1.3)
|
|
42
|
+
- Added deliverable coverage tracking through `loom deliverable add` and Task `covers` field. `loom check` reports uncovered delivery units.
|
|
43
|
+
- Added `loom capability research → synthesize → confirm` lifecycle with status tracking per dossier.
|
|
44
|
+
- Updated help text with a typical first-pass flow and capability lifecycle sequence.
|
|
45
|
+
|
|
46
|
+
## 2.0.1
|
|
47
|
+
|
|
48
|
+
- 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.
|
|
49
|
+
- 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.
|
|
50
|
+
|
|
51
|
+
## 2.0.0
|
|
52
|
+
|
|
53
|
+
- 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.
|
|
54
|
+
- Replaced fixed roles and stages with an adaptive clarification protocol and explicit convergence conditions.
|
|
55
|
+
- Added human-editable project truth, structured continuity state, and superseding decision history.
|
|
56
|
+
- Added context selection that keeps very large Task maps on disk and injects only the active horizon.
|
|
57
|
+
- Added seven adaptable design-document templates and `loom prompts` as a complete live prompt inventory.
|
|
58
|
+
- Reduced Keeper to one independent build-readiness handoff with revision, changed-digest, fresh-run, and stale-state enforcement.
|
|
59
|
+
- Added controlled Evil Eval scaffolding for equal-condition, repeated, reset-heavy blind comparison.
|
|
60
|
+
- Added bilingual English/Chinese release documentation and a flat, minimal visual system with editable loop diagrams.
|
|
61
|
+
- Deliberately stopped automatic mutation of legacy `.loom/v1` projects.
|
package/README.md
CHANGED
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
<p align="center"><strong>English</strong> · <a href="README.zh-CN.md">简体中文</a></p>
|
|
2
|
-
|
|
3
|
-
<p align="center">
|
|
4
|
-
<img src="docs/brand/loom-readme-header.svg" alt="LOOM — Keep the whole. Continue the work." width="100%">
|
|
5
|
-
</p>
|
|
6
|
-
|
|
7
|
-
<p align="center">
|
|
8
|
-
<a href="https://www.npmjs.com/package/@haaaiawd/loom"><img src="https://img.shields.io/npm/v/%40haaaiawd%2Floom?style=flat-square&color=4169E1&label=npm" alt="npm version"></a>
|
|
9
|
-
<img src="https://img.shields.io/badge/node-%E2%89%A518-17212B?style=flat-square" alt="Node.js 18 or newer">
|
|
10
|
-
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-9AD8C2?style=flat-square&labelColor=17212B" alt="MIT license"></a>
|
|
11
|
-
</p>
|
|
12
|
-
|
|
13
|
-
<p align="center"><strong>The human talks to the Agent. LOOM helps the Agent remember, understand, and continue.</strong></p>
|
|
14
|
-
|
|
15
|
-
LOOM is spec-driven continuity, proof, and project understanding infrastructure for AI coding agents.
|
|
16
|
-
It supports any work that can be materially advanced through code or command-line tools: software,
|
|
17
|
-
operations, research workflows, office automation, data work, and highly personalized projects.
|
|
18
|
-
|
|
19
|
-
The human does not learn a framework or operate a CLI. They describe what they want, answer useful
|
|
20
|
-
questions, disagree, delegate decisions, and watch the work become real. The Agent uses LOOM in the
|
|
21
|
-
background to preserve the whole project across context compression, new sessions, and implementation.
|
|
22
|
-
|
|
23
|
-
<table>
|
|
24
|
-
<tr>
|
|
25
|
-
<td width="33%"><strong>Whole over fragments</strong><br>Keep the result, decisions, systems, and unknowns connected.</td>
|
|
26
|
-
<td width="33%"><strong>Expertise over costumes</strong><br>Compile project-specific professional judgment, not decorative expert personas.</td>
|
|
27
|
-
<td width="33%"><strong>Proof over ceremony</strong><br>Use independent handoff, exact done conditions, and disk evidence.</td>
|
|
28
|
-
</tr>
|
|
29
|
-
</table>
|
|
30
|
-
|
|
31
|
-
## The loop
|
|
32
|
-
|
|
33
|
-

|
|
34
|
-
|
|
35
|
-
LOOM has three explicit feedback loops: understanding converges on the whole project; a fresh Keeper
|
|
36
|
-
tests the frozen handoff and returns concrete gaps; restartable Tasks carry implementation and evidence
|
|
37
|
-
across interruptions. A failed Keeper does not become a warning that everyone politely ignores—it sends
|
|
38
|
-
the project back to the exact source that needs repair, then requires a changed digest and a new Keeper.
|
|
39
|
-
|
|
40
|
-
The loop is adaptive. LOOM does not provide a universal questionnaire, fixed professional roles, or
|
|
41
|
-
a mandatory phase ritual. The Agent keeps clarifying while unknowns could materially change the whole.
|
|
42
|
-
It proceeds when the remaining uncertainty is reversible and local, or when the human explicitly asks
|
|
43
|
-
to skip after hearing the concrete cost.
|
|
44
|
-
|
|
45
|
-
## Project truth on disk
|
|
46
|
-
|
|
47
|
-
An initialized project contains one small semantic backbone:
|
|
48
|
-
|
|
49
|
-
```text
|
|
50
|
-
.loom/
|
|
51
|
-
├── PROJECT.md concise entry point and map of the current whole
|
|
52
|
-
├── DECISIONS.md concise history when important decisions supersede earlier ones
|
|
53
|
-
├── design/ product, experience, system, contract, verification, operations, or research docs
|
|
54
|
-
├── capabilities/ one project-specific dossier per recognizable professional field
|
|
55
|
-
├── state.json confirmed facts, assumptions, unresolved questions, Keeper status
|
|
56
|
-
├── tasks.json broad Work Map plus the detailed active horizon
|
|
57
|
-
└── eval/ optional Evil Eval scenarios for testing LOOM itself
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
Small projects may need few design documents; large projects may need many. A consequential subsystem,
|
|
61
|
-
experience, interface, contract, or operational concern gets its own document when a fresh Agent must
|
|
62
|
-
understand or verify it independently. `PROJECT.md` maps the whole instead of becoming a thousand-line attic.
|
|
63
|
-
|
|
64
|
-
### Capability dossiers
|
|
65
|
-
|
|
66
|
-
A dossier exists only when specialist knowledge would change a question, design choice,
|
|
67
|
-
implementation, risk, or verification method. Each dossier represents one recognizable professional
|
|
1
|
+
<p align="center"><strong>English</strong> · <a href="README.zh-CN.md">简体中文</a></p>
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="docs/brand/loom-readme-header.svg" alt="LOOM — Keep the whole. Continue the work." width="100%">
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<a href="https://www.npmjs.com/package/@haaaiawd/loom"><img src="https://img.shields.io/npm/v/%40haaaiawd%2Floom?style=flat-square&color=4169E1&label=npm" alt="npm version"></a>
|
|
9
|
+
<img src="https://img.shields.io/badge/node-%E2%89%A518-17212B?style=flat-square" alt="Node.js 18 or newer">
|
|
10
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-9AD8C2?style=flat-square&labelColor=17212B" alt="MIT license"></a>
|
|
11
|
+
</p>
|
|
12
|
+
|
|
13
|
+
<p align="center"><strong>The human talks to the Agent. LOOM helps the Agent remember, understand, and continue.</strong></p>
|
|
14
|
+
|
|
15
|
+
LOOM is spec-driven continuity, proof, and project understanding infrastructure for AI coding agents.
|
|
16
|
+
It supports any work that can be materially advanced through code or command-line tools: software,
|
|
17
|
+
operations, research workflows, office automation, data work, and highly personalized projects.
|
|
18
|
+
|
|
19
|
+
The human does not learn a framework or operate a CLI. They describe what they want, answer useful
|
|
20
|
+
questions, disagree, delegate decisions, and watch the work become real. The Agent uses LOOM in the
|
|
21
|
+
background to preserve the whole project across context compression, new sessions, and implementation.
|
|
22
|
+
|
|
23
|
+
<table>
|
|
24
|
+
<tr>
|
|
25
|
+
<td width="33%"><strong>Whole over fragments</strong><br>Keep the result, decisions, systems, and unknowns connected.</td>
|
|
26
|
+
<td width="33%"><strong>Expertise over costumes</strong><br>Compile project-specific professional judgment, not decorative expert personas.</td>
|
|
27
|
+
<td width="33%"><strong>Proof over ceremony</strong><br>Use independent handoff, exact done conditions, and disk evidence.</td>
|
|
28
|
+
</tr>
|
|
29
|
+
</table>
|
|
30
|
+
|
|
31
|
+
## The loop
|
|
32
|
+
|
|
33
|
+

|
|
34
|
+
|
|
35
|
+
LOOM has three explicit feedback loops: understanding converges on the whole project; a fresh Keeper
|
|
36
|
+
tests the frozen handoff and returns concrete gaps; restartable Tasks carry implementation and evidence
|
|
37
|
+
across interruptions. A failed Keeper does not become a warning that everyone politely ignores—it sends
|
|
38
|
+
the project back to the exact source that needs repair, then requires a changed digest and a new Keeper.
|
|
39
|
+
|
|
40
|
+
The loop is adaptive. LOOM does not provide a universal questionnaire, fixed professional roles, or
|
|
41
|
+
a mandatory phase ritual. The Agent keeps clarifying while unknowns could materially change the whole.
|
|
42
|
+
It proceeds when the remaining uncertainty is reversible and local, or when the human explicitly asks
|
|
43
|
+
to skip after hearing the concrete cost.
|
|
44
|
+
|
|
45
|
+
## Project truth on disk
|
|
46
|
+
|
|
47
|
+
An initialized project contains one small semantic backbone:
|
|
48
|
+
|
|
49
|
+
```text
|
|
50
|
+
.loom/
|
|
51
|
+
├── PROJECT.md concise entry point and map of the current whole
|
|
52
|
+
├── DECISIONS.md concise history when important decisions supersede earlier ones
|
|
53
|
+
├── design/ product, experience, system, contract, verification, operations, or research docs
|
|
54
|
+
├── capabilities/ one project-specific dossier per recognizable professional field
|
|
55
|
+
├── state.json confirmed facts, assumptions, unresolved questions, Keeper status
|
|
56
|
+
├── tasks.json broad Work Map plus the detailed active horizon
|
|
57
|
+
└── eval/ optional Evil Eval scenarios for testing LOOM itself
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Small projects may need few design documents; large projects may need many. A consequential subsystem,
|
|
61
|
+
experience, interface, contract, or operational concern gets its own document when a fresh Agent must
|
|
62
|
+
understand or verify it independently. `PROJECT.md` maps the whole instead of becoming a thousand-line attic.
|
|
63
|
+
|
|
64
|
+
### Capability dossiers
|
|
65
|
+
|
|
66
|
+
A dossier exists only when specialist knowledge would change a question, design choice,
|
|
67
|
+
implementation, risk, or verification method. Each dossier represents one recognizable professional
|
|
68
68
|
field—such as UI/UX design, visual art direction, game design, psychology, security, or distributed
|
|
69
69
|
systems. Different fields remain separate even when tightly coupled; their synthesis belongs in the
|
|
70
70
|
design document whose decision they jointly shape. A task technique such as triage, ranking, parsing,
|
|
@@ -72,175 +72,174 @@ or caching is not allowed to masquerade as the project's entire capability surfa
|
|
|
72
72
|
|
|
73
73
|
Capability scenario authority remains visible: `--source human` confirms a user-selected scenario;
|
|
74
74
|
`--source agent` records a provisional selection when the human is unavailable.
|
|
75
|
-
|
|
76
|
-
### Work Map and Task
|
|
77
|
-
|
|
78
|
-
The Work Map may be hundreds or thousands of lines. It is stored, searched, and revised on disk; it
|
|
79
|
-
is not injected into every model context. Planning begins broadly, while detailed steps are compiled
|
|
80
|
-
only for the active horizon.
|
|
81
|
-
|
|
82
|
-
A Task is not a miniature bureaucracy. It is the smallest restartable checkpoint that tells a fresh
|
|
83
|
-
Agent:
|
|
84
|
-
|
|
85
|
-
- what observable result to create;
|
|
86
|
-
- what proves completion;
|
|
87
|
-
- what must not be damaged;
|
|
75
|
+
|
|
76
|
+
### Work Map and Task
|
|
77
|
+
|
|
78
|
+
The Work Map may be hundreds or thousands of lines. It is stored, searched, and revised on disk; it
|
|
79
|
+
is not injected into every model context. Planning begins broadly, while detailed steps are compiled
|
|
80
|
+
only for the active horizon.
|
|
81
|
+
|
|
82
|
+
A Task is not a miniature bureaucracy. It is the smallest restartable checkpoint that tells a fresh
|
|
83
|
+
Agent:
|
|
84
|
+
|
|
85
|
+
- what observable result to create;
|
|
86
|
+
- what proves completion;
|
|
87
|
+
- what must not be damaged;
|
|
88
88
|
- which project and capability documents matter;
|
|
89
89
|
- which design decision and capability nodes apply, or why they do not;
|
|
90
|
-
- what has happened, what is happening, and what comes next;
|
|
91
|
-
- which evidence already exists and which exact done condition it proves.
|
|
92
|
-
|
|
93
|
-
## Agent quick start
|
|
94
|
-
|
|
95
|
-
Install the CLI:
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
npm install --global @haaaiawd/loom
|
|
99
|
-
loom --version
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
Or install from the repository during development:
|
|
103
|
-
|
|
104
|
-
```bash
|
|
105
|
-
npm install --global .
|
|
106
|
-
loom --version
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
Inside a project, the Agent runs:
|
|
110
|
-
|
|
111
|
-
```bash
|
|
112
|
-
loom init
|
|
113
|
-
loom context
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
When a Task is active, `loom context` also restores a compact execution protocol: reconcile the Task with
|
|
117
|
-
the current workspace and version-control state, inspect relevant tests before editing, choose proof by risk
|
|
118
|
-
and exact `acceptance` criteria, persist `completed/current/next` at meaningful handoffs, show the human real
|
|
119
|
-
working things at milestones, and close only with reproducible evidence. It does not impose a ceremonial test
|
|
120
|
-
or pull request on work that does not need one.
|
|
121
|
-
|
|
122
|
-
### Unattended and benchmark runs
|
|
123
|
-
|
|
124
|
-
LOOM does not invent a user when none is reachable. Tell the context compiler that the human channel is
|
|
125
|
-
unavailable; the Agent then resolves uncertainty in order: inspect the workspace and tools, research only
|
|
126
|
-
objective facts when the task permits it, then record a bounded assumption and choose a reversible action or
|
|
127
|
-
block on unavailable authority. Web research never substitutes for user intent, preference, or permission.
|
|
128
|
-
|
|
129
|
-
```bash
|
|
130
|
-
loom context --human-channel unavailable
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
Benchmark runners can keep LOOM state out of the scored workspace by using an external sidecar on **every**
|
|
134
|
-
LOOM command. Virtual references such as `.loom/PROJECT.md` still work inside Task context, but `init` does not
|
|
135
|
-
write `.loom/` or `AGENTS.md` into the workspace being scored.
|
|
136
|
-
|
|
137
|
-
```bash
|
|
138
|
-
loom init --state-dir /runner/run-001/loom-state
|
|
139
|
-
loom context --state-dir /runner/run-001/loom-state --human-channel unavailable
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
The Agent edits `.loom/PROJECT.md`, design documents, and capability dossiers as human-readable project truth. Structured
|
|
143
|
-
writes use JSON files so long content remains auditable and shell quoting does not corrupt it:
|
|
144
|
-
|
|
145
|
-
```bash
|
|
146
|
-
loom record --json-file understanding-update.json
|
|
147
|
-
loom design add product --title "Product definition" --kind product
|
|
148
|
-
loom design add local-analysis --title "Local analysis system" --kind system
|
|
149
|
-
loom design add acceptance --title "Vertical-slice verification" --kind verification
|
|
150
|
-
loom capability add ui-ux-design --title "UI/UX design"
|
|
90
|
+
- what has happened, what is happening, and what comes next;
|
|
91
|
+
- which evidence already exists and which exact done condition it proves.
|
|
92
|
+
|
|
93
|
+
## Agent quick start
|
|
94
|
+
|
|
95
|
+
Install the CLI:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
npm install --global @haaaiawd/loom
|
|
99
|
+
loom --version
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Or install from the repository during development:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
npm install --global .
|
|
106
|
+
loom --version
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Inside a project, the Agent runs:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
loom init
|
|
113
|
+
loom context
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
When a Task is active, `loom context` also restores a compact execution protocol: reconcile the Task with
|
|
117
|
+
the current workspace and version-control state, inspect relevant tests before editing, choose proof by risk
|
|
118
|
+
and exact `acceptance` criteria, persist `completed/current/next` at meaningful handoffs, show the human real
|
|
119
|
+
working things at milestones, and close only with reproducible evidence. It does not impose a ceremonial test
|
|
120
|
+
or pull request on work that does not need one.
|
|
121
|
+
|
|
122
|
+
### Unattended and benchmark runs
|
|
123
|
+
|
|
124
|
+
LOOM does not invent a user when none is reachable. Tell the context compiler that the human channel is
|
|
125
|
+
unavailable; the Agent then resolves uncertainty in order: inspect the workspace and tools, research only
|
|
126
|
+
objective facts when the task permits it, then record a bounded assumption and choose a reversible action or
|
|
127
|
+
block on unavailable authority. Web research never substitutes for user intent, preference, or permission.
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
loom context --human-channel unavailable
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Benchmark runners can keep LOOM state out of the scored workspace by using an external sidecar on **every**
|
|
134
|
+
LOOM command. Virtual references such as `.loom/PROJECT.md` still work inside Task context, but `init` does not
|
|
135
|
+
write `.loom/` or `AGENTS.md` into the workspace being scored.
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
loom init --state-dir /runner/run-001/loom-state
|
|
139
|
+
loom context --state-dir /runner/run-001/loom-state --human-channel unavailable
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
The Agent edits `.loom/PROJECT.md`, design documents, and capability dossiers as human-readable project truth. Structured
|
|
143
|
+
writes use JSON files so long content remains auditable and shell quoting does not corrupt it:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
loom record --json-file understanding-update.json
|
|
147
|
+
loom design add product --title "Product definition" --kind product
|
|
148
|
+
loom design add local-analysis --title "Local analysis system" --kind system
|
|
149
|
+
loom design add acceptance --title "Vertical-slice verification" --kind verification
|
|
150
|
+
loom capability add ui-ux-design --title "UI/UX design"
|
|
151
151
|
loom capability add behavioral-psychology --title "Behavioral psychology"
|
|
152
152
|
loom capability confirm behavioral-psychology --scenario "<project-specific expert situation>" --source human
|
|
153
153
|
loom task plan --json-file initial-work-map.json
|
|
154
|
-
loom project ready
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
At the transition to material execution, open a fresh Agent thread and give it one short instruction:
|
|
158
|
-
|
|
159
|
-
```text
|
|
160
|
-
Run loom keeper prompt in this project and follow it. Decide whether you can responsibly start.
|
|
161
|
-
```
|
|
162
|
-
|
|
154
|
+
loom project ready
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
At the transition to material execution, open a fresh Agent thread and give it one short instruction:
|
|
158
|
+
|
|
159
|
+
```text
|
|
160
|
+
Run loom keeper prompt in this project and follow it. Decide whether you can responsibly start.
|
|
161
|
+
```
|
|
162
|
+
|
|
163
163
|
Keeper pass JSON records `review.mode: "independent"`, a reviewer identity, and concrete isolation evidence.
|
|
164
164
|
Known self-review cannot pass; if the host cannot isolate a fresh Agent, use `loom keeper skip` with the
|
|
165
165
|
reason so reduced confidence stays visible.
|
|
166
166
|
|
|
167
167
|
If Keeper returns `needs_revision` or `blocked`, those exact gaps reappear in `loom context`. The Agent
|
|
168
|
-
repairs the relevant project, design, capability, or Task source, prepares a changed digest, and opens a
|
|
169
|
-
different fresh Keeper. If the host cannot create a subagent, the human can open a new window and use the
|
|
170
|
-
same sentence. After the one-time handoff passes, the execution Agent starts and maintains Tasks normally:
|
|
171
|
-
|
|
172
|
-
```bash
|
|
173
|
-
loom task next
|
|
174
|
-
loom task start TASK-001
|
|
175
|
-
loom context
|
|
176
|
-
loom task update TASK-001 --json-file progress.json
|
|
177
|
-
loom task block TASK-001 --json-file block.json
|
|
178
|
-
loom task reopen TASK-001
|
|
179
|
-
loom task
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
"
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
"criterion": "The exact acceptance criterion from the Task.",
|
|
168
|
+
repairs the relevant project, design, capability, or Task source, prepares a changed digest, and opens a
|
|
169
|
+
different fresh Keeper. If the host cannot create a subagent, the human can open a new window and use the
|
|
170
|
+
same sentence. After the one-time handoff passes, the execution Agent starts and maintains Tasks normally:
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
loom task next
|
|
174
|
+
loom task start TASK-001
|
|
175
|
+
loom context
|
|
176
|
+
loom task update TASK-001 --json-file progress.json
|
|
177
|
+
loom task block TASK-001 --json-file block.json
|
|
178
|
+
loom task reopen TASK-001 --reason "How the recovery conditions were met, or why the completion was disproven"
|
|
179
|
+
loom task done TASK-001 --json-file evidence.json
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Completion is deliberately explicit:
|
|
183
|
+
|
|
184
|
+
```json
|
|
185
|
+
{
|
|
186
|
+
"evidence": ["npm test: 27 passed, 0 failed"],
|
|
187
|
+
"acceptance_results": [
|
|
188
|
+
{
|
|
189
|
+
"criterion": "The exact acceptance criterion from the Task.",
|
|
191
190
|
"evidence": "The command, artifact, or observation that proves this criterion."
|
|
192
|
-
}
|
|
193
|
-
]
|
|
194
|
-
}
|
|
195
|
-
```
|
|
196
|
-
|
|
191
|
+
}
|
|
192
|
+
]
|
|
193
|
+
}
|
|
194
|
+
```
|
|
195
|
+
|
|
197
196
|
Run `loom --help` for the complete command surface. Structured-write commands expose canonical payloads
|
|
198
197
|
through command-specific help such as `loom record --help` and `loom task done --help`. Run `loom check`
|
|
199
198
|
for structural health. Run
|
|
200
|
-
`loom prompts` to print every cognitive message LOOM can inject: the stable collaboration core,
|
|
201
|
-
runtime protocol, dynamic state layer, all document templates, Keeper prompt, eval conditions, judge
|
|
202
|
-
prompt, and their composition order. See the [prompt and message catalog](docs/PROMPT_CATALOG.md).
|
|
203
|
-
|
|
204
|
-
## What LOOM deliberately removed
|
|
205
|
-
|
|
206
|
-
LOOM 2 replaces the v1 chain of Doctrine, Vision, Capability Graph, Impact Gate, Intent Map, Expertise
|
|
207
|
-
Pack, Atelier, Quality Arena, per-Intent Keeper, and Atlas with one adaptive understanding loop, a
|
|
208
|
-
scalable graph of design documents, separate professional-field dossiers, one Work Map, and one
|
|
209
|
-
restartable Task contract.
|
|
210
|
-
|
|
211
|
-
The valuable ideas remain: project judgment, external professional capability, authored choices,
|
|
212
|
-
observable completion, context isolation, and evidence. They no longer require separate roles and gates.
|
|
213
|
-
|
|
214
|
-
## Proving that LOOM helps
|
|
215
|
-
|
|
216
|
-
`loom eval scaffold --json-file scenario.json` creates an Evil Eval scenario with equal model, tools,
|
|
217
|
-
workspace, user-channel availability, facts, and budget across two conditions. The only intended difference is the availability
|
|
218
|
-
of LOOM. Runs are repeated, context is forcibly reset, outputs are blinded and order-swapped, and ceremony,
|
|
219
|
-
user burden, time, and token cost are penalized alongside quality. See [EVIL_EVAL.md](EVIL_EVAL.md).
|
|
220
|
-
|
|
221
|
-

|
|
222
|
-
|
|
223
|
-
## Development
|
|
224
|
-
|
|
225
|
-
```bash
|
|
226
|
-
npm test
|
|
227
|
-
```
|
|
228
|
-
|
|
199
|
+
`loom prompts` to print every cognitive message LOOM can inject: the stable collaboration core,
|
|
200
|
+
runtime protocol, dynamic state layer, all document templates, Keeper prompt, eval conditions, judge
|
|
201
|
+
prompt, and their composition order. See the [prompt and message catalog](docs/PROMPT_CATALOG.md).
|
|
202
|
+
|
|
203
|
+
## What LOOM deliberately removed
|
|
204
|
+
|
|
205
|
+
LOOM 2 replaces the v1 chain of Doctrine, Vision, Capability Graph, Impact Gate, Intent Map, Expertise
|
|
206
|
+
Pack, Atelier, Quality Arena, per-Intent Keeper, and Atlas with one adaptive understanding loop, a
|
|
207
|
+
scalable graph of design documents, separate professional-field dossiers, one Work Map, and one
|
|
208
|
+
restartable Task contract.
|
|
209
|
+
|
|
210
|
+
The valuable ideas remain: project judgment, external professional capability, authored choices,
|
|
211
|
+
observable completion, context isolation, and evidence. They no longer require separate roles and gates.
|
|
212
|
+
|
|
213
|
+
## Proving that LOOM helps
|
|
214
|
+
|
|
215
|
+
`loom eval scaffold --json-file scenario.json` creates an Evil Eval scenario with equal model, tools,
|
|
216
|
+
workspace, user-channel availability, facts, and budget across two conditions. The only intended difference is the availability
|
|
217
|
+
of LOOM. Runs are repeated, context is forcibly reset, outputs are blinded and order-swapped, and ceremony,
|
|
218
|
+
user burden, time, and token cost are penalized alongside quality. See [EVIL_EVAL.md](EVIL_EVAL.md).
|
|
219
|
+
|
|
220
|
+

|
|
221
|
+
|
|
222
|
+
## Development
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
npm test
|
|
226
|
+
```
|
|
227
|
+
|
|
229
228
|
The v2 test suite exercises the complete loop, including a 250-Task Work Map, context selection,
|
|
230
|
-
superseding decisions, scalable design documents, professional-field separation, capability compilation with
|
|
231
|
-
source-citation validation, multi-attempt Keeper revision with
|
|
232
|
-
rejection, exact-file Task start, block/reopen including disproven completion, per-acceptance-criterion evidence,
|
|
233
|
-
deliverable coverage, decision recording with affected-task warnings, and Evil Eval controls. See the
|
|
234
|
-
[complete UX and loop specification](docs/UX_FLOW.md).
|
|
235
|
-
|
|
236
|
-
## Documentation
|
|
237
|
-
|
|
238
|
-
| Read this | When you need |
|
|
239
|
-
| --- | --- |
|
|
240
|
-
| [System design](design.md) | The architecture, storage model, invariants, and command contracts |
|
|
241
|
-
| [UX and loop specification](docs/UX_FLOW.md) | Every human, Agent, LOOM, Keeper, and Task transition |
|
|
242
|
-
| [Prompt and message catalog](docs/PROMPT_CATALOG.md) | Every message LOOM injects and how the layers compose |
|
|
243
|
-
| [Evil Eval protocol](EVIL_EVAL.md) | A controlled framework-vs-no-framework comparison |
|
|
244
|
-
| [Changelog](CHANGELOG.md) | What changed in LOOM 2 |
|
|
245
|
-
|
|
246
|
-
Editable Draw.io sources live beside both flow diagrams in [`docs/`](docs/).
|
|
229
|
+
superseding decisions, scalable design documents, professional-field separation, capability compilation with
|
|
230
|
+
source-citation validation, multi-attempt Keeper revision with explicit closure evidence, stale digest and duplicate-run
|
|
231
|
+
rejection, exact-file Task start, block/reopen including disproven completion, per-acceptance-criterion evidence,
|
|
232
|
+
deliverable coverage, decision recording with affected-task warnings, and Evil Eval controls. See the
|
|
233
|
+
[complete UX and loop specification](docs/UX_FLOW.md).
|
|
234
|
+
|
|
235
|
+
## Documentation
|
|
236
|
+
|
|
237
|
+
| Read this | When you need |
|
|
238
|
+
| --- | --- |
|
|
239
|
+
| [System design](design.md) | The architecture, storage model, invariants, and command contracts |
|
|
240
|
+
| [UX and loop specification](docs/UX_FLOW.md) | Every human, Agent, LOOM, Keeper, and Task transition |
|
|
241
|
+
| [Prompt and message catalog](docs/PROMPT_CATALOG.md) | Every message LOOM injects and how the layers compose |
|
|
242
|
+
| [Evil Eval protocol](EVIL_EVAL.md) | A controlled framework-vs-no-framework comparison |
|
|
243
|
+
| [Changelog](CHANGELOG.md) | What changed in LOOM 2 |
|
|
244
|
+
|
|
245
|
+
Editable Draw.io sources live beside both flow diagrams in [`docs/`](docs/).
|