From personal-harness
Feedback Encoding Ladder Tracker — Detects repeated feedback and suggests promoting it to a stronger encoding level (Review Comment → Documentation → Tool Design → Linter/Test). Triggers on 'feedback ladder', 'feedback tracking', 'repeated feedback'.
How this skill is triggered — by the user, by Claude, or both
Slash command
/personal-harness:feedback-ladderThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
"If you have to give the same feedback twice, it's a failure of the system." — OpenAI
"If you have to give the same feedback twice, it's a failure of the system." — OpenAI
Automatically suggests stronger encoding when the same corrective feedback recurs.
Level 1: Review Comment (weakest)
→ The agent may read it or ignore it
→ Location: in-conversation feedback, PR comments
Level 2: Documentation
→ Recorded in docs/ for persistence
→ Location: CLAUDE.md, CODING_STANDARDS.md, .claude/rules/*.md
Level 3: Tool Design
→ Constraints embedded in the tool itself
→ Location: PreToolUse/PostToolUse in hooks.json, custom tool descriptions
Level 4: Linter/Test (strongest)
→ Immediate failure on violation, deterministic enforcement
→ Location: eslint rules, pytest fixtures, CI gates
Uses .claude/feedback-ladder-state.json to track feedback recurrence counts across sessions.
{
"version": 1,
"feedbacks": [
{
"id": "no-merge-without-tests",
"topic": "Do not merge without tests",
"keywords": ["test", "merge", "coverage"],
"occurrences": 3,
"first_seen": "2026-04-10",
"last_seen": "2026-04-16",
"current_level": 1,
"current_location": "MEMORY.md feedback entry",
"recommended_level": 4,
"promoted": false
}
]
}
id: unique identifier (kebab-case)topic: summary of the feedback contentkeywords: keywords for matching similar feedbackoccurrences: cumulative occurrence countcurrent_level: currently encoded level (1-4)current_location: where the feedback is currently encodedrecommended_level: recommended level based on recurrence countpromoted: whether promotion has been completed.claude/feedback-ladder-state.json if it exists.claude/feedback-ladder-state.json (start with empty state if absent)## Feedback Encoding Ladder Analysis
### State file: .claude/feedback-ladder-state.json
- Feedback items tracked: N
- Promotion required: M
### Items Requiring Promotion
#### 1. "Do not merge without tests" (id: no-merge-without-tests)
- Current level: Level 1 (Review Comment) — recorded in MEMORY.md
- Occurrences: 3 (2026-04-10 ~ 2026-04-16)
- Recommended level: Level 4 (Linter/Test)
- Suggested action: Add test coverage gate to CI
```yaml
# .github/workflows/ci.yml
- run: npm test -- --coverage --coverageThreshold='{"global":{"branches":80}}'
## Integration
- Integrates with Claude Code's memory system (scans feedback-type memory files)
- Feedback encoded in .claude/rules/ is recognized as Level 2-3
- Checks encoded in hooks.json are recognized as Level 4
- State file persists tracking across sessions
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub geun-oh/personal-harness --plugin personal-harness