# ADR-065: Block manual License section in validateReadme

## Статус

Accepted (2026-07-30)

## Контекст

`validateReadme` (тулза `create-readme`) проверяла структуру README для парсинга витриной slaid098.dev, но не контролировала дублирование License-секции. GitHub автоматически рендерит license в sidebar репозитория (из LICENSE-файла и/или настроек repo). Ручной `## License` в README — дубликат, который расходится с источником правды и засоряет валидацию стандарта.

Часть README этого репо содержала ручной `## License` + `MIT — see [LICENSE](LICENSE).`, который нужно убрать одновременно с приведением tagline к новому стандарту (PR #151).

## Решение

Добавить в `validateReadme` ERROR-чек после H1 prefix check:

```ts
if (/^##\s+(License|LICENSE|Лицензия)\s*$/m.test(content))
  issues.push("Manual License section found — remove it (GitHub renders license from LICENSE file)")
```

Ключевые свойства regex `^##\s+(License|LICENSE|Лицензия)\s*$` с `m`-флагом:
- Матчит только заголовки секций в начале строки (`## License`, `## LICENSE`, `## Лицензия`).
- НЕ матчит упоминания "license" внутри текста, features-таблиц или custom-sections — `^`/`$` с `m`-флагом ограничивают совпадение целой строкой.
- Регистро-варианты `License`/`LICENSE` покрыты явно; кириллический `Лицензия` — отдельно.

Source of truth для license — файл `LICENSE` + GitHub repo settings, не README.

## Альтернативы

- **Не валидировать license** (status quo) — оставляет дубликаты, расходится с принципом "README = только showcase-контент, метаданные — в GitHub".
- **Удалять `## License` автоматически в create-режиме** — слишком магически; валидатор + явная правка надёжнее и прозрачнее для аудита.
- **Через `includes("## License")`** вместо regex — словило бы `## License` в любом контексте и `### Subsection under License`, плюс false-positive на упоминания. Regex с `^...$` + `m`-флагом точнее.

## Известные последствия (backward compatibility)

Новый license-check помечает `invalid` существующие README других репо slaid098, где есть ручной `## License`/`## Лицензия`. Это intentional — такие README регенерируются/чищутся отдельным шагом после merge (зафиксировано в handoff, секция Pending).
