Skip to content

fix(curator): verify consolidation artifacts - #18393

Closed
teknium1 wants to merge 2 commits into
mainfrom
hermes/hermes-c5895da2
Closed

fix(curator): verify consolidation artifacts#18393
teknium1 wants to merge 2 commits into
mainfrom
hermes/hermes-c5895da2

Conversation

@teknium1

@teknium1 teknium1 commented May 1, 2026

Copy link
Copy Markdown
Contributor

Salvage of #18225 (@helix4u) — rebased onto current main with a fixture fix.

Summary

Curator no longer marks a removed skill as successfully "consolidated" when the umbrella is a hollow stub whose referenced support files were never actually written.

What changed

  • agent/curator.py — classification now records evidence kind (support_file_write, support_link, content_reference) and verifies the artifact exists on disk before counting it as a consolidation. Adds incomplete, incomplete_reasons, unsafe_consolidations, structured_summary to run.json and surfaces incomplete-run warnings in REPORT.md.
  • tests/agent/test_curator_classification.py + test_curator_reports.py — regression tests for hollow umbrella references and valid support-file consolidations.
  • tests/agent/test_curator_reports.py (follow-up) — test_curator_rewrites_cron_skills_when_skill_consolidated (added on main in fix(curator): rewrite cron job skill refs after consolidation #18253 after this PR was authored) used tool-call-only evidence that the tightened classifier correctly rejects. Fixture now materializes the umbrella's support file on disk so the test exercises the cron-rewrite path it's actually covering.

Validation

scripts/run_tests.sh tests/agent/test_curator.py tests/agent/test_curator_classification.py tests/agent/test_curator_reports.py
72 passed in 1.03s

Context

Addresses the class of curator bug behind issue #18373 ("Curator should not auto-archive user-created custom skills without dry-run/approval") — if a curator run produces hollow umbrellas and then archives the originals, the originals were effectively lost. With this verifier, those archives stop being classified as consolidations, so the umbrella-first prompt's destructive path is gated on real evidence.

Closes #18225.
Co-authored-by: helix4u 4317663+helix4u@users.noreply.github.com

helix4u and others added 2 commits May 1, 2026 06:12
The consolidation-artifact verifier added in the salvage of #18225 requires
the umbrella's support file to exist on disk to classify a removed skill
as 'consolidated'. test_curator_rewrites_cron_skills_when_skill_consolidated
(added in #18253 after this PR was authored) used a tool-call-only fixture
that the tightened classifier now correctly rejects as a hollow umbrella.
Write the real file so the test exercises the cron-rewrite path it is
actually trying to cover.
@alt-glitch alt-glitch added type/bug Something isn't working comp/agent Core agent runtime: loop, agent_init, prompt builder, context-compression, responses endpoint tool/skills Skills system (list, view, manage) P2 Medium — degraded but workaround exists labels May 1, 2026
@teknium1

teknium1 commented May 1, 2026

Copy link
Copy Markdown
Contributor Author

Closing — treating the root cause as a model problem, not a curator-classification problem. If the LLM writes a hollow umbrella SKILL.md with TOC links it never fills in, the fix belongs upstream of the classifier (prompt / model selection / umbrella-first prompt constraints), not in a downstream verifier that papers over the bad behavior. Thanks @helix4u — will revisit if we keep seeing hollow umbrellas after prompt-side work.

@teknium1 teknium1 closed this May 1, 2026
@teknium1
teknium1 deleted the hermes/hermes-c5895da2 branch May 1, 2026 14:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/agent Core agent runtime: loop, agent_init, prompt builder, context-compression, responses endpoint P2 Medium — degraded but workaround exists tool/skills Skills system (list, view, manage) type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants