sync-feedback
SKILL.md
Sync Feedback
Review feedback captured from your Claude Code sessions and sync to Product Forge.
Usage
/sync-feedback # Show status (default)
/sync-feedback --process # Process captured sessions with LLM analysis
/sync-feedback --review # Review pending feedback
/sync-feedback --export # Export to GitHub issues format
Options
| Option | Description |
|---|---|
--status |
Show feedback statistics across all projects |
--process |
Process captured sessions with LLM to extract feedback |
--review |
Interactive review of pending feedback items |
--export |
Export reviewed feedback to GitHub issue format |
Feedback Location
All feedback is stored in ~/.claude/learnings/:
~/.claude/learnings/
├── projects.json # Registry of opted-in projects
├── stats.json # Global statistics
└── projects/
└── {project-slug}/
└── feedback/
├── improvement/
├── skill-idea/
├── command-idea/
├── bug-report/
└── pattern/
Workflow
1. Enable hooks → /enable-feedback-hooks
2. Work normally → Sessions captured on exit (fast, no LLM)
3. Process → /sync-feedback --process (LLM analyzes sessions)
4. Review → /sync-feedback --review
5. Submit → /sync-feedback --export → Create GitHub issue
Execution Instructions
When the user runs this command:
Process Mode (--process)
-
Run the process-sessions script:
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/process-sessions.py --all -
The script will:
- Find all unprocessed sessions in
~/.claude/learnings/sessions/ - For each session, read the transcript and extract user messages
- Call
claude -pto analyze messages for feedback - Save extracted feedback items to appropriate directories
- Mark sessions as processed
- Find all unprocessed sessions in
-
Display results:
Processing sessions... [process-sessions] Processing session abc12345 for project 'product-forge' [process-sessions] Saved: improvement-add-validation.md [process-sessions] Saved: skill-idea-log-checker.md Processed 3 sessions, found 5 feedback items Run /sync-feedback --review to review extracted feedback.
Status Mode (--status or default with no pending items)
-
Read statistics from
~/.claude/learnings/stats.json -
Read projects from
~/.claude/learnings/projects.json -
Count pending items by scanning
~/.claude/learnings/projects/*/feedback/**/*.md -
Display summary:
Product Forge Feedback Status ============================== Total feedback captured: 15 Pending review: 8 By Type: improvement: 6 (4 pending) skill-idea: 4 (2 pending) command-idea: 2 (1 pending) bug-report: 2 (1 pending) pattern: 1 (0 pending) By Project: product-forge: 7 items my-django-app: 5 items frontend-app: 3 items Run /sync-feedback --review to review pending items.
Review Mode (--review)
-
Find all pending feedback files:
find ~/.claude/learnings/projects -name "*.md" -path "*/feedback/*" -
For each pending item, display:
[1/8] improvement - product-forge ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Title: Add status filtering to /task-list command Description: The /task-list command shows all tasks regardless of status. Adding --status flag would help filter to pending/completed items. Target: plugins/product-design/commands/task-list.md Actions: [a] Approve - Mark as reviewed, ready for sync [d] Dismiss - Remove this feedback [s] Skip - Review later [e] Edit - Open in editor [q] Quit - Exit review Select action: -
Process user action:
- Approve: Update status in frontmatter to
reviewed - Dismiss: Move to
~/.claude/learnings/synced/dismissed/ - Skip: Continue to next item
- Edit: Allow inline editing of the feedback
- Quit: Exit review mode
- Approve: Update status in frontmatter to
-
Show summary at end:
Review complete: Approved: 5 Dismissed: 2 Skipped: 1 Run /sync-feedback --export to generate GitHub issues.
Export Mode (--export)
-
Find reviewed feedback (status: reviewed):
grep -l "status: reviewed" ~/.claude/learnings/projects/*/feedback/**/*.md -
For each reviewed item, generate GitHub issue format:
## Issue: [improvement] Add status filtering to /task-list **Type**: improvement **Target**: plugins/product-design/commands/task-list.md **Source Project**: product-forge ### Description The /task-list command shows all tasks regardless of status. Adding --status flag would help filter to pending/completed items. ### Suggested Implementation [From feedback description] --- Captured via Product Forge feedback hooks -
Offer submission options:
5 items ready for export: Options: [1] Copy to clipboard (one at a time) [2] Create GitHub issue via gh CLI [3] Export to file (feedback-export.md) [4] Cancel Select option: -
After export, move items to
~/.claude/learnings/synced/
Feedback File Format
Each feedback file uses YAML frontmatter:
---
type: improvement
status: pending
captured: 2026-01-06T15:30:00Z
session_id: abc123
project: my-django-app
repo: https://github.com/user/my-django-app
target: plugins/python-experts/skills/django-api
---
# Add pagination guidance to django-api skill
The django-api skill covers endpoint creation but lacks
guidance on pagination patterns for large datasets.
Status Transitions
pending → reviewed → synced
↓
dismissed
Notes
- Feedback stays local until you explicitly export/submit
- Dismissed items are archived, not deleted
- Use
--statusregularly to see accumulated feedback - The Product Forge team reviews submitted feedback for inclusion
Weekly Installs
1
Repository
jpoutrin/product-forgeGitHub Stars
8
First Seen
6 days ago
Security Audits
Installed on
zencoder1
amp1
cline1
openclaw1
opencode1
cursor1