docs(risk): document residual risks and public issue plan

This commit is contained in:
igor04091968
2026-06-22 21:08:33 +03:00
parent 44f5d6ecc2
commit f310aeff49
6 changed files with 328 additions and 0 deletions
+10
View File
@@ -239,6 +239,10 @@ collectors.
[RU_BUILD_RUNNER_READINESS_RU.md](docs/registry/RU_BUILD_RUNNER_READINESS_RU.md). [RU_BUILD_RUNNER_READINESS_RU.md](docs/registry/RU_BUILD_RUNNER_READINESS_RU.md).
- Текущий status freeze проекта: - Текущий status freeze проекта:
[docs/PROJECT_STATUS_RU.md](docs/PROJECT_STATUS_RU.md). [docs/PROJECT_STATUS_RU.md](docs/PROJECT_STATUS_RU.md).
- Остаточные риски:
[docs/RESIDUAL_RISKS_RU.md](docs/RESIDUAL_RISKS_RU.md).
- План публичных GitHub issues:
[docs/PUBLIC_ISSUES_PLAN_RU.md](docs/PUBLIC_ISSUES_PLAN_RU.md).
- GitHub remains public mirror only. - GitHub remains public mirror only.
### Public engineering transparency ### Public engineering transparency
@@ -252,6 +256,10 @@ collectors.
- Primary registry contour remains Gitea plus the Russian build-runner. - Primary registry contour remains Gitea plus the Russian build-runner.
- Quality status: - Quality status:
[docs/QUALITY_STATUS_RU.md](docs/QUALITY_STATUS_RU.md). [docs/QUALITY_STATUS_RU.md](docs/QUALITY_STATUS_RU.md).
- Residual risks:
[docs/RESIDUAL_RISKS_RU.md](docs/RESIDUAL_RISKS_RU.md).
- Public issues plan:
[docs/PUBLIC_ISSUES_PLAN_RU.md](docs/PUBLIC_ISSUES_PLAN_RU.md).
- [Позиционирование для реестра российского ПО](docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md) - [Позиционирование для реестра российского ПО](docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md)
- [Сведения для подачи в реестр](REGISTER_RU_SOFTWARE.md) - [Сведения для подачи в реестр](REGISTER_RU_SOFTWARE.md)
@@ -262,6 +270,8 @@ collectors.
- [Registry deployment model](docs/REGISTRY_DEPLOYMENT_MODEL_RU.md) - [Registry deployment model](docs/REGISTRY_DEPLOYMENT_MODEL_RU.md)
- [Registry commercial positioning](docs/REGISTRY_COMMERCIAL_POSITIONING_RU.md) - [Registry commercial positioning](docs/REGISTRY_COMMERCIAL_POSITIONING_RU.md)
- [Registry readiness checklist](docs/REGISTRY_READINESS_CHECKLIST_RU.md) - [Registry readiness checklist](docs/REGISTRY_READINESS_CHECKLIST_RU.md)
- [Остаточные риски](docs/RESIDUAL_RISKS_RU.md)
- [План публичных issues](docs/PUBLIC_ISSUES_PLAN_RU.md)
- [Описание продукта](PRODUCT_DESCRIPTION_RU.md) - [Описание продукта](PRODUCT_DESCRIPTION_RU.md)
- [Журнал изменений](CHANGELOG_RU.md) - [Журнал изменений](CHANGELOG_RU.md)
- [Установка для эксперта](INSTALL_FOR_EXPERT_RU.md) - [Установка для эксперта](INSTALL_FOR_EXPERT_RU.md)
+11
View File
@@ -28,6 +28,10 @@ backup, registry-readiness документации, плана российск
- Public validation passed status does not constitute registry release evidence. - Public validation passed status does not constitute registry release evidence.
- Registry release evidence still requires the Russian build-runner contour. - Registry release evidence still requires the Russian build-runner contour.
- Russian build-runner still required for registry release evidence. - Russian build-runner still required for registry release evidence.
- Остаточные риски:
`docs/RESIDUAL_RISKS_RU.md`.
- План публичных GitHub issues:
`docs/PUBLIC_ISSUES_PLAN_RU.md`.
## Что готово ## Что готово
@@ -56,6 +60,10 @@ backup, registry-readiness документации, плана российск
по контурам `CI`, `Coverage` и `Security`. по контурам `CI`, `Coverage` и `Security`.
- Добавлены `SECURITY.md`, `CONTRIBUTING.md`, `ROADMAP.md`, issue templates и - Добавлены `SECURITY.md`, `CONTRIBUTING.md`, `ROADMAP.md`, issue templates и
pull request template. pull request template.
- Зафиксирован residual risk register:
`docs/RESIDUAL_RISKS_RU.md`.
- Подготовлен план публичных issues для ручного заведения:
`docs/PUBLIC_ISSUES_PLAN_RU.md`.
## Planned / pending ## Planned / pending
@@ -66,6 +74,7 @@ backup, registry-readiness документации, плана российск
- Юридическое подтверждение правообладателя. - Юридическое подтверждение правообладателя.
- Финальная юридическая проверка пакета документов перед подачей. - Финальная юридическая проверка пакета документов перед подачей.
- Проверка совместимости с российскими ОС. - Проверка совместимости с российскими ОС.
- Публичные roadmap/issues из `docs/PUBLIC_ISSUES_PLAN_RU.md`.
## Честные ограничения ## Честные ограничения
@@ -94,3 +103,5 @@ backup, registry-readiness документации, плана российск
- `docs/registry/RELEASE_EVIDENCE_RUNBOOK_RU.md` - `docs/registry/RELEASE_EVIDENCE_RUNBOOK_RU.md`
- `docs/registry/RELEASE_ARTIFACTS_STORAGE_RU.md` - `docs/registry/RELEASE_ARTIFACTS_STORAGE_RU.md`
- `docs/QUALITY_STATUS_RU.md` - `docs/QUALITY_STATUS_RU.md`
- `docs/RESIDUAL_RISKS_RU.md`
- `docs/PUBLIC_ISSUES_PLAN_RU.md`
+36
View File
@@ -0,0 +1,36 @@
# AWatch-rus: план публичных GitHub issues
Дата: 2026-06-22
Статус: public governance backlog plan.
Этот документ перечисляет публичные GitHub issues, которые нужно завести
вручную. Он не утверждает, что задачи уже созданы или выполнены.
Цель: повысить visibility development process после настройки российского
Gitea-контура, backup, public CI, coverage, security scanning и status freeze.
## Issues to create manually
| Title | Purpose | Current status |
| --- | --- | --- |
| `[registry] Perform Gitea backup restore test` | Prove restore procedure on a separate host and keep `restore_tested=false` until evidence exists. | To create |
| `[registry] Prepare temporary Russian build-runner awatch-build-01` | Provision temporary or permanent Russian build-runner for registry release evidence. | To create |
| `[release] Produce first release evidence package` | Run release evidence scripts on `awatch-build-01` and collect artifacts/logs/checksums. | To create |
| `[legal] Prepare rightsholder evidence package` | Prepare rightsholder and legal evidence for future registry submission. | To create |
| `[qa] Define coverage threshold policy` | Define threshold only after stable coverage baseline review. | To create |
| `[security] Prepare external security/code review checklist` | Establish visible peer review and external security review checklist. | To create |
| `[compat] Test Russian OS compatibility matrix` | Validate supported Russian OS matrix and document evidence. | To create |
| `[ops] Validate release artifacts storage in RF` | Confirm release artifact storage location and retention in the Russian contour. | To create |
| `[docs] Refresh public demo pack and screenshots` | Update public demo pack, screenshots and non-sensitive demo evidence. | To create |
| `[pilot] Prepare Pilot Acceptance Checklist v2` | Update pilot acceptance checklist after residual risk register and public issue plan. | To create |
## Guardrails
- Do not mark restore test as completed until restore evidence exists.
- Do not mark `awatch-build-01` as ready until provisioning evidence exists.
- Do not mark release evidence as produced until artifacts and checksums exist.
- Do not claim completed registry submission.
- Do not claim fake community adoption.
- Do not position GitHub Actions as the primary registry build contour.
+174
View File
@@ -0,0 +1,174 @@
# AWatch-rus: остаточные риски после public validation и российского Git-контура
Дата: 2026-06-22
Статус: governance / registry-readiness residual risk register.
Документ фиксирует оставшиеся риски после настройки российского Gitea-контура,
backup, public GitHub Actions validation, coverage workflow, security scanning
и status freeze.
Это не заявление о завершенной регистрации в реестре российского ПО и не
release evidence. GitHub Actions остается public mirror validation only.
Primary registry-readiness contour остается: Russian Gitea, planned Russian
build-runner и будущий release evidence build на российском контуре.
## Архитектурный вывод
Текущий pilot/readiness stage не блокируется перечисленными рисками, потому что
ядро инженерной прозрачности уже зафиксировано:
- source contour documented: self-hosted Russian Gitea;
- public mirror validation passed: CI, Coverage, Security;
- secret scan hardened and passed;
- backup process documented with SHA256 verification and daily timer;
- registry-readiness docs and release evidence scripts exist;
- forbidden positioning claims are explicitly excluded.
Оставшиеся риски относятся к governance, disaster recovery proof, public process
visibility, release evidence contour and legal package. Они требуют дальнейших
действий до registry release evidence / GA, но не отменяют pilot/readiness
статус.
## 1. Один основной разработчик
- Текущий статус: риск открыт; основная инженерная экспертиза сосредоточена у
одного maintainer.
- Влияние: задержка развития, поддержки и incident response при недоступности
maintainer; повышенная зависимость от личной экспертизы.
- Почему не блокирует pilot/readiness stage: архитектура, deployment docs,
runbooks, registry docs and public checks already create a transferable
baseline for pilot validation.
- Как риск будет снижаться: second maintainer onboarding, documented code
ownership, mandatory PR review for release branches, knowledge transfer
sessions.
- Уже снижающие evidence/documents/CI: README, `docs/PROJECT_STATUS_RU.md`,
`docs/QUALITY_STATUS_RU.md`, `docs/registry/`, GitHub Actions CI/Coverage/
Security, issue templates and PR template.
- Следующий action: завести публичную задачу
`[security] Prepare external security/code review checklist`.
## 2. Нет публично видимого peer review
- Текущий статус: риск открыт; PR template and issue templates exist, but
public peer review history is still limited.
- Влияние: внешним аудиторам сложнее оценить review discipline and change
control maturity.
- Почему не блокирует pilot/readiness stage: current changes are protected by
reproducible checks, public workflows and documented conservative positioning.
- Как риск будет снижаться: external review checklist, first public PR reviews,
explicit release branch review policy.
- Уже снижающие evidence/documents/CI: `.github/pull_request_template.md`,
`.github/ISSUE_TEMPLATE/`, `CONTRIBUTING.md`, `SECURITY.md`, public CI,
public security workflow.
- Следующий action: завести публичную задачу
`[security] Prepare external security/code review checklist`.
## 3. Низкая публичная активность issue tracker
- Текущий статус: риск открыт частично; issue templates and public roadmap
exist, but public roadmap-tasks are still few.
- Влияние: низкая внешняя visibility development process; сложнее показать
плановое управление backlog and governance.
- Почему не блокирует pilot/readiness stage: templates, roadmap and status docs
already define expected process; missing public tasks are a visibility gap,
not a runtime readiness gap.
- Как риск будет снижаться: manually create public issues for registry, QA,
security, compatibility, ops and pilot follow-up work.
- Уже снижающие evidence/documents/CI: `ROADMAP.md`, issue templates,
`docs/PROJECT_STATUS_RU.md`, `docs/PUBLIC_ISSUES_PLAN_RU.md`.
- Следующий action: завести публичные issues по списку из
`docs/PUBLIC_ISSUES_PLAN_RU.md`.
## 4. Низкая community adoption
- Текущий статус: риск открыт; stars/forks remain low and the project still
looks like early-stage / pilot-stage OSS.
- Влияние: нет широкого external validation and "many eyes" effect; меньше
внешних сигналов доверия.
- Почему не блокирует pilot/readiness stage: это не технический blocker.
Specialized enterprise/security OSS normally grows through pilots,
documentation, demos, case studies and references.
- Как риск будет снижаться: public demo pack, updated screenshots, pilot
materials, external links, publications and first customer pilots.
- Уже снижающие evidence/documents/CI: README, demo docs, pilot docs,
screenshots, public workflows, registry docs.
- Следующий action: завести публичную задачу
`[docs] Refresh public demo pack and screenshots`.
## 5. Gitea restore test еще не выполнен
- Текущий статус: риск открыт; backup works, SHA256 verification works and daily
timer is documented, but `restore_tested` remains false.
- Влияние: disaster recovery capability is documented but not yet proven by a
restore drill on a separate host.
- Почему не блокирует pilot/readiness stage: backup contour already exists and
can support readiness documentation; release/registry evidence still requires
restore proof later.
- Как риск будет снижаться: perform restore test on a separate server, record
logs, checksum verification, post-restore checks and rollback notes.
- Уже снижающие evidence/documents/CI:
`docs/registry/GITEA_BACKUP_AND_RESTORE_RUNBOOK_RU.md`,
`docs/registry/registry-evidence-manifest.json`,
`scripts/registry_readiness_check.sh`.
- Следующий action: завести публичную задачу
`[registry] Perform Gitea backup restore test`.
## 6. Российский build-runner пока planned
- Текущий статус: риск открыт; `awatch-build-01` is planned, not ready.
- Влияние: release evidence cannot yet be produced on the target Russian
build-runner contour.
- Почему не блокирует pilot/readiness stage: public GitHub Actions provides
mirror validation, while registry release evidence is explicitly deferred to
the Russian build-runner.
- Как риск будет снижаться: provision temporary or permanent `awatch-build-01`,
install toolchain, connect to Russian Gitea and run required checks.
- Уже снижающие evidence/documents/CI:
`docs/registry/RU_BUILD_RUNNER_READINESS_RU.md`,
`docs/registry/BUILD_RUNNER_SETUP_RUNBOOK_RU.md`, public CI/Coverage/
Security as non-release validation.
- Следующий action: завести публичную задачу
`[registry] Prepare temporary Russian build-runner awatch-build-01`.
## 7. Первый настоящий release evidence build pending
- Текущий статус: риск открыт; release evidence scripts exist, but the first
real release evidence build on `awatch-build-01` has not been performed.
- Влияние: registry release evidence package is not yet available from the
target build contour.
- Почему не блокирует pilot/readiness stage: pilot readiness can use current
docs and public validation; registry release evidence is a later gate.
- Как риск будет снижаться: run release evidence scripts on the Russian
build-runner, collect artifacts, checksums, cargo metadata/tree, logs and
release manifest.
- Уже снижающие evidence/documents/CI:
`scripts/build_release_evidence.sh`,
`scripts/check_release_evidence.sh`,
`docs/registry/RELEASE_EVIDENCE_RUNBOOK_RU.md`,
`docs/registry/RELEASE_EVIDENCE_MANIFEST_RU.md`.
- Следующий action: завести публичную задачу
`[release] Produce first release evidence package`.
## 8. Юридический пакет правообладателя pending
- Текущий статус: риск открыт; technical readiness is strong, but rightsholder
evidence package is not yet finalized.
- Влияние: registry submission cannot be treated as legally ready without
ownership, rights and submission documentation.
- Почему не блокирует pilot/readiness stage: pilot/readiness is technical and
operational; legal package is a separate submission track.
- Как риск будет снижаться: prepare rightsholder documents, ownership evidence,
dependency review summary and legal review checklist.
- Уже снижающие evidence/documents/CI: registry docs, dependency statement,
third-party license docs, conservative README positioning, public security
and coverage validation.
- Следующий action: завести публичную задачу
`[legal] Prepare rightsholder evidence package`.
## Следующие публичные задачи
Полный список задач для ручного заведения в GitHub issue tracker:
- `docs/PUBLIC_ISSUES_PLAN_RU.md`.
@@ -1,5 +1,34 @@
# Registry readiness changelog # Registry readiness changelog
## 2026-06-22 residual risk register and public issue plan
Added:
- `docs/RESIDUAL_RISKS_RU.md` with the remaining governance, public process,
disaster recovery, build-runner, release evidence and legal package risks.
- `docs/PUBLIC_ISSUES_PLAN_RU.md` with public GitHub issues to create manually.
- Registry readiness checks for residual risk documents and pending-state
guardrails.
Changed:
- README and project status now link to the residual risk register and public
issue plan.
Runtime impact:
- No runtime/product code changes.
- No API changes.
- No UI changes.
- No business logic changes.
Guardrails:
- Restore test is not claimed as completed.
- Russian build-runner is not claimed as ready.
- First release evidence build is not claimed as completed.
- Legal rightsholder package remains pending.
## 2026-06-22 public GitHub Actions validation passed ## 2026-06-22 public GitHub Actions validation passed
Changed: Changed:
+68
View File
@@ -49,6 +49,8 @@ required_files=(
"docs/PROJECT_STATUS_RU.md" "docs/PROJECT_STATUS_RU.md"
"docs/QUALITY_STATUS_RU.md" "docs/QUALITY_STATUS_RU.md"
"docs/SECURITY_SCANNING_POLICY_RU.md" "docs/SECURITY_SCANNING_POLICY_RU.md"
"docs/RESIDUAL_RISKS_RU.md"
"docs/PUBLIC_ISSUES_PLAN_RU.md"
"scripts/build_release_evidence.sh" "scripts/build_release_evidence.sh"
"scripts/check_release_evidence.sh" "scripts/check_release_evidence.sh"
"scripts/public_secret_pattern_check.py" "scripts/public_secret_pattern_check.py"
@@ -209,6 +211,8 @@ require_grep "Secret scan:[[:space:]]*hardened and passed" "docs/PROJECT_STATUS_
require_grep "Public validation passed.*not.*registry release evidence|not registry release evidence" "docs/PROJECT_STATUS_RU.md" "project_status_public_validation_not_release_evidence" require_grep "Public validation passed.*not.*registry release evidence|not registry release evidence" "docs/PROJECT_STATUS_RU.md" "project_status_public_validation_not_release_evidence"
require_grep "Russian build-runner.*required|requires_russian_build_runner" "docs/PROJECT_STATUS_RU.md" "project_status_russian_runner_required" require_grep "Russian build-runner.*required|requires_russian_build_runner" "docs/PROJECT_STATUS_RU.md" "project_status_russian_runner_required"
require_grep "docs/registry" "docs/PROJECT_STATUS_RU.md" "project_status_registry_docs" require_grep "docs/registry" "docs/PROJECT_STATUS_RU.md" "project_status_registry_docs"
require_grep "RESIDUAL_RISKS_RU\\.md" "docs/PROJECT_STATUS_RU.md" "project_status_residual_risks_link"
require_grep "PUBLIC_ISSUES_PLAN_RU\\.md" "docs/PROJECT_STATUS_RU.md" "project_status_public_issues_plan_link"
require_grep "GITEA_BACKUP_AND_RESTORE_RUNBOOK_RU\\.md|Restore outline|Post-restore checks" "docs/registry/GITEA_BACKUP_AND_RESTORE_RUNBOOK_RU.md" "backup_restore_runbook" require_grep "GITEA_BACKUP_AND_RESTORE_RUNBOOK_RU\\.md|Restore outline|Post-restore checks" "docs/registry/GITEA_BACKUP_AND_RESTORE_RUNBOOK_RU.md" "backup_restore_runbook"
require_grep "awatch-gitea-backup\\.timer" "docs/registry/GITEA_BACKUP_AND_RESTORE_RUNBOOK_RU.md" "backup_timer" require_grep "awatch-gitea-backup\\.timer" "docs/registry/GITEA_BACKUP_AND_RESTORE_RUNBOOK_RU.md" "backup_timer"
require_grep "sha256|SHA256" "docs/registry/GITEA_BACKUP_AND_RESTORE_RUNBOOK_RU.md" "backup_sha256" require_grep "sha256|SHA256" "docs/registry/GITEA_BACKUP_AND_RESTORE_RUNBOOK_RU.md" "backup_sha256"
@@ -233,6 +237,38 @@ require_grep "\"security_workflow_status\"[[:space:]]*:[[:space:]]*\"passed\"" "
require_grep "\"secret_scan_status\"[[:space:]]*:[[:space:]]*\"passed\"" "docs/registry/registry-evidence-manifest.json" "manifest_secret_scan_passed" require_grep "\"secret_scan_status\"[[:space:]]*:[[:space:]]*\"passed\"" "docs/registry/registry-evidence-manifest.json" "manifest_secret_scan_passed"
require_grep "public GitHub Actions validation passed" "docs/registry/REGISTRY_READINESS_CHANGELOG_RU.md" "changelog_public_validation_passed" require_grep "public GitHub Actions validation passed" "docs/registry/REGISTRY_READINESS_CHANGELOG_RU.md" "changelog_public_validation_passed"
require_grep "No business logic changes" "docs/registry/REGISTRY_READINESS_CHANGELOG_RU.md" "changelog_no_business_logic_changes" require_grep "No business logic changes" "docs/registry/REGISTRY_READINESS_CHANGELOG_RU.md" "changelog_no_business_logic_changes"
require_grep "RESIDUAL_RISKS_RU\\.md" "docs/registry/REGISTRY_READINESS_CHANGELOG_RU.md" "changelog_residual_risks"
require_grep "PUBLIC_ISSUES_PLAN_RU\\.md" "docs/registry/REGISTRY_READINESS_CHANGELOG_RU.md" "changelog_public_issues_plan"
require_grep "Restore test is not claimed as completed" "docs/registry/REGISTRY_READINESS_CHANGELOG_RU.md" "changelog_restore_not_completed"
require_grep "Russian build-runner is not claimed as ready" "docs/registry/REGISTRY_READINESS_CHANGELOG_RU.md" "changelog_build_runner_not_ready"
require_grep "First release evidence build is not claimed as completed" "docs/registry/REGISTRY_READINESS_CHANGELOG_RU.md" "changelog_release_evidence_not_completed"
require_grep "Legal rightsholder package remains pending" "docs/registry/REGISTRY_READINESS_CHANGELOG_RU.md" "changelog_legal_package_pending"
require_grep "RESIDUAL_RISKS_RU\\.md" "README.md" "readme_residual_risks_link"
require_grep "PUBLIC_ISSUES_PLAN_RU\\.md" "README.md" "readme_public_issues_plan_link"
require_grep "Один основной разработчик" "docs/RESIDUAL_RISKS_RU.md" "risk_single_developer"
require_grep "Нет публично видимого peer review" "docs/RESIDUAL_RISKS_RU.md" "risk_peer_review"
require_grep "Низкая публичная активность issue tracker" "docs/RESIDUAL_RISKS_RU.md" "risk_issue_tracker_activity"
require_grep "Низкая community adoption" "docs/RESIDUAL_RISKS_RU.md" "risk_community_adoption"
require_grep "Gitea restore test еще не выполнен" "docs/RESIDUAL_RISKS_RU.md" "risk_restore_test_pending"
require_grep "restore_tested.*false" "docs/RESIDUAL_RISKS_RU.md" "risk_restore_tested_false"
require_grep "Российский build-runner пока planned" "docs/RESIDUAL_RISKS_RU.md" "risk_build_runner_planned"
require_grep "awatch-build-01.*planned|planned, not ready" "docs/RESIDUAL_RISKS_RU.md" "risk_awatch_build_01_not_ready"
require_grep "Первый настоящий release evidence build pending" "docs/RESIDUAL_RISKS_RU.md" "risk_release_evidence_pending"
require_grep "Юридический пакет правообладателя pending" "docs/RESIDUAL_RISKS_RU.md" "risk_rightsholder_pending"
require_grep "Почему не блокирует pilot/readiness stage" "docs/RESIDUAL_RISKS_RU.md" "risk_non_blocking_reason"
require_grep "Уже снижающие evidence/documents/CI" "docs/RESIDUAL_RISKS_RU.md" "risk_existing_evidence"
require_grep "\\[registry\\] Perform Gitea backup restore test" "docs/PUBLIC_ISSUES_PLAN_RU.md" "issue_restore_test"
require_grep "\\[registry\\] Prepare temporary Russian build-runner awatch-build-01" "docs/PUBLIC_ISSUES_PLAN_RU.md" "issue_build_runner"
require_grep "\\[release\\] Produce first release evidence package" "docs/PUBLIC_ISSUES_PLAN_RU.md" "issue_release_evidence"
require_grep "\\[legal\\] Prepare rightsholder evidence package" "docs/PUBLIC_ISSUES_PLAN_RU.md" "issue_legal"
require_grep "\\[qa\\] Define coverage threshold policy" "docs/PUBLIC_ISSUES_PLAN_RU.md" "issue_qa_coverage_threshold"
require_grep "\\[security\\] Prepare external security/code review checklist" "docs/PUBLIC_ISSUES_PLAN_RU.md" "issue_security_review"
require_grep "\\[compat\\] Test Russian OS compatibility matrix" "docs/PUBLIC_ISSUES_PLAN_RU.md" "issue_compat_matrix"
require_grep "\\[ops\\] Validate release artifacts storage in RF" "docs/PUBLIC_ISSUES_PLAN_RU.md" "issue_artifact_storage"
require_grep "\\[docs\\] Refresh public demo pack and screenshots" "docs/PUBLIC_ISSUES_PLAN_RU.md" "issue_demo_pack"
require_grep "\\[pilot\\] Prepare Pilot Acceptance Checklist v2" "docs/PUBLIC_ISSUES_PLAN_RU.md" "issue_pilot_acceptance_v2"
require_grep "Do not mark restore test as completed until restore evidence exists" "docs/PUBLIC_ISSUES_PLAN_RU.md" "issues_restore_guardrail"
require_grep "Do not mark .*awatch-build-01.* as ready until provisioning evidence exists" "docs/PUBLIC_ISSUES_PLAN_RU.md" "issues_build_runner_guardrail"
require_grep "public mirror validation only" "SECURITY.md" "security_public_mirror_validation" require_grep "public mirror validation only" "SECURITY.md" "security_public_mirror_validation"
require_grep "public mirror validation only" "CONTRIBUTING.md" "contributing_public_mirror_validation" require_grep "public mirror validation only" "CONTRIBUTING.md" "contributing_public_mirror_validation"
require_grep "public mirror validation only" "ROADMAP.md" "roadmap_public_mirror_validation" require_grep "public mirror validation only" "ROADMAP.md" "roadmap_public_mirror_validation"
@@ -250,6 +286,8 @@ scan_files=(
"$REGISTRY_DIR"/*.json "$REGISTRY_DIR"/*.json
"$ROOT/docs/QUALITY_STATUS_RU.md" "$ROOT/docs/QUALITY_STATUS_RU.md"
"$ROOT/docs/SECURITY_SCANNING_POLICY_RU.md" "$ROOT/docs/SECURITY_SCANNING_POLICY_RU.md"
"$ROOT/docs/RESIDUAL_RISKS_RU.md"
"$ROOT/docs/PUBLIC_ISSUES_PLAN_RU.md"
"$ROOT/SECURITY.md" "$ROOT/SECURITY.md"
"$ROOT/CONTRIBUTING.md" "$ROOT/CONTRIBUTING.md"
"$ROOT/ROADMAP.md" "$ROOT/ROADMAP.md"
@@ -268,6 +306,8 @@ claim_scan_files=(
"$REGISTRY_DIR"/*.json "$REGISTRY_DIR"/*.json
"$ROOT/docs/QUALITY_STATUS_RU.md" "$ROOT/docs/QUALITY_STATUS_RU.md"
"$ROOT/docs/SECURITY_SCANNING_POLICY_RU.md" "$ROOT/docs/SECURITY_SCANNING_POLICY_RU.md"
"$ROOT/docs/RESIDUAL_RISKS_RU.md"
"$ROOT/docs/PUBLIC_ISSUES_PLAN_RU.md"
"$ROOT/SECURITY.md" "$ROOT/SECURITY.md"
"$ROOT/CONTRIBUTING.md" "$ROOT/CONTRIBUTING.md"
"$ROOT/ROADMAP.md" "$ROOT/ROADMAP.md"
@@ -315,6 +355,34 @@ if grep -RInEi "(юридически заверш(е|ё)нн?ая регист
fi fi
rm -f /tmp/registry_forbidden_legal_done.$$ rm -f /tmp/registry_forbidden_legal_done.$$
if grep -RInEi "(restore(_| )?test|restore_tested|тестов(ое|ого)[[:space:]]+восстановлен).{0,120}(completed|done|passed|true|выполнен|готов|подтвержден)" "$ROOT/docs/RESIDUAL_RISKS_RU.md" "$ROOT/docs/PUBLIC_ISSUES_PLAN_RU.md" "$ROOT/docs/PROJECT_STATUS_RU.md" "$REGISTRY_DIR"/*.md "$REGISTRY_DIR"/*.json \
| grep -Eiv "(not |не |false|pending|not completed|not claimed|не выполнен|еще не выполнен|ещё не выполнен|не заяв|не готов|until evidence|restore_tested.*false|если.*выполнен)" \
>/tmp/registry_forbidden_restore_done.$$ 2>/dev/null; then
fail "forbidden_claim_restore_test_completed:$(cat /tmp/registry_forbidden_restore_done.$$)"
fi
rm -f /tmp/registry_forbidden_restore_done.$$
if grep -RInEi "(build-runner|awatch-build-01).{0,120}(ready|production_ready|provisioned|готов|поднят|развернут|запущен)" "$ROOT/docs/RESIDUAL_RISKS_RU.md" "$ROOT/docs/PUBLIC_ISSUES_PLAN_RU.md" "$ROOT/docs/PROJECT_STATUS_RU.md" "$REGISTRY_DIR"/*.md "$REGISTRY_DIR"/*.json \
| grep -Eiv "(not |не |planned|pending|not ready|not claimed|не готов|пока|until provisioning evidence|status != \"production_ready\"|requires|требует|подготовить|prepare)" \
>/tmp/registry_forbidden_build_runner_ready.$$ 2>/dev/null; then
fail "forbidden_claim_build_runner_ready:$(cat /tmp/registry_forbidden_build_runner_ready.$$)"
fi
rm -f /tmp/registry_forbidden_build_runner_ready.$$
if grep -RInEi "(release evidence (build|package)|first release evidence|перв(ый|ого).{0,40}release evidence).{0,120}(completed|done|produced|выполнен|готов|сформирован|создан)" "$ROOT/docs/RESIDUAL_RISKS_RU.md" "$ROOT/docs/PUBLIC_ISSUES_PLAN_RU.md" "$ROOT/docs/PROJECT_STATUS_RU.md" "$REGISTRY_DIR"/*.md "$REGISTRY_DIR"/*.json \
| grep -Eiv "(not |не |pending|not claimed|not yet|еще не|ещё не|не выполнен|не заяв|requires|требует|produce first|first real|scripts exist|automation.*partially done)" \
>/tmp/registry_forbidden_release_evidence_done.$$ 2>/dev/null; then
fail "forbidden_claim_release_evidence_completed:$(cat /tmp/registry_forbidden_release_evidence_done.$$)"
fi
rm -f /tmp/registry_forbidden_release_evidence_done.$$
if grep -RInEi "(community adoption).{0,120}(high|strong|mature|высок|сильн|зрел)" "$ROOT/docs/RESIDUAL_RISKS_RU.md" "$ROOT/docs/PUBLIC_ISSUES_PLAN_RU.md" "$ROOT/docs/PROJECT_STATUS_RU.md" "$ROOT/README.md" \
| grep -Eiv "(low|низк|не |not |fake|do not claim|не заяв)" \
>/tmp/registry_forbidden_fake_community.$$ 2>/dev/null; then
fail "forbidden_claim_fake_community_adoption:$(cat /tmp/registry_forbidden_fake_community.$$)"
fi
rm -f /tmp/registry_forbidden_fake_community.$$
if ((${#failures[@]} > 0)); then if ((${#failures[@]} > 0)); then
printf 'registry_readiness_check=fail\n' printf 'registry_readiness_check=fail\n'
for failure in "${failures[@]}"; do for failure in "${failures[@]}"; do