SIGN IN SIGN UP

fix: [ENG-2883] add HTML output contract rules and related-ref warner

Three FE-breaking output classes addressed by prompt updates across the
7 LLM-visible curate surfaces (SKILL.md, curate-prompt-builder, MCP tool
description, registry, curate.txt, system-prompt.yml,
curate-detail-preservation.yml):

- <li> content must be plain text — no leading -, *, •, or 1./2. markers
  (the renderer adds them via CSS, so a literal prefix double-bullets)
- <bv-diagram> body goes directly inside the element with HTML entities
  for <, >, & — no <![CDATA[…]]> wrap (HTML5 parses CDATA as a bogus
  comment and the first --> in mermaid closes it, corrupting the source)
- `related` distinguishes files from folders by suffix: file targets end
  in .html, folder/domain targets stay bare. Replaces the prior
  "no .html extension" guidance in SKILL.md.

Also adds a read-only related-ref warner that resolves each ref against
.brv/context-tree/ and surfaces warnings for broken (neither file nor
folder exists) and ambiguous (both exist) refs. Surfaced via a new
optional `warnings` field on the curate done envelope (both CLI tool-mode
and daemon curate-html-direct paths). The warner never mutates the
attribute and never rejects writes — refs stay advisory so legitimate
forward references (target curated later) still ship.

Fourth issue from the ticket (<bv-index> description attribute) is
deferred to a follow-up because index.html is server-generated and
needs an end-to-end config + capture UX, not a prompt or content
validator change.
N
Nguyễn Thuận Phát committed
8d5ded05f27a8fb92e93e1e529095a59cbb1d155
Parent: eb3add2