fix: require skill_view before background skill writes - #75020
Conversation
(cherry picked from commit d2e6b28cdf3a092f26ea0b59ca3ba8aac4bf6956)
|
Thanks for the focused fix. The premise is verified on current main: The PR’s guard expansion, prompt changes, and exact tool-contract wording directly address the failure reproduced in #58475. The existing Automated hermes-sweeper review. |
SummaryEight PRs address or reference this issue complex. #59175/#75020 directly fix the #58475 read-before-write failure, while #16026, #23288, #55965, and #64655 cover adjacent skill-quality controls, #23004 fixes transient-failure persistence in #6051, and #24846 concerns memory routing. Related pull requests
Duplicates#59175 and #75020 implement materially the same #58475 fix; the explicit duplicate chain is #59175 → #75020, with #59175 already closed as superseded. #23288 and #64655 overlap on write-quality policy but are complementary, not duplicates of that guard fix. Suggested consolidationKeep #75020 open with a salvage path: retain its focused current-main continuation of #59175, including the umbrella-read prerequisite, exact tool enumeration, actionable Complex graphflowchart LR
classDef open fill:#dbeafe,stroke:#1d4ed8,color:#1e3a8a
classDef merged fill:#dcfce7,stroke:#15803d,color:#14532d
classDef closed fill:#e5e7eb,stroke:#6b7280,color:#1f2937
classDef unverified fill:#f3f4f6,stroke:#9ca3af,color:#374151
classDef best stroke-width:3px,stroke:#b45309
classDef target stroke-width:3px,stroke:#4338ca
I58475(["issue #58475 (open)"])
subgraph Dup59175 ["PRs duplicating each other"]
P59175["PR #59175 (closed)"]
P75020["PR #75020 (open)"]
end
P75020 -->|best fix| I58475
class I58475 open
class P59175 closed
class P75020 open
class P59175 best
class P75020 best
class P75020 target
click I58475 "https://github.com/NousResearch/hermes-agent/issues/58475"
click P59175 "https://github.com/NousResearch/hermes-agent/pull/59175"
click P75020 "https://github.com/NousResearch/hermes-agent/pull/75020"
Graph: solid arrow = fixes / best fix, dashed arrow = partial or unverified (see edge label); boxed group = PRs duplicating each other; amber border = best fix; indigo border = target; gray node = closed (state tag in the node label). Cross-PR triage: Reviewed 8 pull requests and 3 issues in this complex. Each diff was read against this issue; Assessment working set: 100 kB of PR diffs, 37 kB of issue/PR text, 14 kB of discussion (14 comments), 15 verify verdicts. verdicts reflect diff content, not PR titles. Part of an automated triage batch. |
|
Status after this week's read-before-write cluster landed: the _SKILL_REVIEW_PROMPT/_COMBINED_REVIEW_PROMPT read-before-write guidance half of this PR is now redundant — a70d2ff (PR #94530) added it to both prompts, and 335c60e (PR #94511) fixed the underlying mark-loss bug that made the guard unsatisfiable regardless of prompt. Still uncovered from your PR: (a) the support-file fit-check guidance (read full SKILL.md before adding references/, don't add on name+description alone) and (b) enumerating the exact runtime tool whitelist in the deny message instead of 'memory/skill tools'. Both look worth keeping — if you rebase to drop the now-redundant prompt half, we can review the remainder on its own merits. Happy to salvage it ourselves if you prefer, @elliottway. |
|
Thanks for the update. Please feel free to salvage the two remaining pieces on your side: the support-file fit check and the exact runtime tool whitelist in the deny message. The original implementation came from @doncazper via #59175, so please preserve their authorship when transplanting it. Happy to help with any follow-up if useful. |
PR title
fix: require skill_view before background skill writes
Summary
skill_viewbeforeskill_managewritesSKILL.mdto be read before creating a new support fileskill_view(...)call when the read-before-write guard blocks a mutationFixes #58475.
This is a current-
origin/mainrebase of the implementation from #59175. The commit preserves doncazper as the original author.Verification
ruff checkon all five changed files: passedgit show --check: passedScope
Five files only:
agent/background_review.pytools/skill_manager_tool.pyNo gateway lifecycle, provider routing, model selection, or production service code changes.