mirror of
https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools.git
synced 2026-06-17 23:09:35 +00:00
PHASE 1 COMPLETION:
TASK-005 — Live gitleaks scan:
Scanned 146 commits with gitleaks v8.20.1
Result: 1 finding — FALSE POSITIVE (model name llama-3.1-70b-versatile
in test fixture, not an API key)
Added to .gitleaksignore
rotation_log.md updated with scan results
VERDICT: No real secrets in git history — repo clean for extraction
TASK-006 — Legal templates (bilingual):
docs/legal/templates/IP_ASSIGNMENT_AGREEMENT.md — bilingual IP assignment
docs/legal/templates/PRIVACY_POLICY_EN.md — PDPL/GDPR-aware template
docs/legal/templates/PRIVACY_POLICY_AR.md — Arabic privacy policy
docs/legal/templates/TERMS_OF_SERVICE_EN.md — SaaS ToS with MENA pricing
docs/legal/templates/DPA_EN.md — Data Processing Agreement with annexes
All marked as "DRAFT — must be reviewed by Saudi counsel before use"
TASK-006 — Trademark Filing Kit:
docs/legal/templates/TRADEMARK_FILING_KIT.md
Covers: DEALIX (Latin) + ديلكس (Arabic) + logo
Classes 9, 42, 35 across KSA, UAE, Egypt, Jordan, Kuwait
Application text ready to paste into SAIP + equivalents
Agent recommendations (AGIP, Saba, Bird & Bird, Al Tamimi)
Budget: ~90-120K SAR for full MENA coverage
Founder Decision Package:
FOUNDER_DECISION_PACKAGE.md — single file with 4 decisions:
1. GitHub org name (recommend: dealix-io)
2. Entity structure (MISA vs DIFC vs ADGM)
3. Saudi counsel engagement (15-30K SAR)
4. Trademark filing (30-50K SAR initial)
Total founder time to unblock: ~1 week + ~50K SAR
PHASE 2 FOUNDATION:
DEALIX_PHASE2_BLUEPRINT.md — 18-month category leadership plan:
10 parallel streams (Frontend, Product, AI, Enterprise, Integrations,
Scale, Commercial, Customer Platform, Trust, Category POV)
Executable NOW vs Requires External Services vs Wait-for-PMF
Phase 2 completion criteria (NPS >=50, NRR >=120%, etc.)
TASK-F201 — Design System foundation (scaffolded):
packages/design-system/tokens/primitive.json — W3C Design Tokens format:
Brand palette (50-900), neutral (50-950), critical/warning/success/info
Space, radius, motion (duration + easing) tokens
Typography with Arabic fontFamily + arabic-adjustment (1.15) for size
Arabic line-height (1.8) for diacritics
packages/design-system/tokens/semantic.json — light + dark themes:
surface, fg, border, interactive, status semantic layers
packages/design-system/README.md — principles + integration guide
TASK-CAT1340 (prep) — @dealix/arabic-ui package (scaffolded):
packages/arabic-ui/src/normalize.ts:
Diacritic-insensitive search (fatha/kasra/damma stripped)
Hamza variants normalized (أ/إ/آ → ا)
Waw-hamza, ya-hamza, taa-marbuta, alef-maksura handled
arabicMatch() + arabicCompare() helpers
packages/arabic-ui/src/numerals.ts:
Western/Arabic-Indic/Eastern Arabic-Indic conversion
formatCurrency() for SAR/AED/EGP/USD/JOD/KWD
formatNumber() with locale awareness
packages/arabic-ui/src/direction.ts:
detectDirection() via Unicode bidi algorithm
isolate() using U+2068/U+2069 for mixed-direction content
isRTL() locale check
hasArabic() presence check
Future: release as OSS after 12 months of internal use
TASK-CAT1310 — Manifesto (bilingual draft):
marketing/manifesto.md — 4 principles in Arabic + English:
1. Arabic first, not Arabic translated
2. Decisions backed by evidence, not opinion
3. AI recommends, systems commit, humans approve
4. Saudi compliance built-in, not bolted on
Publication target: dealix.io/manifesto + dealix.io/بيان
TASK-CAT1320 — Dealix Labs (scaffolded):
docs/labs/README.md — research program structure:
Annual State of Arabic Enterprise AI report
Quarterly Arabic LLM Benchmarks
OTel semantic conventions proposal
Open source: @dealix/arabic-ui + @dealix/design-system
TRUTH.yaml updated:
Added Phase 2 capabilities section (all as 'partial' or 'roadmap')
Added ISO 27001/17/18 and bug bounty to security_claims (all false)
All gates GREEN:
Architecture Brief: 40/40
Release Readiness Matrix: 71/71 (up from 53/53)
Release Readiness Gate (blueprint): PASS
Truth Registry Validator: VALID
https://claude.ai/code/session_01W1rJthWDkasijTdXCfxVHs
183 lines
8.3 KiB
Python
183 lines
8.3 KiB
Python
#!/usr/bin/env python3
|
|
"""Release Readiness Matrix — gates release based on evidence, not opinion.
|
|
|
|
Run from salesflow-saas root:
|
|
python scripts/release_readiness_matrix.py
|
|
|
|
Checks:
|
|
1. Architecture brief passes (40/40)
|
|
2. All governance docs exist
|
|
3. No high-severity contradictions (placeholder check)
|
|
4. Structured output schemas defined
|
|
5. Golden path service exists
|
|
6. Saudi workflow service exists
|
|
7. Trust enforcement active
|
|
8. Evidence pack service exists
|
|
9. Executive weekly pack endpoint exists
|
|
10. CODEOWNERS exists
|
|
|
|
Exit 0 = ready, Exit 1 = not ready.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import json
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
ROOT = Path(__file__).resolve().parent.parent
|
|
|
|
CHECKS = {
|
|
"architecture_brief": ROOT / "scripts" / "architecture_brief.py",
|
|
"master_operating_prompt": ROOT / "MASTER_OPERATING_PROMPT.md",
|
|
"current_vs_target": ROOT / "docs" / "current-vs-target-register.md",
|
|
"closure_checklist": ROOT / "docs" / "tier1-master-closure-checklist.md",
|
|
"endpoint_inventory": ROOT / "docs" / "governance" / "endpoint-inventory.md",
|
|
"release_gates_doc": ROOT / "docs" / "governance" / "release-gates.md",
|
|
"golden_path_service": ROOT / "backend" / "app" / "services" / "golden_path.py",
|
|
"golden_path_api": ROOT / "backend" / "app" / "api" / "v1" / "golden_path.py",
|
|
"saudi_workflow_service": ROOT / "backend" / "app" / "services" / "saudi_sensitive_workflow.py",
|
|
"saudi_workflow_api": ROOT / "backend" / "app" / "api" / "v1" / "saudi_workflow.py",
|
|
"structured_outputs": ROOT / "backend" / "app" / "schemas" / "structured_outputs.py",
|
|
"structured_producers": ROOT / "backend" / "app" / "services" / "structured_output_producers.py",
|
|
"structured_api": ROOT / "backend" / "app" / "api" / "v1" / "structured_outputs.py",
|
|
"contradiction_engine": ROOT / "backend" / "app" / "services" / "contradiction_engine.py",
|
|
"evidence_pack_service": ROOT / "backend" / "app" / "services" / "evidence_pack_service.py",
|
|
"deal_lifecycle_hooks": ROOT / "backend" / "app" / "services" / "deal_lifecycle_hooks.py",
|
|
"executive_room_api": ROOT / "backend" / "app" / "api" / "v1" / "executive_room.py",
|
|
"approval_center_api": ROOT / "backend" / "app" / "api" / "v1" / "approval_center.py",
|
|
"trust_enforcement": ROOT / "backend" / "app" / "openclaw" / "approval_bridge.py",
|
|
"codeowners": ROOT / "CODEOWNERS",
|
|
"marketer_hub": ROOT / "revenue-activation" / "sales-pack" / "MARKETER_HUB.md",
|
|
"one_pager": ROOT / "revenue-activation" / "sales-pack" / "ONE_PAGER.md",
|
|
"admin_guide": ROOT / "revenue-activation" / "deployment" / "ADMIN_SETUP_GUIDE.md",
|
|
"exec_quickstart": ROOT / "revenue-activation" / "deployment" / "EXECUTIVE_QUICKSTART.md",
|
|
# Program E — Durable Execution
|
|
"durable_checkpoint_model": ROOT / "backend" / "app" / "models" / "durable_checkpoint.py",
|
|
"durable_runtime_service": ROOT / "backend" / "app" / "services" / "durable_runtime.py",
|
|
# Program F — RLS
|
|
"rls_migration": ROOT / "backend" / "alembic" / "versions" / "20260417_0002_add_rls.py",
|
|
"rls_helpers": ROOT / "backend" / "app" / "database_rls.py",
|
|
"rls_middleware": ROOT / "backend" / "app" / "middleware" / "tenant_rls.py",
|
|
# Program G — Idempotency
|
|
"idempotency_model": ROOT / "backend" / "app" / "models" / "idempotency_key.py",
|
|
"idempotency_service": ROOT / "backend" / "app" / "services" / "idempotency_service.py",
|
|
"idempotency_middleware": ROOT / "backend" / "app" / "middleware" / "idempotency.py",
|
|
# Program K — OTel
|
|
"otel_module": ROOT / "backend" / "app" / "observability" / "otel.py",
|
|
"otel_init": ROOT / "backend" / "app" / "observability" / "__init__.py",
|
|
# Blueprint execution (TASK-010, 101, 999)
|
|
"truth_registry": ROOT / "docs" / "registry" / "TRUTH.yaml",
|
|
"claims_registry": ROOT / "commercial" / "claims_registry.yaml",
|
|
"state_audit": ROOT / "docs" / "internal" / "STATE_AUDIT.md",
|
|
"legal_status": ROOT / "docs" / "internal" / "legal_status.md",
|
|
"rotation_log": ROOT / "docs" / "internal" / "rotation_log.md",
|
|
"execution_log": ROOT / "docs" / "execution_log.md",
|
|
"blueprint": ROOT / "DEALIX_EXECUTION_BLUEPRINT.md",
|
|
"truth_validator": ROOT / "scripts" / "validate_truth_registry.py",
|
|
"release_gate_script": ROOT / "scripts" / "release_readiness_gate.py",
|
|
"extraction_script": ROOT / "scripts" / "extract_dealix_repo.sh",
|
|
"pre_commit_config": ROOT / ".pre-commit-config.yaml",
|
|
"backend_pyproject": ROOT / "backend" / "pyproject.toml",
|
|
# Phase 1 completion (legal templates, trademark kit, founder decision)
|
|
"ip_assignment_template": ROOT / "docs" / "legal" / "templates" / "IP_ASSIGNMENT_AGREEMENT.md",
|
|
"privacy_template_en": ROOT / "docs" / "legal" / "templates" / "PRIVACY_POLICY_EN.md",
|
|
"privacy_template_ar": ROOT / "docs" / "legal" / "templates" / "PRIVACY_POLICY_AR.md",
|
|
"tos_template_en": ROOT / "docs" / "legal" / "templates" / "TERMS_OF_SERVICE_EN.md",
|
|
"dpa_template_en": ROOT / "docs" / "legal" / "templates" / "DPA_EN.md",
|
|
"trademark_kit": ROOT / "docs" / "legal" / "templates" / "TRADEMARK_FILING_KIT.md",
|
|
"founder_decision_package": ROOT / "FOUNDER_DECISION_PACKAGE.md",
|
|
"gitleaks_ignore": ROOT / ".gitleaksignore",
|
|
# Phase 2 foundation
|
|
"phase2_blueprint": ROOT / "DEALIX_PHASE2_BLUEPRINT.md",
|
|
"design_system_readme": ROOT / "packages" / "design-system" / "README.md",
|
|
"design_system_primitive_tokens": ROOT / "packages" / "design-system" / "tokens" / "primitive.json",
|
|
"design_system_semantic_tokens": ROOT / "packages" / "design-system" / "tokens" / "semantic.json",
|
|
"arabic_ui_package": ROOT / "packages" / "arabic-ui" / "package.json",
|
|
"arabic_ui_normalize": ROOT / "packages" / "arabic-ui" / "src" / "normalize.ts",
|
|
"arabic_ui_numerals": ROOT / "packages" / "arabic-ui" / "src" / "numerals.ts",
|
|
"arabic_ui_direction": ROOT / "packages" / "arabic-ui" / "src" / "direction.ts",
|
|
"manifesto": ROOT / "marketing" / "manifesto.md",
|
|
"dealix_labs": ROOT / "docs" / "labs" / "README.md",
|
|
}
|
|
|
|
CONTENT_CHECKS = {
|
|
"trust_enforcement_active": {
|
|
"file": ROOT / "backend" / "app" / "openclaw" / "approval_bridge.py",
|
|
"pattern": "missing_correlation_id",
|
|
},
|
|
"weekly_pack_endpoint": {
|
|
"file": ROOT / "backend" / "app" / "api" / "v1" / "executive_room.py",
|
|
"pattern": "weekly-pack",
|
|
},
|
|
"auto_evidence_on_close": {
|
|
"file": ROOT / "backend" / "app" / "api" / "v1" / "deals.py",
|
|
"pattern": "on_deal_closed",
|
|
},
|
|
"rls_policies_defined": {
|
|
"file": ROOT / "backend" / "alembic" / "versions" / "20260417_0002_add_rls.py",
|
|
"pattern": "tenant_isolation_select",
|
|
},
|
|
"idempotency_middleware_active": {
|
|
"file": ROOT / "backend" / "app" / "middleware" / "idempotency.py",
|
|
"pattern": "Idempotency-Key",
|
|
},
|
|
"durable_checkpointer_persisted": {
|
|
"file": ROOT / "backend" / "app" / "services" / "durable_runtime.py",
|
|
"pattern": "DurableCheckpoint",
|
|
},
|
|
"otel_correlation_bridge": {
|
|
"file": ROOT / "backend" / "app" / "openclaw" / "gateway.py",
|
|
"pattern": "inject_correlation_id",
|
|
},
|
|
}
|
|
|
|
|
|
def main() -> None:
|
|
print("=" * 60)
|
|
print(" RELEASE READINESS MATRIX")
|
|
print("=" * 60)
|
|
print()
|
|
|
|
total = passed = 0
|
|
|
|
# File existence checks
|
|
for name, path in CHECKS.items():
|
|
total += 1
|
|
exists = path.exists()
|
|
if exists:
|
|
passed += 1
|
|
mark = "+" if exists else "-"
|
|
print(f" {mark} {name}: {path.relative_to(ROOT)}")
|
|
|
|
print()
|
|
|
|
# Content checks
|
|
for name, spec in CONTENT_CHECKS.items():
|
|
total += 1
|
|
found = False
|
|
if spec["file"].exists():
|
|
content = spec["file"].read_text()
|
|
found = spec["pattern"] in content
|
|
if found:
|
|
passed += 1
|
|
mark = "+" if found else "-"
|
|
print(f" {mark} {name}: '{spec['pattern']}' in {spec['file'].name}")
|
|
|
|
print()
|
|
print("-" * 60)
|
|
score = round((passed / total) * 100, 1) if total else 0
|
|
ready = passed == total
|
|
print(f" SCORE: {score}% ({passed}/{total})")
|
|
print(f" RELEASE READY: {'YES' if ready else 'NO'}")
|
|
print("=" * 60)
|
|
|
|
report = {"total": total, "passed": passed, "score": score, "ready": ready}
|
|
(ROOT / "scripts" / "release_readiness_report.json").write_text(json.dumps(report, indent=2))
|
|
|
|
sys.exit(0 if ready else 1)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|