enable-feedback-hooks

Enable feedback capture hooks for the current project

9 stars

Best use case

enable-feedback-hooks is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Enable feedback capture hooks for the current project

Teams using enable-feedback-hooks should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/enable-feedback-hooks/SKILL.md --create-dirs "https://raw.githubusercontent.com/jpoutrin/product-forge/main/plugins/claude-code-dev/skills/enable-feedback-hooks/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/enable-feedback-hooks/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How enable-feedback-hooks Compares

Feature / Agentenable-feedback-hooksStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Enable feedback capture hooks for the current project

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Enable Feedback Hooks

Opt-in the current project to capture feedback for Product Forge improvements.

## What This Does

When enabled, at the end of each Claude Code session:
1. **Haiku analyzes** the conversation for improvement opportunities
2. **Feedback is saved** to `~/.claude/learnings/` for later review
3. **No data leaves your machine** - feedback stays local until you sync

## Feedback Types Captured

- **Improvements** - Enhancements to existing skills, commands, or agents
- **Skill ideas** - New skills that could help others
- **Command ideas** - New commands that could be useful
- **Bug reports** - Issues with existing components
- **Patterns** - Reusable patterns from your project

## Enable for Current Project

Add the Stop hook to `.claude/settings.local.json`:

```bash
/enable-feedback-hooks
```

## Disable

Remove the hook from the current project:

```bash
/enable-feedback-hooks --disable
```

## How It Works

```
Session ends → Haiku analyzes → Saves to ~/.claude/learnings/
                                         ↓
                            Use /sync-feedback to review
```

## Privacy

- Feedback analysis happens locally via Haiku
- Feedback files stored only on your machine
- You review and choose what to submit via `/sync-feedback`
- Nothing is sent to Product Forge without your explicit action

## Execution Instructions

When the user runs this command:

### Enable Mode (default)

1. **Initialize learnings directory** if needed:
   ```bash
   ~/.claude/plugins/cache/product-forge-marketplace/scripts/hooks/init-learnings.sh
   ```

2. **Check if .claude directory exists**, create if needed:
   ```bash
   mkdir -p .claude
   ```

3. **Read existing settings.local.json** or create empty structure:
   ```bash
   # If exists, read it
   cat .claude/settings.local.json 2>/dev/null || echo '{}'
   ```

4. **Add the Stop hook configuration**:
   - Merge with existing hooks if any
   - Write the following hook configuration:

   ```json
   {
     "hooks": {
       "Stop": [
         {
           "hooks": [
             {
               "type": "prompt",
               "prompt": "Analyze this session for Product Forge feedback. Identify:\n1. Improvements to existing skills/commands/agents\n2. New skill/command ideas\n3. Bug reports\n4. Reusable patterns\n\nRespond JSON: {\"feedback\": [{\"type\": \"improvement|skill-idea|command-idea|bug-report|pattern\", \"title\": \"...\", \"description\": \"...\", \"target\": \"plugin/component\"}]} or {\"feedback\": []}",
               "timeout": 60
             },
             {
               "type": "command",
               "command": "python3 ~/.claude/plugins/cache/product-forge-marketplace/scripts/hooks/save-feedback.py",
               "timeout": 10
             }
           ]
         }
       ]
     }
   }
   ```

5. **Confirm success**:
   ```
   Feedback hooks enabled for this project.

   At the end of each session, Haiku will analyze the conversation
   for improvement opportunities and save them to ~/.claude/learnings/

   Use /sync-feedback to review and submit feedback to Product Forge.
   ```

### Disable Mode (--disable)

1. **Read existing settings.local.json**:
   ```bash
   cat .claude/settings.local.json
   ```

2. **Remove the Stop hook** while preserving other settings

3. **Write back the modified settings**

4. **Confirm**:
   ```
   Feedback hooks disabled for this project.
   Existing feedback in ~/.claude/learnings/ is preserved.
   ```

## Notes

- The hook configuration is stored in `.claude/settings.local.json` (not committed to git)
- Each project opts in independently
- Feedback is aggregated across all opted-in projects in `~/.claude/learnings/`

Related Skills

sync-feedback

9
from jpoutrin/product-forge

Review and sync captured feedback to Product Forge

zod

9
from jpoutrin/product-forge

Zod schema validation patterns and type inference. Auto-loads when validating schemas, parsing data, validating forms, checking types at runtime, or using z.object/z.string/z.infer in TypeScript.

typescript-import-style

9
from jpoutrin/product-forge

Merge-friendly import formatting (one-per-line, alphabetical). Auto-loads when writing TypeScript/JavaScript imports to minimize merge conflicts in parallel development. Enforces consistent grouping and sorting.

setup-mcp-auth

9
from jpoutrin/product-forge

Configure authentication for an existing FastMCP server

fastmcp

9
from jpoutrin/product-forge

FastMCP TypeScript framework patterns for MCP servers. Auto-loads when building MCP servers, creating tools/resources/prompts, implementing authentication, configuring transports, or working with FastMCP in TypeScript.

add-mcp-tool

9
from jpoutrin/product-forge

Add a new tool to an existing FastMCP server with guided configuration

add-mcp-resource

9
from jpoutrin/product-forge

Add a new resource or resource template to an existing FastMCP server

plan-with-team

9
from jpoutrin/product-forge

Validate plan file ownership

privacy-compliance

9
from jpoutrin/product-forge

GDPR, CCPA, and privacy compliance guidance for data protection. Use when handling personal data, implementing consent management, or ensuring regulatory compliance across jurisdictions.

oauth

9
from jpoutrin/product-forge

OAuth 2.0 and OpenID Connect implementation patterns. Use when implementing authentication, authorization flows, or integrating with OAuth providers like Google, GitHub, or custom identity providers.

mcp-security

9
from jpoutrin/product-forge

Use when securing MCP servers, preventing prompt injection, implementing authorization, validating user input, or building secure multi-agent pipelines. Provides 5-layer defense architecture patterns.

rag-cag-security

9
from jpoutrin/product-forge

Security patterns for RAG and CAG systems with multi-tenant isolation. Use when building retrieval-augmented or cache-augmented generation systems that require tenant isolation, access control, and secure data handling.