$ yg check
exit: 1
--- stdout
yg check: FAIL  48 errors in 2 blocks · 1 warning   25 nodes · 24/28 files covered

error[log-entry-missing] 24 nodes changed with no log entry
  at:   app/svc-01
        app/svc-02
        app/svc-03
        app/svc-04
        app/svc-05
        app/svc-06
        app/svc-07
        app/svc-08
        app/svc-09
        app/svc-10
        app/svc-11
        app/svc-12
        … +12 more  (yg check --details)
  why:  Node type 'service' has log_required: true — every source change needs a log entry capturing WHY. The requirement is a property of the node type plus a source change, independent of aspects; yg check stays red until a fresh entry exists.
  fix:  yg log add --node <node> --reason '<why this change was made>'  for each node above
        Then re-run yg check --approve. If you did not make this change, ask the user for the reason — never invent one.

error[unverified] 24 pairs whose script check has not run on this checkout — free to run
  at:   no-todo  24 pairs · 24 nodes · script
  why:  Script-rule results live in the gitignored local cache (.yggdrasil/.yg-lock.deterministic.json), so a fresh clone, a new rule or a cleared cache holds none until the check runs on this checkout. Running it is free: no reviewer call, and the committed lock is not touched.
  fix:  yg check --approve --only-deterministic  (24 script pairs · free)

warning[uncovered] 4 files belong to no node — not under coverage.required, so they never block
  at:   .clinerules/yggdrasil.md
        .gitattributes
        AGENTS.md
        CLAUDE.md
  why:  Not under a coverage.required root — shown, but it never blocks.
  fix:  Map these files to a node, or add their root to coverage.required to make this an error.

next: yg log add --node app/svc-01 --reason '<why this change was made>'  (log-entry-missing)
then: yg check --approve --only-deterministic  (24 script pairs · free)
--- stderr
