84231a1470
Доска «кто на посту» (STATUS.md §7) теперь показывает реальные недавние escape владельца и блоки машин М1–М6 вместо хардкода []/[]. - new tools/guard-block-log.mjs: logGuardBlock (best-effort, fail-quiet, Node fs append в guard-blocks-<sess>.jsonl) + loadRecentBlocks/ loadRecentEscapes (скан session-файлов runtime, окно 24ч + cap 10, ts→ISO). - проводка logGuardBlock в block-ветку main() 9 машинных хуков (floor / supreme-gate / judge-gate / snapshot / read-path-deny / mcp-classification / normative-content-rules / verify-gate / criterion-gate). Логгер вызывается ПОСЛЕ решения, не влияет на block; decide() pure не тронут. - status-md-generator CLI: recentEscapes/recentBlocks из читателей вместо []/[]. До флипа Фазы 8 доска показывает 0/0 (хуки не зарегистрированы — данных нет); реальная польза — пост-флип наблюдаемость. TDD: guard-block-log.test (6) + 9 структурных wiring-тестов + 1 board-тест. Гейт закрытия: sharp-edges (промежуточный по 9 хукам + читатели) + variant-analysis (все block-ветки покрыты, иных источников нет). Регрессия tools-only 3465 passed / 2 skipped / 0 failed (было 3449+2skip). 0 регрессий. Plan: docs/superpowers/plans/2026-06-10-guard-board-live-source.md
12 lines
682 B
JavaScript
12 lines
682 B
JavaScript
// tools/status-md-generator-guardlive.test.mjs — структурная проверка проводки live-источника доски (D-3).
|
|
import { describe, it, expect } from 'vitest';
|
|
import { readFileSync } from 'node:fs';
|
|
describe('status-md-generator — доска live-источник (D-3)', () => {
|
|
it('CLI передаёт loadRecentEscapes/loadRecentBlocks вместо []/[]', () => {
|
|
const src = readFileSync(new URL('./status-md-generator.mjs', import.meta.url), 'utf8');
|
|
expect(src).toMatch(/loadRecentEscapes\(/);
|
|
expect(src).toMatch(/loadRecentBlocks\(/);
|
|
expect(src).not.toMatch(/recentEscapes: \[\], recentBlocks: \[\]/);
|
|
});
|
|
});
|