mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
docs(hygiene): сократить вход агента, у правила — один дом (#680)
Волна 3 эпика #674. AGENTS.md 650 → 187 строк: карта пакета, маршрут чтения, правило №1, классы и треки одной строкой со ссылками, трейлеры, рабочие деревья, хендофф и ожидание вердикта; пересказы PROCESS.md — ссылками на разделы. Неверный список «Gate jobs» снят (списки jobs не копируются в прозу, шапка PROCESS.md). Правила, жившие только в AGENTS, получили дом: жёлтый вердикт при выполненных AC — PROCESS §2.7; свежесть бандла, съёмка только в Linux (#455, HP_ALLOW_FOREIGN_CAPTURE) и смоки из AC до S7 (#151) — TESTING.md; причуда демо-стенда и среда-зависимый smoke_opening_measure — DEVELOPMENT › Smoke tests; отказ публикации без `Release:` и при несвежем отпечатке бандла, отмена Validate новым пушем, кандидат беты не promotion-only, fail-closed реестра Labs — DEVELOPMENT; предупреждение и ошибка свежести скриншотов — CONTRIBUTING. PROCESS.md: §13 (внедрение с открытым ⏳), §14 (блок со ссылкой на несуществующий docs/PROCESS.md) и §7.3 (история) удалены. Ссылки «§7.2» на правило полного разбора после ребейза ведут в §2.10, на сверку SHA перед выводом — в §2.7; то же в сообщениях scripts/branch-state.mjs, merge-candidate.mjs, review-doc-guard.mjs, pre-push-gate.mjs, в промпте _process.yml и TESTING.md. Число `any` в прозе → `node scripts/no-new-any.mjs --total` (новый режим, юнит-тест; было «1034 в 49 файлах», сейчас 862 в 52), дата-число замороженного списка якорей монолита снято. Устаревшая команда пересъёмки скриншотов в §8 заменена ссылкой на действующий путь. STATUS.md 113 → 61 строка: сгенерированный снимок, текущий цикл и девять строк решений; Workflow, CI, Toolchain, Tests, Scope, open items и политика документации — ссылками (PROCESS §2.6, DEVELOPMENT › Release, TESTING); локали en/ru/de/fr; закрытые «coverage, mypy strict» сняты. DEVELOPMENT.md: file-sync и «Reproducible scripts» (прототип) удалены; раздел Release — единственный дом релизной механики: введение, правила тела стабильного релиза (#328, release:notes), шаг continuity:screencast, источники версии по release-contract. CONTRIBUTING: ссылка на Release вместо пересказа, замеры клона без чисел. TESTING: any-гейт — ссылкой на PROCESS §8. entry-cost: автор 11 125 → 5 407 слов, ревьюер 8 464 → 4 285. Issue: #680 User-Visible: no Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018qZfe7YS4rqEMKoVeS3GKd
This commit is contained in:
@@ -4,13 +4,13 @@ import assert from 'node:assert/strict';
|
||||
import {
|
||||
MOVED_BLOCK_MIN,
|
||||
addedLinesByFile, anyKeywordLines, blameLine, findNewAnyViolations, formatViolation,
|
||||
movedLinesByFile, parseAnyOk,
|
||||
movedLinesByFile, parseAnyOk, totalAny,
|
||||
} from '../scripts/no-new-any.mjs';
|
||||
|
||||
// #342. Цель гейта — не перетипизировать монолит, а не давать долгу расти. В
|
||||
// src/** сейчас 1034 вхождения явного any в 49 файлах; разовая замена — месяц
|
||||
// риска ради нуля пользовательской ценности, поэтому долг снимается при
|
||||
// извлечении подсистем (#34), а гейт держит приращение на нуле.
|
||||
// src/** сотни вхождений явного any (`node scripts/no-new-any.mjs --total`);
|
||||
// разовая замена — месяц риска ради нуля пользовательской ценности, поэтому
|
||||
// долг снимается при извлечении подсистем (#34), а гейт держит приращение на нуле.
|
||||
|
||||
const file = (text, addedLines) => ({
|
||||
path: 'src/probe.ts', text, addedLines: new Set(addedLines),
|
||||
@@ -241,3 +241,12 @@ test('#592 перенос с изменённым отступом перено
|
||||
].join('\n');
|
||||
assert.equal(movedLinesByFile(diff).size, 0);
|
||||
});
|
||||
|
||||
test('#680 --total: считает узлы AnyKeyword и файлы с ними, не слово any в прозе', () => {
|
||||
const total = totalAny([
|
||||
{ path: 'src/a.ts', text: 'let a: any; const b = x as any; // any в комментарии\n' },
|
||||
{ path: 'src/b.ts', text: 'const company = "any"; function f(v: unknown) { return v; }\n' },
|
||||
{ path: 'src/c.ts', text: 'type T = Record<string, any>;\n' },
|
||||
]);
|
||||
assert.deepEqual(total, { occurrences: 3, files: 2 });
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user