feat(evidence): structure v3 domain rules for review

This commit is contained in:
Codex
2026-08-26 12:38:30 +02:00
parent 9d4f994d3e
commit 9898726069
9 changed files with 254 additions and 24 deletions
+7 -2
View File
@@ -59,8 +59,13 @@ the complete review surface as deterministic Markdown. It uses headings, paragra
lists, fenced SQL, blockquotes, and a collapsed technical-details block. It never emits YAML
frontmatter or Markdown tables. Invisible `tht:` comments delimit typed fields. Parsers must reject
missing, duplicate, unknown, desynchronized, or unstructured body content; they must never silently
ignore it. Newly prepared units use v3. `tht evidence migrate <workspace-root>` upgrades existing
v1 and v2 units locally without a model call, commit, publication, or semantic change.
ignore it. Domain rules also retain their exact canonical text in an invisible `tht:raw-rule`
comment while presenting long prose as paragraphs, labelled subsections, and semicolon-derived
lists. Runtime chunking reads the parsed canonical rule, not this review-only presentation.
Newly prepared units use v3. `tht evidence migrate <workspace-root>` upgrades v1 and v2 units and
canonicalizes an older v3 presentation locally without a model call, commit, publication, or
semantic change.
### Example: filesystem
+7 -1
View File
@@ -52,7 +52,13 @@ Canonical Curated Evidence v3 hides canonical machine metadata in an HTML commen
whole review surface as real Markdown. GitHub therefore shows no frontmatter table. The body layout
is deterministic for each Evidence kind: prose uses sections and paragraphs, scopes and enum values
use wrapping lists, formulas use fenced SQL, supporting excerpts use blockquotes, and unresolved
review items use dedicated blocks.
review items use dedicated blocks. Long domain rules are split into readable paragraphs, labelled
subsections, and lists at existing semicolon boundaries. Their exact original text remains canonical
in an invisible marker, so the formatting cannot change their meaning or bytes.
Preprocessing parses the unit first and builds semantic chunks from the typed payload. The vector
store therefore receives the original rule text and not headings, list markers, or invisible
presentation metadata.
```markdown
<!-- tht:metadata:<canonical metadata> -->