Part of #4092. Depends on the core resolver issue (config-as-code resolver).
Problem
review.features.safety (packages/gittensory-engine/src/focus-manifest.ts:176) is parsed but isSafetyEnabled (src/review/safety.ts:44) checks ONLY GITTENSORY_REVIEW_SAFETY. A repo can't opt in/out of the safety-checks feature through .gittensory.yml.
Fix
Wire manifest.features.safety through the shared resolver into isSafetyEnabled's decision.
Deliverables
Expected outcome
An operator can turn the safety-checks feature on/off per-repo purely through config, with the same care given to defaults as the other features in this epic.
Effort
S — one gate function + tests, plus a safety-default review.
Part of #4092. Depends on the core resolver issue (config-as-code resolver).
Problem
review.features.safety(packages/gittensory-engine/src/focus-manifest.ts:176) is parsed butisSafetyEnabled(src/review/safety.ts:44) checks ONLYGITTENSORY_REVIEW_SAFETY. A repo can't opt in/out of the safety-checks feature through.gittensory.yml.Fix
Wire
manifest.features.safetythrough the shared resolver intoisSafetyEnabled's decision.Deliverables
isSafetyEnabled(or its caller) consultsmanifest.features.safetyvia the shared resolvertrue/false/unset across allowlisted and non-allowlisted repossafety.tsactually gates before wiring, since "safety" checks may be exactly the kind of thing that should stay a stronger/more conservative default than other features — flag if so rather than assuming symmetry with the others)Expected outcome
An operator can turn the safety-checks feature on/off per-repo purely through config, with the same care given to defaults as the other features in this epic.
Effort
S — one gate function + tests, plus a safety-default review.