Skip to content

Commit ec82fd4

Browse files
committed
Freeze Tigrcorn category boundaries and refresh SSOT
1 parent 91bdadf commit ec82fd4

241 files changed

Lines changed: 2424 additions & 946 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/phase9-certification-release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ jobs:
8282
run: |
8383
python -m compileall -q src benchmarks tools
8484
PYTHONPATH=src pytest -q \
85-
tests/test_phase9i_release_assembly_checkpoint.py \
85+
tests/test_release_assembly_checkpoint.py \
8686
tests/test_release_gates.py \
8787
tests/test_certification_environment_freeze.py \
8888
tests/test_aioquic_adapter_preflight.py

.ssot/graphs/registry.graph.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

.ssot/registry.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
# Tigrcorn Certifiable Delivery Plan
2+
3+
Generated: 2026-04-28T10:09:53Z
4+
5+
Sources:
6+
- `.ssot/registry.json`
7+
- `.ssot/graphs/registry.graph.json`
8+
- `.ssot/reports/validation.report.json`
9+
- `docs/review/conformance/claims_registry.json`
10+
- `tools/ssot_sync.py`
11+
- `tigrcorn_certification.release_gates.assert_release_ready(".")`
12+
- `tigrcorn_certification.release_gates.assert_promotion_target_ready(".")`
13+
14+
## Current Registry State
15+
16+
- Features: 275 total, 275 implemented, 0 partial, 0 absent.
17+
- Profiles: 6 active deployment profiles, all passing.
18+
- Tests: 631 registry test rows, all passing.
19+
- Evidence: 648 registry evidence rows, all passed.
20+
- Claims: 318 total; 57 certified and 261 promoted.
21+
- Issues: 11 total, all closed.
22+
- Risks: 4 total, all mitigated.
23+
- Boundaries: 14 total; all 14 are frozen, including the nine category coverage boundaries.
24+
- Release: `rel:0.3.9` is promoted against `bnd:authoritative-0-3-9`.
25+
- SSOT validation: passing on schema `0.2.0`.
26+
- Release gate: passing.
27+
- Promotion target gate: passing.
28+
29+
## Current Gaps
30+
31+
No current SSOT feature, profile, test, evidence, issue, or risk row blocks the authoritative certification boundary.
32+
33+
The previous governance hygiene gap for SSOT entity naming provenance is closed: current feature, claim, test, evidence, issue, risk, profile, boundary, and release IDs/titles/paths/descriptions no longer contain lifecycle-label wording. The retained historical documentation tree still contains archival checkpoint names; those records are not active SSOT entity references or release blockers under the authoritative boundary.
34+
35+
The remaining non-code gap is operational: the Windows venv Python launcher under `.venv\Scripts` returns `Access is denied` when `uv` tries to query or execute it in this workspace. System Python does not have pytest installed, the local `.venv\Lib\site-packages` pytest install is incomplete, and network access is blocked, so pytest cannot be rerun in this environment until the workspace venv is repaired or rebuilt.
36+
37+
Historical docs and checkpoint scripts still contain older references to incomplete broader overlays. Those are not active release blockers under the current authoritative SSOT boundary, but they should be archived or rewritten if the package wants every retained prose artifact to read as current-state truth.
38+
39+
## Completed During This Run
40+
41+
- Re-ran `tools/ssot_sync.py` with the installed SSOT package on `PYTHONPATH`, which regenerated `.ssot/registry.json` on schema `0.2.0`.
42+
- Restored package-managed ADR/SPEC metadata, document reservations, normalized hashes, and package version metadata in the registry.
43+
- Ran SSOT status synchronization through `python -m ssot_registry registry sync-statuses .`; no additional changes were needed after regeneration.
44+
- Regenerated `.ssot/graphs/registry.graph.json` through the SSOT graph export command.
45+
- Revalidated the registry with `python -m ssot_registry validate . --write-report`.
46+
- Verified release and promotion gates with the repo-native certification gate API.
47+
- Froze all category coverage boundaries in the SSOT generator and regenerated `.ssot/registry.json`.
48+
- Renamed retained lifecycle-labeled pytest modules to capability-scoped filenames and updated generator/source references.
49+
- Added an SSOT regression that fails if pytest-backed test/evidence entity IDs, titles, or paths reintroduce lifecycle-label wording.
50+
- Added a broader SSOT regression that fails if current feature, claim, test, evidence, issue, risk, profile, boundary, or release IDs/titles/paths/descriptions reintroduce lifecycle-label wording.
51+
- Removed remaining lifecycle-label wording from active risk register summaries and regenerated the SSOT registry.
52+
- Removed lifecycle-label wording from generated origin, observability, intermediary-proxy, and flow-control conformance/operator artifacts.
53+
- Verified the generator-backed registry state directly because pytest is not executable in the current local environment.
54+
- Rechecked this run's active SSOT closure: no in-scope non-implemented features, no untracked test files, no untracked deployment profile files, no features without claims/tests, and no claims without tests/evidence.
55+
56+
## Delivery Plan
57+
58+
1. Registry authority and schema closure.
59+
- Done: `.ssot/registry.json` is generated by `tools/ssot_sync.py` on schema `0.2.0`.
60+
- Done: package-managed ADR/SPEC rows match installed `ssot-registry` metadata and document hashes.
61+
- Required going forward: run the generator with the installed SSOT package available before validation or release checks.
62+
63+
2. Feature, profile, and boundary closure.
64+
- Done: all 275 tracked feature rows are implemented.
65+
- Done: all 6 deployment profiles are active and passing.
66+
- Done: authoritative boundary `bnd:authoritative-0-3-9` is frozen and has no non-implemented in-bound features.
67+
- Done: all category coverage boundaries are frozen.
68+
69+
3. Public operator, extension, and runtime surface closure.
70+
- Done: current registry covers CLI flags, logging profile keys, WebTransport controls, ASGI3 extensions, HTTP status-code rows, governance graph export, deployment profiles, and explicit out-of-bounds compatibility exclusions.
71+
- Required going forward: every new flag, public API option, extension, operator setting, profile, and exclusion remains a separately tracked feature with linked claim, test, and evidence rows.
72+
73+
4. Claim, test, and evidence closure.
74+
- Done: every feature has linked claims and tests.
75+
- Done: every claim has linked tests and evidence.
76+
- Done: all tests are passing and all evidence rows are passed.
77+
- Done: no open issue or active risk blocks certification.
78+
79+
5. Execution and certification closure.
80+
- Done: SSOT validation, graph export, compileall, style governance, release readiness, and promotion readiness pass.
81+
- Blocked locally: pytest cannot run until the local `.venv` Python executable and pytest installation are repaired or rebuilt.
82+
- Required before publication automation: repair the local Windows venv launcher state with a runnable interpreter matching the installed binary wheels, then run the full pytest suite with `--basetemp .tmp\pytest-full`.
83+
84+
6. Naming provenance cleanup.
85+
- Done: retained lifecycle-labeled pytest module filenames were renamed to capability-scoped filenames.
86+
- Done: generated SSOT entity IDs, titles, paths, and descriptions for features, claims, tests, evidence, issues, risks, profiles, boundaries, and releases contain 0 lifecycle-label references.
87+
- Required going forward: keep archival prose/checkpoint artifacts clearly labeled as historical if they retain old lifecycle terminology.
88+
89+
## Verification
90+
91+
- `python -m ssot_registry validate . --write-report`: passed.
92+
- `python -m ssot_registry graph export . --format json --output .ssot\graphs\registry.graph.json`: passed.
93+
- `python -m ssot_registry registry sync-statuses .`: passed, no changes needed.
94+
- `python -m ssot_registry registry sync-statuses . --dry-run`: passed, changed 0.
95+
- `assert_release_ready(".")` and `assert_promotion_target_ready(".")`: passed.
96+
- Direct registry audit: 275 implemented features, 6 active profiles, 631 passing tests, 648 passed evidence rows, 318 promoted/certified claims, 11 closed issues, 4 mitigated risks, 14 frozen boundaries, 0 untracked test/profile files, 0 lifecycle-label entity references.
97+
- Generator equality check: `.ssot/registry.json` matches `_converge_automated_statuses(build_registry())`.
98+
- `python -m compileall -q src pkgs tools tests`: passed.
99+
- Key imports: `tigrcorn`, `tigrcorn_config`, `tigrcorn_certification.release_gates`, `tools.ssot_sync`, and `tools.style_governance` all import successfully with repo-local source roots.
100+
- Style governance audit: passed with 0 blocking line-length findings and 0 malformed docstring-section findings.
101+
- `uv lock --check`: passed.
102+
- `uv tree --only-group dev`: shows pytest, ssot-registry, and certification dependencies in the dev group.
103+
- `uv run pytest --version`: blocked because `.venv\Scripts\python.exe` returns `Access is denied`.
104+
- `python -m pytest --version`: blocked because system Python has no pytest installation.
105+
- `python -m pytest` with `.venv\Lib\site-packages` on `PYTHONPATH`: blocked because `_pytest` is incomplete in the local venv.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"docstrings":{"documented_public_definitions":27,"malformed_section_count":0,"malformed_sections":[],"policy":{"recognized_sections":["Args:","Returns:","Raises:","Yields:"],"sections_required_when_they_add_signal":true},"public_definitions":2855,"sectioned_docstrings":8},"line_lengths":{"advisory_count":7786,"blocking_count":0,"blocking_findings":[],"policy":{"code_target":79,"comment_docstring_target":72,"practical_exceptions_allowed":true,"project_formatter_ceiling":120},"scanned_files":729,"scanned_lines":71767},"passed":true}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"failures":[],"passed":true,"registry_path":".ssot/registry.json","summary":{"counts":{"adrs":47,"boundaries":14,"claims":217,"evidence":393,"features":195,"issues":10,"profiles":6,"releases":1,"risks":4,"specs":55,"tests":453},"profile_status":{"draft":0,"failing":0,"passing":6}},"warnings":[]}
1+
{"failures":[],"passed":true,"registry_path":".ssot/registry.json","summary":{"counts":{"adrs":51,"boundaries":14,"claims":318,"evidence":648,"features":275,"issues":11,"profiles":6,"releases":1,"risks":4,"specs":60,"tests":631},"profile_status":{"draft":0,"failing":0,"passing":6}},"warnings":[]}

LEGACY_UNITTEST_INVENTORY.json

Lines changed: 54 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -38,34 +38,34 @@
3838
"tests/test_intermediary_proxy_corpus.py",
3939
"tests/test_lifespan.py",
4040
"tests/test_observability_workers.py",
41-
"tests/test_phase1_surface_parity_checkpoint.py",
42-
"tests/test_phase2_cli_config_surface.py",
43-
"tests/test_phase2_entity_semantics_checkpoint.py",
44-
"tests/test_phase2_static_delivery_surface.py",
45-
"tests/test_phase3_h1_websocket_operator_surface.py",
46-
"tests/test_phase3_policy_surface.py",
47-
"tests/test_phase3_strict_rfc_surface.py",
48-
"tests/test_phase3_transport_core_strictness_checkpoint.py",
49-
"tests/test_phase4_advanced_protocol_delivery_checkpoint.py",
50-
"tests/test_phase4_http2_operator_surface.py",
51-
"tests/test_phase4_operator_surface.py",
52-
"tests/test_phase4_quic_surface.py",
53-
"tests/test_phase5_flow_control_bundle.py",
54-
"tests/test_phase5_intermediary_proxy_corpus.py",
55-
"tests/test_phase5_origin_contract.py",
56-
"tests/test_phase5_tls_operator_material_surface.py",
57-
"tests/test_phase6_observability_surface.py",
58-
"tests/test_phase6_performance_harness.py",
59-
"tests/test_phase6_public_lifecycle_and_embedder_contract.py",
60-
"tests/test_phase7_flag_surface_truth_reconciliation.py",
61-
"tests/test_phase7_negative_certification.py",
62-
"tests/test_phase8_promotion_targets.py",
63-
"tests/test_phase9d1_connect_relay_local_negatives.py",
64-
"tests/test_phase9f1_tls_cipher_policy_closure.py",
41+
"tests/test_surface_parity_checkpoint.py",
42+
"tests/test_cli_config_surface.py",
43+
"tests/test_entity_semantics_checkpoint.py",
44+
"tests/test_static_delivery_surface.py",
45+
"tests/test_h1_websocket_operator_surface.py",
46+
"tests/test_policy_surface.py",
47+
"tests/test_strict_rfc_surface.py",
48+
"tests/test_transport_core_strictness_checkpoint.py",
49+
"tests/test_advanced_protocol_delivery_checkpoint.py",
50+
"tests/test_http2_operator_surface.py",
51+
"tests/test_operator_surface.py",
52+
"tests/test_quic_surface.py",
53+
"tests/test_flow_control_bundle.py",
54+
"tests/test_minimum_certified_intermediary_proxy_corpus.py",
55+
"tests/test_origin_contract.py",
56+
"tests/test_tls_operator_material_surface.py",
57+
"tests/test_observability_surface.py",
58+
"tests/test_performance_harness.py",
59+
"tests/test_public_lifecycle_and_embedder_contract.py",
60+
"tests/test_flag_surface_truth_reconciliation.py",
61+
"tests/test_negative_certification.py",
62+
"tests/test_promotion_targets.py",
63+
"tests/test_connect_relay_local_negatives.py",
64+
"tests/test_tls_cipher_policy_closure.py",
6565
"tests/test_phase9f2_logging_exporter_closure.py",
66-
"tests/test_phase9f3_concurrency_keepalive_closure.py",
67-
"tests/test_phase9g_strict_performance_closure.py",
68-
"tests/test_phase9h_promotion_evaluator_hardening.py",
66+
"tests/test_concurrency_keepalive_closure.py",
67+
"tests/test_strict_performance_closure.py",
68+
"tests/test_promotion_evaluator_hardening.py",
6969
"tests/test_pipe_and_inproc.py",
7070
"tests/test_prebuffered_reader_and_custom.py",
7171
"tests/test_profile_resolution.py",
@@ -156,34 +156,34 @@
156156
"tests/test_intermediary_proxy_corpus.py",
157157
"tests/test_lifespan.py",
158158
"tests/test_observability_workers.py",
159-
"tests/test_phase1_surface_parity_checkpoint.py",
160-
"tests/test_phase2_cli_config_surface.py",
161-
"tests/test_phase2_entity_semantics_checkpoint.py",
162-
"tests/test_phase2_static_delivery_surface.py",
163-
"tests/test_phase3_h1_websocket_operator_surface.py",
164-
"tests/test_phase3_policy_surface.py",
165-
"tests/test_phase3_strict_rfc_surface.py",
166-
"tests/test_phase3_transport_core_strictness_checkpoint.py",
167-
"tests/test_phase4_advanced_protocol_delivery_checkpoint.py",
168-
"tests/test_phase4_http2_operator_surface.py",
169-
"tests/test_phase4_operator_surface.py",
170-
"tests/test_phase4_quic_surface.py",
171-
"tests/test_phase5_flow_control_bundle.py",
172-
"tests/test_phase5_intermediary_proxy_corpus.py",
173-
"tests/test_phase5_origin_contract.py",
174-
"tests/test_phase5_tls_operator_material_surface.py",
175-
"tests/test_phase6_observability_surface.py",
176-
"tests/test_phase6_performance_harness.py",
177-
"tests/test_phase6_public_lifecycle_and_embedder_contract.py",
178-
"tests/test_phase7_flag_surface_truth_reconciliation.py",
179-
"tests/test_phase7_negative_certification.py",
180-
"tests/test_phase8_promotion_targets.py",
181-
"tests/test_phase9d1_connect_relay_local_negatives.py",
182-
"tests/test_phase9f1_tls_cipher_policy_closure.py",
159+
"tests/test_surface_parity_checkpoint.py",
160+
"tests/test_cli_config_surface.py",
161+
"tests/test_entity_semantics_checkpoint.py",
162+
"tests/test_static_delivery_surface.py",
163+
"tests/test_h1_websocket_operator_surface.py",
164+
"tests/test_policy_surface.py",
165+
"tests/test_strict_rfc_surface.py",
166+
"tests/test_transport_core_strictness_checkpoint.py",
167+
"tests/test_advanced_protocol_delivery_checkpoint.py",
168+
"tests/test_http2_operator_surface.py",
169+
"tests/test_operator_surface.py",
170+
"tests/test_quic_surface.py",
171+
"tests/test_flow_control_bundle.py",
172+
"tests/test_minimum_certified_intermediary_proxy_corpus.py",
173+
"tests/test_origin_contract.py",
174+
"tests/test_tls_operator_material_surface.py",
175+
"tests/test_observability_surface.py",
176+
"tests/test_performance_harness.py",
177+
"tests/test_public_lifecycle_and_embedder_contract.py",
178+
"tests/test_flag_surface_truth_reconciliation.py",
179+
"tests/test_negative_certification.py",
180+
"tests/test_promotion_targets.py",
181+
"tests/test_connect_relay_local_negatives.py",
182+
"tests/test_tls_cipher_policy_closure.py",
183183
"tests/test_phase9f2_logging_exporter_closure.py",
184-
"tests/test_phase9f3_concurrency_keepalive_closure.py",
185-
"tests/test_phase9g_strict_performance_closure.py",
186-
"tests/test_phase9h_promotion_evaluator_hardening.py",
184+
"tests/test_concurrency_keepalive_closure.py",
185+
"tests/test_strict_performance_closure.py",
186+
"tests/test_promotion_evaluator_hardening.py",
187187
"tests/test_pipe_and_inproc.py",
188188
"tests/test_prebuffered_reader_and_custom.py",
189189
"tests/test_profile_resolution.py",

docs/conformance/metrics_schema.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Metrics Schema
22

3-
This file is generated from the package-owned Phase 6 observability metadata.
3+
This file is generated from the package-owned observability metadata.
44

55
## Transport counters
66

docs/conformance/negative_bundles/connect_relay.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"docs/review/conformance/releases/0.3.9/release-0.3.9/tigrcorn-connect-relay-local-negative-artifacts"
1010
],
1111
"tests": [
12-
"tests/test_phase9d1_connect_relay_local_negatives.py::ConnectRelayPhase9D1LocalNegativeTests::test_http2_connect_policy_deny_and_allowlist_rejection_end_stream"
12+
"tests/test_connect_relay_local_negatives.py::ConnectRelayPhase9D1LocalNegativeTests::test_http2_connect_policy_deny_and_allowlist_rejection_end_stream"
1313
]
1414
},
1515
{
@@ -20,7 +20,7 @@
2020
"docs/review/conformance/releases/0.3.9/release-0.3.9/tigrcorn-connect-relay-local-negative-artifacts"
2121
],
2222
"tests": [
23-
"tests/test_phase9d1_connect_relay_local_negatives.py::ConnectRelayPhase9D1LocalNegativeTests::test_http3_connect_policy_deny_and_allowlist_rejection_end_stream"
23+
"tests/test_connect_relay_local_negatives.py::ConnectRelayPhase9D1LocalNegativeTests::test_http3_connect_policy_deny_and_allowlist_rejection_end_stream"
2424
]
2525
}
2626
],

docs/conformance/negative_bundles/early_data.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"id": "required-early-data-downgrade",
88
"preserved_artifacts": [],
99
"tests": [
10-
"tests/test_phase4_quic_surface.py::Phase4QuicSurfaceTests::test_http3_handler_require_policy_triggers_too_early_on_resumed_downgrade"
10+
"tests/test_quic_surface.py::Phase4QuicSurfaceTests::test_http3_handler_require_policy_triggers_too_early_on_resumed_downgrade"
1111
]
1212
}
1313
],

0 commit comments

Comments
 (0)