Skip to content
Agentmart
Submit a tool

behavior-cause

Use when a reproduced agent behavior has to be traced to the artifacts whose text produced it.

Skill by tdupu

IndexedGPL-3.0
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/tdupu-behavior-cause

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Use when a reproduced agent behavior has to be traced to the artifacts whose text produced it.

Use cases: agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/behavior-cause

What's inside

Skill name
behavior-cause
Description
Use when a reproduced agent behavior has to be traced to the artifacts whose text produced it.
License
GPL-3.0
Instructions
52 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Behavior cause

Input: a confirmed repro. Output: an ordered candidate list with the evidence
and an ownership finding for each — or **no-candidate** or **all-refused**.

## Candidates, not a culprit

Enumerate candidates from what the repro run itself can be made to report as
read; when that inventory cannot be recovered, report **no-candidate** rather
than guessing. Report each candidate together with the words in it that would
produce this behavior. Being loaded during a bad run makes nothing responsible;
the whole context was loaded together. Collapse to one candidate only when the
evidence collapses.

Two artifacts that both explain the behavior is a finding, not a licence to
edit both. Escalate through [[adjust-behavior]] for a recommendation and repair
the single candidate it names; if that repair comes back `failed` from
[[behavior-verify]], the next candidate is the next hypothesis.

## Ownership is detected, never assumed

**Resolve the path first, then classify what it resolved to, and let the
classification govern.** A symlink is not a licence: the real copy is the only
thing worth editing, and only if the real copy is editable. Editing through the
link yields a change lost on the next sync or silently duplicated.

Probes that hardcode no layout, all run from the resolved path: resolve links
(`readlink -f` or equivalent); ask whether the real copy sits inside its own
version-control root (`git rev-parse --show-toplevel`); ask whether a dependency
manifest, vendor directory, or installed-plugin cache above it claims it.

**Vendored, third-party, and installed-plugin artifacts are not edited.** An
edit there is overwritten on the next update or is an unattributed fork. Report
the behavior upstream, naming the artifact, its origin, and the evidence that
placed it there. A candidate in no version-control root and claimed by nothing
is refused the same way: editable only where local ownership is shown.

Refusal is per candidate, not per run. A refused candidate is reported and
dropped, and repair continues on the remaining candidates under the rule above,
never on an arbitrary pick. Only when every candidate is refused does the run
end as **all-refused**: the upstream report and no repair. Never compensate for
a refused candidate by hardening a local artifact; a note recording the upstream
defect is allowed, and the test is operational — if deleting the addition would
leave some agent out of compliance, it is a rule, not a note.

## Absence is not evidence

A search returning nothing may mean the thing is absent or the query was wrong.
Before reporting "not found", run the same search for something you know is
present.

From tdupu/agent-skills-public, GPL-3.0.

More from tdupu/agent-skills-public

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Oct 14, 2026 (14 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
GPL-3.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from tdupu

Cite this page

behavior-cause skill. Agent Mart. https://agentmart.dev/skills/tdupu-behavior-cause (last updated 2026-10-24)