cspell.json useGitignore:true заставлял cspell игнорировать все файлы worktree, расположенного под gitignored .claude/worktrees/ (Files checked: 0 — фейковый green). Staged-файлы по определению tracked, потому --no-gitignore для pre-commit cspell безопасен и чинит worktree-коммиты.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
B4 + B5 реализованы и закрыты; B1 «Напоминания в сайдбар» откатан как
конфликтующий с прежним решением заказчика «sidebar cleanup» (5c8ad27).
Отмечено в §3 расписании, §4 таблице B и §8 approval log.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Дописана §11: 6 скоростных правил (блок A 5 пунктов + блок B п.3) внесены секцией СКОРОСТЬ в LEVELS[5] хуков; B4 (замер latency хуков) задокументирован как закрытый одноразовый bench. §5.1/§5.2 актуализированы под текущие хуки, §2 формула расширена, статус-шапка → Реализован.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Откат 4342dc7. Audit B1 предлагал вернуть «Напоминания» в сайдбар, но
пункт был намеренно убран по требованию заказчика (commit 5c8ad27
«sidebar cleanup»; тест AppLayout.spec.ts фиксирует «Напоминания убраны
по требованию заказчика»). Решение заказчика 2026-05-16: B1 → won't-do,
пункт остаётся убранным. Восстанавливает зелёный AppLayout.spec.ts.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
SupplierPortalClient::loadSession, RefreshSupplierSessionJob, CsvReconcileJob and RouteSupplierLeadJob hardcode Cache::store('redis'), bypassing phpunit.xml's CACHE_STORE=array. Under pest --parallel every worker shares the same Memurai instance and the global supplier:session key, so one worker's afterEach forget()/flush() races another worker's mid-test loadSession() -- deterministic 1-2 failures in the tests/Feature/Supplier/ subdir-only run (quirk 72).
TestCase::setUp() repoints the redis cache store at the in-process array driver: each parallel worker gets a hermetic, worker-local cache. Production keeps the real redis driver -- the override only runs under APP_ENV=testing. New RedisCacheStoreIsolationTest guards the invariant.
Verified: tests/Feature/Supplier/ --parallel 6/6 runs 43/43 (was 42/43 +1 error); tests/Unit/Supplier/ 3/3 runs 38/38; full pest --parallel 794/791/3sk/0; Pint + Larastan clean.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
pest --parallel emits a single JSON line {"tool":"pest","tests":N,"passed":N,"skipped":N,...}
instead of human-readable text; the old regex-only parser returned 0/0/0sk/0 for every
parallel run. Added JSON-first branch with regex fallback; 3 new unit tests cover the
JSON path (passed+skipped, with failures, no skipped field).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Уровень «экономия 5%» = «0% без избыточности»: то же качество, что 0%,
вырезаны 6 пунктов дублирующей/бесполезной работы (re-read CLAUDE.md,
тесты-после-каждой-правки, gitleaks-full-history per-commit, Stop-верификатор,
авто-гейты brainstorming/plan-mode -> §12.2-floor). Уровень 0% не меняется.
cspell-words.txt: +коммитятся (валидная форма семейства коммит*).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Both tools check RLS compliance; the boundary "когда какой" was
undocumented (tracked as a RED conflict on the automation graph).
- .claude/skills/rls-check/SKILL.md: +section "Граница с агентом
rls-reviewer", +bullet in "Не использовать когда", +clause in
the frontmatter description.
- .claude/agents/rls-reviewer.md: +mirrored section "Граница со
скилом /rls-check", +bullet in "Out of scope", +clause in
the description.
- docs/automation-graph.html: conflict sk_rls<->ag_rls recolored
RED->GREEN (CONFLICT edge + both nd() node entries + EDGE_META).
- cspell-words.txt: +1 pre-existing word surfaced by the cspell
full-file scan of the now-staged SKILL.md.
Rule: one named table -> /rls-check; diff/branch/PR -> rls-reviewer.
The smoke test stays skill-only by design (running Pest in a review
subagent is slow and hits --parallel quirks 72/77).
Spec: docs/superpowers/specs/2026-05-16-rls-tooling-boundary-design.md
Plan: docs/superpowers/plans/2026-05-16-rls-tooling-boundary.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
A missing cmd-based tool on Windows exits 1 with an "is not recognized"
message, not POSIX exit 127. runCheck now also matches that message so a
missing composer/npm is classified SKIPPED (verdict RED-INCOMPLETE) per
spec §8, instead of a plain failure. Code-review follow-up for Task 7.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>