d44254a0e1
- оглавление: реальная тема (поле «тема» в моторе) + дата со временем вместо заглушки (дело) - флажок по сессии secretary-mode-<session>.json — параллельные сессии не смешиваются - дедуп при записи (applyExtraction) — не плодим одинаковые пункты - промпт-дисциплина: игнор служебного шума, «воля» только у [ЮЗЕР], решения не вопросы - стабильная тема (первая непустая, не уезжает на тему хода) - провенанс несёт сессию (@<session>) -> навигация в raw/<session>.log; steps/ убраны как дубли - мёртвый код снят: secretary-slice + computePeriod + buildStepLinks 37 тестов green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
15 lines
837 B
JavaScript
15 lines
837 B
JavaScript
// Чистые утилиты для тонких переходников секретаря.
|
|
|
|
/** Проверка пригодности файла-хода перед записью ссылок: UTF-8, без BOM, непусто. */
|
|
export function verifyEncoding(content) {
|
|
if (typeof content !== 'string' || content.length === 0) return { ok: false, reason: 'empty' };
|
|
if (content.charCodeAt(0) === 0xFEFF) return { ok: false, reason: 'BOM' };
|
|
return { ok: true, reason: 'utf8' };
|
|
}
|
|
|
|
/** Оглавление дел как подсказка для старта сессии. */
|
|
export function renderIndexContext(indexMd) {
|
|
const body = typeof indexMd === 'string' && indexMd.trim() ? indexMd.trim() : '(дел пока нет)';
|
|
return `Открытые дела (протоколы секретаря):\n${body}`;
|
|
}
|