| name | feedback |
| description | Save SDLC workflow feedback proactively. MUST trigger when the user corrects SDLC behavior ("don't generate tests like that", "always use this pattern", "that's not how I want specs written") or confirms a non-obvious approach worked ("yes exactly", "perfect"). Also trigger on explicit requests: "save this feedback", "show my feedback", "clear feedback", "workflow preferences", "sdlc settings", "consolidate feedback", "bake in my preferences". Also the graduation target for durable loop signs from .sdlc/signs.md. Feedback persists across sessions and is loaded by the sdlc-loop, BDD, TDD, and beads skills.
|
| args | [{"name":"action","description":"Action to take: save, show, clear, or consolidate","required":false}] |
| user-invokable | true |
| effort | low |
| allowed-tools | ["Bash","Read","Edit"] |
Autonomous SDLC Feedback Manager
Persist feedback about SDLC workflow preferences across sessions. Stored feedback is automatically
loaded by the sdlc-loop, BDD, TDD, and beads skills, ensuring workflow preferences carry forward.
Actions
Save Feedback
When the user provides feedback on SDLC workflow behavior, save it:
echo '{"category": "<category>", "feedback": "<what the user said>", "context": "<optional context>"}' | \
python ${CLAUDE_PLUGIN_ROOT}/scripts/feedback_manager.py autonomous-sdlc save-feedback
Categories: spec_writing, test_generation, tdd_workflow, bdd_workflow, verification, beads_workflow, loop_behavior, general
Examples:
- "BDD specs should use business language, not technical" →
{"category": "spec_writing", "feedback": "Write BDD scenarios in business domain language — avoid implementation details like class names or API endpoints"}
- "Don't generate integration tests unless I ask" →
{"category": "test_generation", "feedback": "Default to unit tests only — only generate integration tests when explicitly requested"}
- "Verification should check for type errors" →
{"category": "verification", "feedback": "Always include mypy/pyright type checking in the verification stack"}
- "Use pytest fixtures over setup methods" →
{"category": "tdd_workflow", "feedback": "Prefer pytest fixtures over setUp/tearDown class methods for test setup"}
- "Keep beads issues concise" →
{"category": "beads_workflow", "feedback": "Beads issue descriptions should be 2-3 sentences maximum — link to specs for detail"}
- "Red-green-refactor cycles should be smaller" →
{"category": "tdd_workflow", "feedback": "Each TDD cycle should touch at most one function — break larger changes into multiple cycles"}
Show Feedback
Display all stored feedback:
python ${CLAUDE_PLUGIN_ROOT}/scripts/feedback_manager.py autonomous-sdlc show-feedback
Present as a readable list grouped by category.
Clear Feedback
Clear all feedback or feedback for a specific category:
python ${CLAUDE_PLUGIN_ROOT}/scripts/feedback_manager.py autonomous-sdlc clear-feedback
python ${CLAUDE_PLUGIN_ROOT}/scripts/feedback_manager.py autonomous-sdlc clear-feedback test_generation
Consolidate Feedback
Graduate stable feedback into the actual SKILL.md files, making corrections permanent. This is a
Claude-driven operation — no script needed.
When to consolidate: When the user says "update the plugin based on feedback", "consolidate feedback",
"bake in my preferences", or "graduate feedback into the skill".
Process:
- Load all stored feedback:
python ${CLAUDE_PLUGIN_ROOT}/scripts/feedback_manager.py autonomous-sdlc show-feedback
-
Read the target SKILL.md files:
${CLAUDE_PLUGIN_ROOT}/skills/sdlc-loop/SKILL.md
${CLAUDE_PLUGIN_ROOT}/skills/bdd-spec/SKILL.md
${CLAUDE_PLUGIN_ROOT}/skills/bdd-generate/SKILL.md
${CLAUDE_PLUGIN_ROOT}/skills/tdd-workflow/SKILL.md
${CLAUDE_PLUGIN_ROOT}/skills/beads-workflow/SKILL.md
-
For each feedback entry, determine if it should be consolidated:
- Consolidate: Universal preferences, repeated corrections, style rules that always apply
- Keep as runtime feedback: Situational preferences, context-dependent corrections, temporary focus areas
-
Present a consolidation plan to the user:
## Consolidation Plan
**Will bake into SKILL.md** (permanent):
- [feedback] → edit [file]: [what will change]
**Will keep as runtime feedback** (situational):
- [feedback] → reason: [why it stays runtime]
Proceed?
-
On approval:
- Edit the target SKILL.md files using the Edit tool
- Clear only the graduated feedback entries:
python ${CLAUDE_PLUGIN_ROOT}/scripts/feedback_manager.py autonomous-sdlc clear-feedback <category>
- Keep non-graduated entries untouched
-
Report what changed and what remains as runtime feedback.
How Feedback is Used
When autonomous-sdlc skills run, they load relevant feedback entries:
- spec_writing feedback → loaded by bdd-spec to guide scenario style and language
- test_generation feedback → loaded by bdd-generate to shape test output
- tdd_workflow feedback → loaded by tdd-workflow to adjust cycle size and patterns
- bdd_workflow feedback → loaded by bdd-spec and bdd-generate for process preferences
- verification feedback → loaded by the sdlc-loop VERIFY state to adjust gate strictness
- beads_workflow feedback → loaded by beads-workflow for issue management style
- loop_behavior feedback → loaded by sdlc-loop every iteration (budgets, escalation taste, decision style)
- general feedback → applied to all SDLC skills
This ensures the user never has to repeat the same workflow preference twice.
Signs: Loop Guardrails
During a loop, recurring mistakes are recorded as one-line signs in the project's
.sdlc/signs.md ("Sign: don't assume the helper exists — grep first"). Signs are
project-local and replayed at every iteration's orient step.
When a sign is durable and project-independent, graduate it here:
echo '{"category": "loop_behavior", "feedback": "<the sign, generalized>"}' | \
python ${CLAUDE_PLUGIN_ROOT}/scripts/feedback_manager.py autonomous-sdlc save-feedback
Signs follow the same lifecycle as other feedback: accumulate → recur → consolidate
into SKILL.md.