diff --git a/docs/ALICE_FRIDAY_SEPARATION_PLAN.md b/docs/ALICE_FRIDAY_SEPARATION_PLAN.md index 47c4d8a..344e46f 100644 --- a/docs/ALICE_FRIDAY_SEPARATION_PLAN.md +++ b/docs/ALICE_FRIDAY_SEPARATION_PLAN.md @@ -1,6 +1,9 @@ # A.L.I.C.E.–Friday Separation Plan -> [!IMPORTANT]\n> **OWNER-RATIFIED FLAGSHIP CAPABILITY RULE:** A.L.I.C.E. is the flagship and mandatory default capability upstream. Through at least completion of A.L.I.C.E. Phase 15, Friday must receive every transferable A.L.I.C.E. capability. Friday may gain a new capability only after A.L.I.C.E. has implemented, evaluated, approved, and gained it, unless MK Rayan records an explicit exact-scope owner override.\n>\n> This owner-ratified rule supersedes conflicting capability-order, team-independence, or Phase 6.5 repository-creation language in this document. +> [!IMPORTANT] +> **OWNER-RATIFIED FLAGSHIP CAPABILITY RULE:** A.L.I.C.E. is the flagship and mandatory default capability upstream. Through at least completion of A.L.I.C.E. Phase 15, Friday must receive every transferable A.L.I.C.E. capability. Friday may gain a new capability only after A.L.I.C.E. has implemented, evaluated, approved, and gained it, unless MK Rayan records an explicit exact-scope owner override. +> +> This owner-ratified rule supersedes conflicting capability-order, team-independence, or Phase 6.5 repository-creation language in this document. **Version:** 2.0.0 @@ -30,7 +33,7 @@ The kernel may begin as an independently versioned package boundary while extrac - **Phase 5.0:** establish host-neutral kernel identity, Experience Ledger, storage/evaluation contracts, Mission Graph contracts, Result Capsules, traceback, attention/workspace projections, speaker context, guest grants, and release-attestation schemas. - **Phase 6:** implement the Cognitive Workspace and control-plane UI against those contracts. - **Phase 6.5:** Independent Product Readiness Gate. Prove independent builds, versioned kernel consumption, host isolation, release attestations, production-signing gates, migration, rollback, and parity tracking. -- **Phase 7 onward:** release and evolve products independently while sharing versioned contracts and evaluation suites. +- **Phase 7 onward:** release and evolve products independently within the A.L.I.C.E.-first capability-precedent and dual-approval rules while sharing versioned contracts and evaluation suites. ## 3. Kernel ownership @@ -74,7 +77,7 @@ Friday shares A.L.I.C.E.'s generalizable destination capabilities. A.L.I.C.E. ma ## 8. Production governance -Friday development teams may research, design, prototype, implement, test, and propose changes independently. Production promotion requires both: +Before formal handover, Friday work is limited to repository foundation, maintenance, and downstream productization of capabilities already eligible through A.L.I.C.E. After formal handover, a qualified Friday team may independently manage maintenance, product experience, packaging, support, and downstream implementation or testing of capabilities already eligible through A.L.I.C.E. A capability that A.L.I.C.E. has not yet gained remains proposal-only and must be routed upstream; Friday may not implement, activate, or test it as a Friday capability unless Rayan records an explicit exact-scope override. Production promotion requires both: 1. an A.L.I.C.E. audit attestation bound to the exact commit, artifacts, policies, migrations, models, evaluations, and rollback manifest; and 2. MK Rayan's explicit production approval bound to the same candidate. diff --git a/docs/FRIDAY_ARCHITECTURE.md b/docs/FRIDAY_ARCHITECTURE.md index 54bbca9..6a8a396 100644 --- a/docs/FRIDAY_ARCHITECTURE.md +++ b/docs/FRIDAY_ARCHITECTURE.md @@ -1,6 +1,9 @@ # Friday Technical Architecture -> [!IMPORTANT]\n> **OWNER-RATIFIED FLAGSHIP CAPABILITY RULE:** A.L.I.C.E. is the flagship and mandatory default capability upstream. Through at least completion of A.L.I.C.E. Phase 15, Friday must receive every transferable A.L.I.C.E. capability. Friday may gain a new capability only after A.L.I.C.E. has implemented, evaluated, approved, and gained it, unless MK Rayan records an explicit exact-scope owner override.\n>\n> This owner-ratified rule supersedes conflicting capability-order, team-independence, or Phase 6.5 repository-creation language in this document. +> [!IMPORTANT] +> **OWNER-RATIFIED FLAGSHIP CAPABILITY RULE:** A.L.I.C.E. is the flagship and mandatory default capability upstream. Through at least completion of A.L.I.C.E. Phase 15, Friday must receive every transferable A.L.I.C.E. capability. Friday may gain a new capability only after A.L.I.C.E. has implemented, evaluated, approved, and gained it, unless MK Rayan records an explicit exact-scope owner override. +> +> This owner-ratified rule supersedes conflicting capability-order, team-independence, or Phase 6.5 repository-creation language in this document. ## 1. System identity diff --git a/docs/FRIDAY_PRODUCTION_GOVERNANCE.md b/docs/FRIDAY_PRODUCTION_GOVERNANCE.md index 8a8473c..e6dde5d 100644 --- a/docs/FRIDAY_PRODUCTION_GOVERNANCE.md +++ b/docs/FRIDAY_PRODUCTION_GOVERNANCE.md @@ -1,14 +1,17 @@ # Friday Production Governance -> [!IMPORTANT]\n> **OWNER-RATIFIED FLAGSHIP CAPABILITY RULE:** A.L.I.C.E. is the flagship and mandatory default capability upstream. Through at least completion of A.L.I.C.E. Phase 15, Friday must receive every transferable A.L.I.C.E. capability. Friday may gain a new capability only after A.L.I.C.E. has implemented, evaluated, approved, and gained it, unless MK Rayan records an explicit exact-scope owner override.\n>\n> This owner-ratified rule supersedes conflicting capability-order, team-independence, or Phase 6.5 repository-creation language in this document. +> [!IMPORTANT] +> **OWNER-RATIFIED FLAGSHIP CAPABILITY RULE:** A.L.I.C.E. is the flagship and mandatory default capability upstream. Through at least completion of A.L.I.C.E. Phase 15, Friday must receive every transferable A.L.I.C.E. capability. Friday may gain a new capability only after A.L.I.C.E. has implemented, evaluated, approved, and gained it, unless MK Rayan records an explicit exact-scope owner override. +> +> This owner-ratified rule supersedes conflicting capability-order, team-independence, or Phase 6.5 repository-creation language in this document. -**Version:** 1.0.0 +**Version:** 1.1.0 **Status:** Owner-ratified production-promotion standard -## 1. Independent development +## 1. Eligibility-scoped development -A qualified Friday team may research, design, prototype, implement, test, open pull requests, build internal artifacts, and propose product or kernel changes without prior production approval. Candidate work remains in development, laboratory, sandbox, simulation, or explicitly non-production channels. +Before formal handover, Friday work is limited to repository foundation, maintenance, and downstream productization of capabilities already eligible through A.L.I.C.E. After formal handover, a qualified Friday team may independently manage maintenance, product-experience research, packaging, support, and implementation or testing of already eligible capabilities. A capability A.L.I.C.E. has not gained remains proposal-only: Friday may research the problem and prepare an upstream proposal, but may not implement, activate, or test it as a Friday capability unless Rayan records an explicit exact-scope override. Candidate work remains in development, laboratory, sandbox, simulation, or explicitly non-production channels until all applicable gates pass. ## 2. Dual production approval diff --git a/docs/FRIDAY_PRODUCT_VISION.md b/docs/FRIDAY_PRODUCT_VISION.md index 2a0b760..eb4e4d5 100644 --- a/docs/FRIDAY_PRODUCT_VISION.md +++ b/docs/FRIDAY_PRODUCT_VISION.md @@ -1,6 +1,9 @@ # Consumer Personal-AI Product Vision -> [!IMPORTANT]\n> **OWNER-RATIFIED FLAGSHIP CAPABILITY RULE:** A.L.I.C.E. is the flagship and mandatory default capability upstream. Through at least completion of A.L.I.C.E. Phase 15, Friday must receive every transferable A.L.I.C.E. capability. Friday may gain a new capability only after A.L.I.C.E. has implemented, evaluated, approved, and gained it, unless MK Rayan records an explicit exact-scope owner override.\n>\n> This owner-ratified rule supersedes conflicting capability-order, team-independence, or Phase 6.5 repository-creation language in this document. +> [!IMPORTANT] +> **OWNER-RATIFIED FLAGSHIP CAPABILITY RULE:** A.L.I.C.E. is the flagship and mandatory default capability upstream. Through at least completion of A.L.I.C.E. Phase 15, Friday must receive every transferable A.L.I.C.E. capability. Friday may gain a new capability only after A.L.I.C.E. has implemented, evaluated, approved, and gained it, unless MK Rayan records an explicit exact-scope owner override. +> +> This owner-ratified rule supersedes conflicting capability-order, team-independence, or Phase 6.5 repository-creation language in this document. **Status:** Ratified product direction @@ -190,4 +193,4 @@ The interface follows a no-empty-slot invariant: it renders only useful task pro ## 9. Independent repository and dual approval -Friday product source remains in an independent repository from its first implementation commit. A future Friday team is free to invent, research, prototype, test, and propose product-specific work, but may not promote new production behavior without both an exact-artifact A.L.I.C.E. audit attestation and Rayan's explicit approval. Emergency rollback and disablement remain available without introducing new behavior. +Friday product source remains in an independent repository from its first implementation commit. After formal handover, a future Friday team may independently manage maintenance, product experience, packaging, support, and downstream implementation or testing of capabilities already eligible through A.L.I.C.E. A capability A.L.I.C.E. lacks must be proposed upstream and remains ineligible for Friday implementation, activation, or testing unless Rayan records an explicit exact-scope override. Production promotion still requires both an exact-artifact A.L.I.C.E. audit attestation and Rayan's explicit approval. Emergency rollback and disablement remain available without introducing new behavior. diff --git a/docs/PRODUCT_FAMILY_CAPABILITY_PARITY.md b/docs/PRODUCT_FAMILY_CAPABILITY_PARITY.md index 659ce4c..452fa68 100644 --- a/docs/PRODUCT_FAMILY_CAPABILITY_PARITY.md +++ b/docs/PRODUCT_FAMILY_CAPABILITY_PARITY.md @@ -1,6 +1,9 @@ # Product-Family Capability Parity Standard -> [!IMPORTANT]\n> **OWNER-RATIFIED FLAGSHIP CAPABILITY RULE:** A.L.I.C.E. is the flagship and mandatory default capability upstream. Through at least completion of A.L.I.C.E. Phase 15, Friday must receive every transferable A.L.I.C.E. capability. Friday may gain a new capability only after A.L.I.C.E. has implemented, evaluated, approved, and gained it, unless MK Rayan records an explicit exact-scope owner override.\n>\n> This owner-ratified rule supersedes conflicting capability-order, team-independence, or Phase 6.5 repository-creation language in this document. +> [!IMPORTANT] +> **OWNER-RATIFIED FLAGSHIP CAPABILITY RULE:** A.L.I.C.E. is the flagship and mandatory default capability upstream. Through at least completion of A.L.I.C.E. Phase 15, Friday must receive every transferable A.L.I.C.E. capability. Friday may gain a new capability only after A.L.I.C.E. has implemented, evaluated, approved, and gained it, unless MK Rayan records an explicit exact-scope owner override. +> +> This owner-ratified rule supersedes conflicting capability-order, team-independence, or Phase 6.5 repository-creation language in this document. **Status:** Ratified architecture standard @@ -79,4 +82,4 @@ A.L.I.C.E. may evaluate frontier variants first. Friday productization planning ## 7. Production-governance parity -A dedicated Friday team may diverge in research and product experience, but it may not silently alter shared semantics or unilaterally ship production behavior. Exact-artifact dual approval and emergency rollback boundaries are part of the product-family contract. +A dedicated Friday team may independently manage maintenance, product experience, packaging, support, and productization of capabilities already eligible through A.L.I.C.E. A Friday-originated capability that A.L.I.C.E. lacks must remain an upstream proposal until A.L.I.C.E. has implemented, evaluated, approved, and gained it, unless Rayan records an explicit exact-scope override. The team may not silently alter shared semantics or unilaterally ship production behavior. Exact-artifact dual approval and emergency rollback boundaries are part of the product-family contract. diff --git a/docs/SHARED_KERNEL_EXTRACTION_STANDARD.md b/docs/SHARED_KERNEL_EXTRACTION_STANDARD.md index f9d7d9a..34cf71d 100644 --- a/docs/SHARED_KERNEL_EXTRACTION_STANDARD.md +++ b/docs/SHARED_KERNEL_EXTRACTION_STANDARD.md @@ -1,6 +1,9 @@ # Shared Kernel Extraction Standard -> [!IMPORTANT]\n> **OWNER-RATIFIED FLAGSHIP CAPABILITY RULE:** A.L.I.C.E. is the flagship and mandatory default capability upstream. Through at least completion of A.L.I.C.E. Phase 15, Friday must receive every transferable A.L.I.C.E. capability. Friday may gain a new capability only after A.L.I.C.E. has implemented, evaluated, approved, and gained it, unless MK Rayan records an explicit exact-scope owner override.\n>\n> This owner-ratified rule supersedes conflicting capability-order, team-independence, or Phase 6.5 repository-creation language in this document. +> [!IMPORTANT] +> **OWNER-RATIFIED FLAGSHIP CAPABILITY RULE:** A.L.I.C.E. is the flagship and mandatory default capability upstream. Through at least completion of A.L.I.C.E. Phase 15, Friday must receive every transferable A.L.I.C.E. capability. Friday may gain a new capability only after A.L.I.C.E. has implemented, evaluated, approved, and gained it, unless MK Rayan records an explicit exact-scope owner override. +> +> This owner-ratified rule supersedes conflicting capability-order, team-independence, or Phase 6.5 repository-creation language in this document. ## 1. Purpose diff --git a/policies/friday_production_governance.json b/policies/friday_production_governance.json index 29235a0..8f6e4b6 100644 --- a/policies/friday_production_governance.json +++ b/policies/friday_production_governance.json @@ -1,13 +1,20 @@ { "schema_version": 1, + "policy_version": "1.1.0", "policy_id": "friday.production_governance.v1", "authority": "docs/FRIDAY_PRODUCTION_GOVERNANCE.md", "capability_ceiling": false, "candidate_work": { - "independent_research_allowed": true, - "independent_design_allowed": true, - "independent_implementation_allowed": true, - "independent_testing_allowed": true, + "maintenance_allowed": true, + "product_experience_research_allowed": true, + "upstream_proposal_research_allowed": true, + "eligible_capability_productization_allowed": true, + "independent_research_allowed": false, + "independent_design_allowed": false, + "independent_implementation_allowed": false, + "independent_testing_allowed": false, + "new_capability_implementation_as_friday_capability_allowed": false, + "new_capability_testing_as_friday_capability_allowed": false, "unilateral_production_promotion_allowed": false }, "production_promotion": { @@ -79,6 +86,9 @@ "friday_originated_capability_routes_upstream": true, "alice_must_gain_capability_before_friday_eligibility": true, "rayan_owner_override_allowed": true, - "owner_override_schema": "policies/rayan_owner_override_schema.json" + "owner_override_schema": "policies/rayan_owner_override_schema.json", + "legacy_candidate_work_fields_are_deny_by_default": true, + "post_handover_upstream_proposal_research_allowed": true, + "uneligible_capability_implementation_or_testing_allowed": false } } diff --git a/tests/governance/test_alice_friday_flagship_governance.py b/tests/governance/test_alice_friday_flagship_governance.py index 3f66c47..f902073 100644 --- a/tests/governance/test_alice_friday_flagship_governance.py +++ b/tests/governance/test_alice_friday_flagship_governance.py @@ -6,11 +6,51 @@ ROOT = Path(__file__).resolve().parents[2] HIGHLIGHT = "OWNER-RATIFIED FLAGSHIP CAPABILITY RULE" +HIGHLIGHT_DOCUMENTS = [ + "README.md", + "docs/ALICE_FRIDAY_FLAGSHIP_GOVERNANCE.md", + "docs/ALICE_FRIDAY_SEPARATION_PLAN.md", + "docs/FRIDAY_ARCHITECTURE.md", + "docs/FRIDAY_COGNITIVE_WORKSPACE_AND_PRODUCTION_GOVERNANCE_PLAN.md", + "docs/FRIDAY_PRODUCTION_GOVERNANCE.md", + "docs/FRIDAY_PRODUCT_VISION.md", + "docs/FRIDAY_ROADMAP.md", + "docs/PRODUCT_FAMILY_CAPABILITY_PARITY.md", + "docs/ROADMAP.md", + "docs/SHARED_KERNEL_EXTRACTION_STANDARD.md", + "docs/decisions/ADR-011-friday-independent-repository-dual-approval.md", +] + +GOVERNANCE_DOCUMENTS = [ + "docs/ALICE_FRIDAY_SEPARATION_PLAN.md", + "docs/FRIDAY_COGNITIVE_WORKSPACE_AND_PRODUCTION_GOVERNANCE_PLAN.md", + "docs/FRIDAY_PRODUCTION_GOVERNANCE.md", + "docs/FRIDAY_PRODUCT_VISION.md", + "docs/PRODUCT_FAMILY_CAPABILITY_PARITY.md", + "docs/decisions/ADR-011-friday-independent-repository-dual-approval.md", +] + +FORBIDDEN_LEGACY_PHRASES = [ + "Friday development teams may research, design, prototype, implement, test, and propose changes independently.", + "A future Friday team may independently research, design, implement, test, and propose features.", + "The team does not need prior permission to think, research, prototype, or prepare candidates.", + "The team may go its own way in research and implementation.", + "A dedicated Friday team may diverge in research and product experience", + "a Friday team may develop independently but cannot unilaterally ship", + "A future Friday team is free to invent, research, prototype, test, and propose product-specific work", + "Friday's production team is free to invent, investigate, implement, and argue for its own product direction.", + "release and evolve products independently while sharing versioned contracts", +] + def load(relative: str) -> dict: return json.loads((ROOT / relative).read_text(encoding="utf-8")) +def existing_documents(paths: list[str]) -> list[Path]: + return [ROOT / relative for relative in paths if (ROOT / relative).is_file()] + + def test_alice_is_flagship_and_default_upstream() -> None: policy = load("policies/alice_friday_flagship_governance.json") assert policy["flagship_product"] == "alice" @@ -103,12 +143,25 @@ def test_pre_phase_65_state_is_foundation_only() -> None: assert "production_runtime_activation" in gate["prohibited_before_gate"] -def test_production_policy_contains_effective_owner_amendment() -> None: +def test_production_policy_is_unambiguous_and_deny_by_default() -> None: production = load("policies/friday_production_governance.json") + candidate = production["candidate_work"] + assert production["policy_version"] == "1.1.0" + assert candidate["maintenance_allowed"] is True + assert candidate["product_experience_research_allowed"] is True + assert candidate["upstream_proposal_research_allowed"] is True + assert candidate["eligible_capability_productization_allowed"] is True + assert candidate["independent_research_allowed"] is False + assert candidate["independent_design_allowed"] is False + assert candidate["independent_implementation_allowed"] is False + assert candidate["independent_testing_allowed"] is False + assert candidate["new_capability_implementation_as_friday_capability_allowed"] is False + assert candidate["new_capability_testing_as_friday_capability_allowed"] is False + assert candidate["unilateral_production_promotion_allowed"] is False amendment = production["owner_ratified_flagship_amendment"] assert amendment["supersedes_candidate_work_for_new_capabilities"] is True - assert amendment["pre_handover_new_capability_implementation_allowed"] is False - assert amendment["pre_handover_new_capability_testing_allowed"] is False + assert amendment["legacy_candidate_work_fields_are_deny_by_default"] is True + assert amendment["uneligible_capability_implementation_or_testing_allowed"] is False assert amendment["alice_must_gain_capability_before_friday_eligibility"] is True assert amendment["rayan_owner_override_allowed"] is True @@ -121,13 +174,22 @@ def test_owner_override_schema_is_exact_scope_bound() -> None: assert "risk_disposition" in schema["required"] -def test_highlighted_governance_documents() -> None: - required = [ - "docs/ALICE_FRIDAY_FLAGSHIP_GOVERNANCE.md", - "docs/FRIDAY_PRODUCT_VISION.md", - "docs/FRIDAY_ARCHITECTURE.md", - "docs/PRODUCT_FAMILY_CAPABILITY_PARITY.md", - ] - for relative in required: - text = (ROOT / relative).read_text(encoding="utf-8") - assert HIGHLIGHT in text +def test_governance_callouts_render_as_github_admonitions() -> None: + documents = existing_documents(HIGHLIGHT_DOCUMENTS) + assert documents + for path in documents: + text = path.read_text(encoding="utf-8") + lines = text.splitlines() + assert HIGHLIGHT in text, path.relative_to(ROOT) + assert "\\n>" not in "\n".join(lines[:12]), path.relative_to(ROOT) + marker_index = lines.index("> [!IMPORTANT]") + assert lines[marker_index + 1].startswith("> **" + HIGHLIGHT) + + +def test_conflicting_friday_first_language_is_removed() -> None: + documents = existing_documents(GOVERNANCE_DOCUMENTS) + assert documents + for path in documents: + text = path.read_text(encoding="utf-8") + for phrase in FORBIDDEN_LEGACY_PHRASES: + assert phrase not in text, f"{phrase!r} remains in {path.relative_to(ROOT)}"