v4.1 go-live cut, Moonshot to Mistral swap, v5.x superseded
Mark v5.0/v5.1 SUPERSEDED (error-detection thesis failed at -0.40 delta); v4.1 is canonical. Cut v4.1 proposal with 12 version strings bumped. Moonshot to Mistral across production seats; production worker de-kimi'd 2026-08-18. Data-retention posture corrected 7/9 to 8/9 no-training (DeepSeek sole exception). Reconciled COGS with measured Mistral spend. Committed deployed v4.0 content and research docs to resolve the repo/live fork.
This commit is contained in:
+144
@@ -0,0 +1,144 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Verify VerdictTank index-v5.1.html against v5.1 rules."""
|
||||
import re, sys
|
||||
from html.parser import HTMLParser
|
||||
|
||||
F = "/root/projects/verdicttank/index-v5.1.html"
|
||||
html = open(F, encoding="utf-8").read()
|
||||
fail = []
|
||||
|
||||
print("=== FORBIDDEN TOKENS (all must be 0) ===")
|
||||
forbidden = ["\u2014", "GPT-5.6", "unlimited", "Unlimited", "UNLIMITED",
|
||||
"11 seats", "11-seat", "11 models", "11-judge", "9 vendors",
|
||||
"9-vendor", "eleven", "nine vendors", "nine-vendor",
|
||||
"nine rostered", "Three tiers", "$299"]
|
||||
for pat in forbidden:
|
||||
n = html.count(pat)
|
||||
print(f" {pat!r:22} {n}")
|
||||
if n:
|
||||
fail.append(f"forbidden token present: {pat!r} x{n}")
|
||||
|
||||
# $79 as a standalone price (not $799)
|
||||
n79 = len(re.findall(r"\$79(?!\d)", html))
|
||||
print(f" {'$79 (standalone)':22} {n79}")
|
||||
if n79:
|
||||
fail.append(f"stale $79 price x{n79}")
|
||||
|
||||
print("\n=== REQUIRED TOKENS (all must be >0) ===")
|
||||
required = ["6-seat", "6 seats", "5 vendors", "4-seat reduced", "$5.20",
|
||||
"$249", "$799", "$1,499", "$207", "$666", "$1,249",
|
||||
"$15/review", "$10/review", "Most popular", "Pre-Review Coach",
|
||||
"v5.1", "verdicttank.com", "Moonshot AI", "Legal + Compliance",
|
||||
"Financial + Market", "Synthesis + Gate", "Cross-Check"]
|
||||
for pat in required:
|
||||
n = html.count(pat)
|
||||
print(f" {pat!r:22} {n}")
|
||||
if not n:
|
||||
fail.append(f"required token missing: {pat!r}")
|
||||
|
||||
print("\n=== COGS ARITHMETIC ===")
|
||||
c = 5.20
|
||||
for name, q, rev, claimed_cogs, claimed_m in [
|
||||
("Pro", 5, 249, 26, 90), ("Enterprise", 30, 799, 156, 80),
|
||||
("White-Label", 50, 1499, 260, 83)]:
|
||||
cogs = q * c
|
||||
m = (rev - cogs) / rev * 100
|
||||
ok = abs(cogs - claimed_cogs) < 0.01 and abs(round(m) - claimed_m) <= 1
|
||||
print(f" {name:12} {q:2} x ${c} = ${cogs:7.2f} on ${rev:5} -> {m:.1f}% "
|
||||
f"(page claims ${claimed_cogs}/{claimed_m}%) {'OK' if ok else 'MISMATCH'}")
|
||||
if not ok:
|
||||
fail.append(f"COGS mismatch for {name}")
|
||||
|
||||
print(f" overage $15 / ${c} = {15/c:.2f}x COGS (page: roughly 3x)")
|
||||
print(f" overage $10 / ${c} = {10/c:.2f}x COGS (page: roughly 2x)")
|
||||
for base, ann in [(249, 207), (799, 666), (1499, 1249)]:
|
||||
d = (1 - ann / base) * 100
|
||||
ok = abs(d - 16.7) < 1.0
|
||||
print(f" annual {base} -> {ann} = {d:.1f}% off {'OK' if ok else 'CHECK'}")
|
||||
if not ok:
|
||||
fail.append(f"annual discount off for {base}->{ann}: {d:.1f}%")
|
||||
print(f" AutogenAI $30K / Ent $9,588/yr = {30000/(799*12):.2f}x (page: 3.1x)")
|
||||
print(f" AutogenAI $30K / WL $17,988/yr = {30000/(1499*12):.2f}x (page: 1.7x)")
|
||||
|
||||
print("\n=== ANTHROPIC CONCENTRATION ===")
|
||||
roster = re.search(r"<h3>The roster</h3>.*?</table>", html, re.S).group(0)
|
||||
rows = re.findall(r"<tr><td>.*?</tr>", roster, re.S)
|
||||
vendors = [re.findall(r"<td>([^<]*)</td>", r) for r in rows]
|
||||
seats = [(v[1], v[2], v[3], v[4]) for v in vendors if len(v) >= 5]
|
||||
print(f" total seats: {len(seats)}")
|
||||
for s in seats:
|
||||
print(f" {s[0]:20} {s[1]:18} {s[2]:12} scores={s[3]}")
|
||||
vs = {}
|
||||
for s in seats:
|
||||
vs[s[2]] = vs.get(s[2], 0) + 1
|
||||
print(f" distinct vendors: {len(vs)} -> {vs}")
|
||||
anth = vs.get("Anthropic", 0)
|
||||
print(f" Anthropic: {anth}/{len(seats)} = {anth/len(seats)*100:.0f}%")
|
||||
if len(seats) != 6:
|
||||
fail.append(f"roster has {len(seats)} seats, expected 6")
|
||||
if len(vs) != 5:
|
||||
fail.append(f"roster has {len(vs)} vendors, expected 5")
|
||||
if anth != 2:
|
||||
fail.append(f"Anthropic holds {anth} seats, expected 2")
|
||||
|
||||
print("\n=== HTML STRUCTURE ===")
|
||||
VOID = {"br", "img", "meta", "link", "hr", "input", "area", "base", "col",
|
||||
"embed", "source", "track", "wbr"}
|
||||
class P(HTMLParser):
|
||||
def __init__(self):
|
||||
super().__init__(convert_charrefs=True)
|
||||
self.st, self.err = [], []
|
||||
def handle_starttag(self, t, a):
|
||||
if t not in VOID:
|
||||
self.st.append((t, self.getpos()))
|
||||
def handle_endtag(self, t):
|
||||
if t in VOID:
|
||||
return
|
||||
if not self.st:
|
||||
self.err.append(f"stray </{t}> at {self.getpos()}")
|
||||
return
|
||||
if self.st[-1][0] != t:
|
||||
self.err.append(f"mismatch </{t}> at {self.getpos()}, "
|
||||
f"open <{self.st[-1][0]}> from {self.st[-1][1]}")
|
||||
else:
|
||||
self.st.pop()
|
||||
p = P()
|
||||
p.feed(html)
|
||||
print(f" unclosed tags: {p.st or 'none'}")
|
||||
print(f" structure errors: {p.err or 'none'}")
|
||||
if p.st or p.err:
|
||||
fail.append("HTML structure problems")
|
||||
|
||||
print("\n=== PRICING LAYOUT ===")
|
||||
cards = len(re.findall(r'class="price-card', html))
|
||||
print(f" price-card divs: {cards} (expected 4)")
|
||||
if cards != 4:
|
||||
fail.append(f"{cards} price cards, expected 4")
|
||||
grid4 = "grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0" in html
|
||||
print(f" .pricing-grid is 4-col: {grid4}")
|
||||
if not grid4:
|
||||
fail.append("pricing-grid not 4 columns")
|
||||
ribbon = html.count('<div class="ribbon">Most popular</div>')
|
||||
print(f" 'Most popular' ribbon: {ribbon} (expected 1)")
|
||||
if ribbon != 1:
|
||||
fail.append("ribbon count wrong")
|
||||
|
||||
# comparison table row labels
|
||||
print("\n=== COMPARISON TABLE ROWS ===")
|
||||
for label in ["Price", "Reviews per month", "Overage", "Panel", "Fix-Its",
|
||||
"Re-score loop", "Pre-Review Coach", "White-label", "Workspaces",
|
||||
"Corpus isolation", "Judge pool config", "Reseller model",
|
||||
"Annual billing (16.7% off)"]:
|
||||
present = f"<strong>{label}</strong>" in html
|
||||
print(f" {label:30} {'OK' if present else 'MISSING'}")
|
||||
if not present:
|
||||
fail.append(f"comparison row missing: {label}")
|
||||
|
||||
print(f"\n file size: {len(html)} bytes")
|
||||
print("\n" + "=" * 50)
|
||||
if fail:
|
||||
print(f"FAILED ({len(fail)}):")
|
||||
for f_ in fail:
|
||||
print(f" - {f_}")
|
||||
sys.exit(1)
|
||||
print("ALL CHECKS PASSED")
|
||||
Reference in New Issue
Block a user