hermes-agent/tests/skills
Teknium a6defd4f15 fix(skills): match evidence quotes through markdown markup
Live-run findings from a real fact-checking task (ankylosing spondylitis
genetics, 7 authoritative sources) against the new mode:

- Verbatim check rejected a legitimate quote because web_extract returns
  markdown: the MedlinePlus sentence is "including _[ERAP1](https://...)_,
  _[IL1A](...)_" on the wire but plain prose to a reader. The agent was
  forced onto a weaker evidence fragment — the opposite of the point.
  Matching now canonicalizes inline links to their label and drops
  emphasis/code markers and backslash escapes on both sides, so quoting
  the sentence a reader sees works. Paraphrases are still rejected.
- Escaped asterisks (HLA-B\*27) no longer have to be reproduced in the
  quote, so extractor artifacts stop leaking into rendered evidence.
- New `render --replace-in <draft>`: rewrites a draft's Sources block in
  place, idempotently. Previously the only path was hand-slicing the
  file, which also tripped over the emitted heading being `## Sources`
  while the prose said "Sources:".
- verify stats: report the provenance total that the percentage is
  actually computed from (cited + [unverified], counted once), and print
  the line as `info:` instead of `warn:` when nothing is wrong. The old
  line printed 17 cited / 2 unverified next to 72%, which does not
  reconcile — a sentence can be both.
- SKILL.md documents the emitted heading, --replace-in, and exactly what
  counts as a prose sentence for --min-coverage.

7 new tests (47 total) using the real MedlinePlus/Frontiers markup;
6 sabotage runs, all red.
2026-08-02 16:18:28 -07:00
..
test_cloudflare_temporary_deploy_skill.py
test_darwinian_evolver_skill.py
test_fetch_transcript.py
test_github_credential_token.py
test_google_workspace_api.py
test_google_workspace_credential_files.py
test_google_workspace_setup.py
test_google_workspace_setup_deps.py
test_grounded_citations_skill.py
test_hyperliquid_skill.py
test_mcp_oauth_remote_gateway_skill.py
test_memento_cards.py
test_office_document_skills.py
test_openclaw_migration.py
test_openclaw_migration_hardening.py
test_pinecone_research_skill.py
test_telephony_skill.py
test_tldraw_offline_skill.py
test_unbroker_skill.py
test_xurl_article_ingestion_docs.py
test_xurl_x_search_routing.py
test_youtube_quiz.py