diff --git a/README.md b/README.md index 5b014e2..792c569 100755 --- a/README.md +++ b/README.md @@ -239,6 +239,10 @@ collectors. [RU_BUILD_RUNNER_READINESS_RU.md](docs/registry/RU_BUILD_RUNNER_READINESS_RU.md). - Текущий status freeze проекта: [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. ### Public engineering transparency @@ -252,6 +256,10 @@ collectors. - Primary registry contour remains Gitea plus the Russian build-runner. - Quality status: [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) - [Сведения для подачи в реестр](REGISTER_RU_SOFTWARE.md) @@ -262,6 +270,8 @@ collectors. - [Registry deployment model](docs/REGISTRY_DEPLOYMENT_MODEL_RU.md) - [Registry commercial positioning](docs/REGISTRY_COMMERCIAL_POSITIONING_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) - [Журнал изменений](CHANGELOG_RU.md) - [Установка для эксперта](INSTALL_FOR_EXPERT_RU.md) diff --git a/docs/PROJECT_STATUS_RU.md b/docs/PROJECT_STATUS_RU.md index e5be490..76691c9 100644 --- a/docs/PROJECT_STATUS_RU.md +++ b/docs/PROJECT_STATUS_RU.md @@ -28,6 +28,10 @@ backup, registry-readiness документации, плана российск - Public validation passed status does not constitute registry release evidence. - Registry release evidence still requires the Russian build-runner contour. - 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`. - Добавлены `SECURITY.md`, `CONTRIBUTING.md`, `ROADMAP.md`, issue templates и pull request template. +- Зафиксирован residual risk register: + `docs/RESIDUAL_RISKS_RU.md`. +- Подготовлен план публичных issues для ручного заведения: + `docs/PUBLIC_ISSUES_PLAN_RU.md`. ## 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_ARTIFACTS_STORAGE_RU.md` - `docs/QUALITY_STATUS_RU.md` +- `docs/RESIDUAL_RISKS_RU.md` +- `docs/PUBLIC_ISSUES_PLAN_RU.md` diff --git a/docs/PUBLIC_ISSUES_PLAN_RU.md b/docs/PUBLIC_ISSUES_PLAN_RU.md new file mode 100644 index 0000000..5556b1d --- /dev/null +++ b/docs/PUBLIC_ISSUES_PLAN_RU.md @@ -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. + diff --git a/docs/RESIDUAL_RISKS_RU.md b/docs/RESIDUAL_RISKS_RU.md new file mode 100644 index 0000000..4f24a18 --- /dev/null +++ b/docs/RESIDUAL_RISKS_RU.md @@ -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`. + diff --git a/docs/registry/REGISTRY_READINESS_CHANGELOG_RU.md b/docs/registry/REGISTRY_READINESS_CHANGELOG_RU.md index e6455eb..ed5b755 100644 --- a/docs/registry/REGISTRY_READINESS_CHANGELOG_RU.md +++ b/docs/registry/REGISTRY_READINESS_CHANGELOG_RU.md @@ -1,5 +1,34 @@ # 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 Changed: diff --git a/scripts/registry_readiness_check.sh b/scripts/registry_readiness_check.sh index 0ec0f60..34bb27c 100644 --- a/scripts/registry_readiness_check.sh +++ b/scripts/registry_readiness_check.sh @@ -49,6 +49,8 @@ required_files=( "docs/PROJECT_STATUS_RU.md" "docs/QUALITY_STATUS_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/check_release_evidence.sh" "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 "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 "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 "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" @@ -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 "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 "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" "CONTRIBUTING.md" "contributing_public_mirror_validation" require_grep "public mirror validation only" "ROADMAP.md" "roadmap_public_mirror_validation" @@ -250,6 +286,8 @@ scan_files=( "$REGISTRY_DIR"/*.json "$ROOT/docs/QUALITY_STATUS_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/CONTRIBUTING.md" "$ROOT/ROADMAP.md" @@ -268,6 +306,8 @@ claim_scan_files=( "$REGISTRY_DIR"/*.json "$ROOT/docs/QUALITY_STATUS_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/CONTRIBUTING.md" "$ROOT/ROADMAP.md" @@ -315,6 +355,34 @@ if grep -RInEi "(юридически заверш(е|ё)нн?ая регист fi 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 printf 'registry_readiness_check=fail\n' for failure in "${failures[@]}"; do