chore: import upstream snapshot with attribution
Component Security Validation / Security Audit (push) Has been cancelled
Deploy to Cloudflare Pages / deploy (push) Has been cancelled

This commit is contained in:
wehub-resource-sync
2026-07-13 12:38:58 +08:00
commit bb5c75ce05
8824 changed files with 1946442 additions and 0 deletions
@@ -0,0 +1,303 @@
# Replay System
The replay system records successful error resolutions for future reference, enabling faster problem-solving when similar errors occur.
## How It Works
```
1. Encounter Error
|
v
2. Check Replay History -----> Match Found? ---> Apply Known Solution
| |
No Match |
| v
v Verify & Done
3. Analyze & Resolve
|
v
4. Record Solution ---------> .claude/error-solutions/
|
v
5. Future Benefit
```
## Directory Structure
```
project/
└── .claude/
└── error-solutions/
├── nodejs-module-not-found-express.yaml
├── react-hydration-mismatch-date.yaml
├── postgres-connection-refused.yaml
└── ...
```
## Recording Solutions
### When to Record
Record a solution when:
- You spent significant time debugging
- The error is likely to recur
- The solution isn't obvious
- Team members might encounter same issue
### How to Record
1. Copy the template:
```bash
mkdir -p .claude/error-solutions
cp solution-template.yaml .claude/error-solutions/<error-signature>.yaml
```
2. Fill in the details:
```yaml
id: "nodejs-module-not-found-express"
created: "2024-01-15T10:30:00Z"
error:
type: "dependency"
category: "ModuleNotFound"
language: "nodejs"
pattern: "Cannot find module 'express'"
context: "Starting Node.js server"
diagnosis:
root_cause: "Express package not installed"
factors:
- "npm install not run after git clone"
- "package.json missing express"
solution:
immediate:
- "Run: npm install express"
proper:
- "Add express to package.json if missing"
- "Run: npm install"
verification:
- "Run: node server.js"
- "Check server starts without error"
prevention:
- "Document npm install in README"
- "Use npm ci in CI/CD"
metadata:
tags: ["nodejs", "npm", "dependency"]
```
## Error Signature Generation
Create consistent signatures for matching:
### Pattern: `[language]-[category]-[specific]`
Examples:
- `nodejs-module-not-found-express`
- `react-hydration-mismatch-date`
- `python-import-error-circular`
- `postgres-connection-refused-docker`
- `docker-permission-denied-volume`
### Normalizing Error Messages
Replace specific values with placeholders:
| Original | Normalized |
|----------|------------|
| `Cannot find module 'express'` | `Cannot find module '{module}'` |
| `User 12345 not found` | `User {id} not found` |
| `Connection refused 127.0.0.1:5432` | `Connection refused {host}:{port}` |
## Lookup Process
When encountering an error:
### 1. Generate Signature
```
Error: Cannot find module 'lodash'
|
v
Category: ModuleNotFound
Language: nodejs
|
v
Pattern: nodejs-module-not-found-*
```
### 2. Search Solutions
```bash
# Find matching solutions
ls .claude/error-solutions/ | grep "nodejs-module-not-found"
```
### 3. Check Match Quality
```yaml
# Compare error pattern
error:
pattern: "Cannot find module '{module}'" # Matches!
# Check context
context: "Starting Node.js server" # Same context!
```
### 4. Apply Solution
Follow the steps in `solution.immediate` or `solution.proper`.
### 5. Update Metadata
```yaml
metadata:
occurrences: 6 # Increment
last_resolved: "2024-01-20T14:30:00Z" # Update
```
## Best Practices
### Writing Good Solutions
1. **Be Specific**
```yaml
# Bad
root_cause: "Something wrong with dependencies"
# Good
root_cause: "Express package not in node_modules because npm install wasn't run after cloning"
```
2. **Include Commands**
```yaml
commands:
- "npm install express"
- "npm ls express" # Verify installation
```
3. **Document Verification**
```yaml
verification:
- "Server starts without error"
- "GET /api/health returns 200"
```
4. **Add Prevention**
```yaml
prevention:
- "Add postinstall check script"
- "Document setup in README"
```
### Organizing Solutions
**By Language/Framework:**
```
nodejs-*.yaml
python-*.yaml
react-*.yaml
```
**By Error Type:**
```
*-connection-refused-*.yaml
*-module-not-found-*.yaml
*-permission-denied-*.yaml
```
### Team Sharing
1. **Version Control**
```bash
# Add to git
git add .claude/error-solutions/
git commit -m "Add error solution: nodejs-module-not-found-express"
```
2. **Review Solutions**
- Include solutions in code review
- Validate accuracy before merging
3. **Maintain Currency**
- Update solutions when better fixes found
- Remove obsolete solutions
- Add timestamps for relevance
## Integration with Error Resolver
When using the error-resolver skill:
1. **Automatic Lookup**: Check replay history first
2. **Match Scoring**: Rate match quality (exact > pattern > category)
3. **Solution Application**: Apply known solution if high confidence
4. **Gap Analysis**: Identify missing patterns to record
5. **Continuous Learning**: Record new solutions after resolution
## Example Solutions
### Simple: Missing Dependency
```yaml
id: "nodejs-module-not-found-express"
error:
type: "dependency"
pattern: "Cannot find module 'express'"
solution:
immediate:
- "npm install express"
```
### Complex: Race Condition
```yaml
id: "react-state-update-unmounted"
error:
type: "runtime"
pattern: "Can't perform a React state update on an unmounted component"
context: "Async operation completing after component unmount"
diagnosis:
root_cause: "useEffect cleanup not cancelling async operations"
factors:
- "fetch() or setTimeout() completing after unmount"
- "No cleanup function in useEffect"
solution:
proper:
- "Add cleanup function to useEffect"
- "Use AbortController for fetch"
- "Track mounted state with ref"
code_change: |
useEffect(() => {
const controller = new AbortController()
fetch(url, { signal: controller.signal })
.then(res => res.json())
.then(setData)
return () => controller.abort()
}, [url])
```
### Environment-Specific: Docker
```yaml
id: "docker-permission-denied-volume"
error:
type: "permission"
pattern: "permission denied: '/app/data'"
context: "Docker container cannot write to mounted volume"
diagnosis:
root_cause: "Container user doesn't have write permission to host directory"
factors:
- "Container runs as non-root user"
- "Host directory owned by different user"
solution:
immediate:
- "chmod 777 /host/path" # Quick but not secure
proper:
- "Match container user ID to host user"
- "Use named volume instead of bind mount"
commands:
- "chown -R 1000:1000 /host/path"
```
@@ -0,0 +1,97 @@
# Error Solution Template
# Copy this file and fill in details after resolving an error
# Save to: .claude/error-solutions/<error-signature>.yaml
# Unique identifier for this solution
id: "" # e.g., "nodejs-module-not-found-express"
# Timestamps
created: "" # ISO 8601 format: 2024-01-15T10:30:00Z
updated: ""
# Error Details
error:
# Error classification
type: "" # syntax, type, reference, runtime, network, permission, dependency, config, database, memory
category: "" # Specific error category (e.g., ModuleNotFound, TypeError, ECONNREFUSED)
language: "" # nodejs, python, java, go, rust, etc.
framework: "" # react, express, django, spring, etc. (optional)
# Error pattern for matching
pattern: "" # Error message pattern, use {placeholder} for variables
# Examples:
# "Cannot find module '{module}'"
# "TypeError: Cannot read property '{prop}' of undefined"
# "ECONNREFUSED {host}:{port}"
# Error code if applicable
code: "" # e.g., ENOENT, E11000, 404
# Context where error typically occurs
context: "" # Brief description of when this error appears
# Diagnosis
diagnosis:
# Root cause of the error
root_cause: ""
# Contributing factors (list)
factors:
- ""
# - ""
# How to verify this is the right diagnosis
verification_steps:
- ""
# - ""
# Solution
solution:
# Quick fix to get unblocked
immediate:
- ""
# - ""
# Proper/permanent fix
proper:
- ""
# - ""
# Code changes if applicable
code_change: |
# Optional: paste code snippet here
# Commands to run
commands:
- ""
# - ""
# How to verify the fix worked
verification:
- ""
# - ""
# How to prevent this error in the future
prevention:
- ""
# - ""
# Metadata for tracking
metadata:
# How many times this solution has been used
occurrences: 1
# Last time this solution was applied
last_resolved: ""
# Success rate (0.0 to 1.0)
success_rate: 1.0
# Related errors (list of other solution IDs)
related: []
# Tags for searching
tags: []
# Notes or additional context
notes: ""