From 0ffcb542bad4935f49cdb2e46591e1478c4991a6 Mon Sep 17 00:00:00 2001 From: docushell-admin Date: Wed, 17 Jun 2026 09:09:09 +0530 Subject: [PATCH 1/2] Guard execution status closeout posture Signed-off-by: docushell-admin --- .github/scripts/test_ci_workflow.py | 1 + .github/scripts/test_execution_status.py | 54 ++++++++++++++++++++++++ .github/workflows/ci.yml | 2 + docs/execution-status.md | 4 +- 4 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 .github/scripts/test_execution_status.py diff --git a/.github/scripts/test_ci_workflow.py b/.github/scripts/test_ci_workflow.py index 2676196..689608e 100644 --- a/.github/scripts/test_ci_workflow.py +++ b/.github/scripts/test_ci_workflow.py @@ -48,6 +48,7 @@ def test_ci_workflow_guard_is_run_by_ci(self) -> None: self.assertIn("python3 .github/scripts/test_ci_workflow.py", text) self.assertIn("python3 .github/scripts/test_milestone_b_internal_checks.py", text) + self.assertIn("python3 .github/scripts/test_execution_status.py", text) if __name__ == "__main__": diff --git a/.github/scripts/test_execution_status.py b/.github/scripts/test_execution_status.py new file mode 100644 index 0000000..37ee2d5 --- /dev/null +++ b/.github/scripts/test_execution_status.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python3 +# +# Copyright 2026 The Ethos maintainers +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +from __future__ import annotations + +import unittest +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[2] +EXECUTION_STATUS = ROOT / "docs/execution-status.md" + + +def status_text() -> str: + return EXECUTION_STATUS.read_text(encoding="utf-8") + + +class ExecutionStatusTests(unittest.TestCase): + def test_status_is_scoped_to_internal_closeout(self) -> None: + text = status_text() + + self.assertIn("Status: Pre-alpha / internal Milestone B closeout.", text) + self.assertNotIn("Status: Pre-alpha / Milestone B entry.", text) + + def test_internal_check_command_is_documented(self) -> None: + text = status_text() + + self.assertIn("make milestone-b-internal-checks", text) + self.assertIn("CI has a static guard for that target's command wiring", text) + + def test_public_posture_boundary_remains_explicit(self) -> None: + text = status_text() + + self.assertIn('Public language stays at "pre-alpha / Milestone B internal continuation"', text) + self.assertIn("claim audit approves specific wording", text) + self.assertIn("product-differentiating path remains verification and grounding first", text) + + +if __name__ == "__main__": + unittest.main() diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 385f2f6..c4add6c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,6 +58,8 @@ jobs: run: python3 .github/scripts/test_ci_workflow.py - name: Milestone B internal check target tests run: python3 .github/scripts/test_milestone_b_internal_checks.py + - name: execution status tests + run: python3 .github/scripts/test_execution_status.py - name: Gate Zero harness tests run: python3 benchmarks/harness/test_run_gate_zero.py - name: same-platform double-parse byte-diff diff --git a/docs/execution-status.md b/docs/execution-status.md index 5e3e063..eafaa7b 100644 --- a/docs/execution-status.md +++ b/docs/execution-status.md @@ -1,8 +1,8 @@ # Ethos Execution Status -Date: 2026-06-16 +Date: 2026-06-17 Owner: product / decider -Status: Pre-alpha / Milestone B entry. Week 0 governance is accepted, WS-ENGINE Phase 1 has a real narrow PDFium path, WS-VERIFY-ALPHA has real deterministic evidence checks over native Ethos JSON and pinned OpenDataLoader output, WS-HARNESS has fail-closed readiness scaffolding, the Gate Zero corpus/hardware manifest and direct competitor lock are frozen/signed, ADR-0005 records an accepted `PROCEED` decision for internal Milestone B continuation, ADR-0006 closes package identifier/trademark validation, ADR-0007 locks the product direction, and the public-source preflight is green for a source-only pre-alpha GitHub push. Public benchmark reports, releases, packages, production positioning, and all performance/quality/footprint claims remain blocked. The controlled-run handoff remains `docs/gate-zero-evidence-runbook.md`; the accepted decision record is `docs/decisions/ADR-0005-gate-zero-decision.md`. +Status: Pre-alpha / internal Milestone B closeout. Week 0 governance is accepted, WS-ENGINE Phase 1 has a real narrow PDFium path, WS-VERIFY-ALPHA has real deterministic evidence checks over native Ethos JSON and pinned OpenDataLoader output, WS-HARNESS has fail-closed readiness scaffolding, the Gate Zero corpus/hardware manifest and direct competitor lock are frozen/signed, ADR-0005 records an accepted `PROCEED` decision for internal Milestone B continuation, ADR-0006 closes package identifier/trademark validation, ADR-0007 locks the product direction, and the public-source preflight is green for a source-only pre-alpha GitHub push. Public benchmark reports, releases, packages, production positioning, and all performance/quality/footprint claims remain blocked. The controlled-run handoff remains `docs/gate-zero-evidence-runbook.md`; the accepted decision record is `docs/decisions/ADR-0005-gate-zero-decision.md`. ## Current Reality From 62d1104e98c26094d419ae7ddc289652c13b52e3 Mon Sep 17 00:00:00 2001 From: docushell-admin Date: Wed, 17 Jun 2026 09:09:31 +0530 Subject: [PATCH 2/2] Include status guard in Milestone B checks Signed-off-by: docushell-admin --- .github/scripts/test_milestone_b_internal_checks.py | 1 + Makefile | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/scripts/test_milestone_b_internal_checks.py b/.github/scripts/test_milestone_b_internal_checks.py index eaab149..3cd0d4c 100644 --- a/.github/scripts/test_milestone_b_internal_checks.py +++ b/.github/scripts/test_milestone_b_internal_checks.py @@ -60,6 +60,7 @@ def test_target_composes_current_internal_gates(self) -> None: required = [ "$(PYTHON) fixtures/validate_fixtures.py", "$(PYTHON) schemas/test_font_policy_validation.py", + "$(PYTHON) .github/scripts/test_execution_status.py", "$(MAKE) verify-alpha PYTHON=$(PYTHON)", "$(MAKE) layout-evaluator-alpha PYTHON=$(PYTHON)", "$(MAKE) python-surface-test PYTHON=$(PYTHON)", diff --git a/Makefile b/Makefile index c8d109e..f8dbc2f 100644 --- a/Makefile +++ b/Makefile @@ -51,6 +51,7 @@ python-surface-test: milestone-b-internal-checks: $(PYTHON) fixtures/validate_fixtures.py $(PYTHON) schemas/test_font_policy_validation.py + $(PYTHON) .github/scripts/test_execution_status.py $(MAKE) verify-alpha PYTHON=$(PYTHON) $(MAKE) layout-evaluator-alpha PYTHON=$(PYTHON) $(MAKE) python-surface-test PYTHON=$(PYTHON)