Skip to content

Selvedge vs. BlamePrompt

BlamePrompt records the prompt behind a line. Selvedge records the full structured change event — entity, change type, diff, the agent’s reasoning, and the changeset it belongs to — and lets the agent query it back.

Selvedge BlamePrompt
Reasoning source Captured live, by the agent in the same context that produced the change Prompt-only
Granularity Entity — DB column, table, env var, dep, API route, function Line
Mechanism MCP server — the agent calls it as work happens Agent-lifecycle hooks + post-commit hook
Grouping Changesets — named feature/task slugs across many entities None
Prior attempts Yes — prior_attempts surfaces tried-and-rejected paths None
Storage SQLite Local
  • Reasoning vs. raw prompt. BlamePrompt keeps the prompt text. Selvedge keeps the agent’s intent for this change, validated for quality (empty / generic reasoning is flagged in selvedge stats).
  • Entity-level attribution with prefix queries, not line attribution that decays as code moves.
  • The agent can read its history via prior_attempts / blame / diff before it acts.
  • Changesets group a feature’s events across files; BlamePrompt has no grouping.

If you only want the prompt-of-record stapled to a line and nothing more, BlamePrompt is the minimal version of the idea.