Skip to content
Back to skills

Friction

ASecurity

Scans past dream-fixer-loop workflow runs for agent friction (skill or tool hunting under ~/.claude, denied or erroring tool calls, repeated failing commands, forbidden actions, self-reported friction, token and tool-call outliers) and reports the patterns seen in two or more runs, each with the deterministic check that would stop it or the prompt line it points to. Use when the user runs /dream-team:friction or asks what keeps going wrong across dream-fixer runs.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 6, 2026
ai-agentspythongobashgit

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned November 11, 2026

npx -y skills add nshopik/dream-team --skill friction --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Friction?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Friction
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nshopik-friction/badge)](https://www.skillsdirectory.com/skills/nshopik-friction)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: friction
description: >-
  Scans past dream-fixer-loop workflow runs for agent friction (skill or tool hunting under
  ~/.claude, denied or erroring tool calls, repeated failing commands, forbidden actions,
  self-reported friction, token and tool-call outliers) and reports the patterns seen in two or
  more runs, each with the deterministic check that would stop it or the prompt line it points to.
  Use when the user runs /dream-team:friction or asks what keeps going wrong across dream-fixer
  runs.
disable-model-invocation: true
---

# friction

## 1. Scan

- Run `python3 <this skill's base directory>/friction.py`.
- User asks for run times → add `--time`; print its table and stop.
- The script scans every workflow run not yet in the cache and appends its hits there.
- It prints each pattern + role seen in 2 or more runs; one-off hits stay in the cache only.
- Output is only the `scanned … new runs` line → report no repeated friction and stop.

## 2. Trace each pattern

Pattern names the script prints:

- `claude-dir`: Read/Glob/Grep, or a Bash `find`/`ls`/`cat`, under `~/.claude`.
- `tool-error`: a tool call denied or erroring, other than a plain non-zero exit.
- `repeat-failure`: the same failing Bash command run twice or more by one agent.
- `forbidden`: `ssh`, `git push`, a `gh`/`glab` write, or an edit, a Bash tree edit
  (`sed`/`perl -i`, `git checkout`/`restore`/`stash`, `tee` or a redirect to a path outside `/tmp/`
  and `/dev/`) or a commit by a read-only role.
- `self-report`: an entry from the agent's `friction` output field.
- `tokens-outlier`, `tools-outlier`: over 2x the role's median over earlier runs.

For each printed pattern:

- Find the prompt that role runs in `<base directory>/../../workflows/dream-fixer-loop.js`:
  `impl` → `implPrompt`, `gate` → `verifyPrompt`, `build-fix` → `buildFixPrompt`, `simplify` →
  `simplifyPrompt`, `simplify-fix` → `simplifyFixPrompt`, `review:domain` →
  `domainPrompt`, `review:external` → `externalPrompt`,
  other `review:` → `lensPrompt`, `re-review:` → `reReviewPrompt`, `fixdiff:` →
  `fixDiffPrompt`, `fix` → `fixPrompt` or `nitFixPrompt`.
- Name the prompt or skill line the evidence points to: the instruction the agent could not
  follow, or the tool it lacked.
- Read the evidence before blaming a prompt or naming a check; a hook bounce working as designed
  or a long run on a hard issue has neither behind it.
- A permission rule, hook or gate command could stop the pattern → name that check and what it
  stops.
- The pattern needs judgement → name no check.
- The only check is a new hook and no written rule forbids what the agent did → name no check.
- No check and no prompt line behind it → list it as ordinary and offer nothing for it.

## 3. Report

- One bullet per pattern: `- **<pattern> | <role>:** <n> runs; <evidence>; <target>`.
- A named check → `<target>` is `check: <check>`.
- No check, a prompt line → `<target>` is `<file>:<line>`.
- Ordinary → `<target>` is `ordinary`.
- Offer to file one dream-team issue per pattern with a check or a prompt line, for its `<target>`,
  written with `scope-issue`.
- File nothing without the user's yes.

Files in this skill

  • SKILL.md2.4 KB
  • friction.py7.6 KB
  • test_friction.py8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in ai-agents →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.