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