xuhdandClaude Opus 4.7 e54f42c0eb fix(skill_manage): refuse agent writes to human-authored skills
Even after the previous owner check, the agent could still patch/edit
a UI-uploaded skill (source=upload) it happened to own. Uploaded skills
represent human-reviewed content; letting the agent rewrite them risks
silent drift from what the user approved.

Add _assert_skill_is_agent_authored which reads usage.json and refuses
unless source==agent. Wired into all five write actions
(create/edit/patch/delete/write_file/remove_file). Skills with no usage
entry default to source=upload, so legacy and adopted-orphan skills are
also refused — only skills the agent created via mark_agent_created in
the create flow stay editable.

Note: this check is independent of skill_store availability (it reads
the usage file, not the DB), so it runs even when skill_store is None.
Tests that exercise non-create paths against pre-existing skills will
need to call mark_agent_created first or mock get_entry.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-09 16:00:44 +08:00
2026-06-08 22:52:18 +08:00
2026-06-01 14:16:13 +08:00
2026-05-31 16:48:43 +08:00
2026-05-22 20:40:36 +08:00
2026-05-28 17:14:01 +08:00
2026-06-05 20:06:55 +08:00
2026-05-27 19:43:15 +08:00
2026-06-03 09:54:11 +08:00
2026-06-03 11:35:38 +08:00
2026-05-13 22:22:59 +08:00
2026-05-28 17:14:01 +08:00
2026-05-28 17:14:01 +08:00
2026-05-22 20:40:36 +08:00
S
Description
deerflow-code
238 MiB
0 Stars 1 Watchers 0 Forks
Languages
Python 39.2%
TypeScript 35.9%
HTML 22.2%
CSS 1.5%
JavaScript 0.9%
Other 0.2%