chore: bring repo under REUSE (заход 3) #1

Merged
iuriishikov merged 3 commits from task/reuse-forgejo into main 2026-07-20 18:44:03 +00:00

REUSE заход 3 для инфраструктурного репозитория. reuse lint (6.2.0) зелёный: 6/6 файлов с информацией об авторских правах и лицензии, спецификация REUSE 3.3.

Что легло

  • LICENSE — байт-копия из локального клона shikos-template; git hash-object = 90abd0e6c64a135f42451762337a397bf27f4862 (совпал с assert'ом брифа до и после коммита).
  • NOTICE — канонический пятистрочный текст; git hash-object = 21836365062175edfd4fa990030d6d86fd99a827. Тот же хеш у NOTICE во всех трёх соседних репозиториях — текст сверен с каноном организации.
  • LICENSES/LicenseRef-PolyForm-Strict-1.0.0.txt — относительный симлинк на ../LICENSE, как в остальных репозиториях.
  • REUSE.toml — version 1, собственная #-шапка, единственная аннотация NOTICE с precedence = "aggregate" и только лицензией (copyright-строка самого NOTICE остаётся источником); комментарий-причина над аннотацией. Форма — по прецеденту захода 2 (shikos-ci-image).
  • Двухстрочные шапки в пяти файлах: sync/template-sync.sh (сразу после шебанга, затем пустая строка, существующий комментарий не тронут), три workflow-файла (первыми строками), README.md (четырёхстрочный <!-- -->-блок + пустая строка). Вставка — скриптом с assert'ами на точное исходное состояние каждого файла (reuse annotate не использовался). Дифф по этим файлам: +17 строк, 0 удалений, только шапки.

Разрешение шага 0

Расхождений, требовавших решения основателя, не нашлось:

  • Ожидание «существующих SPDX-тегов ноль» подтвердилось грепом по всему репозиторию — прецедент битого тега ci-image здесь не повторился.
  • Форма README-шапки и REUSE.toml сверена с четырьмя соседними репозиториями — канон единый, бриф ему не противоречит.
  • Единственный нюанс: в template-sync.sh между шебангом и комментарием «template-sync: …» не было пустой строки; по брифу после блока шапки идёт настоящая пустая строка, поэтому она появилась. Считаю её частью шапки — форма задана брифом явно.
  • Пока бриф docs/tasks/reuse-forgejo.md жил, reuse lint не мог быть зелёным (файл ничем не покрыт, а вторая аннотация в REUSE.toml брифом не предусмотрена). Штатно разрешилось порядком коммитов: приёмочный lint гонялся после удаляющего бриф коммита.

Наблюдения по пути (в отчёт, не в дифф)

  • Известные дефекты template-sync.sh (|| true на создании PR, форс-пуш в фиксированную ветку, широкий греп манифеста) на месте — не тронуты, как велит бриф; задача на них отдельная, зафиксирована в вольте.
  • Новых находок сверх уже известных нет: репозиторий из шести файлов, всё остальное соответствовало ожиданиям брифа.

Структура

Два коммита: chore: bring repo under REUSE (LICENSE, NOTICE, headers, REUSE.toml) и последним — docs: drop reuse-forgejo task brief (контракт отработан). Отклонений от брифа нет.

🤖 Generated with Claude Code

REUSE заход 3 для инфраструктурного репозитория. `reuse lint` (6.2.0) зелёный: 6/6 файлов с информацией об авторских правах и лицензии, спецификация REUSE 3.3. ## Что легло - **`LICENSE`** — байт-копия из локального клона `shikos-template`; `git hash-object` = `90abd0e6c64a135f42451762337a397bf27f4862` (совпал с assert'ом брифа до и после коммита). - **`NOTICE`** — канонический пятистрочный текст; `git hash-object` = `21836365062175edfd4fa990030d6d86fd99a827`. Тот же хеш у NOTICE во всех трёх соседних репозиториях — текст сверен с каноном организации. - **`LICENSES/LicenseRef-PolyForm-Strict-1.0.0.txt`** — относительный симлинк на `../LICENSE`, как в остальных репозиториях. - **`REUSE.toml`** — version 1, собственная `#`-шапка, единственная аннотация `NOTICE` с `precedence = "aggregate"` и только лицензией (copyright-строка самого NOTICE остаётся источником); комментарий-причина над аннотацией. Форма — по прецеденту захода 2 (`shikos-ci-image`). - **Двухстрочные шапки** в пяти файлах: `sync/template-sync.sh` (сразу после шебанга, затем пустая строка, существующий комментарий не тронут), три workflow-файла (первыми строками), `README.md` (четырёхстрочный `<!-- -->`-блок + пустая строка). Вставка — скриптом с assert'ами на точное исходное состояние каждого файла (`reuse annotate` не использовался). Дифф по этим файлам: +17 строк, 0 удалений, только шапки. ## Разрешение шага 0 Расхождений, требовавших решения основателя, не нашлось: - Ожидание «существующих SPDX-тегов ноль» подтвердилось грепом по всему репозиторию — прецедент битого тега ci-image здесь не повторился. - Форма README-шапки и REUSE.toml сверена с четырьмя соседними репозиториями — канон единый, бриф ему не противоречит. - Единственный нюанс: в `template-sync.sh` между шебангом и комментарием «template-sync: …» не было пустой строки; по брифу после блока шапки идёт настоящая пустая строка, поэтому она появилась. Считаю её частью шапки — форма задана брифом явно. - Пока бриф `docs/tasks/reuse-forgejo.md` жил, `reuse lint` не мог быть зелёным (файл ничем не покрыт, а вторая аннотация в REUSE.toml брифом не предусмотрена). Штатно разрешилось порядком коммитов: приёмочный lint гонялся после удаляющего бриф коммита. ## Наблюдения по пути (в отчёт, не в дифф) - Известные дефекты `template-sync.sh` (`|| true` на создании PR, форс-пуш в фиксированную ветку, широкий греп манифеста) на месте — не тронуты, как велит бриф; задача на них отдельная, зафиксирована в вольте. - Новых находок сверх уже известных нет: репозиторий из шести файлов, всё остальное соответствовало ожиданиям брифа. ## Структура Два коммита: `chore: bring repo under REUSE (LICENSE, NOTICE, headers, REUSE.toml)` и последним — `docs: drop reuse-forgejo task brief` (контракт отработан). Отклонений от брифа нет. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
docs: add task/reuse-forgejo brief (REUSE pass 3)
All checks were successful
smoke / smoke (push) Successful in 4s
7718f16562
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
docs: drop reuse-forgejo task brief
All checks were successful
smoke / smoke (push) Successful in 4s
c317eaadad
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
iuriishikov left a comment

Сверено против брифа task/reuse-forgejo. Дифф — строго заявленное: правовой фундамент лёг байт-в-байт — LICENSE блобом 90abd0e, NOTICE блобом 2183636, оба hash-assert'а брифа подтверждены индексными строками самого диффа, класс ошибки «мусор под правильным именем» исключён. Шапки пяти файлов (+17/0; в template-sync.sh — сразу после шебанга, существующие комментарии и содержимое скрипта не тронуты, известные дефекты скрипта оставлены отдельной задаче, как велит бриф), симлинк LICENSES/../LICENSE, REUSE.toml с единственной NOTICE-аннотацией по канону — только лицензия при aggregate. Бриф добавлен первым коммитом и удалён последним — контракт отработан.

Процессная заметка, не к диффу: постоянная часть требует безусловного стопа на шаге 0 со словом основателя — «покажи и остановись», независимо от того, нашлись ли расхождения. Из отчёта видна сверка, но не слово. Если го давался на верстаке — всё штатно; если стоп был свёрнут как «расхождений нет» — на будущее: наличие расхождений на обязательность стопа не влияет.

APPROVED; мерж — за основателем.

Сверено против брифа `task/reuse-forgejo`. Дифф — строго заявленное: правовой фундамент лёг байт-в-байт — `LICENSE` блобом `90abd0e`, `NOTICE` блобом `2183636`, оба hash-assert'а брифа подтверждены индексными строками самого диффа, класс ошибки «мусор под правильным именем» исключён. Шапки пяти файлов (+17/0; в `template-sync.sh` — сразу после шебанга, существующие комментарии и содержимое скрипта не тронуты, известные дефекты скрипта оставлены отдельной задаче, как велит бриф), симлинк `LICENSES/` → `../LICENSE`, `REUSE.toml` с единственной `NOTICE`-аннотацией по канону — только лицензия при `aggregate`. Бриф добавлен первым коммитом и удалён последним — контракт отработан. Процессная заметка, не к диффу: постоянная часть требует безусловного стопа на шаге 0 со словом основателя — «покажи и остановись», независимо от того, нашлись ли расхождения. Из отчёта видна сверка, но не слово. Если го давался на верстаке — всё штатно; если стоп был свёрнут как «расхождений нет» — на будущее: наличие расхождений на обязательность стопа не влияет. APPROVED; мерж — за основателем.
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
shikos/.forgejo!1
No description provided.