From 784a3085292a18a0cf1237ca4f5728e878bb7829 Mon Sep 17 00:00:00 2001 From: "MONTREAL.AI" Date: Thu, 4 Jun 2026 20:52:29 -0400 Subject: [PATCH 1/2] Add GoalOS product proof infrastructure --- .github/workflows/goalos-product-site-ci.yml | 49 +++ data/goalos_products.json | 166 ++++++++++ docs/commerce/paid_product_security.md | 35 ++ docs/commerce/product_ladder.md | 19 ++ .../squarespace_stripe_delivery_guide.md | 44 +++ pyproject.toml | 2 +- scripts/build_goalos_product_pages.py | 301 ++++++++++++++++++ scripts/check_site_links.py | 92 ++++++ scripts/guard_no_paid_product_files.py | 64 ++++ scripts/repo_claim_boundary_check.py | 80 +++++ scripts/validate_goalos_products.py | 102 ++++++ site/ai-efficiency-score/index.html | 38 +++ site/assets/goalos-products.css | 1 + site/assets/goalos-products.js | 32 ++ site/docs/index.html | 37 +++ site/goalos/index.html | 53 +++ site/index.html | 16 +- site/products/ai-efficiency-sprint/index.html | 43 +++ .../index.html | 43 +++ site/products/index.html | 119 +++++++ .../index.html | 43 +++ .../sme-ai-adoption-sprint/index.html | 43 +++ .../index.html | 43 +++ .../index.html | 43 +++ .../sovereign-nation-state/index.html | 43 +++ site/products/team-pack/index.html | 43 +++ site/products/workshop/index.html | 43 +++ tests/test_goalos_claim_boundaries.py | 11 + tests/test_goalos_product_catalog.py | 13 + tests/test_goalos_product_pages.py | 17 + tests/test_no_paid_product_files.py | 11 + 31 files changed, 1687 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/goalos-product-site-ci.yml create mode 100644 data/goalos_products.json create mode 100644 docs/commerce/paid_product_security.md create mode 100644 docs/commerce/product_ladder.md create mode 100644 docs/commerce/squarespace_stripe_delivery_guide.md create mode 100755 scripts/build_goalos_product_pages.py create mode 100755 scripts/check_site_links.py create mode 100755 scripts/guard_no_paid_product_files.py create mode 100755 scripts/repo_claim_boundary_check.py create mode 100755 scripts/validate_goalos_products.py create mode 100644 site/ai-efficiency-score/index.html create mode 100644 site/assets/goalos-products.css create mode 100644 site/assets/goalos-products.js create mode 100644 site/docs/index.html create mode 100644 site/goalos/index.html create mode 100644 site/products/ai-efficiency-sprint/index.html create mode 100644 site/products/enterprise-proof-room-agent-control-plane/index.html create mode 100644 site/products/index.html create mode 100644 site/products/nation-state-ai-leverage-proof-infrastructure/index.html create mode 100644 site/products/sme-ai-adoption-sprint/index.html create mode 100644 site/products/sovereign-country-ai-operating-system/index.html create mode 100644 site/products/sovereign-empire-ai-operating-system/index.html create mode 100644 site/products/sovereign-nation-state/index.html create mode 100644 site/products/team-pack/index.html create mode 100644 site/products/workshop/index.html create mode 100644 tests/test_goalos_claim_boundaries.py create mode 100644 tests/test_goalos_product_catalog.py create mode 100644 tests/test_goalos_product_pages.py create mode 100644 tests/test_no_paid_product_files.py diff --git a/.github/workflows/goalos-product-site-ci.yml b/.github/workflows/goalos-product-site-ci.yml new file mode 100644 index 00000000..5a059f85 --- /dev/null +++ b/.github/workflows/goalos-product-site-ci.yml @@ -0,0 +1,49 @@ +name: GoalOS Product Site CI + +on: + push: + branches: [main] + pull_request: + branches: [main] + workflow_dispatch: + +jobs: + validate-goalos-product-site: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Python 3.11 + uses: actions/setup-python@v5 + with: + python-version: '3.11' + + - name: Install test dependencies + run: python -m pip install -e '.[dev]' + + - name: Build GoalOS product pages + run: python scripts/build_goalos_product_pages.py + + - name: Validate GoalOS products + run: python scripts/validate_goalos_products.py + + - name: Guard paid product files + run: python scripts/guard_no_paid_product_files.py + + - name: Check site links + run: python scripts/check_site_links.py + + - name: Check claim boundaries + run: python scripts/repo_claim_boundary_check.py + + - name: Run pytest if tests exist + run: | + if [ -d tests ]; then + python -m pytest -q + else + echo "No tests directory present." + fi + + - name: Fail if generated pages are stale + run: git diff --exit-code -- site/ data/goalos_products.json diff --git a/data/goalos_products.json b/data/goalos_products.json new file mode 100644 index 00000000..82919e5b --- /dev/null +++ b/data/goalos_products.json @@ -0,0 +1,166 @@ +[ + { + "id": "ai-efficiency-sprint", + "name_en": "GoalOS AI Efficiency Sprint", + "name_fr": "GoalOS AI Efficiency Sprint", + "price_public": "$49", + "audience_en": "Individuals", + "audience_fr": "Individus", + "promise_en": "Turn one repeated AI task into a cheaper, reusable, provable work system in under one hour.", + "promise_fr": "Transformer une tâche IA répétée en système de travail moins coûteux, réutilisable et prouvable en moins d’une heure.", + "delivery_en": "Paid bilingual digital download delivered through Squarespace after Stripe checkout.", + "delivery_fr": "Téléchargement numérique bilingue payant livré par Squarespace après paiement Stripe.", + "cta_type": "buy", + "cta_label_en": "Get the Sprint — $49", + "cta_label_fr": "Obtenir le Sprint — 49 $", + "cta_url_placeholder": "SQUARESPACE_PRODUCT_1_URL", + "public_page_slug": "ai-efficiency-sprint", + "claim_boundary_level": "standard" + }, + { + "id": "team-pack", + "name_en": "GoalOS AI Efficiency Sprint — Team Pack", + "name_fr": "GoalOS AI Efficiency Sprint — Team Pack", + "price_public": "$199", + "audience_en": "Teams of up to 10 people", + "audience_fr": "Équipes jusqu’à 10 personnes", + "promise_en": "Turn one repeated team AI task into a reusable, checked, and provable work system in one workshop.", + "promise_fr": "Transformer une tâche IA répétée d’équipe en système de travail réutilisable, vérifié et prouvable en un atelier.", + "delivery_en": "Paid bilingual digital team workshop-in-a-box delivered through Squarespace after Stripe checkout.", + "delivery_fr": "Atelier d’équipe bilingue en boîte livré par Squarespace après paiement Stripe.", + "cta_type": "buy", + "cta_label_en": "Get the Team Pack — $199", + "cta_label_fr": "Obtenir le Team Pack — 199 $", + "cta_url_placeholder": "SQUARESPACE_PRODUCT_2_URL", + "public_page_slug": "team-pack", + "claim_boundary_level": "standard" + }, + { + "id": "workshop", + "name_en": "GoalOS AI Efficiency Workshop", + "name_fr": "Atelier GoalOS AI Efficiency", + "price_public": "$2,500", + "audience_en": "Organizations", + "audience_fr": "Organisations", + "promise_en": "Turn one repeated organizational AI task into a reusable, checked, and provable work system in one live workshop.", + "promise_fr": "Transformer une tâche IA répétée de l’organisation en système de travail réutilisable, vérifié et prouvable en un atelier en direct.", + "delivery_en": "Live bilingual workshop with scheduling after purchase or inquiry.", + "delivery_fr": "Atelier bilingue en direct avec planification après achat ou demande.", + "cta_type": "inquiry", + "cta_label_en": "Request Workshop", + "cta_label_fr": "Demander l’atelier", + "cta_url_placeholder": "SQUARESPACE_PRODUCT_3_OR_INQUIRY_URL", + "public_page_slug": "workshop", + "claim_boundary_level": "service" + }, + { + "id": "sme-ai-adoption-sprint", + "name_en": "GoalOS SME AI Adoption Sprint", + "name_fr": "GoalOS SME AI Adoption Sprint", + "price_public": "From $15,000", + "audience_en": "Small and medium-sized businesses", + "audience_fr": "PME", + "promise_en": "Turn one repeated SME business task into a reusable, checked, and provable AI work system — then leave with a 90-day adoption roadmap.", + "promise_fr": "Transformer une tâche d’affaires répétée de PME en système de travail IA réutilisable, vérifié et prouvable — puis repartir avec une feuille de route d’adoption de 90 jours.", + "delivery_en": "Premium bilingual SME adoption engagement after discovery and scoping.", + "delivery_fr": "Engagement bilingue premium d’adoption IA pour PME après découverte et cadrage.", + "cta_type": "inquiry", + "cta_label_en": "Request SME Discovery", + "cta_label_fr": "Demander une découverte PME", + "cta_url_placeholder": "SME_INQUIRY_URL", + "public_page_slug": "sme-ai-adoption-sprint", + "claim_boundary_level": "service" + }, + { + "id": "enterprise-proof-room-agent-control-plane", + "name_en": "GoalOS Proof Room / Agent Control Plane", + "name_fr": "GoalOS Proof Room / Agent Control Plane", + "price_public": "Enterprise", + "audience_en": "Enterprises and regulated institutions", + "audience_fr": "Entreprises et institutions réglementées", + "promise_en": "Govern AI-agent adoption by turning agent work into reusable, checked, auditable, and rollbackable institutional capability.", + "promise_fr": "Gouverner l’adoption des agents IA en transformant leur travail en capacité institutionnelle réutilisable, vérifiée, auditable et rollbackable.", + "delivery_en": "Enterprise discovery, Proof Room pilot, Agent Control Plane architecture, and governed rollout design.", + "delivery_fr": "Découverte entreprise, pilote Proof Room, architecture Agent Control Plane et design de déploiement gouverné.", + "cta_type": "inquiry", + "cta_label_en": "Book Enterprise Discovery", + "cta_label_fr": "Planifier une découverte entreprise", + "cta_url_placeholder": "ENTERPRISE_INQUIRY_URL", + "public_page_slug": "enterprise-proof-room-agent-control-plane", + "claim_boundary_level": "enterprise" + }, + { + "id": "nation-state-ai-leverage-proof-infrastructure", + "name_en": "GoalOS Nation-State AI Leverage & Proof Infrastructure", + "name_fr": "GoalOS Nation-State AI Leverage & Proof Infrastructure", + "price_public": "Nation-State", + "audience_en": "Governments and public institutions", + "audience_fr": "Gouvernements et institutions publiques", + "promise_en": "Turn national AI access into trusted, efficient, reusable, and provable capability.", + "promise_fr": "Transformer l’accès national à l’IA en capacité fiable, efficace, réutilisable et prouvable.", + "delivery_en": "Nation-state discovery, Proof Room portfolio design, public-sector adoption architecture, and evidence-governance roadmap.", + "delivery_fr": "Découverte Nation-State, design de portefeuille Proof Room, architecture d’adoption secteur public et feuille de route gouvernance-preuve.", + "cta_type": "inquiry", + "cta_label_en": "Request Nation-State Briefing", + "cta_label_fr": "Demander un briefing Nation-State", + "cta_url_placeholder": "NATION_STATE_INQUIRY_URL", + "public_page_slug": "nation-state-ai-leverage-proof-infrastructure", + "claim_boundary_level": "sovereign" + }, + { + "id": "sovereign-nation-state", + "name_en": "GoalOS Sovereign Nation-State AI Leverage & Proof Infrastructure", + "name_fr": "GoalOS Sovereign Nation-State AI Leverage & Proof Infrastructure", + "price_public": "Sovereign", + "audience_en": "Sovereign public institutions", + "audience_fr": "Institutions publiques souveraines", + "promise_en": "Turn national AI access into trusted, efficient, reusable, and provable sovereign capability.", + "promise_fr": "Transformer l’accès national à l’IA en capacité souveraine fiable, efficace, réutilisable et prouvable.", + "delivery_en": "Sovereign AI discovery, national control-plane architecture, public-sector Proof Rooms, Evidence Dockets, Selection Gates, rollout, rollback, and public trust design.", + "delivery_fr": "Découverte IA souveraine, architecture nationale de contrôle, Proof Rooms secteur public, Evidence Dockets, Selection Gates, déploiement, rollback et design de confiance publique.", + "cta_type": "inquiry", + "cta_label_en": "Request Sovereign AI Briefing", + "cta_label_fr": "Demander un briefing IA souveraine", + "cta_url_placeholder": "SOVEREIGN_NATION_STATE_INQUIRY_URL", + "public_page_slug": "sovereign-nation-state", + "claim_boundary_level": "sovereign" + }, + { + "id": "sovereign-country-ai-operating-system", + "name_en": "GoalOS Sovereign Country AI Operating System", + "name_fr": "GoalOS Sovereign Country AI Operating System", + "price_public": "Sovereign Country", + "audience_en": "Countries and national AI strategies", + "audience_fr": "Pays et stratégies nationales d’IA", + "promise_en": "Turn national AI access into a sovereign country operating system for trusted, efficient, reusable, and provable AI capability.", + "promise_fr": "Transformer l’accès national à l’IA en système d’exploitation souverain pour une capacité IA fiable, efficace, réutilisable et prouvable.", + "delivery_en": "Country-scale AI operating-system architecture for sovereign AI adoption, proof, governance, rollout, rollback, and public trust.", + "delivery_fr": "Architecture de système d’exploitation IA à l’échelle d’un pays pour adoption IA souveraine, preuve, gouvernance, déploiement, rollback et confiance publique.", + "cta_type": "inquiry", + "cta_label_en": "Request Sovereign Country AI Briefing", + "cta_label_fr": "Demander un briefing IA pays souverain", + "cta_url_placeholder": "SOVEREIGN_COUNTRY_INQUIRY_URL", + "public_page_slug": "sovereign-country-ai-operating-system", + "claim_boundary_level": "sovereign" + }, + { + "id": "sovereign-empire-ai-operating-system", + "name_en": "GoalOS Sovereign Empire AI Operating System", + "name_fr": "GoalOS Sovereign Empire AI Operating System", + "price_public": "Sovereign Empire", + "audience_en": "Multi-country, multi-jurisdiction, allied sovereign networks", + "audience_fr": "Réseaux souverains alliés, multi-pays et multi-juridictions", + "promise_en": "Turn multi-country AI access into trusted, efficient, reusable, and provable sovereign capability.", + "promise_fr": "Transformer l’accès IA multi-pays en capacité souveraine fiable, efficace, réutilisable et prouvable.", + "delivery_en": "Multi-country, consent-based, proof-governed AI operating-system architecture for allied sovereign institutions.", + "delivery_fr": "Architecture de système d’exploitation IA multi-pays, fondée sur le consentement et gouvernée par la preuve pour institutions souveraines alliées.", + "cta_type": "inquiry", + "cta_label_en": "Request Sovereign Empire AI Briefing", + "cta_label_fr": "Demander un briefing IA Empire souverain", + "cta_url_placeholder": "SOVEREIGN_EMPIRE_INQUIRY_URL", + "public_page_slug": "sovereign-empire-ai-operating-system", + "claim_boundary_level": "sovereign_empire", + "special_boundary_en": "Sovereign Empire means a voluntary, consent-based, proof-governed capability network across sovereign institutions and allied jurisdictions. It does not mean territorial control, domination, coercion, colonial authority, or sovereignty transfer.", + "special_boundary_fr": "Empire souverain signifie un réseau volontaire, fondé sur le consentement et gouverné par la preuve entre institutions souveraines et juridictions alliées. Cela ne signifie pas contrôle territorial, domination, coercition, autorité coloniale ni transfert de souveraineté." + } +] diff --git a/docs/commerce/paid_product_security.md b/docs/commerce/paid_product_security.md new file mode 100644 index 00000000..d0d42ef3 --- /dev/null +++ b/docs/commerce/paid_product_security.md @@ -0,0 +1,35 @@ +# Paid Product Security + +GoalOS paid buyer/client packages must not be stored in public GitHub paths. + +## Prohibited public delivery channels + +- No paid ZIP files in GitHub. +- No public Google Drive links for buyer/client packages. +- No GitHub Releases for buyer/client packages. +- No paid packages in `site/`, `docs/`, `data/`, `.github/`, or the repository root. + +The only ZIP exception documented for this repository is the public AEP-001 standards release archive under `releases/AEP-001/`. + +## Recommended delivery channel + +Use Squarespace gated digital-product delivery for paid downloads. Stripe processes payment through Squarespace, and Squarespace sends the buyer the gated file access. + +## License and update note + +Each paid package should include a short license note explaining who may use the package, whether team sharing is allowed, and how updates are delivered. Official buyers should receive updates, corrected materials, and support through the email relationship established at purchase. + +## Piracy reality + +No digital download system can fully prevent sharing. The operating goal is to make official purchase better than piracy by giving buyers: + +- the clean current version, +- update access, +- implementation notes, +- support contact, +- proof-standard references, +- and a trusted payment and receipt trail. + +## Public claim boundary + +Public GoalOS materials should state that the initiative is independent unless a formal agreement is separately executed, and that public pages do not provide legal, financial, procurement, medical, compliance, national-security, or investment advice. diff --git a/docs/commerce/product_ladder.md b/docs/commerce/product_ladder.md new file mode 100644 index 00000000..a3abef64 --- /dev/null +++ b/docs/commerce/product_ladder.md @@ -0,0 +1,19 @@ +# GoalOS Product Ladder + +GitHub hosts the public proof and product education layer. Squarespace + Stripe host paid sales, checkout, and delivery. + +| # | Product | Price | Audience | Promise | Delivery model | Public CTA | Private delivery note | +|---|---|---:|---|---|---|---|---| +| 1 | GoalOS AI Efficiency Sprint | $49 | Individuals | Turn one repeated AI task into a cheaper, reusable, provable work system in under one hour. | Paid bilingual digital download through Squarespace after Stripe checkout. | Get the Sprint — $49 | Upload the buyer ZIP only to the Squarespace digital product. | +| 2 | GoalOS AI Efficiency Sprint — Team Pack | $199 | Teams of up to 10 people | Turn one repeated team AI task into a reusable, checked, and provable work system in one workshop. | Paid bilingual workshop-in-a-box through Squarespace after Stripe checkout. | Get the Team Pack — $199 | Upload the buyer ZIP only to the Squarespace digital product. | +| 3 | GoalOS AI Efficiency Workshop | $2,500 | Organizations | Turn one repeated organizational AI task into a reusable, checked, and provable work system in one live workshop. | Live bilingual workshop with scheduling after purchase or inquiry. | Request Workshop | Deliver scheduling and workshop materials privately after intake. | +| 4 | GoalOS SME AI Adoption Sprint | From $15,000 | Small and medium-sized businesses | Turn one repeated SME business task into a reusable, checked, and provable AI work system, then leave with a 90-day adoption roadmap. | Premium bilingual SME engagement after discovery and scoping. | Request SME Discovery | Use inquiry/discovery before private proposal and delivery. | +| 5 | GoalOS Proof Room / Agent Control Plane | Enterprise | Enterprises and regulated institutions | Govern AI-agent adoption by turning agent work into reusable, checked, auditable, and rollbackable institutional capability. | Enterprise discovery, Proof Room pilot, Agent Control Plane architecture, and governed rollout design. | Book Enterprise Discovery | Use private enterprise discovery and scoped statements of work. | +| 6 | GoalOS Nation-State AI Leverage & Proof Infrastructure | Nation-State | Governments and public institutions | Turn national AI access into trusted, efficient, reusable, and provable capability. | Nation-state discovery, Proof Room portfolio design, public-sector adoption architecture, and evidence-governance roadmap. | Request Nation-State Briefing | Use private briefing and discovery; do not imply endorsement. | +| 7 | GoalOS Sovereign Nation-State AI Leverage & Proof Infrastructure | Sovereign | Sovereign public institutions | Turn national AI access into trusted, efficient, reusable, and provable sovereign capability. | Sovereign AI discovery, national control-plane architecture, public-sector Proof Rooms, Evidence Dockets, Selection Gates, rollout, rollback, and public trust design. | Request Sovereign AI Briefing | Use private sovereign discovery and formal scoping. | +| 8 | GoalOS Sovereign Country AI Operating System | Sovereign Country | Countries and national AI strategies | Turn national AI access into a sovereign country operating system for trusted, efficient, reusable, and provable AI capability. | Country-scale AI operating-system architecture for proof, governance, rollout, rollback, and public trust. | Request Sovereign Country AI Briefing | Use inquiry and private briefing only. | +| 9 | GoalOS Sovereign Empire AI Operating System | Sovereign Empire | Multi-country, multi-jurisdiction, allied sovereign networks | Turn multi-country AI access into trusted, efficient, reusable, and provable sovereign capability. | Multi-country, consent-based, proof-governed AI operating-system architecture for allied sovereign institutions. | Request Sovereign Empire AI Briefing | Use inquiry and private briefing only; include the non-domination boundary. | + +## High-ticket CTA rule + +Products 3–9 use inquiry/discovery CTAs. Public copy must not present these products as direct buy-now downloads. diff --git a/docs/commerce/squarespace_stripe_delivery_guide.md b/docs/commerce/squarespace_stripe_delivery_guide.md new file mode 100644 index 00000000..ac14f089 --- /dev/null +++ b/docs/commerce/squarespace_stripe_delivery_guide.md @@ -0,0 +1,44 @@ +# Squarespace + Stripe Delivery Guide for GoalOS + +This repository is the public proof, standards, documentation, SEO, and credibility layer for GoalOS. The existing QUEBEC.AI Squarespace shop connected to Stripe can remain the private sales and delivery layer. + +## Roles + +- **GitHub:** public GoalOS proof pages, AEP-001 standards material, product education, validation scripts, and public documentation. +- **Squarespace:** product pages, cart, checkout, service inquiry pages, and gated digital download delivery. +- **Stripe:** payment processing through Squarespace checkout. +- **Email:** buyer relationship, receipts, onboarding, updates, and support. + +## Delivery model by product + +1. **GoalOS AI Efficiency Sprint — $49:** direct bilingual digital download through a Squarespace digital product after Stripe checkout. +2. **GoalOS AI Efficiency Sprint — Team Pack — $199:** direct bilingual digital team workshop-in-a-box through a Squarespace digital product after Stripe checkout. +3. **GoalOS AI Efficiency Workshop — $2,500:** Squarespace service/product page plus scheduling after purchase or inquiry. +4. **GoalOS SME AI Adoption Sprint — From $15,000:** inquiry/discovery page; private scoping before any paid engagement. +5. **GoalOS Proof Room / Agent Control Plane — Enterprise:** inquiry/discovery page. +6. **GoalOS Nation-State AI Leverage & Proof Infrastructure — Nation-State:** inquiry/discovery page. +7. **GoalOS Sovereign Nation-State AI Leverage & Proof Infrastructure — Sovereign:** inquiry/discovery page. +8. **GoalOS Sovereign Country AI Operating System — Sovereign Country:** inquiry/discovery page. +9. **GoalOS Sovereign Empire AI Operating System — Sovereign Empire:** inquiry/discovery page with the non-domination boundary visible. + +## Operating rules + +- Upload paid ZIP files only to Squarespace digital product delivery. +- Do not upload paid ZIP files to GitHub, GitHub Releases, public docs, public Google Drive links, or public site folders. +- Keep checkout, payment, refunds, receipts, and file access inside Squarespace + Stripe. +- Keep buyer updates and relationship management through email. +- Use the GitHub pages as public education pages that link to Squarespace checkout or inquiry placeholders. +- Replace placeholder CTA URLs in Squarespace/site configuration only when the live commerce pages are ready. + +## Checkout testing + +Before launch, run one of these tests: + +- Use a Squarespace discount code to complete a no-cost checkout for Products 1–2. +- Run a small test purchase and confirm the Stripe receipt, Squarespace delivery email, and gated download link. +- Confirm the buyer receives the correct bilingual package and no public GitHub URL is exposed. +- Confirm Product 4–9 pages collect inquiry/discovery requests instead of implying direct checkout. + +## Boundary + +GoalOS public pages are product education and proof-infrastructure pages. They are not legal advice, investment advice, procurement advice, compliance certification, medical advice, national-security advice, or a guarantee of ROI, certification, deployment, sovereign outcome, or public-sector adoption. diff --git a/pyproject.toml b/pyproject.toml index 38e27b13..9585086c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,7 +36,7 @@ include = ["proof_gradient*"] [tool.pytest.ini_options] testpaths = ["tests"] addopts = "-q" -python_files = ["test_proof_gradient_*.py"] +python_files = ["test_*.py"] [tool.ruff] line-length = 160 diff --git a/scripts/build_goalos_product_pages.py b/scripts/build_goalos_product_pages.py new file mode 100755 index 00000000..23f50df1 --- /dev/null +++ b/scripts/build_goalos_product_pages.py @@ -0,0 +1,301 @@ +#!/usr/bin/env python3 +"""Build the static public GoalOS product pages from data/goalos_products.json.""" +from __future__ import annotations + +import html +import json +from pathlib import Path +from typing import Iterable + +ROOT = Path(__file__).resolve().parents[1] +CATALOG = ROOT / "data" / "goalos_products.json" +SITE = ROOT / "site" +ASSETS = SITE / "assets" +MARKER = "" +AEP_LINK_FROM_ROOT = "../standards/AEP-001/" +BOUNDARY_EN = ( + "Independent initiative by QUEBEC.AI / MONTREAL.AI. Not affiliated with, sponsored by, or endorsed by the Government of Canada unless a formal agreement is separately executed. " + "This page does not provide legal, financial, procurement, medical, compliance, national-security, or investment advice. " + "No ROI, certification, production deployment, AGI, ASI, sovereign outcome, or public-sector adoption result is guaranteed." +) +BOUNDARY_FR = ( + "Initiative indépendante de QUEBEC.AI / MONTREAL.AI. Non affiliée, commanditée ni approuvée par le gouvernement du Canada sauf accord formel séparé. " + "Cette page ne fournit pas de conseils juridiques, financiers, d’approvisionnement, médicaux, de conformité, de sécurité nationale ni d’investissement. " + "Aucun ROI, certification, déploiement en production, AGI, ASI, résultat souverain ni résultat d’adoption du secteur public n’est garanti." +) + +CSS = r""" +:root{color-scheme:dark;--bg:#050814;--panel:rgba(12,18,36,.88);--panel2:rgba(255,255,255,.055);--line:rgba(255,255,255,.15);--text:#f8f7ef;--muted:#b8c2dd;--gold:#f4c76b;--blue:#81b7ff;--green:#8df0c0;--red:#ffb4b4}*{box-sizing:border-box}html{scroll-behavior:smooth}body.goalos-page{margin:0;min-height:100vh;background:radial-gradient(circle at 8% 8%,rgba(129,183,255,.22),transparent 32%),radial-gradient(circle at 90% 0%,rgba(244,199,107,.17),transparent 30%),linear-gradient(180deg,#050814,#090d1a 72%,#050814);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:var(--blue)}.skip-link{position:absolute;left:-999px;top:auto}.skip-link:focus{left:18px;top:18px;z-index:10;background:#fff;color:#061024;padding:10px 14px;border-radius:10px}.shell{width:min(1180px,calc(100% - 36px));margin:0 auto}.topnav{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:22px 0}.brand{font-weight:950;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);text-decoration:none}.navlinks{display:flex;flex-wrap:wrap;gap:10px}.navlinks a,.pill-link{border:1px solid var(--line);background:rgba(255,255,255,.045);border-radius:999px;color:var(--text);padding:9px 13px;text-decoration:none;font-weight:800;font-size:14px}.navlinks a:hover,.pill-link:hover,.cta.secondary:hover{border-color:var(--gold);color:var(--gold)}.hero{padding:72px 0 34px}.eyebrow{color:var(--gold);text-transform:uppercase;letter-spacing:.2em;font-weight:950;font-size:13px}.hero h1{font-size:clamp(42px,7vw,92px);line-height:.95;letter-spacing:-.07em;margin:18px 0}.lead{font-size:clamp(20px,2vw,27px);line-height:1.35;color:#e7ecff;max-width:920px}.muted{color:var(--muted)}.fr{border-left:3px solid rgba(244,199,107,.55);padding-left:16px}.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.cta{display:inline-flex;align-items:center;justify-content:center;padding:13px 18px;border-radius:999px;text-decoration:none;font-weight:950;border:1px solid transparent}.cta.primary{background:linear-gradient(135deg,var(--gold),#ffe29a);color:#061024}.cta.blue{background:linear-gradient(135deg,var(--blue),#c9ddff);color:#061024}.cta.secondary{border-color:var(--line);color:var(--text);background:rgba(255,255,255,.045)}.section{padding:34px 0}.section h2{font-size:clamp(30px,4vw,54px);line-height:1;letter-spacing:-.055em;margin:0 0 18px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.card{border:1px solid var(--line);background:var(--panel);border-radius:24px;padding:22px;box-shadow:0 18px 70px rgba(0,0,0,.22)}.card h3{font-size:24px;margin:8px 0 10px}.price{display:inline-flex;color:var(--green);border:1px solid rgba(141,240,192,.38);border-radius:999px;padding:7px 10px;font-weight:950;background:rgba(141,240,192,.08)}.number{color:var(--gold);font-weight:950;letter-spacing:.12em;text-transform:uppercase;font-size:12px}.ladder-group{margin:30px 0}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.product-card{display:flex;flex-direction:column;gap:10px}.product-card .cta-row{margin-top:auto}.breadcrumb{font-size:14px;color:var(--muted);margin:18px 0}.detail-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;align-items:start}.list{display:grid;gap:12px;padding:0;list-style:none}.list li{padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:var(--panel2);color:#dce5ff}.boundary{border:1px solid rgba(255,180,180,.38);background:rgba(255,180,180,.07);border-radius:20px;padding:18px;margin-top:18px}.boundary h2,.boundary h3{color:var(--red);font-size:22px;letter-spacing:0;margin-top:0}.note{border:1px solid rgba(129,183,255,.34);background:rgba(129,183,255,.08);border-radius:20px;padding:18px}.footer{padding:42px 0 70px;color:var(--muted);border-top:1px solid var(--line);margin-top:34px}.quiz-option{display:block;width:100%;text-align:left;margin:8px 0;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.05);color:var(--text);cursor:pointer}.quiz-option[aria-pressed="true"]{border-color:var(--gold);background:rgba(244,199,107,.16)}.score{font-size:54px;font-weight:950;color:var(--gold);line-height:1}@media(max-width:860px){.grid,.grid.two,.cards,.detail-grid{grid-template-columns:1fr}.hero{padding-top:38px}.topnav{align-items:flex-start;flex-direction:column}.shell{width:min(100% - 24px,1180px)}} +""".strip() + "\n" + +JS = r""" +(function(){ + const quiz = document.querySelector('[data-goalos-quiz]'); + if (!quiz) return; + const resultScore = document.getElementById('goalos-score-value'); + const resultTextEn = document.getElementById('goalos-score-text-en'); + const resultTextFr = document.getElementById('goalos-score-text-fr'); + const answers = new Map(); + const ranges = [ + {min:0,max:30,en:'You are using AI as a chat box.',fr:'Vous utilisez l’IA comme une fenêtre de clavardage.'}, + {min:31,max:60,en:'You have partial AI leverage.',fr:'Vous avez un levier IA partiel.'}, + {min:61,max:80,en:'You have a working AI system.',fr:'Vous avez un système IA fonctionnel.'}, + {min:81,max:100,en:'You are operating with serious AI leverage.',fr:'Vous opérez avec un vrai levier IA.'} + ]; + function render(){ + let score = 0; + answers.forEach(v => { score += v; }); + resultScore.textContent = String(score); + const range = ranges.find(r => score >= r.min && score <= r.max) || ranges[0]; + resultTextEn.textContent = range.en; + resultTextFr.textContent = range.fr; + } + quiz.addEventListener('click', function(event){ + const button = event.target.closest('button[data-score]'); + if (!button) return; + const question = button.getAttribute('data-question'); + answers.set(question, Number(button.getAttribute('data-score'))); + quiz.querySelectorAll('button[data-question="' + question + '"]').forEach(other => other.setAttribute('aria-pressed','false')); + button.setAttribute('aria-pressed','true'); + render(); + }); + render(); +})(); +""".strip() + "\n" + +PRODUCT_RECEIVES = { + "ai-efficiency-sprint": ["Context pack template", "Reusable operating rules", "Memory and notes structure", "Workflow map", "Output checks", "Proof log for weekly improvement"], + "team-pack": ["Team workshop-in-a-box", "Facilitation guide", "Shared context pack", "Team rules and checks", "Evidence log", "Up to 10 participant workflow"], + "workshop": ["Live bilingual workshop", "One repeated organizational workflow mapped", "Reusable context and rules", "Checks and proof artifacts", "Implementation next steps"], + "sme-ai-adoption-sprint": ["Discovery and scoping", "One SME workflow converted into a proof-ready AI work system", "Risk and evidence notes", "90-day adoption roadmap", "Executive summary"], + "enterprise-proof-room-agent-control-plane": ["Enterprise discovery", "Proof Room pilot design", "Agent Control Plane architecture", "Evidence and rollback model", "Governed rollout design"], + "nation-state-ai-leverage-proof-infrastructure": ["Nation-state discovery", "Proof Room portfolio design", "Public-sector adoption architecture", "Evidence-governance roadmap", "Briefing materials"], + "sovereign-nation-state": ["Sovereign AI discovery", "National control-plane architecture", "Public-sector Proof Room design", "Evidence Dockets and Selection Gates", "Rollout, rollback, and public trust design"], + "sovereign-country-ai-operating-system": ["Country-scale AI operating-system architecture", "Proof and governance design", "Rollout and rollback architecture", "Public trust model", "Strategy briefing"], + "sovereign-empire-ai-operating-system": ["Consent-based multi-country architecture", "Proof-governed capability network design", "Allied institutional coordination model", "Evidence and public trust framework", "Non-domination boundary design"], +} + +DETAIL_INTROS = { + "ai-efficiency-sprint": "The Sprint is a compact self-service system for turning one recurring prompt-heavy task into a reusable GoalOS workflow: Context, Rules, Memory, Workflow, Checks, and Proof.", + "team-pack": "The Team Pack adapts the Sprint into a shared workshop-in-a-box for up to 10 participants who need one repeatable team AI workflow.", + "workshop": "The Workshop is a live bilingual engagement for organizations that want facilitated conversion of one repeated AI task into a checked proof-ready workflow.", + "sme-ai-adoption-sprint": "The SME Adoption Sprint is a scoped premium engagement for small and medium-sized businesses that need an adoption roadmap grounded in one concrete workflow.", + "enterprise-proof-room-agent-control-plane": "The Enterprise Proof Room / Agent Control Plane frames agent adoption as governed, auditable capability rather than uncontrolled automation.", + "nation-state-ai-leverage-proof-infrastructure": "The Nation-State layer helps public institutions reason about efficient, reusable, evidence-governed AI capability without claiming endorsement or readiness.", + "sovereign-nation-state": "The Sovereign Nation-State layer focuses on proof rooms, evidence dockets, selection gates, rollout, rollback, and public trust design.", + "sovereign-country-ai-operating-system": "The Sovereign Country AI Operating System frames country-scale AI adoption as an operating-system architecture for proof, governance, rollout, rollback, and trust.", + "sovereign-empire-ai-operating-system": "The Sovereign Empire AI Operating System describes a voluntary proof-governed network model for allied sovereign institutions and jurisdictions.", +} + +def load_products() -> list[dict]: + return json.loads(CATALOG.read_text(encoding="utf-8")) + +def e(value: object) -> str: + return html.escape(str(value), quote=True) + +def write(path: Path, content: str) -> None: + path.parent.mkdir(parents=True, exist_ok=True) + if path.exists() and path.read_text(encoding="utf-8") == content: + return + path.write_text(content, encoding="utf-8") + +def page(title: str, main: str, css_prefix: str = "../") -> str: + return f""" + + + + + {e(title)} + + + + +Skip to content +
+ QUEBEC.AI / MONTREAL.AI + +
+
+{MARKER} +{main} +
+ + + + +""" + +def product_url(product: dict, from_products_root: bool = False) -> str: + slug = product["public_page_slug"] + return f"{slug}/" if from_products_root else f"../products/{slug}/" + +def cta_href(product: dict) -> str: + return "#" + product["cta_url_placeholder"] + +def boundary_html(include_title: bool = True) -> str: + title = "

Claim boundary / Limite des revendications

" if include_title else "" + return f"""
{title} +

{e(BOUNDARY_EN)}

+

{e(BOUNDARY_FR)}

+
""" + +def render_goalos() -> str: + steps = ["Context", "Rules", "Memory", "Workflow", "Checks", "Proof", "Weekly improvement"] + cards = "\n".join(f"
GoalOS

{e(s)}

{e('A reusable layer around AI work so output can be checked, improved, and reused.')}

" for s in steps) + main = f""" +
+

GoalOS proof infrastructure

+

LLMs made intelligence accessible.
The next wave makes intelligence efficient.
GoalOS makes efficient intelligence provable.

+

Les LLMs ont rendu l’intelligence accessible.
La prochaine vague rend l’intelligence efficace.
GoalOS rend l’intelligence efficace prouvable.

+

You already have the model. GoalOS gives you the machine around it.

+

Vous avez déjà le modèle. GoalOS vous donne la machine autour du modèle.

+

GoalOS turns repeated AI work into reusable, checked, provable systems.

+

GoalOS transforme le travail IA répété en systèmes réutilisables, vérifiés et prouvables.

+ +
+

The machine around the model

{cards}
+{boundary_html()} +""" + return page("GoalOS — Efficient intelligence made provable", main, "../") + +def group_products(products: list[dict]) -> list[tuple[str, str, list[dict]]]: + return [ + ("Self-service", "Autonome", products[0:2]), + ("Services", "Services", products[2:4]), + ("Enterprise", "Entreprise", products[4:5]), + ("Nation / Sovereign", "Nation / Souverain", products[5:9]), + ] + +def render_hub(products: list[dict]) -> str: + groups = [] + for group_en, group_fr, items in group_products(products): + cards = [] + for index, product in enumerate(products, start=1): + if product not in items: + continue + cards.append(f"""
+ Product {index} +

{e(product['name_en'])}

+

{e(product['name_fr'])}

+

{e(product['price_public'])}

+

Buyer: {e(product['audience_en'])}
Acheteur : {e(product['audience_fr'])}

+

{e(product['promise_en'])}

+

{e(product['promise_fr'])}

+ +
""") + groups.append(f"

{e(group_en)} / {e(group_fr)}

{''.join(cards)}
") + note = "Paid digital products are delivered through Squarespace + Stripe. GitHub hosts public proof, standards, and product information only." + note_fr = "Les produits numériques payants sont livrés via Squarespace + Stripe. GitHub héberge uniquement la preuve publique, les standards et l’information produit." + main = f""" +

GoalOS Product Ladder

AI access is not leverage.
Proof-ready systems are leverage.

GoalOS turns AI work into reusable, checked, provable capability.

GoalOS transforme le travail IA en capacité réutilisable, vérifiée et prouvable.

{e(note)}

{e(note_fr)}

+{''.join(groups)} +{boundary_html()} +""" + return page("GoalOS Product Ladder", main, "../") + +def render_product(product: dict, number: int) -> str: + receives = "".join(f"
  • {e(item)}
  • " for item in PRODUCT_RECEIVES[product["id"]]) + intro = DETAIL_INTROS[product["id"]] + special = "" + if product.get("special_boundary_en"): + special = f"""

    Non-domination boundary / Limite de non-domination

    {e(product['special_boundary_en'])}

    {e(product['special_boundary_fr'])}

    """ + component_focus = "" + if product["id"] == "ai-efficiency-sprint": + component_focus = "

    Sprint components

    " + cta_class = "primary" if product["cta_type"] == "buy" else "blue" + delivery_note = "Squarespace hosts the public sales or inquiry page. Stripe processes payment through Squarespace where applicable. GitHub does not host paid buyer packages." + delivery_note_fr = "Squarespace héberge la page publique de vente ou de demande. Stripe traite le paiement via Squarespace lorsque applicable. GitHub n’héberge pas les forfaits payants destinés aux acheteurs." + main = f""" + +

    GoalOS product {number}

    {e(product['name_en'])}

    {e(product['name_fr'])}

    {e(product['price_public'])}

    {e(product['promise_en'])}

    {e(product['promise_fr'])}

    +

    Who it is for / Pour qui

    {e(product['audience_en'])}

    {e(product['audience_fr'])}

    {e(intro)}

    Delivery / Livraison

    {e(product['delivery_en'])}

    {e(product['delivery_fr'])}

    {e(delivery_note)}

    {e(delivery_note_fr)}

    +

    What the buyer or client receives

    +{component_focus} +

    Proof standard

    This public page points to AEP-001 — GoalOS Proof-of-Evolution Constitution as the current proof standard for GoalOS proof claims.

    Cette page publique renvoie à AEP-001 — GoalOS Proof-of-Evolution Constitution comme standard actuel de preuve pour les revendications de preuve GoalOS.

    +{boundary_html()} +{special} +""" + return page(product["name_en"], main, "../../") + +def render_quiz(products: list[dict]) -> str: + questions = [ + "Do you paste the same context into AI more than once per week?", + "Do you have saved AI instructions for recurring work?", + "Do you have a reusable context pack?", + "Do you have rules the AI must always follow?", + "Do you have memory / notes the AI can reuse?", + "Do you have a repeatable workflow?", + "Do you check outputs before using them?", + "Do you save evidence of what worked?", + "Do you have a rollback / correction plan?", + "Do you improve the workflow weekly?", + ] + q_html = [] + for index, question in enumerate(questions, start=1): + q_html.append(f"""
    Question {index}
    {e(question)}
    """) + p1 = products[0] + main = f""" +

    Free AI Efficiency Score

    Measure whether AI is a chat box or a reusable work system.

    Static quiz. No backend. No data collection. No external analytics.

    Questionnaire statique. Aucun backend. Aucune collecte de données. Aucune analytique externe.

    +
    {''.join(q_html)}
    +{boundary_html()} +""" + return page("AI Efficiency Score", main, "../") + +def update_homepage() -> None: + path = SITE / "index.html" + if not path.exists(): + return + start = "" + end = "" + block = f"""{start} +
    +

    GoalOS Product Ladder

    +

    GoalOS Product Ladder
    Échelle de produits GoalOS

    +

    AI access is not leverage.
    GoalOS turns AI work into reusable, checked, provable capability.

    +

    L’accès à l’IA n’est pas le levier.
    GoalOS transforme le travail IA en capacité réutilisable, vérifiée et prouvable.

    + +

    Paid digital products are delivered through Squarespace + Stripe. GitHub hosts public proof, standards, and product information only.

    +
    +{end}""" + text = path.read_text(encoding="utf-8") + if start in text and end in text: + before, rest = text.split(start, 1) + _, after = rest.split(end, 1) + new_text = before + block + after + else: + marker = "
    " + if marker in text: + new_text = text.replace(marker, marker + block, 1) + else: + new_text = block + text + write(path, new_text) + +def main() -> int: + products = load_products() + ASSETS.mkdir(parents=True, exist_ok=True) + write(ASSETS / "goalos-products.css", CSS) + write(ASSETS / "goalos-products.js", JS) + write(SITE / "goalos" / "index.html", render_goalos()) + write(SITE / "products" / "index.html", render_hub(products)) + for number, product in enumerate(products, start=1): + write(SITE / "products" / product["public_page_slug"] / "index.html", render_product(product, number)) + write(SITE / "ai-efficiency-score" / "index.html", render_quiz(products)) + update_homepage() + print("Built GoalOS product pages from data/goalos_products.json") + return 0 + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/check_site_links.py b/scripts/check_site_links.py new file mode 100755 index 00000000..187f6fc9 --- /dev/null +++ b/scripts/check_site_links.py @@ -0,0 +1,92 @@ +#!/usr/bin/env python3 +"""Conservatively check local href/src links in site HTML.""" +from __future__ import annotations + +from html.parser import HTMLParser +from pathlib import Path +from urllib.parse import unquote, urlparse +import sys + +ROOT = Path(__file__).resolve().parents[1] +SITE = ROOT / "site" +PLACEHOLDER_PREFIXES = ("SQUARESPACE_", "SME_INQUIRY_URL", "ENTERPRISE_INQUIRY_URL", "NATION_STATE_INQUIRY_URL", "SOVEREIGN_") +IGNORED_SCHEMES = {"http", "https", "mailto", "tel", "javascript", "data"} + +class LinkParser(HTMLParser): + def __init__(self) -> None: + super().__init__() + self.links: list[tuple[str, str]] = [] + + def handle_starttag(self, tag: str, attrs: list[tuple[str, str | None]]) -> None: + for name, value in attrs: + if name in {"href", "src"} and value: + self.links.append((name, value.strip())) + + +def is_placeholder(value: str) -> bool: + clean = value.lstrip("#") + return clean.endswith("_URL") or clean.endswith("_INQUIRY_URL") or clean.startswith(PLACEHOLDER_PREFIXES) + + +def candidates_for(page: Path, raw: str) -> list[Path]: + parsed = urlparse(raw) + path = unquote(parsed.path) + if path.startswith("/proof-gradient/"): + path = path[len("/proof-gradient/"):] + base = SITE + elif path.startswith("/"): + path = path[1:] + base = SITE + else: + base = page.parent + target = (base / path).resolve() + if raw.endswith("/") or path == "" or target.is_dir(): + return [target / "index.html", target] + return [target] + + +def link_exists(page: Path, raw: str) -> bool: + parsed = urlparse(raw) + if parsed.scheme in IGNORED_SCHEMES or raw.startswith("//"): + return True + if is_placeholder(raw): + return True + if parsed.path == "" and parsed.fragment: + return True + for candidate in candidates_for(page, raw): + try: + rel_to_repo = candidate.relative_to(ROOT) + except ValueError: + continue + if candidate.exists(): + return True + # If a site page links to a repo-root file such as README.md, allow it when present. + repo_candidate = ROOT / rel_to_repo + if repo_candidate.exists(): + return True + return False + + +def find_broken() -> list[str]: + broken: list[str] = [] + for page in sorted(SITE.rglob("*.html")): + parser = LinkParser() + parser.feed(page.read_text(encoding="utf-8", errors="ignore")) + for attr, raw in parser.links: + if not link_exists(page, raw): + broken.append(f"{page.relative_to(ROOT)} {attr}={raw}") + return broken + + +def run() -> int: + broken = find_broken() + if broken: + print("Site link check failed:", file=sys.stderr) + for item in broken: + print(f"- {item}", file=sys.stderr) + return 1 + print("Site local links validated") + return 0 + +if __name__ == "__main__": + raise SystemExit(run()) diff --git a/scripts/guard_no_paid_product_files.py b/scripts/guard_no_paid_product_files.py new file mode 100755 index 00000000..0bb9e9b6 --- /dev/null +++ b/scripts/guard_no_paid_product_files.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python3 +"""Guard against committing paid GoalOS buyer/client packages to public paths.""" +from __future__ import annotations + +import fnmatch +import sys +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +PUBLIC_PREFIXES = ("site", "docs", "data", ".github") +PAID_PATTERNS = [ + "*BUYER_PRODUCT*.zip", + "*CLIENT_PACKAGE*.zip", + "*OPERATOR_PACKAGE*.zip", + "GoalOS_AI_Efficiency_Sprint*.zip", + "GoalOS_SME_AI_Adoption*.zip", + "GoalOS_Enterprise*.zip", + "GoalOS_Nation_State*.zip", + "GoalOS_Sovereign*.zip", +] +ALLOWED_PREFIX = Path("releases/AEP-001") +SKIP_DIRS = {".git", "__pycache__", ".pytest_cache", ".mypy_cache", ".ruff_cache"} + + +def is_public_path(path: Path) -> bool: + rel = path.relative_to(ROOT) + parts = rel.parts + if not parts: + return False + if rel.is_relative_to(ALLOWED_PREFIX): + return False + if len(parts) == 1: + return True + return parts[0] in PUBLIC_PREFIXES + + +def find_offenders() -> list[Path]: + offenders: list[Path] = [] + for path in ROOT.rglob("*.zip"): + if any(part in SKIP_DIRS for part in path.relative_to(ROOT).parts): + continue + rel = path.relative_to(ROOT) + if rel.is_relative_to(ALLOWED_PREFIX): + continue + if not is_public_path(path): + continue + if any(fnmatch.fnmatch(path.name, pattern) for pattern in PAID_PATTERNS): + offenders.append(rel) + return sorted(offenders) + + +def run() -> int: + offenders = find_offenders() + if offenders: + print("Paid product ZIP guard failed. Offending files:", file=sys.stderr) + for offender in offenders: + print(f"- {offender}", file=sys.stderr) + return 1 + print("No forbidden paid product ZIP files found") + return 0 + + +if __name__ == "__main__": + raise SystemExit(run()) diff --git a/scripts/repo_claim_boundary_check.py b/scripts/repo_claim_boundary_check.py new file mode 100755 index 00000000..4a01484f --- /dev/null +++ b/scripts/repo_claim_boundary_check.py @@ -0,0 +1,80 @@ +#!/usr/bin/env python3 +"""Check GoalOS public product/docs copy for unsupported claims outside boundary contexts.""" +from __future__ import annotations + +import re +import sys +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +SCAN_GLOBS = [ + "site/goalos/**/*.html", + "site/products/**/*.html", + "site/ai-efficiency-score/**/*.html", + "docs/commerce/**/*.md", +] +FORBIDDEN_TERMS = [ + "guaranteed ROI", + "guaranteed profit", + "achieved AGI", + "achieved ASI", + "superintelligence achieved", + "Government of Canada endorsed", + "official government partner", + "certified compliance", + "legal advice", + "investment advice", + "national security readiness", + "Kardashev achieved", +] +ALLOWED_CONTEXTS = [ + "does not claim", + "not claimed", + "not affiliated", + "not endorsed", + "no guarantee", + "claim boundary", + "not legal advice", + "does not provide legal", + "do not provide legal", + "does not provide legal, financial", + "ne fournit pas de conseils", + "aucun roi", +] + + +def files_to_scan() -> list[Path]: + files: set[Path] = set() + for pattern in SCAN_GLOBS: + files.update(ROOT.glob(pattern)) + return sorted(path for path in files if path.is_file()) + + +def allowed(line: str) -> bool: + lower = line.lower() + return any(context in lower for context in ALLOWED_CONTEXTS) + + +def find_violations() -> list[str]: + violations: list[str] = [] + patterns = [(term, re.compile(re.escape(term), re.I)) for term in FORBIDDEN_TERMS] + for path in files_to_scan(): + for lineno, line in enumerate(path.read_text(encoding="utf-8", errors="ignore").splitlines(), start=1): + for term, pattern in patterns: + if pattern.search(line) and not allowed(line): + violations.append(f"{path.relative_to(ROOT)}:{lineno}: unsupported claim term '{term}'") + return violations + + +def run() -> int: + violations = find_violations() + if violations: + print("Claim-boundary check failed:", file=sys.stderr) + for violation in violations: + print(f"- {violation}", file=sys.stderr) + return 1 + print("GoalOS claim boundaries validated") + return 0 + +if __name__ == "__main__": + raise SystemExit(run()) diff --git a/scripts/validate_goalos_products.py b/scripts/validate_goalos_products.py new file mode 100755 index 00000000..b2f7c443 --- /dev/null +++ b/scripts/validate_goalos_products.py @@ -0,0 +1,102 @@ +#!/usr/bin/env python3 +"""Validate the GoalOS product catalog and generated public pages.""" +from __future__ import annotations + +import json +import re +import sys +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +CATALOG = ROOT / "data" / "goalos_products.json" +SITE = ROOT / "site" +REQUIRED_FIELDS = { + "id", "name_en", "name_fr", "price_public", "audience_en", "audience_fr", + "promise_en", "promise_fr", "delivery_en", "delivery_fr", "cta_type", + "cta_label_en", "cta_label_fr", "cta_url_placeholder", "public_page_slug", + "claim_boundary_level", +} +BILINGUAL_FIELDS = ["name", "audience", "promise", "delivery", "cta_label"] +URL_SAFE = re.compile(r"^[a-z0-9]+(?:-[a-z0-9]+)*$") +BUY_NOW_TERMS = re.compile(r"\b(buy now|add to cart|checkout now|get the sprint|get the team pack|obtenir le sprint|obtenir le team pack)\b", re.I) +HIGH_TICKET_LEVELS = {"service", "enterprise", "sovereign", "sovereign_empire"} + + +def load_products() -> list[dict]: + with CATALOG.open(encoding="utf-8") as fh: + return json.load(fh) + + +def validate_catalog(products: list[dict]) -> list[str]: + errors: list[str] = [] + if len(products) != 9: + errors.append(f"Expected exactly 9 products; found {len(products)}") + seen_ids: set[str] = set() + seen_slugs: set[str] = set() + for index, product in enumerate(products, start=1): + missing = sorted(REQUIRED_FIELDS - product.keys()) + if missing: + errors.append(f"Product {index} missing fields: {', '.join(missing)}") + for base in BILINGUAL_FIELDS: + for suffix in ("en", "fr"): + key = f"{base}_{suffix}" + if not str(product.get(key, "")).strip(): + errors.append(f"Product {index} missing bilingual field {key}") + product_id = product.get("id", "") + slug = product.get("public_page_slug", "") + if not URL_SAFE.match(product_id): + errors.append(f"Product {index} id is not URL-safe: {product_id}") + if not URL_SAFE.match(slug): + errors.append(f"Product {index} public_page_slug is not URL-safe: {slug}") + if product_id in seen_ids: + errors.append(f"Duplicate product id: {product_id}") + if slug in seen_slugs: + errors.append(f"Duplicate public_page_slug: {slug}") + seen_ids.add(product_id) + seen_slugs.add(slug) + if product.get("cta_type") not in {"buy", "inquiry"}: + errors.append(f"Product {index} has invalid cta_type: {product.get('cta_type')}") + if product.get("claim_boundary_level") in HIGH_TICKET_LEVELS and product.get("cta_type") != "inquiry": + errors.append(f"High-ticket product {product_id} must use inquiry CTA type") + if product.get("claim_boundary_level") in HIGH_TICKET_LEVELS: + cta_text = f"{product.get('cta_label_en', '')} {product.get('cta_label_fr', '')}" + if BUY_NOW_TERMS.search(cta_text): + errors.append(f"High-ticket product {product_id} uses buy-now CTA language: {cta_text}") + return errors + + +def validate_pages(products: list[dict]) -> list[str]: + errors: list[str] = [] + hub = SITE / "products" / "index.html" + if not hub.exists(): + errors.append("Missing product hub page: site/products/index.html") + for product in products: + page = SITE / "products" / product["public_page_slug"] / "index.html" + if not page.exists(): + errors.append(f"Missing product page: {page.relative_to(ROOT)}") + continue + text = page.read_text(encoding="utf-8") + if "standards/AEP-001/" not in text: + errors.append(f"Product page missing AEP-001 link: {page.relative_to(ROOT)}") + if "Claim boundary" not in text and "Limite des revendications" not in text: + errors.append(f"Product page missing claim boundary: {page.relative_to(ROOT)}") + if product.get("claim_boundary_level") in HIGH_TICKET_LEVELS and BUY_NOW_TERMS.search(text): + # Ignore shared labels for Product 1/2 that may appear in navigation? Individual high-ticket pages should not contain them. + errors.append(f"High-ticket page contains buy-now CTA language: {page.relative_to(ROOT)}") + return errors + + +def run() -> int: + products = load_products() + errors = validate_catalog(products) + validate_pages(products) + if errors: + print("GoalOS product validation failed:", file=sys.stderr) + for error in errors: + print(f"- {error}", file=sys.stderr) + return 1 + print("GoalOS product catalog and pages validated") + return 0 + + +if __name__ == "__main__": + raise SystemExit(run()) diff --git a/site/ai-efficiency-score/index.html b/site/ai-efficiency-score/index.html new file mode 100644 index 00000000..52f53e12 --- /dev/null +++ b/site/ai-efficiency-score/index.html @@ -0,0 +1,38 @@ + + + + + + AI Efficiency Score + + + + + +
    + QUEBEC.AI / MONTREAL.AI + +
    +
    + + +

    Free AI Efficiency Score

    Measure whether AI is a chat box or a reusable work system.

    Static quiz. No backend. No data collection. No external analytics.

    Questionnaire statique. Aucun backend. Aucune collecte de données. Aucune analytique externe.

    +
    Question 1
    Do you paste the same context into AI more than once per week?
    Question 2
    Do you have saved AI instructions for recurring work?
    Question 3
    Do you have a reusable context pack?
    Question 4
    Do you have rules the AI must always follow?
    Question 5
    Do you have memory / notes the AI can reuse?
    Question 6
    Do you have a repeatable workflow?
    Question 7
    Do you check outputs before using them?
    Question 8
    Do you save evidence of what worked?
    Question 9
    Do you have a rollback / correction plan?
    Question 10
    Do you improve the workflow weekly?
    +

    Claim boundary / Limite des revendications

    +

    Independent initiative by QUEBEC.AI / MONTREAL.AI. Not affiliated with, sponsored by, or endorsed by the Government of Canada unless a formal agreement is separately executed. This page does not provide legal, financial, procurement, medical, compliance, national-security, or investment advice. No ROI, certification, production deployment, AGI, ASI, sovereign outcome, or public-sector adoption result is guaranteed.

    +

    Initiative indépendante de QUEBEC.AI / MONTREAL.AI. Non affiliée, commanditée ni approuvée par le gouvernement du Canada sauf accord formel séparé. Cette page ne fournit pas de conseils juridiques, financiers, d’approvisionnement, médicaux, de conformité, de sécurité nationale ni d’investissement. Aucun ROI, certification, déploiement en production, AGI, ASI, résultat souverain ni résultat d’adoption du secteur public n’est garanti.

    +
    + +
    +
    +

    Commit → Execute → Prove → Evolve

    +

    No proof, no evolution. No eval, no propagation. No rollback, no release.

    +
    + + + diff --git a/site/assets/goalos-products.css b/site/assets/goalos-products.css new file mode 100644 index 00000000..3d5874d7 --- /dev/null +++ b/site/assets/goalos-products.css @@ -0,0 +1 @@ +:root{color-scheme:dark;--bg:#050814;--panel:rgba(12,18,36,.88);--panel2:rgba(255,255,255,.055);--line:rgba(255,255,255,.15);--text:#f8f7ef;--muted:#b8c2dd;--gold:#f4c76b;--blue:#81b7ff;--green:#8df0c0;--red:#ffb4b4}*{box-sizing:border-box}html{scroll-behavior:smooth}body.goalos-page{margin:0;min-height:100vh;background:radial-gradient(circle at 8% 8%,rgba(129,183,255,.22),transparent 32%),radial-gradient(circle at 90% 0%,rgba(244,199,107,.17),transparent 30%),linear-gradient(180deg,#050814,#090d1a 72%,#050814);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:var(--blue)}.skip-link{position:absolute;left:-999px;top:auto}.skip-link:focus{left:18px;top:18px;z-index:10;background:#fff;color:#061024;padding:10px 14px;border-radius:10px}.shell{width:min(1180px,calc(100% - 36px));margin:0 auto}.topnav{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:22px 0}.brand{font-weight:950;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);text-decoration:none}.navlinks{display:flex;flex-wrap:wrap;gap:10px}.navlinks a,.pill-link{border:1px solid var(--line);background:rgba(255,255,255,.045);border-radius:999px;color:var(--text);padding:9px 13px;text-decoration:none;font-weight:800;font-size:14px}.navlinks a:hover,.pill-link:hover,.cta.secondary:hover{border-color:var(--gold);color:var(--gold)}.hero{padding:72px 0 34px}.eyebrow{color:var(--gold);text-transform:uppercase;letter-spacing:.2em;font-weight:950;font-size:13px}.hero h1{font-size:clamp(42px,7vw,92px);line-height:.95;letter-spacing:-.07em;margin:18px 0}.lead{font-size:clamp(20px,2vw,27px);line-height:1.35;color:#e7ecff;max-width:920px}.muted{color:var(--muted)}.fr{border-left:3px solid rgba(244,199,107,.55);padding-left:16px}.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.cta{display:inline-flex;align-items:center;justify-content:center;padding:13px 18px;border-radius:999px;text-decoration:none;font-weight:950;border:1px solid transparent}.cta.primary{background:linear-gradient(135deg,var(--gold),#ffe29a);color:#061024}.cta.blue{background:linear-gradient(135deg,var(--blue),#c9ddff);color:#061024}.cta.secondary{border-color:var(--line);color:var(--text);background:rgba(255,255,255,.045)}.section{padding:34px 0}.section h2{font-size:clamp(30px,4vw,54px);line-height:1;letter-spacing:-.055em;margin:0 0 18px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.card{border:1px solid var(--line);background:var(--panel);border-radius:24px;padding:22px;box-shadow:0 18px 70px rgba(0,0,0,.22)}.card h3{font-size:24px;margin:8px 0 10px}.price{display:inline-flex;color:var(--green);border:1px solid rgba(141,240,192,.38);border-radius:999px;padding:7px 10px;font-weight:950;background:rgba(141,240,192,.08)}.number{color:var(--gold);font-weight:950;letter-spacing:.12em;text-transform:uppercase;font-size:12px}.ladder-group{margin:30px 0}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.product-card{display:flex;flex-direction:column;gap:10px}.product-card .cta-row{margin-top:auto}.breadcrumb{font-size:14px;color:var(--muted);margin:18px 0}.detail-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;align-items:start}.list{display:grid;gap:12px;padding:0;list-style:none}.list li{padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:var(--panel2);color:#dce5ff}.boundary{border:1px solid rgba(255,180,180,.38);background:rgba(255,180,180,.07);border-radius:20px;padding:18px;margin-top:18px}.boundary h2,.boundary h3{color:var(--red);font-size:22px;letter-spacing:0;margin-top:0}.note{border:1px solid rgba(129,183,255,.34);background:rgba(129,183,255,.08);border-radius:20px;padding:18px}.footer{padding:42px 0 70px;color:var(--muted);border-top:1px solid var(--line);margin-top:34px}.quiz-option{display:block;width:100%;text-align:left;margin:8px 0;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.05);color:var(--text);cursor:pointer}.quiz-option[aria-pressed="true"]{border-color:var(--gold);background:rgba(244,199,107,.16)}.score{font-size:54px;font-weight:950;color:var(--gold);line-height:1}@media(max-width:860px){.grid,.grid.two,.cards,.detail-grid{grid-template-columns:1fr}.hero{padding-top:38px}.topnav{align-items:flex-start;flex-direction:column}.shell{width:min(100% - 24px,1180px)}} diff --git a/site/assets/goalos-products.js b/site/assets/goalos-products.js new file mode 100644 index 00000000..48353aa9 --- /dev/null +++ b/site/assets/goalos-products.js @@ -0,0 +1,32 @@ +(function(){ + const quiz = document.querySelector('[data-goalos-quiz]'); + if (!quiz) return; + const resultScore = document.getElementById('goalos-score-value'); + const resultTextEn = document.getElementById('goalos-score-text-en'); + const resultTextFr = document.getElementById('goalos-score-text-fr'); + const answers = new Map(); + const ranges = [ + {min:0,max:30,en:'You are using AI as a chat box.',fr:'Vous utilisez l’IA comme une fenêtre de clavardage.'}, + {min:31,max:60,en:'You have partial AI leverage.',fr:'Vous avez un levier IA partiel.'}, + {min:61,max:80,en:'You have a working AI system.',fr:'Vous avez un système IA fonctionnel.'}, + {min:81,max:100,en:'You are operating with serious AI leverage.',fr:'Vous opérez avec un vrai levier IA.'} + ]; + function render(){ + let score = 0; + answers.forEach(v => { score += v; }); + resultScore.textContent = String(score); + const range = ranges.find(r => score >= r.min && score <= r.max) || ranges[0]; + resultTextEn.textContent = range.en; + resultTextFr.textContent = range.fr; + } + quiz.addEventListener('click', function(event){ + const button = event.target.closest('button[data-score]'); + if (!button) return; + const question = button.getAttribute('data-question'); + answers.set(question, Number(button.getAttribute('data-score'))); + quiz.querySelectorAll('button[data-question="' + question + '"]').forEach(other => other.setAttribute('aria-pressed','false')); + button.setAttribute('aria-pressed','true'); + render(); + }); + render(); +})(); diff --git a/site/docs/index.html b/site/docs/index.html new file mode 100644 index 00000000..666eae5e --- /dev/null +++ b/site/docs/index.html @@ -0,0 +1,37 @@ + + + + + + Proof Gradient Documentation + + + +
    +

    ← Proof Gradient

    +

    Proof Gradient Documentation

    +

    This public documentation index preserves existing site links and points visitors to the active proof and standards pages.

    +
    +

    Public standards

    + +
    +
    +

    Public proofs

    + +
    +
    +

    GoalOS

    + +
    +
    + + diff --git a/site/goalos/index.html b/site/goalos/index.html new file mode 100644 index 00000000..8f35a94b --- /dev/null +++ b/site/goalos/index.html @@ -0,0 +1,53 @@ + + + + + + GoalOS — Efficient intelligence made provable + + + + + +
    + QUEBEC.AI / MONTREAL.AI + +
    +
    + + +
    +

    GoalOS proof infrastructure

    +

    LLMs made intelligence accessible.
    The next wave makes intelligence efficient.
    GoalOS makes efficient intelligence provable.

    +

    Les LLMs ont rendu l’intelligence accessible.
    La prochaine vague rend l’intelligence efficace.
    GoalOS rend l’intelligence efficace prouvable.

    +

    You already have the model. GoalOS gives you the machine around it.

    +

    Vous avez déjà le modèle. GoalOS vous donne la machine autour du modèle.

    +

    GoalOS turns repeated AI work into reusable, checked, provable systems.

    +

    GoalOS transforme le travail IA répété en systèmes réutilisables, vérifiés et prouvables.

    + +
    +

    The machine around the model

    GoalOS

    Context

    A reusable layer around AI work so output can be checked, improved, and reused.

    +
    GoalOS

    Rules

    A reusable layer around AI work so output can be checked, improved, and reused.

    +
    GoalOS

    Memory

    A reusable layer around AI work so output can be checked, improved, and reused.

    +
    GoalOS

    Workflow

    A reusable layer around AI work so output can be checked, improved, and reused.

    +
    GoalOS

    Checks

    A reusable layer around AI work so output can be checked, improved, and reused.

    +
    GoalOS

    Proof

    A reusable layer around AI work so output can be checked, improved, and reused.

    +
    GoalOS

    Weekly improvement

    A reusable layer around AI work so output can be checked, improved, and reused.

    +

    Claim boundary / Limite des revendications

    +

    Independent initiative by QUEBEC.AI / MONTREAL.AI. Not affiliated with, sponsored by, or endorsed by the Government of Canada unless a formal agreement is separately executed. This page does not provide legal, financial, procurement, medical, compliance, national-security, or investment advice. No ROI, certification, production deployment, AGI, ASI, sovereign outcome, or public-sector adoption result is guaranteed.

    +

    Initiative indépendante de QUEBEC.AI / MONTREAL.AI. Non affiliée, commanditée ni approuvée par le gouvernement du Canada sauf accord formel séparé. Cette page ne fournit pas de conseils juridiques, financiers, d’approvisionnement, médicaux, de conformité, de sécurité nationale ni d’investissement. Aucun ROI, certification, déploiement en production, AGI, ASI, résultat souverain ni résultat d’adoption du secteur public n’est garanti.

    +
    + +
    +
    +

    Commit → Execute → Prove → Evolve

    +

    No proof, no evolution. No eval, no propagation. No rollback, no release.

    +
    + + + diff --git a/site/index.html b/site/index.html index b8cdc41a..a04de674 100644 --- a/site/index.html +++ b/site/index.html @@ -64,7 +64,21 @@ -
    +
    +
    +

    GoalOS Product Ladder

    +

    GoalOS Product Ladder
    Échelle de produits GoalOS

    +

    AI access is not leverage.
    GoalOS turns AI work into reusable, checked, provable capability.

    +

    L’accès à l’IA n’est pas le levier.
    GoalOS transforme le travail IA en capacité réutilisable, vérifiée et prouvable.

    + +

    Paid digital products are delivered through Squarespace + Stripe. GitHub hosts public proof, standards, and product information only.

    +
    +
    diff --git a/site/products/ai-efficiency-sprint/index.html b/site/products/ai-efficiency-sprint/index.html new file mode 100644 index 00000000..cb065cb3 --- /dev/null +++ b/site/products/ai-efficiency-sprint/index.html @@ -0,0 +1,43 @@ + + + + + + GoalOS AI Efficiency Sprint + + + + + +
    + QUEBEC.AI / MONTREAL.AI + +
    +
    + + + +

    GoalOS product 1

    GoalOS AI Efficiency Sprint

    GoalOS AI Efficiency Sprint

    $49

    Turn one repeated AI task into a cheaper, reusable, provable work system in under one hour.

    Transformer une tâche IA répétée en système de travail moins coûteux, réutilisable et prouvable en moins d’une heure.

    +

    Who it is for / Pour qui

    Individuals

    Individus

    The Sprint is a compact self-service system for turning one recurring prompt-heavy task into a reusable GoalOS workflow: Context, Rules, Memory, Workflow, Checks, and Proof.

    Delivery / Livraison

    Paid bilingual digital download delivered through Squarespace after Stripe checkout.

    Téléchargement numérique bilingue payant livré par Squarespace après paiement Stripe.

    Squarespace hosts the public sales or inquiry page. Stripe processes payment through Squarespace where applicable. GitHub does not host paid buyer packages.

    Squarespace héberge la page publique de vente ou de demande. Stripe traite le paiement via Squarespace lorsque applicable. GitHub n’héberge pas les forfaits payants destinés aux acheteurs.

    +

    What the buyer or client receives

    • Context pack template
    • Reusable operating rules
    • Memory and notes structure
    • Workflow map
    • Output checks
    • Proof log for weekly improvement
    +

    Sprint components

    • Context.
    • Rules.
    • Memory.
    • Workflow.
    • Checks.
    • Proof.
    +

    Proof standard

    This public page points to AEP-001 — GoalOS Proof-of-Evolution Constitution as the current proof standard for GoalOS proof claims.

    Cette page publique renvoie à AEP-001 — GoalOS Proof-of-Evolution Constitution comme standard actuel de preuve pour les revendications de preuve GoalOS.

    +

    Claim boundary / Limite des revendications

    +

    Independent initiative by QUEBEC.AI / MONTREAL.AI. Not affiliated with, sponsored by, or endorsed by the Government of Canada unless a formal agreement is separately executed. This page does not provide legal, financial, procurement, medical, compliance, national-security, or investment advice. No ROI, certification, production deployment, AGI, ASI, sovereign outcome, or public-sector adoption result is guaranteed.

    +

    Initiative indépendante de QUEBEC.AI / MONTREAL.AI. Non affiliée, commanditée ni approuvée par le gouvernement du Canada sauf accord formel séparé. Cette page ne fournit pas de conseils juridiques, financiers, d’approvisionnement, médicaux, de conformité, de sécurité nationale ni d’investissement. Aucun ROI, certification, déploiement en production, AGI, ASI, résultat souverain ni résultat d’adoption du secteur public n’est garanti.

    +
    + + +
    +
    +

    Commit → Execute → Prove → Evolve

    +

    No proof, no evolution. No eval, no propagation. No rollback, no release.

    +
    + + + diff --git a/site/products/enterprise-proof-room-agent-control-plane/index.html b/site/products/enterprise-proof-room-agent-control-plane/index.html new file mode 100644 index 00000000..ee77c125 --- /dev/null +++ b/site/products/enterprise-proof-room-agent-control-plane/index.html @@ -0,0 +1,43 @@ + + + + + + GoalOS Proof Room / Agent Control Plane + + + + + +
    + QUEBEC.AI / MONTREAL.AI + +
    +
    + + + +

    GoalOS product 5

    GoalOS Proof Room / Agent Control Plane

    GoalOS Proof Room / Agent Control Plane

    Enterprise

    Govern AI-agent adoption by turning agent work into reusable, checked, auditable, and rollbackable institutional capability.

    Gouverner l’adoption des agents IA en transformant leur travail en capacité institutionnelle réutilisable, vérifiée, auditable et rollbackable.

    +

    Who it is for / Pour qui

    Enterprises and regulated institutions

    Entreprises et institutions réglementées

    The Enterprise Proof Room / Agent Control Plane frames agent adoption as governed, auditable capability rather than uncontrolled automation.

    Delivery / Livraison

    Enterprise discovery, Proof Room pilot, Agent Control Plane architecture, and governed rollout design.

    Découverte entreprise, pilote Proof Room, architecture Agent Control Plane et design de déploiement gouverné.

    Squarespace hosts the public sales or inquiry page. Stripe processes payment through Squarespace where applicable. GitHub does not host paid buyer packages.

    Squarespace héberge la page publique de vente ou de demande. Stripe traite le paiement via Squarespace lorsque applicable. GitHub n’héberge pas les forfaits payants destinés aux acheteurs.

    +

    What the buyer or client receives

    • Enterprise discovery
    • Proof Room pilot design
    • Agent Control Plane architecture
    • Evidence and rollback model
    • Governed rollout design
    + +

    Proof standard

    This public page points to AEP-001 — GoalOS Proof-of-Evolution Constitution as the current proof standard for GoalOS proof claims.

    Cette page publique renvoie à AEP-001 — GoalOS Proof-of-Evolution Constitution comme standard actuel de preuve pour les revendications de preuve GoalOS.

    +

    Claim boundary / Limite des revendications

    +

    Independent initiative by QUEBEC.AI / MONTREAL.AI. Not affiliated with, sponsored by, or endorsed by the Government of Canada unless a formal agreement is separately executed. This page does not provide legal, financial, procurement, medical, compliance, national-security, or investment advice. No ROI, certification, production deployment, AGI, ASI, sovereign outcome, or public-sector adoption result is guaranteed.

    +

    Initiative indépendante de QUEBEC.AI / MONTREAL.AI. Non affiliée, commanditée ni approuvée par le gouvernement du Canada sauf accord formel séparé. Cette page ne fournit pas de conseils juridiques, financiers, d’approvisionnement, médicaux, de conformité, de sécurité nationale ni d’investissement. Aucun ROI, certification, déploiement en production, AGI, ASI, résultat souverain ni résultat d’adoption du secteur public n’est garanti.

    +
    + + +
    +
    +

    Commit → Execute → Prove → Evolve

    +

    No proof, no evolution. No eval, no propagation. No rollback, no release.

    +
    + + + diff --git a/site/products/index.html b/site/products/index.html new file mode 100644 index 00000000..ea8da89c --- /dev/null +++ b/site/products/index.html @@ -0,0 +1,119 @@ + + + + + + GoalOS Product Ladder + + + + + +
    + QUEBEC.AI / MONTREAL.AI + +
    +
    + + +

    GoalOS Product Ladder

    AI access is not leverage.
    Proof-ready systems are leverage.

    GoalOS turns AI work into reusable, checked, provable capability.

    GoalOS transforme le travail IA en capacité réutilisable, vérifiée et prouvable.

    Paid digital products are delivered through Squarespace + Stripe. GitHub hosts public proof, standards, and product information only.

    Les produits numériques payants sont livrés via Squarespace + Stripe. GitHub héberge uniquement la preuve publique, les standards et l’information produit.

    +

    Self-service / Autonome

    + Product 1 +

    GoalOS AI Efficiency Sprint

    +

    GoalOS AI Efficiency Sprint

    +

    $49

    +

    Buyer: Individuals
    Acheteur : Individus

    +

    Turn one repeated AI task into a cheaper, reusable, provable work system in under one hour.

    +

    Transformer une tâche IA répétée en système de travail moins coûteux, réutilisable et prouvable en moins d’une heure.

    + +
    + Product 2 +

    GoalOS AI Efficiency Sprint — Team Pack

    +

    GoalOS AI Efficiency Sprint — Team Pack

    +

    $199

    +

    Buyer: Teams of up to 10 people
    Acheteur : Équipes jusqu’à 10 personnes

    +

    Turn one repeated team AI task into a reusable, checked, and provable work system in one workshop.

    +

    Transformer une tâche IA répétée d’équipe en système de travail réutilisable, vérifié et prouvable en un atelier.

    + +

    Services / Services

    + Product 3 +

    GoalOS AI Efficiency Workshop

    +

    Atelier GoalOS AI Efficiency

    +

    $2,500

    +

    Buyer: Organizations
    Acheteur : Organisations

    +

    Turn one repeated organizational AI task into a reusable, checked, and provable work system in one live workshop.

    +

    Transformer une tâche IA répétée de l’organisation en système de travail réutilisable, vérifié et prouvable en un atelier en direct.

    + +
    + Product 4 +

    GoalOS SME AI Adoption Sprint

    +

    GoalOS SME AI Adoption Sprint

    +

    From $15,000

    +

    Buyer: Small and medium-sized businesses
    Acheteur : PME

    +

    Turn one repeated SME business task into a reusable, checked, and provable AI work system — then leave with a 90-day adoption roadmap.

    +

    Transformer une tâche d’affaires répétée de PME en système de travail IA réutilisable, vérifié et prouvable — puis repartir avec une feuille de route d’adoption de 90 jours.

    + +

    Enterprise / Entreprise

    + Product 5 +

    GoalOS Proof Room / Agent Control Plane

    +

    GoalOS Proof Room / Agent Control Plane

    +

    Enterprise

    +

    Buyer: Enterprises and regulated institutions
    Acheteur : Entreprises et institutions réglementées

    +

    Govern AI-agent adoption by turning agent work into reusable, checked, auditable, and rollbackable institutional capability.

    +

    Gouverner l’adoption des agents IA en transformant leur travail en capacité institutionnelle réutilisable, vérifiée, auditable et rollbackable.

    + +

    Nation / Sovereign / Nation / Souverain

    + Product 6 +

    GoalOS Nation-State AI Leverage & Proof Infrastructure

    +

    GoalOS Nation-State AI Leverage & Proof Infrastructure

    +

    Nation-State

    +

    Buyer: Governments and public institutions
    Acheteur : Gouvernements et institutions publiques

    +

    Turn national AI access into trusted, efficient, reusable, and provable capability.

    +

    Transformer l’accès national à l’IA en capacité fiable, efficace, réutilisable et prouvable.

    + +
    + Product 7 +

    GoalOS Sovereign Nation-State AI Leverage & Proof Infrastructure

    +

    GoalOS Sovereign Nation-State AI Leverage & Proof Infrastructure

    +

    Sovereign

    +

    Buyer: Sovereign public institutions
    Acheteur : Institutions publiques souveraines

    +

    Turn national AI access into trusted, efficient, reusable, and provable sovereign capability.

    +

    Transformer l’accès national à l’IA en capacité souveraine fiable, efficace, réutilisable et prouvable.

    + +
    + Product 8 +

    GoalOS Sovereign Country AI Operating System

    +

    GoalOS Sovereign Country AI Operating System

    +

    Sovereign Country

    +

    Buyer: Countries and national AI strategies
    Acheteur : Pays et stratégies nationales d’IA

    +

    Turn national AI access into a sovereign country operating system for trusted, efficient, reusable, and provable AI capability.

    +

    Transformer l’accès national à l’IA en système d’exploitation souverain pour une capacité IA fiable, efficace, réutilisable et prouvable.

    + +
    + Product 9 +

    GoalOS Sovereign Empire AI Operating System

    +

    GoalOS Sovereign Empire AI Operating System

    +

    Sovereign Empire

    +

    Buyer: Multi-country, multi-jurisdiction, allied sovereign networks
    Acheteur : Réseaux souverains alliés, multi-pays et multi-juridictions

    +

    Turn multi-country AI access into trusted, efficient, reusable, and provable sovereign capability.

    +

    Transformer l’accès IA multi-pays en capacité souveraine fiable, efficace, réutilisable et prouvable.

    + +
    +

    Claim boundary / Limite des revendications

    +

    Independent initiative by QUEBEC.AI / MONTREAL.AI. Not affiliated with, sponsored by, or endorsed by the Government of Canada unless a formal agreement is separately executed. This page does not provide legal, financial, procurement, medical, compliance, national-security, or investment advice. No ROI, certification, production deployment, AGI, ASI, sovereign outcome, or public-sector adoption result is guaranteed.

    +

    Initiative indépendante de QUEBEC.AI / MONTREAL.AI. Non affiliée, commanditée ni approuvée par le gouvernement du Canada sauf accord formel séparé. Cette page ne fournit pas de conseils juridiques, financiers, d’approvisionnement, médicaux, de conformité, de sécurité nationale ni d’investissement. Aucun ROI, certification, déploiement en production, AGI, ASI, résultat souverain ni résultat d’adoption du secteur public n’est garanti.

    +
    + +
    +
    +

    Commit → Execute → Prove → Evolve

    +

    No proof, no evolution. No eval, no propagation. No rollback, no release.

    +
    + + + diff --git a/site/products/nation-state-ai-leverage-proof-infrastructure/index.html b/site/products/nation-state-ai-leverage-proof-infrastructure/index.html new file mode 100644 index 00000000..692c2054 --- /dev/null +++ b/site/products/nation-state-ai-leverage-proof-infrastructure/index.html @@ -0,0 +1,43 @@ + + + + + + GoalOS Nation-State AI Leverage & Proof Infrastructure + + + + + +
    + QUEBEC.AI / MONTREAL.AI + +
    +
    + + + +

    GoalOS product 6

    GoalOS Nation-State AI Leverage & Proof Infrastructure

    GoalOS Nation-State AI Leverage & Proof Infrastructure

    Nation-State

    Turn national AI access into trusted, efficient, reusable, and provable capability.

    Transformer l’accès national à l’IA en capacité fiable, efficace, réutilisable et prouvable.

    +

    Who it is for / Pour qui

    Governments and public institutions

    Gouvernements et institutions publiques

    The Nation-State layer helps public institutions reason about efficient, reusable, evidence-governed AI capability without claiming endorsement or readiness.

    Delivery / Livraison

    Nation-state discovery, Proof Room portfolio design, public-sector adoption architecture, and evidence-governance roadmap.

    Découverte Nation-State, design de portefeuille Proof Room, architecture d’adoption secteur public et feuille de route gouvernance-preuve.

    Squarespace hosts the public sales or inquiry page. Stripe processes payment through Squarespace where applicable. GitHub does not host paid buyer packages.

    Squarespace héberge la page publique de vente ou de demande. Stripe traite le paiement via Squarespace lorsque applicable. GitHub n’héberge pas les forfaits payants destinés aux acheteurs.

    +

    What the buyer or client receives

    • Nation-state discovery
    • Proof Room portfolio design
    • Public-sector adoption architecture
    • Evidence-governance roadmap
    • Briefing materials
    + +

    Proof standard

    This public page points to AEP-001 — GoalOS Proof-of-Evolution Constitution as the current proof standard for GoalOS proof claims.

    Cette page publique renvoie à AEP-001 — GoalOS Proof-of-Evolution Constitution comme standard actuel de preuve pour les revendications de preuve GoalOS.

    +

    Claim boundary / Limite des revendications

    +

    Independent initiative by QUEBEC.AI / MONTREAL.AI. Not affiliated with, sponsored by, or endorsed by the Government of Canada unless a formal agreement is separately executed. This page does not provide legal, financial, procurement, medical, compliance, national-security, or investment advice. No ROI, certification, production deployment, AGI, ASI, sovereign outcome, or public-sector adoption result is guaranteed.

    +

    Initiative indépendante de QUEBEC.AI / MONTREAL.AI. Non affiliée, commanditée ni approuvée par le gouvernement du Canada sauf accord formel séparé. Cette page ne fournit pas de conseils juridiques, financiers, d’approvisionnement, médicaux, de conformité, de sécurité nationale ni d’investissement. Aucun ROI, certification, déploiement en production, AGI, ASI, résultat souverain ni résultat d’adoption du secteur public n’est garanti.

    +
    + + +
    +
    +

    Commit → Execute → Prove → Evolve

    +

    No proof, no evolution. No eval, no propagation. No rollback, no release.

    +
    + + + diff --git a/site/products/sme-ai-adoption-sprint/index.html b/site/products/sme-ai-adoption-sprint/index.html new file mode 100644 index 00000000..7f944f0d --- /dev/null +++ b/site/products/sme-ai-adoption-sprint/index.html @@ -0,0 +1,43 @@ + + + + + + GoalOS SME AI Adoption Sprint + + + + + +
    + QUEBEC.AI / MONTREAL.AI + +
    +
    + + + +

    GoalOS product 4

    GoalOS SME AI Adoption Sprint

    GoalOS SME AI Adoption Sprint

    From $15,000

    Turn one repeated SME business task into a reusable, checked, and provable AI work system — then leave with a 90-day adoption roadmap.

    Transformer une tâche d’affaires répétée de PME en système de travail IA réutilisable, vérifié et prouvable — puis repartir avec une feuille de route d’adoption de 90 jours.

    +

    Who it is for / Pour qui

    Small and medium-sized businesses

    PME

    The SME Adoption Sprint is a scoped premium engagement for small and medium-sized businesses that need an adoption roadmap grounded in one concrete workflow.

    Delivery / Livraison

    Premium bilingual SME adoption engagement after discovery and scoping.

    Engagement bilingue premium d’adoption IA pour PME après découverte et cadrage.

    Squarespace hosts the public sales or inquiry page. Stripe processes payment through Squarespace where applicable. GitHub does not host paid buyer packages.

    Squarespace héberge la page publique de vente ou de demande. Stripe traite le paiement via Squarespace lorsque applicable. GitHub n’héberge pas les forfaits payants destinés aux acheteurs.

    +

    What the buyer or client receives

    • Discovery and scoping
    • One SME workflow converted into a proof-ready AI work system
    • Risk and evidence notes
    • 90-day adoption roadmap
    • Executive summary
    + +

    Proof standard

    This public page points to AEP-001 — GoalOS Proof-of-Evolution Constitution as the current proof standard for GoalOS proof claims.

    Cette page publique renvoie à AEP-001 — GoalOS Proof-of-Evolution Constitution comme standard actuel de preuve pour les revendications de preuve GoalOS.

    +

    Claim boundary / Limite des revendications

    +

    Independent initiative by QUEBEC.AI / MONTREAL.AI. Not affiliated with, sponsored by, or endorsed by the Government of Canada unless a formal agreement is separately executed. This page does not provide legal, financial, procurement, medical, compliance, national-security, or investment advice. No ROI, certification, production deployment, AGI, ASI, sovereign outcome, or public-sector adoption result is guaranteed.

    +

    Initiative indépendante de QUEBEC.AI / MONTREAL.AI. Non affiliée, commanditée ni approuvée par le gouvernement du Canada sauf accord formel séparé. Cette page ne fournit pas de conseils juridiques, financiers, d’approvisionnement, médicaux, de conformité, de sécurité nationale ni d’investissement. Aucun ROI, certification, déploiement en production, AGI, ASI, résultat souverain ni résultat d’adoption du secteur public n’est garanti.

    +
    + + +
    +
    +

    Commit → Execute → Prove → Evolve

    +

    No proof, no evolution. No eval, no propagation. No rollback, no release.

    +
    + + + diff --git a/site/products/sovereign-country-ai-operating-system/index.html b/site/products/sovereign-country-ai-operating-system/index.html new file mode 100644 index 00000000..83e83623 --- /dev/null +++ b/site/products/sovereign-country-ai-operating-system/index.html @@ -0,0 +1,43 @@ + + + + + + GoalOS Sovereign Country AI Operating System + + + + + +
    + QUEBEC.AI / MONTREAL.AI + +
    +
    + + + +

    GoalOS product 8

    GoalOS Sovereign Country AI Operating System

    GoalOS Sovereign Country AI Operating System

    Sovereign Country

    Turn national AI access into a sovereign country operating system for trusted, efficient, reusable, and provable AI capability.

    Transformer l’accès national à l’IA en système d’exploitation souverain pour une capacité IA fiable, efficace, réutilisable et prouvable.

    +

    Who it is for / Pour qui

    Countries and national AI strategies

    Pays et stratégies nationales d’IA

    The Sovereign Country AI Operating System frames country-scale AI adoption as an operating-system architecture for proof, governance, rollout, rollback, and trust.

    Delivery / Livraison

    Country-scale AI operating-system architecture for sovereign AI adoption, proof, governance, rollout, rollback, and public trust.

    Architecture de système d’exploitation IA à l’échelle d’un pays pour adoption IA souveraine, preuve, gouvernance, déploiement, rollback et confiance publique.

    Squarespace hosts the public sales or inquiry page. Stripe processes payment through Squarespace where applicable. GitHub does not host paid buyer packages.

    Squarespace héberge la page publique de vente ou de demande. Stripe traite le paiement via Squarespace lorsque applicable. GitHub n’héberge pas les forfaits payants destinés aux acheteurs.

    +

    What the buyer or client receives

    • Country-scale AI operating-system architecture
    • Proof and governance design
    • Rollout and rollback architecture
    • Public trust model
    • Strategy briefing
    + +

    Proof standard

    This public page points to AEP-001 — GoalOS Proof-of-Evolution Constitution as the current proof standard for GoalOS proof claims.

    Cette page publique renvoie à AEP-001 — GoalOS Proof-of-Evolution Constitution comme standard actuel de preuve pour les revendications de preuve GoalOS.

    +

    Claim boundary / Limite des revendications

    +

    Independent initiative by QUEBEC.AI / MONTREAL.AI. Not affiliated with, sponsored by, or endorsed by the Government of Canada unless a formal agreement is separately executed. This page does not provide legal, financial, procurement, medical, compliance, national-security, or investment advice. No ROI, certification, production deployment, AGI, ASI, sovereign outcome, or public-sector adoption result is guaranteed.

    +

    Initiative indépendante de QUEBEC.AI / MONTREAL.AI. Non affiliée, commanditée ni approuvée par le gouvernement du Canada sauf accord formel séparé. Cette page ne fournit pas de conseils juridiques, financiers, d’approvisionnement, médicaux, de conformité, de sécurité nationale ni d’investissement. Aucun ROI, certification, déploiement en production, AGI, ASI, résultat souverain ni résultat d’adoption du secteur public n’est garanti.

    +
    + + +
    +
    +

    Commit → Execute → Prove → Evolve

    +

    No proof, no evolution. No eval, no propagation. No rollback, no release.

    +
    + + + diff --git a/site/products/sovereign-empire-ai-operating-system/index.html b/site/products/sovereign-empire-ai-operating-system/index.html new file mode 100644 index 00000000..d2207ffc --- /dev/null +++ b/site/products/sovereign-empire-ai-operating-system/index.html @@ -0,0 +1,43 @@ + + + + + + GoalOS Sovereign Empire AI Operating System + + + + + +
    + QUEBEC.AI / MONTREAL.AI + +
    +
    + + + +

    GoalOS product 9

    GoalOS Sovereign Empire AI Operating System

    GoalOS Sovereign Empire AI Operating System

    Sovereign Empire

    Turn multi-country AI access into trusted, efficient, reusable, and provable sovereign capability.

    Transformer l’accès IA multi-pays en capacité souveraine fiable, efficace, réutilisable et prouvable.

    +

    Who it is for / Pour qui

    Multi-country, multi-jurisdiction, allied sovereign networks

    Réseaux souverains alliés, multi-pays et multi-juridictions

    The Sovereign Empire AI Operating System describes a voluntary proof-governed network model for allied sovereign institutions and jurisdictions.

    Delivery / Livraison

    Multi-country, consent-based, proof-governed AI operating-system architecture for allied sovereign institutions.

    Architecture de système d’exploitation IA multi-pays, fondée sur le consentement et gouvernée par la preuve pour institutions souveraines alliées.

    Squarespace hosts the public sales or inquiry page. Stripe processes payment through Squarespace where applicable. GitHub does not host paid buyer packages.

    Squarespace héberge la page publique de vente ou de demande. Stripe traite le paiement via Squarespace lorsque applicable. GitHub n’héberge pas les forfaits payants destinés aux acheteurs.

    +

    What the buyer or client receives

    • Consent-based multi-country architecture
    • Proof-governed capability network design
    • Allied institutional coordination model
    • Evidence and public trust framework
    • Non-domination boundary design
    + +

    Proof standard

    This public page points to AEP-001 — GoalOS Proof-of-Evolution Constitution as the current proof standard for GoalOS proof claims.

    Cette page publique renvoie à AEP-001 — GoalOS Proof-of-Evolution Constitution comme standard actuel de preuve pour les revendications de preuve GoalOS.

    +

    Claim boundary / Limite des revendications

    +

    Independent initiative by QUEBEC.AI / MONTREAL.AI. Not affiliated with, sponsored by, or endorsed by the Government of Canada unless a formal agreement is separately executed. This page does not provide legal, financial, procurement, medical, compliance, national-security, or investment advice. No ROI, certification, production deployment, AGI, ASI, sovereign outcome, or public-sector adoption result is guaranteed.

    +

    Initiative indépendante de QUEBEC.AI / MONTREAL.AI. Non affiliée, commanditée ni approuvée par le gouvernement du Canada sauf accord formel séparé. Cette page ne fournit pas de conseils juridiques, financiers, d’approvisionnement, médicaux, de conformité, de sécurité nationale ni d’investissement. Aucun ROI, certification, déploiement en production, AGI, ASI, résultat souverain ni résultat d’adoption du secteur public n’est garanti.

    +
    +

    Non-domination boundary / Limite de non-domination

    Sovereign Empire means a voluntary, consent-based, proof-governed capability network across sovereign institutions and allied jurisdictions. It does not mean territorial control, domination, coercion, colonial authority, or sovereignty transfer.

    Empire souverain signifie un réseau volontaire, fondé sur le consentement et gouverné par la preuve entre institutions souveraines et juridictions alliées. Cela ne signifie pas contrôle territorial, domination, coercition, autorité coloniale ni transfert de souveraineté.

    + +
    +
    +

    Commit → Execute → Prove → Evolve

    +

    No proof, no evolution. No eval, no propagation. No rollback, no release.

    +
    + + + diff --git a/site/products/sovereign-nation-state/index.html b/site/products/sovereign-nation-state/index.html new file mode 100644 index 00000000..d8a18559 --- /dev/null +++ b/site/products/sovereign-nation-state/index.html @@ -0,0 +1,43 @@ + + + + + + GoalOS Sovereign Nation-State AI Leverage & Proof Infrastructure + + + + + +
    + QUEBEC.AI / MONTREAL.AI + +
    +
    + + + +

    GoalOS product 7

    GoalOS Sovereign Nation-State AI Leverage & Proof Infrastructure

    GoalOS Sovereign Nation-State AI Leverage & Proof Infrastructure

    Sovereign

    Turn national AI access into trusted, efficient, reusable, and provable sovereign capability.

    Transformer l’accès national à l’IA en capacité souveraine fiable, efficace, réutilisable et prouvable.

    +

    Who it is for / Pour qui

    Sovereign public institutions

    Institutions publiques souveraines

    The Sovereign Nation-State layer focuses on proof rooms, evidence dockets, selection gates, rollout, rollback, and public trust design.

    Delivery / Livraison

    Sovereign AI discovery, national control-plane architecture, public-sector Proof Rooms, Evidence Dockets, Selection Gates, rollout, rollback, and public trust design.

    Découverte IA souveraine, architecture nationale de contrôle, Proof Rooms secteur public, Evidence Dockets, Selection Gates, déploiement, rollback et design de confiance publique.

    Squarespace hosts the public sales or inquiry page. Stripe processes payment through Squarespace where applicable. GitHub does not host paid buyer packages.

    Squarespace héberge la page publique de vente ou de demande. Stripe traite le paiement via Squarespace lorsque applicable. GitHub n’héberge pas les forfaits payants destinés aux acheteurs.

    +

    What the buyer or client receives

    • Sovereign AI discovery
    • National control-plane architecture
    • Public-sector Proof Room design
    • Evidence Dockets and Selection Gates
    • Rollout, rollback, and public trust design
    + +

    Proof standard

    This public page points to AEP-001 — GoalOS Proof-of-Evolution Constitution as the current proof standard for GoalOS proof claims.

    Cette page publique renvoie à AEP-001 — GoalOS Proof-of-Evolution Constitution comme standard actuel de preuve pour les revendications de preuve GoalOS.

    +

    Claim boundary / Limite des revendications

    +

    Independent initiative by QUEBEC.AI / MONTREAL.AI. Not affiliated with, sponsored by, or endorsed by the Government of Canada unless a formal agreement is separately executed. This page does not provide legal, financial, procurement, medical, compliance, national-security, or investment advice. No ROI, certification, production deployment, AGI, ASI, sovereign outcome, or public-sector adoption result is guaranteed.

    +

    Initiative indépendante de QUEBEC.AI / MONTREAL.AI. Non affiliée, commanditée ni approuvée par le gouvernement du Canada sauf accord formel séparé. Cette page ne fournit pas de conseils juridiques, financiers, d’approvisionnement, médicaux, de conformité, de sécurité nationale ni d’investissement. Aucun ROI, certification, déploiement en production, AGI, ASI, résultat souverain ni résultat d’adoption du secteur public n’est garanti.

    +
    + + +
    +
    +

    Commit → Execute → Prove → Evolve

    +

    No proof, no evolution. No eval, no propagation. No rollback, no release.

    +
    + + + diff --git a/site/products/team-pack/index.html b/site/products/team-pack/index.html new file mode 100644 index 00000000..59fc52b7 --- /dev/null +++ b/site/products/team-pack/index.html @@ -0,0 +1,43 @@ + + + + + + GoalOS AI Efficiency Sprint — Team Pack + + + + + +
    + QUEBEC.AI / MONTREAL.AI + +
    +
    + + + +

    GoalOS product 2

    GoalOS AI Efficiency Sprint — Team Pack

    GoalOS AI Efficiency Sprint — Team Pack

    $199

    Turn one repeated team AI task into a reusable, checked, and provable work system in one workshop.

    Transformer une tâche IA répétée d’équipe en système de travail réutilisable, vérifié et prouvable en un atelier.

    +

    Who it is for / Pour qui

    Teams of up to 10 people

    Équipes jusqu’à 10 personnes

    The Team Pack adapts the Sprint into a shared workshop-in-a-box for up to 10 participants who need one repeatable team AI workflow.

    Delivery / Livraison

    Paid bilingual digital team workshop-in-a-box delivered through Squarespace after Stripe checkout.

    Atelier d’équipe bilingue en boîte livré par Squarespace après paiement Stripe.

    Squarespace hosts the public sales or inquiry page. Stripe processes payment through Squarespace where applicable. GitHub does not host paid buyer packages.

    Squarespace héberge la page publique de vente ou de demande. Stripe traite le paiement via Squarespace lorsque applicable. GitHub n’héberge pas les forfaits payants destinés aux acheteurs.

    +

    What the buyer or client receives

    • Team workshop-in-a-box
    • Facilitation guide
    • Shared context pack
    • Team rules and checks
    • Evidence log
    • Up to 10 participant workflow
    + +

    Proof standard

    This public page points to AEP-001 — GoalOS Proof-of-Evolution Constitution as the current proof standard for GoalOS proof claims.

    Cette page publique renvoie à AEP-001 — GoalOS Proof-of-Evolution Constitution comme standard actuel de preuve pour les revendications de preuve GoalOS.

    +

    Claim boundary / Limite des revendications

    +

    Independent initiative by QUEBEC.AI / MONTREAL.AI. Not affiliated with, sponsored by, or endorsed by the Government of Canada unless a formal agreement is separately executed. This page does not provide legal, financial, procurement, medical, compliance, national-security, or investment advice. No ROI, certification, production deployment, AGI, ASI, sovereign outcome, or public-sector adoption result is guaranteed.

    +

    Initiative indépendante de QUEBEC.AI / MONTREAL.AI. Non affiliée, commanditée ni approuvée par le gouvernement du Canada sauf accord formel séparé. Cette page ne fournit pas de conseils juridiques, financiers, d’approvisionnement, médicaux, de conformité, de sécurité nationale ni d’investissement. Aucun ROI, certification, déploiement en production, AGI, ASI, résultat souverain ni résultat d’adoption du secteur public n’est garanti.

    +
    + + +
    +
    +

    Commit → Execute → Prove → Evolve

    +

    No proof, no evolution. No eval, no propagation. No rollback, no release.

    +
    + + + diff --git a/site/products/workshop/index.html b/site/products/workshop/index.html new file mode 100644 index 00000000..84d32b51 --- /dev/null +++ b/site/products/workshop/index.html @@ -0,0 +1,43 @@ + + + + + + GoalOS AI Efficiency Workshop + + + + + +
    + QUEBEC.AI / MONTREAL.AI + +
    +
    + + + +

    GoalOS product 3

    GoalOS AI Efficiency Workshop

    Atelier GoalOS AI Efficiency

    $2,500

    Turn one repeated organizational AI task into a reusable, checked, and provable work system in one live workshop.

    Transformer une tâche IA répétée de l’organisation en système de travail réutilisable, vérifié et prouvable en un atelier en direct.

    +

    Who it is for / Pour qui

    Organizations

    Organisations

    The Workshop is a live bilingual engagement for organizations that want facilitated conversion of one repeated AI task into a checked proof-ready workflow.

    Delivery / Livraison

    Live bilingual workshop with scheduling after purchase or inquiry.

    Atelier bilingue en direct avec planification après achat ou demande.

    Squarespace hosts the public sales or inquiry page. Stripe processes payment through Squarespace where applicable. GitHub does not host paid buyer packages.

    Squarespace héberge la page publique de vente ou de demande. Stripe traite le paiement via Squarespace lorsque applicable. GitHub n’héberge pas les forfaits payants destinés aux acheteurs.

    +

    What the buyer or client receives

    • Live bilingual workshop
    • One repeated organizational workflow mapped
    • Reusable context and rules
    • Checks and proof artifacts
    • Implementation next steps
    + +

    Proof standard

    This public page points to AEP-001 — GoalOS Proof-of-Evolution Constitution as the current proof standard for GoalOS proof claims.

    Cette page publique renvoie à AEP-001 — GoalOS Proof-of-Evolution Constitution comme standard actuel de preuve pour les revendications de preuve GoalOS.

    +

    Claim boundary / Limite des revendications

    +

    Independent initiative by QUEBEC.AI / MONTREAL.AI. Not affiliated with, sponsored by, or endorsed by the Government of Canada unless a formal agreement is separately executed. This page does not provide legal, financial, procurement, medical, compliance, national-security, or investment advice. No ROI, certification, production deployment, AGI, ASI, sovereign outcome, or public-sector adoption result is guaranteed.

    +

    Initiative indépendante de QUEBEC.AI / MONTREAL.AI. Non affiliée, commanditée ni approuvée par le gouvernement du Canada sauf accord formel séparé. Cette page ne fournit pas de conseils juridiques, financiers, d’approvisionnement, médicaux, de conformité, de sécurité nationale ni d’investissement. Aucun ROI, certification, déploiement en production, AGI, ASI, résultat souverain ni résultat d’adoption du secteur public n’est garanti.

    +
    + + +
    +
    +

    Commit → Execute → Prove → Evolve

    +

    No proof, no evolution. No eval, no propagation. No rollback, no release.

    +
    + + + diff --git a/tests/test_goalos_claim_boundaries.py b/tests/test_goalos_claim_boundaries.py new file mode 100644 index 00000000..d1006205 --- /dev/null +++ b/tests/test_goalos_claim_boundaries.py @@ -0,0 +1,11 @@ +import sys +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(ROOT / "scripts")) + +import repo_claim_boundary_check as claims + + +def test_goalos_public_claim_boundaries(): + assert claims.find_violations() == [] diff --git a/tests/test_goalos_product_catalog.py b/tests/test_goalos_product_catalog.py new file mode 100644 index 00000000..a6b5eb88 --- /dev/null +++ b/tests/test_goalos_product_catalog.py @@ -0,0 +1,13 @@ +import sys +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(ROOT / "scripts")) + +import validate_goalos_products as validator + + +def test_goalos_catalog_has_exactly_nine_valid_products(): + products = validator.load_products() + assert len(products) == 9 + assert validator.validate_catalog(products) == [] diff --git a/tests/test_goalos_product_pages.py b/tests/test_goalos_product_pages.py new file mode 100644 index 00000000..ee853bad --- /dev/null +++ b/tests/test_goalos_product_pages.py @@ -0,0 +1,17 @@ +import sys +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(ROOT / "scripts")) + +import check_site_links +import validate_goalos_products as validator + + +def test_goalos_product_pages_exist_and_link_aep001(): + products = validator.load_products() + assert validator.validate_pages(products) == [] + + +def test_site_local_links_resolve(): + assert check_site_links.find_broken() == [] diff --git a/tests/test_no_paid_product_files.py b/tests/test_no_paid_product_files.py new file mode 100644 index 00000000..19dd4a64 --- /dev/null +++ b/tests/test_no_paid_product_files.py @@ -0,0 +1,11 @@ +import sys +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(ROOT / "scripts")) + +import guard_no_paid_product_files as guard + + +def test_no_forbidden_paid_product_zip_files(): + assert guard.find_offenders() == [] From d27b55a6fcb8e908c687df70e04106895b9bcfc9 Mon Sep 17 00:00:00 2001 From: "MONTREAL.AI" Date: Thu, 4 Jun 2026 21:05:15 -0400 Subject: [PATCH 2/2] Fix GoalOS product guard and site QA --- .github/workflows/tests.yml | 3 +++ scripts/guard_no_paid_product_files.py | 2 +- site/app.js | 6 ++++++ site/styles.css | 6 ++++++ tests/test_no_paid_product_files.py | 16 ++++++++++++++++ 5 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 site/app.js create mode 100644 site/styles.css diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8676861f..d03ec162 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,6 +23,9 @@ jobs: with: python-version: '3.13' + - name: Install Python dependencies + run: python -m pip install -e '.[dev]' + - name: Run SkillOS QA run: python scripts/qa_check.py diff --git a/scripts/guard_no_paid_product_files.py b/scripts/guard_no_paid_product_files.py index 0bb9e9b6..f09eb19b 100755 --- a/scripts/guard_no_paid_product_files.py +++ b/scripts/guard_no_paid_product_files.py @@ -7,7 +7,7 @@ from pathlib import Path ROOT = Path(__file__).resolve().parents[1] -PUBLIC_PREFIXES = ("site", "docs", "data", ".github") +PUBLIC_PREFIXES = ("site", "docs", "data", ".github", "releases") PAID_PATTERNS = [ "*BUYER_PRODUCT*.zip", "*CLIENT_PACKAGE*.zip", diff --git a/site/app.js b/site/app.js new file mode 100644 index 00000000..85e3edb2 --- /dev/null +++ b/site/app.js @@ -0,0 +1,6 @@ +/* Proof Gradient public site bootstrap. + * Intentionally dependency-free: existing pages are static and generated server-side. + */ +(function () { + document.documentElement.dataset.proofGradientSite = "static"; +})(); diff --git a/site/styles.css b/site/styles.css new file mode 100644 index 00000000..28353909 --- /dev/null +++ b/site/styles.css @@ -0,0 +1,6 @@ +/* Proof Gradient public site fallback stylesheet. + * Most existing pages carry inline critical CSS; this file preserves the QA contract. + */ +:root { + color-scheme: dark; +} diff --git a/tests/test_no_paid_product_files.py b/tests/test_no_paid_product_files.py index 19dd4a64..a7570af9 100644 --- a/tests/test_no_paid_product_files.py +++ b/tests/test_no_paid_product_files.py @@ -9,3 +9,19 @@ def test_no_forbidden_paid_product_zip_files(): assert guard.find_offenders() == [] + + +def test_forbidden_paid_zip_under_releases_is_reported(tmp_path, monkeypatch): + fake_root = tmp_path + releases = fake_root / "releases" + releases.mkdir() + offender = releases / "GoalOS_AI_Efficiency_Sprint_TEST.zip" + offender.write_bytes(b"not a real paid package") + + allowed = releases / "AEP-001" + allowed.mkdir() + allowed_archive = allowed / "GoalOS_AI_Efficiency_Sprint_ALLOWED.zip" + allowed_archive.write_bytes(b"allowed standards archive exception") + + monkeypatch.setattr(guard, "ROOT", fake_root) + assert guard.find_offenders() == [Path("releases/GoalOS_AI_Efficiency_Sprint_TEST.zip")]