feat(strands-command): add dependabot-analyze mode#61
Conversation
Wrap SANITIZED_CHANGELOG in untrusted-changelog tags at the runner boundary, strip embedded closing tags, apply it only in dependabot-analyze mode, and keep its content out of the action log. Restrict the dependabot-analyze tool set to read-only tools plus add_pr_comment so the SOP's read-only constraint is enforced.
…er tests Replace the confusing TypeError on non-comment events without an issue_id with an explicit error. Cover the explicit-input branching, mode selection, and the new guard with node:test unit tests.
…r requirements Cover the manually triggered path where no changelog is provided, require verdict consumers to verify the comment author and use only the latest verdict, and align the README with the enforced tool restrictions and changelog wrapping behavior.
ValidationTested end-to-end on a fork before review. The internal action checkouts were temporarily repointed at the fork branch so the runner and Run: Dependabot Analyze e2e — run 27487508770 (success) Verified from the run logs and the posted comment:
The agent identified the minor bump, grepped the repo for Parser branching is also covered by unit tests ( |
Drop the unused issue tools (get_issue, get_issue_comments, list_issues) and list_pull_requests from the dependabot-analyze tool set so the enforced least-privilege surface matches the SOP, which operates only on the pull request. Hoist the mode name to an ANALYZE_MODE constant.
Summary
task-dependabot-analyze.sop.md— a read-only SOP that assesses dependency update safetydependabot-analyzecommand mode into the input parsersanitized_changeloginput to the agent-runner action, injected into the agent task as untrusted dataThe SOP treats all changelog/PR content as untrusted and emits a machine-readable verdict (
safe/needs-review/breaking) consumed by the harness-sdk dependabot-auto-merge workflow.Test plan
dependabot-analyzeSOP path