← Files LegalQuants LitigationARCHIVED FILE
skills/pressuretest/scripts/brief_sections.py
8.99 KB · Oct 5, 2026 · 18:33 UTC
"""Section builders for the exported pressure-test brief (method v2.8).
Imported by render_brief.py. Every function returns markdown lines; none
writes machine vocabulary, so the rendered document passes the validator's
token ban by construction.
"""
from __future__ import annotations
PP_CLASSES = ("breaks_position", "internal_defect")
VERDICT_LINES = {
"pressure_points_breaks": (
"Verdict: the position does not hold as stated — pressure points found."
),
"pressure_points_internal": (
"Verdict: the conclusion survives on the supplied documents, but the "
"position as drafted contradicts itself — pressure points found."
),
"position_holds": "Verdict: the position holds on the supplied documents.",
"incomplete": "Verdict: this review is incomplete.",
}
PLAIN_CLASS = {
"defeated": "defeated — the documents answer it",
"weakens_route": "weakens one route only — the conclusion still stands",
"proof_gap": "evidence to watch",
"context": "context",
}
CLOSING = (
"This review can only test the routes it identified — anything it did not "
"identify remains untested. It does not verify cited authorities or certify "
"the position."
)
HANDOFF = (
"Cited authorities were not checked; run /cite-check on this document "
"before it leaves the building."
)
REVIEW = "Review status: proposed by the machine — not yet reviewed by a lawyer."
FULL_DETAIL_LIMIT = 5
def cell(text) -> str:
"""One table cell: collapse whitespace, never let a pipe break the row."""
return " ".join(str(text).split()).replace("|", "/")
def where(anchors) -> str:
return "; ".join(a.get("locator") or a.get("source", "?") for a in anchors)
def passages(anchors) -> list[str]:
"""One blockquote per passage, blank-line separated so they never merge."""
lines: list[str] = []
for a in anchors:
if lines:
lines.append("")
lines.append(f'> "{cell(a["quote"])}" ({a.get("locator") or a["source"]})')
return lines
def pressure_points(findings: list) -> list:
"""Position-breaking entries first, then contradictions, source order within."""
breaks = [f for f in findings if f["classification"] == "breaks_position"]
contradictions = [f for f in findings if f["classification"] == "internal_defect"]
return breaks + contradictions
def verdict_line(d: dict, findings: list) -> str:
verdict = d["verdict"]
if verdict == "pressure_points":
breaks = any(f["classification"] == "breaks_position" for f in findings)
key = "pressure_points_breaks" if breaks else "pressure_points_internal"
return VERDICT_LINES[key]
return VERDICT_LINES[verdict]
def table(d: dict, findings: list) -> list[str]:
verdict = d["verdict"]
lines: list[str] = []
if verdict == "pressure_points":
lines += [
"| # | Finding | Whose case it hits | How serious | Where |",
"|---|---|---|---|---|",
]
for f in pressure_points(findings):
serious = (
"Breaks the position"
if f["classification"] == "breaks_position"
else "Contradiction as drafted"
)
lines.append(
f"| {f['id']} | {cell(f['title'])} | {cell(f['hits'])} "
f"| {serious} | {cell(where(f['anchors']))} |"
)
elif verdict == "position_holds":
lines += [
"| # | Attack tested | Outcome | Answered by |",
"|---|---|---|---|",
]
for f in findings:
answered = f.get("dispositive_anchor_note") or where(f["anchors"])
outcome = PLAIN_CLASS.get(f["classification"], "context")
lines.append(
f"| {f['id']} | {cell(f['title'])} | {outcome} | {cell(answered)} |"
)
else:
lines += ["## What is missing", "", f"- {d['incomplete_reason']}"]
for name in d.get("coverage", {}).get("parked", []):
lines.append(f"- {name} was set aside unread.")
key = d["brief"]["document_key"]
lines += ["", " · ".join(f"{k} = {v}" for k, v in key.items())]
return lines
def _pp_full(f: dict) -> list[str]:
internal = f["classification"] == "internal_defect"
lands = f["defect_statement"] if internal else f["flip_statement"]
lines = [
f"## {f['id']} — {cell(f['title'])}",
"",
f"**Whose case it hits.** {f['hits']}",
"",
f"**If this lands.** {lands}",
"",
"**The passages.**",
"",
*passages(f["anchors"]),
"",
f"**The test applied.** {f['test_applied']}",
"",
f"**What survives.** {f['survives']}",
"",
]
if f.get("smallest_change"):
lines += [
"**Smallest change of fact that would change the result.** "
f"{f['smallest_change']}",
"",
]
lines += [f"**Next step.** {f['next_step']}", "", f"*{REVIEW}*", ""]
return lines
def pp_detail(findings: list) -> list[str]:
pps = pressure_points(findings)
lines: list[str] = []
for f in pps[:FULL_DETAIL_LIMIT]:
lines += _pp_full(f)
rest = pps[FULL_DETAIL_LIMIT:]
if rest:
lines += ["## Further points, in brief", ""]
for f in rest:
lines.append(
f"- **{f['id']}** — {cell(f['title'])}: {f['statement']} "
f"Hits {f['hits']}. {REVIEW}"
)
lines.append("")
survived = [f for f in findings if f["classification"] not in PP_CLASSES]
if survived:
lines += ["## Other attacks tested", ""]
for f in survived:
outcome = PLAIN_CLASS.get(f["classification"], "context")
answered = f.get("dispositive_anchor_note") or where(f["anchors"])
lines.append(
f"- **{f['id']}** — {cell(f['title'])}: {outcome}. "
f"Answered by {answered}"
)
lines.append("")
return lines
def holds_detail(d: dict, findings: list) -> list[str]:
route = d["strongest_route"]
lines = [
"## The route that holds",
"",
route["summary"],
"",
*passages(route["anchors"]),
"",
"## Attack register",
"",
]
for f in findings:
outcome = PLAIN_CLASS.get(f["classification"], "context")
lines += [
f"### {f['id']} — {cell(f['title'])}",
"",
f"**Outcome.** {outcome}.",
"",
f["statement"],
"",
]
if f.get("dispositive_anchor_note"):
lines += [f"**Answered by.** {f['dispositive_anchor_note']}", ""]
lines += [*passages(f["anchors"]), "", f"*{REVIEW}*", ""]
watch = [f for f in findings if f["classification"] == "proof_gap"]
if watch:
lines += ["## Watch items", ""]
for f in watch:
closer = (
f" What would close it: {f['what_would_close']}"
if f.get("what_would_close")
else ""
)
lines.append(f"- **{f['id']}** — {f['statement']}{closer}")
lines.append("")
return lines
def context(d: dict, findings: list) -> list[str]:
items = list(d["brief"].get("context_items") or [])
items += [
f"{f['id']} — {f['statement']}"
for f in findings
if f["classification"] == "context"
]
if not items:
return []
return ["## Context, not findings", "", *[f"- {item}" for item in items], ""]
def receipt(d: dict, findings: list) -> list[str]:
cov = d.get("coverage", {})
aside = list(cov.get("excluded", [])) + list(cov.get("unreadable", []))
lines = [
"## How this review was done",
"",
"| | |",
"|---|---|",
f"| Documents reviewed | {len(cov.get('reviewed', []))} |",
f"| Set aside or unreadable | {len(aside)} |",
f"| Lines of attack tested | {len(findings)} |",
"",
]
if aside:
lines += ["Not relied on: " + ", ".join(aside) + ".", ""]
lines += [
d["brief"]["scope_confirmation"],
"",
*_map_basis(d),
HANDOFF,
"",
CLOSING,
"",
]
return lines
def _map_basis(d: dict) -> list[str]:
"""Disclose what the map rested on when the lawyer saw it."""
checkpoint = d.get("checkpoint") or {}
read = list(checkpoint.get("map_read") or [])
total = len(d.get("coverage", {}).get("selected", []))
if not read:
return []
if len(read) >= total:
sentence = f"The map was shown after reading all {total} documents."
else:
sentence = (
f"The map was shown after reading {len(read)} of {total} documents "
f"({', '.join(read)}); the rest were read while the lawyer "
"considered it."
)
lines = [sentence, ""]
if checkpoint.get("map_changed_after_full_read") and checkpoint.get("change_note"):
lines += [
f"The map changed after the full read: {checkpoint['change_note']}",
"",
]
return lines
SHA-256: 71ff3b260a2e23c5852f67698088739b0a9213ebdfdce638f699be265f4bdcf1