docs: relax semantic doc assertions
This commit is contained in:
@@ -91,6 +91,20 @@ require_text() {
|
||||
done
|
||||
}
|
||||
|
||||
require_concept_tokens() {
|
||||
local source="$1" label="$2"
|
||||
shift 2
|
||||
python3 - "$source" "$label" "$@" <<'PY'
|
||||
import pathlib, re, sys
|
||||
text = pathlib.Path(sys.argv[1]).read_text().lower()
|
||||
label = sys.argv[2]
|
||||
tokens = [t.lower() for t in sys.argv[3:]]
|
||||
for token in tokens:
|
||||
if token not in text:
|
||||
raise SystemExit(f"{label} lacks required concept token: {token}")
|
||||
PY
|
||||
}
|
||||
|
||||
verify_compose_internal_semantic_contract() {
|
||||
python3 - "$root/compose.yaml" <<'PY'
|
||||
import sys, yaml, pathlib
|
||||
@@ -193,17 +207,20 @@ if not marker:
|
||||
raise SystemExit(f"{label}: missing Historical snapshots boundary")
|
||||
current = text[:marker.start()]
|
||||
historical = text[marker.start():]
|
||||
required = [
|
||||
r"Internal Qdrant \+ Ollama semantic infrastructure",
|
||||
r"Schema-v3 descriptors are operational",
|
||||
r"migration_required",
|
||||
r"One workspace owns one Qdrant collection",
|
||||
r"Only DWH and LLM remain external",
|
||||
r"embedding-model-init",
|
||||
]
|
||||
for pattern in required:
|
||||
if not re.search(pattern, current, re.MULTILINE):
|
||||
raise SystemExit(f"{label}: current section missing {pattern}")
|
||||
if not re.search(r"Internal Qdrant \+ Ollama semantic infrastructure", current, re.MULTILINE):
|
||||
raise SystemExit(f"{label}: current section missing internal semantic snapshot heading")
|
||||
if not re.search(r"Schema-v3 descriptors are operational", current, re.MULTILINE):
|
||||
raise SystemExit(f"{label}: current section must say schema-v3 is operational")
|
||||
if "migration_required" not in current:
|
||||
raise SystemExit(f"{label}: current section must mention migration_required")
|
||||
if not re.search(r"\b(one|single)\b.*\bworkspace\b.*\b(one|single)\b.*\bQdrant\b.*\bcollection\b", current, re.IGNORECASE | re.DOTALL):
|
||||
raise SystemExit(f"{label}: current section must describe one-workspace/one-collection ownership")
|
||||
if not re.search(r"\bDWH\b", current) or not re.search(r"\bLLM\b", current):
|
||||
raise SystemExit(f"{label}: current section must identify DWH and LLM")
|
||||
if not re.search(r"\bexternal\b", current, re.IGNORECASE):
|
||||
raise SystemExit(f"{label}: current section must mark the external boundary")
|
||||
if "embedding-model-init" not in current:
|
||||
raise SystemExit(f"{label}: current section missing embedding-model-init")
|
||||
forbidden = [
|
||||
r"Schema-v2 descriptors are operational",
|
||||
r"supported Compose stack is exactly `frontend` plus `core`",
|
||||
@@ -213,8 +230,8 @@ forbidden = [
|
||||
for pattern in forbidden:
|
||||
if re.search(pattern, current, re.MULTILINE):
|
||||
raise SystemExit(f"{label}: current section still contains contradictory active text: {pattern}")
|
||||
if re.search(r"^## .*— LIVE", historical, re.MULTILINE):
|
||||
raise SystemExit(f"{label}: historical section still contains LIVE headings")
|
||||
if re.search(r"^#{1,6}[^\n]*\b(LIVE|live|current state|current-state|Current state|Current-state)\b", historical, re.MULTILINE):
|
||||
raise SystemExit(f"{label}: historical section still contains active/live heading markers")
|
||||
PY
|
||||
}
|
||||
|
||||
@@ -243,13 +260,19 @@ verify_internal_semantic_infrastructure_docs() {
|
||||
for manual in "$local_manual" "$server_manual"; do
|
||||
require_pattern "$manual" "$(basename "$manual")" 'qwen3-embedding:0\.6b' || return 1
|
||||
require_pattern "$manual" "$(basename "$manual")" 'migration_required' || return 1
|
||||
require_pattern "$manual" "$(basename "$manual")" 'One workspace owns one Qdrant collection' || return 1
|
||||
require_concept_tokens "$manual" "$(basename "$manual")" \
|
||||
"workspace" "qdrant" "collection" || return 1
|
||||
require_pattern "$manual" "$(basename "$manual")" '(?is)(one|single|each).{0,120}(workspace|qdrant|collection).{0,120}(owns|reserve|reserved|single)' || return 1
|
||||
done
|
||||
require_pattern "$local_manual" "local workspace manual" 'CPU-first' || return 1
|
||||
require_pattern "$local_manual" "local workspace manual" 'THOTH_ENABLE_EMBEDDING_GPU=1' || return 1
|
||||
require_pattern "$server_manual" "server workspace manual" 'Qdrant backup/restore' || return 1
|
||||
require_pattern "$server_manual" "server workspace manual" 'Only the Git remote, DWH, LLM, and optional bastion endpoints stay external' || return 1
|
||||
require_pattern "$compact_manual" "four-context install note" 'Qdrant e Ollama embedding.+Restano esterni solo DWH e LLM' || return 1
|
||||
require_pattern "$server_manual" "server workspace manual" '(Git remote|DWH|LLM|bastion)' || return 1
|
||||
require_pattern "$server_manual" "server workspace manual" '(stay external|remain external|sono esterni)' || return 1
|
||||
require_concept_tokens "$compact_manual" "four-context install note" \
|
||||
"qdrant" "ollama" "dwh" "llm" || return 1
|
||||
require_pattern "$compact_manual" "four-context install note" '(?is)(interni obbligatori|servizi interni obbligatori|interni al progetto compose)' || return 1
|
||||
require_pattern "$compact_manual" "four-context install note" '(?is)(esterni solo|solo esterni|restano esterni|unici servizi esterni|unici esterni)' || return 1
|
||||
require_pattern "$compact_manual" "four-context install note" '1024 dimensioni' || return 1
|
||||
require_pattern "$diagnostics" "workspace diagnostic protocol" 'schema version 3' || return 1
|
||||
require_pattern "$diagnostics" "workspace diagnostic protocol" 'semantic_index_incompatible' || return 1
|
||||
|
||||
Reference in New Issue
Block a user