Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add lugassawan/swe-workbench --skill workflow-address-feedbackgit clone --depth 1 https://github.com/lugassawan/swe-workbenchWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/lugassawan/swe-workbench/workflow-address-feedback)<a href="https://agentmods.dev/skills/lugassawan/swe-workbench/workflow-address-feedback"><img src="https://agentmods.dev/badge/skills/lugassawan/swe-workbench/workflow-address-feedback/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/lugassawan/swe-workbench/workflow-address-feedback"><img src="https://agentmods.dev/badge/skills/lugassawan/swe-workbench/workflow-address-feedback.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00085 | $0.05420 |
| Opus 5.5 | $0.00034 | $0.02168 |
| Sonnet 5.5 | $0.00017 | $0.01084 |
| Haiku 4.5 | $0.00009 | $0.00542 |
Grade A, and why
workflow-address-feedback scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 221 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Workflow: Address Feedback
Announce at start: "I'm using the workflow-address-feedback skill to address review feedback on PR #N."
When to invoke
- The user runs
/swe-workbench:address-feedback <N>. - A PR owner wants to systematically work through review threads.
- Phrases: "address the feedback on PR 123", "help me resolve review comments", "triage and fix the review threads on #456".
When NOT to invoke
- The reviewer side of the loop → use
swe-workbench:workflow-pr-review(first-pass or followup mode). - The user just wants to reply to a single comment without the full triage flow.
- The PR is closed/merged.
Composition
This skill orchestrates:
swe-workbench:ticket-context— prepended context when PR references a ticket.swe-workbench:workflow-commit-and-pr— invoked after all ADDRESSED fixes are applied to commit and push.
Phase flow
Phase 1 — Pre-flight + fetch
command -v swe-workbench-address-feedback-fetch >/dev/null 2>&1 || {
echo "swe-workbench runtime commands not on PATH — reinstall or update the swe-workbench plugin." >&2
exit 1
}
RESULT=$(swe-workbench-address-feedback-fetch --pr "$PR" \
| swe-workbench-result-check swb.address-feedback-fetch/1) || exit 1
STATE=$(printf '%s' "$RESULT" | jq -r '.data.state')
JSON=$(printf '%s' "$RESULT" | jq -r '.data.pr_json_path')
[ "$STATE" = "OPEN" ] || { swe-workbench-clean-state-files "$JSON"; echo "PR #$PR is $STATE — address-feedback only applies to open PRs."; exit 1; }
OWNER=$(printf '%s' "$RESULT" | jq -r '.data.owner')
REPO=$(printf '%s' "$RESULT" | jq -r '.data.repo')
AUTHOR_LOGIN=$(printf '%s' "$RESULT" | jq -r '.data.author_login')
CURRENT_USER=$(printf '%s' "$RESULT" | jq -r '.data.current_user')
PR_BRANCH=$(printf '%s' "$RESULT" | jq -r '.data.pr_branch')
THREADS_PATH=$(printf '%s' "$RESULT" | jq -r '.data.threads_path')
PR_COMMENTS_PATH=$(printf '%s' "$RESULT" | jq -r '.data.pr_comments_path')
TRIAGE_PATH=$(printf '%s' "$RESULT" | jq -r '.data.triage_path')
RESUME_TRIAGE_PATH=$(printf '%s' "$RESULT" | jq -r '.data.resume_triage_path')
ELIGIBLE_THREADS=$(printf '%s' "$RESULT" | jq -r '.data.eligible_threads')
SKIPPED_THREADS_CLARIFIED=$(printf '%s' "$RESULT" | jq -r '.data.skipped_threads_clarified')
ELIGIBLE_PR_COMMENTS=$(printf '%s' "$RESULT" | jq -r '.data.eligible_pr_comments')
SKIPPED_PR_COMMENTS=$(printf '%s' "$RESULT" | jq -r '.data.skipped_pr_comments')
RUN_DIR=$(swe-workbench-new-run-dir address-feedback "$PR")
swe-workbench-address-feedback-fetch handles gh auth status, fetches the PR JSON to $JSON (via swe-workbench-preflight-pr), and — when the PR is OPEN — paginates review threads, PR-level conversation comments and submitted-review bodies, projecting eligible/skip_reason onto each entry. A valid generated PR batch — in a conversation comment, or in a review body (the posting core folds PR-level findings into the review: summary first, then the batch marker on its own line) — becomes one projected PR feedback item per finding, each with .parent_comment_id (the comment id, or review-<review-id> for a review body), .finding_id, .triage_key (prcomment:<id>:finding:<n> or review:<id>:finding:<n>), .handled_marker, and the extracted .body (the trailing finding-key bookkeeping line is stripped); unmarked third-party comments stay one legacy item, a plain review summary is not feedback, and a marked batch that fails strict parsing surfaces as one legacy item. Bot exclusion remains absolute; valid batches from the PR author/current runner are retained. It writes those projections to $THREADS_PATH/$PR_COMMENTS_PATH. The [ "$STATE" = "OPEN" ] gate runs immediately after the fetch and before $RUN_DIR is allocated, so a rejected PR reaps $JSON inline via swe-workbench-clean-state-files rather than leaking it — $RUN_DIR never exists on this path, so there is nothing else to reap. new-run-dir.sh allocates $RUN_DIR — a mode-0700 scratch directory under /tmp/swe-workbench-run/ for this run's own ad-hoc bash artifacts, distinct from the deliberate PR-keyed state files above (including $TRIAGE_PATH, which is a cross-invocation resume point and must never move here). All four state paths are repo-scoped: the fetch resolves the owner-repo slug itself — explicit --repo when the invocation carried a full PR URL, else the checkout's origin remote, else legacy un-scoped names — so same-numbered PRs in different repositories never collide.
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago Changed f5204e8cde2f
- 11d ago Changed 8eb3f9d95e09
- 16d ago Changed 89c2ee767e24
- 26d ago Changed b7d765a3f478
- 29d ago Changed e4db00da9e96
- 1mo ago Changed · +2 lines 463f1ad63c2e
- 1mo ago First seen · 219 lines · 85 tokens per session scan A 8a1b8d3e11ec
workflow-address-feedback is a skill published in the GitHub repository lugassawan/swe-workbench (3 stars, last pushed yesterday), licensed MIT. It adds 85 tokens to every session and 5,420 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
release
Cut a brooks-lint release: set the version in package.json, propagate it across all four plugin manifests and every version-bearing text file (README badges, docs site metadata), write the CHANGELOG entry, validate, then commit, push, tag, and publish the GitHub release. Triggers when the maintainer asks to "release"…
pr-review
Address feedback left on a GitHub pull request: fetch unresolved review threads, make agreed Elixir/Phoenix code fixes, reply, and resolve. Use for a PR URL/number or reviewer comments. NOT for pre-PR review, findings triage, or CI monitoring.
phx-pr-review
Address feedback left on a GitHub pull request: fetch unresolved review threads, make agreed Elixir/Phoenix code fixes, reply, and resolve. Use for a PR URL/number or reviewer comments. NOT for pre-PR review, findings triage, or CI monitoring.
signing-preflight
Before the first commit of a session, check that commit signing will work — the key is loaded and unlocked — and ask the operator to unlock it once, up front, instead of discovering it after a hundred unsigned commits. Never disables signing silently, never re-signs history without asking. Use at the start of…
pr-review
Review pull requests and Git diffs with Graph-It-Live risk, breaking-change, dependency-impact, cycle, unused-export, and test-candidate evidence. Use when asked to review a PR, inspect a diff, assess merge risk, check a branch before merging, create a Graph-It-Live review gate, or explain review-pr results. Trigger…
commit-push
Commit all local changes following Conventional Commits format and push to remote.