yam-flow 2.3.0 → 2.3.2
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/AGENTS.md +18 -0
- package/CHANGELOG.md +43 -0
- package/COMMANDS.md +6 -4
- package/README.md +21 -13
- package/ROADMAP.md +6 -1
- package/dist/bin/yam.js +330 -82
- package/dist/lib/skill-installation.d.ts +76 -0
- package/dist/lib/skill-installation.js +554 -0
- package/package.json +3 -2
- package/references/hook-lite.md +6 -0
- package/src/bin/yam.ts +319 -82
- package/src/lib/skill-installation.ts +638 -0
- package/yam.manifest.json +3 -1
package/AGENTS.md
CHANGED
|
@@ -21,3 +21,21 @@
|
|
|
21
21
|
19. Treat security as the first project lens: identify sensitive surfaces early and guide safer defaults before convenience.
|
|
22
22
|
20. Keep final reports short and concrete, but always include remaining tasks or state that none are meaningful.
|
|
23
23
|
21. When relevant, include architecture hygiene in the Study Note: avoid dumping unrelated logic into `page.tsx`, one-off component CSS into `global.css`, or structured product data into broad DB `jsonb` blobs when existing project boundaries, scoped styles, typed tables, constraints, or indexes fit better.
|
|
24
|
+
|
|
25
|
+
## Latest Update Trigger
|
|
26
|
+
|
|
27
|
+
When the user says exactly `yam 최신 업데이트 사항 반영해줘` in a chat for this project, treat that phrase as explicit authorization to update the globally installed package and refresh the installed yam skills.
|
|
28
|
+
|
|
29
|
+
Run these commands sequentially from the yam project directory:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npm install -g yam-flow
|
|
33
|
+
yam install
|
|
34
|
+
yam version
|
|
35
|
+
yam status
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
- Request any environment approval required for network access or writes outside the workspace.
|
|
39
|
+
- Stop at the first failed command, report the blocker, and do not claim that later steps ran.
|
|
40
|
+
- After all four commands pass, report the installed version and skill status, then tell the user that Codex can be restarted to reload the updated skills.
|
|
41
|
+
- Do not restart Codex automatically.
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,49 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to yam-flow are documented here.
|
|
4
4
|
|
|
5
|
+
## v2.3.2 - 2026-07-21
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Added a bounded Codex `Stop` completion gate to the opt-in `study-note` hook profile. Changed work with a missing or incomplete Study Note receives one correction prompt before completion.
|
|
10
|
+
- Added hook health inspection for missing executables, missing script targets, incomplete event coverage, duplicate handlers, unsupported command shapes, and unreadable hook config.
|
|
11
|
+
- Added deterministic packaged-CLI smoke coverage for broken-path detection, nonzero health status, backup-backed migration, unrelated-hook preservation, Stop blocking/passing, and loop prevention.
|
|
12
|
+
|
|
13
|
+
### Improved
|
|
14
|
+
|
|
15
|
+
- `yam hook status` now reports configured-but-broken profiles as `broken` and exits nonzero instead of calling a stale command `enabled`.
|
|
16
|
+
- Re-enabling a hook profile migrates stale absolute paths to the current installed Node and package entrypoint, adds the required events, preserves unrelated hooks, creates a timestamped backup, and writes config atomically.
|
|
17
|
+
- Study Note Guard checks now cover execution point, expected behavior, syntax or structure insight, verification, and limits separately.
|
|
18
|
+
|
|
19
|
+
### Verification
|
|
20
|
+
|
|
21
|
+
- `npm run verify:self`
|
|
22
|
+
- `npm run dist:freshness`
|
|
23
|
+
- `npm run package-boundary:check`
|
|
24
|
+
- `npm run cli-smoke`
|
|
25
|
+
|
|
26
|
+
## v2.3.1 - 2026-07-21
|
|
27
|
+
|
|
28
|
+
### Added
|
|
29
|
+
|
|
30
|
+
- Added a transactional skill installer that stages and SHA-256 verifies the complete managed skill set before replacing the active installation.
|
|
31
|
+
- Added `yam.install-receipt.v1` with the installed package version, source identity, timestamp, destination, skill inventory, per-file hashes, and aggregate source digest.
|
|
32
|
+
- Added deterministic install transaction smoke coverage for successful commit, forced mid-commit rollback, drift detection and repair, mirror cleanup, and concurrent-install locking.
|
|
33
|
+
|
|
34
|
+
### Improved
|
|
35
|
+
|
|
36
|
+
- `yam status` now detects missing files, unexpected files, hash drift, receipt drift, and package-version drift instead of checking only for `SKILL.md` and `references/` existence.
|
|
37
|
+
- Failed commits restore the previous managed skill set and receipt; legacy and retired skill cleanup now participates in the same rollback boundary.
|
|
38
|
+
- Unfinished transaction artifacts are surfaced by `yam status` and block a new install so recovery backups are not silently overwritten.
|
|
39
|
+
- `yam uninstall` removes the install receipt and refuses to run while an install lock is present.
|
|
40
|
+
|
|
41
|
+
### Verification
|
|
42
|
+
|
|
43
|
+
- `npm run verify:self`
|
|
44
|
+
- `npm run dist:freshness`
|
|
45
|
+
- `npm run package-boundary:check`
|
|
46
|
+
- `npm run cli-smoke`
|
|
47
|
+
|
|
5
48
|
## v2.3.0 - 2026-07-13
|
|
6
49
|
|
|
7
50
|
### Added
|
package/COMMANDS.md
CHANGED
|
@@ -152,7 +152,7 @@ yam tools doctor /path/to/project
|
|
|
152
152
|
yam tools doctor /path/to/project --json
|
|
153
153
|
yam context pressure /path/to/project --json
|
|
154
154
|
yam cleanup scan /path/to/project --json
|
|
155
|
-
yam study-note check /path/to/project --text "Study Note:
|
|
155
|
+
yam study-note check /path/to/project --text "Study Note: The hook handler's role is final-report validation. It runs at Codex Stop. Before it only reminded; after it requests one correction pass. Expected behavior is a complete note. Structure insight: decision=block creates a continuation prompt. Verification checked the packaged CLI. Limits: a restarted real task remains to be observed." --json
|
|
156
156
|
yam loop report --route quick --intent "fix release readiness" --stage "inspect:passed:read release report" --evidence "typecheck passed" --evidence-level local --evidence-stamp "sha256:release-report" --touched-file src/bin/yam.ts --read-file README.md --verified-file scripts/cli-smoke.mjs --skipped-check "npm publish skipped by design" --stop-condition "stop after readiness evidence is recorded" --resume-hint "rerun release report after npm auth refresh" --readiness-state blocked --covered-requirement "release report is read-only" --uncovered-requirement "npm auth verified" --blocked-kind auth_blocked --failure-cause auth_token_invalid --safe-retry "retry after npm whoami succeeds" --recovery-hint "refresh npm auth, then rerun readiness checks" --fix-first-item "npm auth must be verified before publish" --remaining-task "rerun release report after auth refresh" --recommended-direction "fix npm auth first, then publish manually" --implementation-note "keep loop report read-only" --why-this-next "auth blocks public release claims" --blocked-by "npm whoami E401" --owner-route deep --owner-scope "release readiness only" --scope-owner deep --side-effect "no publish attempted" --avoidance-note "do not retry publish before npm auth is proven" --issue-code "src/bin/yam.ts release report" --issue-role "summarizes release readiness without publishing" --issue-symptom "npm auth failure needs clearer next action" --changed-code "yam loop report" --changed-role "records loop evidence and learning note" --change-summary "added a read-only loop artifact" --why-important "it helps users learn what changed without overclaiming verification" --learning-note "fix blockers before claiming done" --json
|
|
157
157
|
yam proof /path/to/project
|
|
158
158
|
yam proof --route deep --truth verified --command "npm run build: pass"
|
|
@@ -206,7 +206,7 @@ Supported report shapes:
|
|
|
206
206
|
- Verification Ladder: L0 stated, L1 inspected, L2 local check, L3 integrated, L4 release/runtime/visual proof, L5 bounded deep with stop condition and skipped/remaining work.
|
|
207
207
|
- Loop report: intent, guided stage outcomes, touched/read/verified files, skipped checks, stop condition, resume hint, readiness state, evidence level/stamp, blockers, blocker kind, safe retry, next action, fix-first items, remaining tasks, recommended direction, blocked-by notes, owner route/scope, side effects, and study note.
|
|
208
208
|
- Study note: non-specialist explanation of the changed code/artifact, its role, execution point, before/after behavior, expected behavior, one syntax/structure insight, verification, uncertainty, and architecture hygiene around `page.tsx`, `global.css`, and DB `jsonb`.
|
|
209
|
-
- Study Note guard: read-only check for changed files and supplied final-report text; opt
|
|
209
|
+
- Study Note guard: read-only check for changed files and supplied final-report text; the opt-in `study-note` hook adds a prompt reminder and one bounded Codex `Stop` correction pass.
|
|
210
210
|
- Benchmark optimization loop lite: baseline, one change, rerun, keep/revert decision.
|
|
211
211
|
- Structured diagnostic next action: severity, evidence, owner route, next action, truth status.
|
|
212
212
|
- Ueye continuity/comparison: previous report, current report, comparison delta, design quality, next action.
|
|
@@ -215,9 +215,9 @@ Supported report shapes:
|
|
|
215
215
|
- Context pressure: project pack age/size, memory summary, dirty scope, scripts, instruction surfaces, and route hint.
|
|
216
216
|
- Cleanup scan: advisory-only list of confusing surfaces with destructive=false.
|
|
217
217
|
|
|
218
|
-
##
|
|
218
|
+
## Hooks
|
|
219
219
|
|
|
220
|
-
|
|
220
|
+
`lite` is advisory-only. `study-note` runs the read-only Study Note Guard against the final assistant message and can request one correction pass; neither profile runs verification or forces routes.
|
|
221
221
|
|
|
222
222
|
```bash
|
|
223
223
|
yam hook status --global
|
|
@@ -226,3 +226,5 @@ yam hook enable study-note --global
|
|
|
226
226
|
yam hook disable lite --global
|
|
227
227
|
yam hook disable study-note --global
|
|
228
228
|
```
|
|
229
|
+
|
|
230
|
+
`yam hook status` exits nonzero for unreadable configs, stale paths, missing targets, duplicate handlers, or incomplete event coverage. Re-enable the affected profile to back up the file, preserve unrelated hooks, and migrate its command and events.
|
package/README.md
CHANGED
|
@@ -35,6 +35,7 @@ See `ROADMAP.md` for remaining implementation stages.
|
|
|
35
35
|
|
|
36
36
|
- No required hooks.
|
|
37
37
|
- Optional `yam-lite` hook is advisory-only and off by default.
|
|
38
|
+
- Optional `study-note` hook adds a prompt reminder and a bounded final-response check; it is off by default.
|
|
38
39
|
- No automatic Team routing.
|
|
39
40
|
- No automatic proof loops.
|
|
40
41
|
- No automatic tmux.
|
|
@@ -87,6 +88,19 @@ yam hook disable lite --global
|
|
|
87
88
|
|
|
88
89
|
It only adds short advisory context. It does not run verification, tmux, browser QA, subagents, or dependency installs.
|
|
89
90
|
|
|
91
|
+
## Study Note Hook
|
|
92
|
+
|
|
93
|
+
Enable this profile when you want Codex to check changed work at final-response time as well as remind the agent at prompt time.
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
yam hook enable study-note --global
|
|
97
|
+
yam hook status --global
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
The profile installs `UserPromptSubmit` and `Stop` handlers. At `Stop`, yam checks the latest assistant message with the same read-only Study Note Guard used by `yam study-note check`. If changed artifacts lack the required role, execution point, before/after, expected behavior, syntax/structure, verification, limits, or relevant architecture hygiene, Codex receives one correction prompt. A second failed check warns but does not loop forever. The hook never writes the Study Note or runs verification for the agent.
|
|
101
|
+
|
|
102
|
+
`yam hook status` reports stale or missing command targets as `broken` and exits nonzero. Run `yam hook enable <profile> --global` again to create a timestamped backup, preserve unrelated hooks, and migrate that profile to the current installed path and event coverage. Restart Codex or open a new task after changing hooks.
|
|
103
|
+
|
|
90
104
|
## Install
|
|
91
105
|
|
|
92
106
|
Recommended:
|
|
@@ -96,21 +110,13 @@ cd ~/Documents/Codex/tools/yam
|
|
|
96
110
|
yam install
|
|
97
111
|
```
|
|
98
112
|
|
|
99
|
-
|
|
113
|
+
`yam install` stages every managed skill plus the shared `references/` directory, verifies the complete staged file manifest with SHA-256, and only then replaces the active set in `~/.agents/skills/`. If any commit or post-install verification step fails, yam restores the previous managed skill set and receipt.
|
|
100
114
|
|
|
101
|
-
|
|
115
|
+
A successful install writes `~/.agents/skills/.yam-flow-install-receipt.json`. The receipt records the package version, source identity, install timestamp, destination, managed skill inventory, and per-file hashes. `yam status` independently recomputes source and installed hashes, so a stale package install, local file change, unexpected file, or modified receipt is reported as drift.
|
|
102
116
|
|
|
103
|
-
|
|
117
|
+
An ordinary install error rolls back automatically. An abrupt process or machine termination can leave `.yam-flow-install.lock` and a hidden transaction directory; `yam status` surfaces the unfinished transaction and yam refuses another mutation while recovery state remains. Remove the lock only after confirming no install is running, and preserve any transaction directory until the previous installation state has been inspected.
|
|
104
118
|
|
|
105
|
-
|
|
106
|
-
mkdir -p ~/.agents/skills
|
|
107
|
-
for skill in quick ueye question scout deep mission; do
|
|
108
|
-
rm -rf "$HOME/.agents/skills/$skill"
|
|
109
|
-
mkdir -p "$HOME/.agents/skills/$skill"
|
|
110
|
-
cp "skills/$skill/SKILL.md" "$HOME/.agents/skills/$skill/SKILL.md"
|
|
111
|
-
cp -R references "$HOME/.agents/skills/$skill/references"
|
|
112
|
-
done
|
|
113
|
-
```
|
|
119
|
+
Manual copying can still make a skill loadable, but it intentionally remains unverified: without a matching receipt, `yam status` exits non-zero and recommends `yam install`.
|
|
114
120
|
|
|
115
121
|
Restart Codex after installing so skills reload.
|
|
116
122
|
|
|
@@ -187,6 +193,8 @@ npm install -g yam-flow
|
|
|
187
193
|
yam status
|
|
188
194
|
```
|
|
189
195
|
|
|
196
|
+
After `yam status` reports all skills and the install receipt as `ok`, restart Codex so the refreshed skills reload.
|
|
197
|
+
|
|
190
198
|
Publishing still requires confirming the final npm package name and account access.
|
|
191
199
|
|
|
192
200
|
## Trust Kernel
|
|
@@ -233,7 +241,7 @@ These shapes keep reports machine-readable without turning normal work into a he
|
|
|
233
241
|
- Release report JSON: `yam release report --json` summarizes typecheck, forbidden-name scan, package boundary, registry status, CLI smoke, dist freshness, diagnostics, readiness receipt, and final truth status.
|
|
234
242
|
- Loop report JSON: `yam loop report --json` records a read-only handoff artifact: guided stages, touched/read/verified files, skipped checks, stop condition, resume hint, readiness state, requirement coverage, evidence level/stamp, blocker kind, failure cause, safe retry, recovery hint, owner route/scope, side effects, next action, fix-first items, remaining tasks, recommended direction, implementation notes, blocked-by notes, avoidance note, tool intent, truth status, and study note.
|
|
235
243
|
- Study note: `yam.study-note.v1` and `references/study-note.md` keep non-specialist explanations for what code/artifact changed, what role it plays, where it runs, what changed from before to after, what behavior is expected, one syntax/structure insight, what was verified, and what remains uncertain. Missing details stay in `limits` instead of being guessed. Study Note v3 also asks whether work was dumped into `page.tsx`, `global.css`, or broad DB `jsonb` when a smaller component, style module/token, typed column, relation, or validation schema would teach and scale better.
|
|
236
|
-
- Study Note guard: `yam study-note check` is a read-only missing-note guard.
|
|
244
|
+
- Study Note guard: `yam study-note check` is a read-only missing-note guard. The opt-in `yam hook enable study-note --global` profile reuses it for a prompt reminder and one bounded Codex `Stop` correction pass; it still does not generate or edit a report.
|
|
237
245
|
- Avoidance note: loop reports may include one short mistake-to-avoid note, but durable memory stays explicit through `yam memory add`; `yam loop report` does not write `.yam/memory`.
|
|
238
246
|
- Publish blocker evidence: release reports classify common npm auth, permission, OTP, immutable-version, cache, registry, and tarball failures into safe next actions.
|
|
239
247
|
- Publish readiness evidence: release reports run read-only registry/auth/version probes, redact account/token details, keep npm publish outside the report, and include a `yam.release-readiness-receipt.v1` basis for the readiness judgment.
|
package/ROADMAP.md
CHANGED
|
@@ -8,11 +8,13 @@ Implemented:
|
|
|
8
8
|
- Six routes: quick, ueye, question, scout, deep, mission.
|
|
9
9
|
- Shared references.
|
|
10
10
|
- Local CLI: list, status, verify, doctor, examples, path, install, uninstall.
|
|
11
|
+
- Transactional skill install with rollback, SHA-256 receipt, install lock, and status drift detection. Done.
|
|
11
12
|
- CLI helpers: detect, budget, template, tune-log, version.
|
|
12
13
|
- Optional advisory `yam-lite` hook with status/enable/disable. Done.
|
|
14
|
+
- Optional Study Note prompt reminder plus bounded Codex `Stop` completion gate, hook health, and stale-path migration. Done.
|
|
13
15
|
- Opt-in project memory: init, add, list, summary, resolve.
|
|
14
16
|
- Honest completion guard: no verified/cleanup/visual claims without evidence.
|
|
15
|
-
- No hooks, automations, or global config.
|
|
17
|
+
- No hooks, automations, or global config mutations unless the user explicitly enables them.
|
|
16
18
|
- Token economy policy.
|
|
17
19
|
|
|
18
20
|
## Next Stages
|
|
@@ -94,6 +96,7 @@ Tasks:
|
|
|
94
96
|
|
|
95
97
|
- Add symlink-friendly local install.
|
|
96
98
|
- Add version command. Done.
|
|
99
|
+
- Add staged transactional install, rollback, receipt, and drift-aware status. Done.
|
|
97
100
|
- Consider npm packaging only after route behavior stabilizes.
|
|
98
101
|
|
|
99
102
|
### 8. Scout / Research Workflow
|
|
@@ -302,6 +305,8 @@ Tasks:
|
|
|
302
305
|
|
|
303
306
|
- Add `yam hook status|enable|disable|run lite`. Done.
|
|
304
307
|
- Keep `yam-lite` advisory-only through `UserPromptSubmit`. Done.
|
|
308
|
+
- Add Study Note `UserPromptSubmit` reminder plus one-pass `Stop` completion gate. Done.
|
|
309
|
+
- Detect broken hook targets and migrate stale paths without replacing unrelated hooks. Done.
|
|
305
310
|
- Add `references/tool-trust-layer.md`. Done.
|
|
306
311
|
- Add read-only `yam tools doctor`. Done.
|
|
307
312
|
- Add `yam proof` summary command. Done.
|