249 lines
5.9 KiB
Markdown
249 lines
5.9 KiB
Markdown
# @goosefactory/learning
|
|
|
|
GooseFactory Learning & Feedback Processing System — transforms human feedback into AI learning through a sophisticated 6-stage pipeline.
|
|
|
|
## Quick Start
|
|
|
|
### Start the Service
|
|
|
|
```bash
|
|
# Foreground (see logs directly)
|
|
./start-service.sh
|
|
|
|
# Background
|
|
./start-service.sh --bg
|
|
|
|
# Check status
|
|
./start-service.sh --status
|
|
|
|
# View logs
|
|
./start-service.sh --logs
|
|
|
|
# Stop
|
|
./start-service.sh --stop
|
|
```
|
|
|
|
### Or Run Manually
|
|
|
|
```bash
|
|
npx tsx src/service.ts
|
|
```
|
|
|
|
The service will start on **http://localhost:4001** (configure via `LEARNING_PORT` env var).
|
|
|
|
## API Endpoints
|
|
|
|
### Health Check
|
|
```bash
|
|
curl http://localhost:4001/health
|
|
```
|
|
|
|
### Submit Feedback
|
|
```bash
|
|
curl -X POST http://localhost:4001/feedback \
|
|
-H "Content-Type: application/json" \
|
|
-d @test-feedback.json
|
|
```
|
|
|
|
### Run Analysis
|
|
```bash
|
|
curl -X POST http://localhost:4001/analyze
|
|
```
|
|
|
|
## Architecture
|
|
|
|
### 6-Stage Pipeline
|
|
|
|
1. **Validate** - Zod schema validation, dedup, range checks
|
|
2. **Enrich** - Time categorization, theme extraction, sentiment analysis
|
|
3. **Store** - Append to JSONL, daily partitions
|
|
4. **Analyze** - Pattern detection, calibration, trends
|
|
5. **Act** - Update memory files, adjust thresholds
|
|
6. **Learn** - Self-improvement loops, autonomy tiers
|
|
|
|
### 8 Feedback Types
|
|
|
|
- **Decision** - Approve/reject/needs-work with reasons
|
|
- **Dimension Scores** - 1-10 ratings across quality dimensions
|
|
- **Free Text** - Liked/disliked/general notes
|
|
- **Comparison** - A vs B preferences
|
|
- **Annotations** - Region-specific feedback (praise/criticism/questions)
|
|
- **Confidence** - Certainty levels and delegation decisions
|
|
- **Estimation** - Numeric estimates with context
|
|
- **Batch Decisions** - Bulk approve/reject flows
|
|
|
|
Plus: Temperature, Checklist, Ranking, Retrospective
|
|
|
|
### 5-Domain Pattern Analysis
|
|
|
|
1. **Approval Patterns** - By server type, pipeline stage
|
|
2. **Dimension Trends** - Quality metrics over time
|
|
3. **Theme Clustering** - NLP-based pattern extraction
|
|
4. **Calibration** - Confidence vs. actual accuracy
|
|
5. **Behavioral** - Time patterns, fatigue, anomalies
|
|
|
|
### Memory Files (4 Total)
|
|
|
|
- `feedback-patterns.md` - Recurring themes and anti-patterns
|
|
- `quality-standards.md` - Dimension thresholds and calibration
|
|
- `jake-preferences.md` - Personal taste model
|
|
- `improvement-log.md` - Changes to rules/thresholds/autonomy
|
|
|
|
## Data Storage
|
|
|
|
### Feedback Events
|
|
```
|
|
~/.config/goose/factory/feedback/raw/{YYYY-MM-DD}.jsonl
|
|
```
|
|
- One line per enriched feedback event
|
|
- Daily partitioned for easy archival
|
|
- Immutable append-only logs
|
|
|
|
### Memory Files
|
|
```
|
|
~/.config/goose/factory/memory/
|
|
```
|
|
- Markdown format for human readability
|
|
- Auto-updated on analysis runs
|
|
- Versioned with timestamps
|
|
|
|
## Configuration
|
|
|
|
Environment variables:
|
|
- `LEARNING_PORT` - Service port (default: 4001)
|
|
- `FEEDBACK_DATA_DIR` - Data directory (default: `~/.config/goose/factory`)
|
|
|
|
Pipeline config (in `service.ts`):
|
|
```typescript
|
|
{
|
|
dataDir: DATA_DIR,
|
|
memoryDir: `${DATA_DIR}/memory`,
|
|
analysisThreshold: 10, // Run analysis after N events
|
|
analyzeOnEvery: false, // Batch mode
|
|
minDataPointsForRules: 5, // Min data for rule generation
|
|
calibrationEnabled: true, // Enable confidence calibration
|
|
analysisDays: 30, // Days of data to analyze
|
|
}
|
|
```
|
|
|
|
## Testing
|
|
|
|
### Run Sample Test
|
|
```bash
|
|
# Submit test feedback with current timestamp
|
|
jq --arg ts "$(date -u +"%Y-%m-%dT%H:%M:%S.000Z")" \
|
|
'.timestamp = $ts' test-feedback.json | \
|
|
curl -X POST http://localhost:4001/feedback \
|
|
-H "Content-Type: application/json" \
|
|
-d @-
|
|
```
|
|
|
|
### Check Results
|
|
```bash
|
|
# View stored events
|
|
cat ~/.config/goose/factory/feedback/raw/*.jsonl | jq .
|
|
|
|
# View memory files
|
|
cat ~/.config/goose/factory/memory/*.md
|
|
```
|
|
|
|
## Integration
|
|
|
|
### From API
|
|
```typescript
|
|
import { processFeedback } from '@goosefactory/learning';
|
|
|
|
const result = await processFeedback(feedbackData, {
|
|
dataDir: '~/.config/goose/factory',
|
|
memoryDir: '~/.config/goose/factory/memory',
|
|
});
|
|
```
|
|
|
|
### HTTP Call
|
|
```bash
|
|
curl -X POST http://localhost:4001/feedback \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"id": "feedback-123",
|
|
"timestamp": "2026-02-07T12:00:00Z",
|
|
"sessionId": "session-456",
|
|
"modalType": "decision-modal",
|
|
"workProduct": { ... },
|
|
"feedback": { ... },
|
|
"meta": { ... }
|
|
}'
|
|
```
|
|
|
|
## Performance
|
|
|
|
- **Validation**: ~0.5ms per event
|
|
- **Enrichment**: ~0.3ms per event
|
|
- **Storage**: ~0.2ms per event
|
|
- **Analysis**: ~2ms for 30 days of data
|
|
- **Memory updates**: ~0.5ms per file
|
|
|
|
Total: **~1-2ms per feedback event**
|
|
|
|
## Self-Improvement Features
|
|
|
|
### Pre-Check (Coming Soon)
|
|
- Validate work products before generation
|
|
- Check against learned patterns
|
|
- Prevent predictable failures
|
|
|
|
### Prediction Tracking (Coming Soon)
|
|
- Store Buba's confidence predictions
|
|
- Compare against actual outcomes
|
|
- Continuous calibration
|
|
|
|
### Diminishing Review (Coming Soon)
|
|
- 5-tier autonomy system
|
|
- Auto-approve based on pattern confidence
|
|
- Regression detection and rollback
|
|
|
|
## Development
|
|
|
|
### Build
|
|
```bash
|
|
npm run build
|
|
```
|
|
|
|
### Type Check
|
|
```bash
|
|
npm run typecheck
|
|
```
|
|
|
|
### Watch Mode
|
|
```bash
|
|
npm run dev
|
|
```
|
|
|
|
## Files
|
|
|
|
- `src/index.ts` - Library exports
|
|
- `src/service.ts` - HTTP service
|
|
- `src/types.ts` - Zod schemas + TypeScript types
|
|
- `src/pipeline/` - 6-stage processing pipeline
|
|
- `src/storage/` - JSONL storage + queries
|
|
- `src/analysis/` - Pattern detection + calibration
|
|
- `src/memory/` - Memory file writers/readers
|
|
- `src/improvement/` - Self-improvement loops
|
|
- `src/metrics/` - KPIs and dashboard stats
|
|
|
|
## Status
|
|
|
|
✅ **All core features implemented and tested**
|
|
|
|
See [LEARNING_PIPELINE_REPORT.md](./LEARNING_PIPELINE_REPORT.md) for full test results.
|
|
|
|
## Next Steps
|
|
|
|
1. **Integration** - Connect to API and desktop app
|
|
2. **Monitoring** - Add metrics endpoint and alerts
|
|
3. **Enhancement** - Diminishing review, pre-check, prediction tracking
|
|
4. **UI** - Admin dashboard for memory file review
|
|
|
|
---
|
|
|
|
Part of the [GooseFactory](../../README.md) ecosystem.
|