Commit Graph

1 Commits

Author SHA1 Message Date
justin e9b37e86df feat: implement Phases 9 / 11 / 12 / 13 — diff/lessons/inconsistencies/digest
Eight new MCP tools on top of the Phase 3 baseline. Each one uses
TimedCall so calls show up in usage.jsonl alongside search/get/list.

Phase 9 — multi-version diff:
  * list_cluster(bundle_id, page_id) — cross-version peers from the
    synthesized topic_cluster (same GUID across 8.1.x versions).
  * diff_versions(bundle_id, page_id, against_bundle_id) — unified
    diff between two bundles; uses topic_cluster first, falls back to
    same page_id (which works because HVM GUIDs are stable cross-version).
  * bundle_changelog(new, old) — page-level adds/removes/churn summary,
    sorted by lines moved; uses _diff_churn helper.

Phase 11 — curated knowledge:
  * hvm_api_lessons(topic?) — surfaces docs_mcp/api_lessons.md (manager
    sizing, upgrade ordering, plugin/worker version compat, backups
    setup, console keyboard, elevation, ops gotchas). topic= filters to
    matching H2 sections. Marked "call proactively for HVM scripting /
    integration / upgrade questions" in the docstring so the LLM uses it.

Phase 12 — doc-bug workflow:
  * find_doc_inconsistencies(scope_query, ...) — read-only scan with two
    checks: cross_version_drift (line-diff vs cluster peers, in-band
    10-60% of file = high confidence) and redirect_chain (short body
    that's mostly a "see [other page]" pointer).
  * submit_doc_bug(page_url, content, ...) — env-gated OFF
    (DOC_BUG_SUBMIT_ENABLED) AND requires DOC_BUG_API_URL. Refuses
    cleanly with a manual-fallback message when either is unset.
    Allowlist: support.hpe.com only. Mandatory operator-confirmation
    pattern in the docstring; loud "do not loop" warning. The actual
    HPE feedback endpoint hasn't been sniffed yet — when it is, set
    both env vars and verify the payload shape against the schema.

Phase 13 — weekly digest:
  * _digest_history() reads corpus/.digest/history.jsonl (built by
    scrape.changelog --history-out in the CI refresh workflow).
  * weekly_digest(days, version?, platform?, ...) aggregates corpus-
    touching commits in the window. Post-filter totals so version /
    platform filters give honest "X page changes" numbers, not the
    pre-filter commit count.
  * corpus_status() reports image build time, latest upstream Published
    date, total bundles/pages/chunks, and the 5 most-recently-edited
    bundles.

Tool count now: 11 registered (search_docs, get_page, list_versions,
list_cluster, diff_versions, bundle_changelog, weekly_digest,
corpus_status, hvm_api_lessons, find_doc_inconsistencies, submit_doc_bug).
Verified end-to-end via MCP stdio tools/list.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 13:58:19 -04:00