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.
145 lines
5.6 KiB
Python
145 lines
5.6 KiB
Python
#!/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")
|