rivet-harvest
Capture decisions and requirements from conversation history. Use when user says "harvest", "capture decisions", or "save what we discussed" to persist architectural decisions into .rivet/systems.yaml.
معلومات المصدر
- المستودع
- ratacat/rivet
- آخر نشاط في المصدر
- ٩ يناير ٢٠٢٦ في ٠٥:٢٣
- لغة SKILL.md المكتشفة
- الإنجليزية
- النجوم
- ١
- التفرعات
- ٠
خيارات التثبيت
يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.
مراجعة ملفات المصدر
اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.
عرض SKILL.md
SKILL.md
تعليمات المصدر · معاينة للقراءة فقط- name
- rivet-harvest
- description
- Capture decisions and requirements from conversation history. Use when user says "harvest", "capture decisions", or "save what we discussed" to persist architectural decisions into .rivet/systems.yaml.
- user-invocable
- true
- allowed-tools
- Bash, Read, Glob, Grep, Edit, Write, AskUserQuestion
# Rivet Harvest - Extract Decisions from Transcripts
Capture architectural decisions, requirements, and terminology from Claude Code conversation history and add them to .rivet/systems.yaml.
## Purpose
During AI-assisted development, valuable decisions get made in conversation:
- "We should use async-first for scale"
- "The Router must support nested routes"
- "Let's call this concept 'vibe coding'"
These decisions are valuable but ephemeral. Harvest extracts them and locks them into .rivet/systems.yaml so they persist.
## Prerequisites
- .rivet/systems.yaml must exist with at least one system defined
- Run scan first if no .rivet/systems.yaml exists
## What to Extract
### Requirements
Statements about what a system MUST do:
- "must support X"
- "needs to handle Y"
- "should always Z"
### Decisions
Architectural choices made during development:
- "we're going with X approach"
- "decided to use Y for Z"
- "async-first for scale"
### Terminology
New terms or concepts defined:
- "let's call this X"
- "X means Y in this codebase"
- Glossary entries
## Harvest Process
### Step 1: Read Current .rivet/systems.yaml
```bash
cat .rivet/systems.yaml
```
Understand existing systems so extracted items can be assigned correctly.
### Step 2: Locate Transcript History
Claude Code stores transcripts in `~/.claude/projects/<project-hash>/`.
```bash
# Find recent transcripts for this project
ls -lt ~/.claude/projects/*/transcripts/ 2>/dev/null | head -20
```
### Step 3: Parse Transcripts
Look for patterns indicating decisions, requirements, or terminology:
**Requirement patterns:**
- "must", "should", "needs to", "has to", "required"
- Context: usually follows discussion of a system or feature
**Decision patterns:**
- "decided", "going with", "we'll use", "chosen", "approach"
- Context: usually resolves a discussion or comparison
**Terminology patterns:**
- "let's call", "we define", "means", "refers to"
- Context: naming or concept clarification
### Step 4: Present Extracted Items
Show the user what was found:
```
Found 5 potential items to harvest:
Requirements:
1. [Router] must support nested routes
2. [API] needs to handle rate limiting
Decisions:
3. [Router] async-first approach for scale
4. [Database] PostgreSQL over SQLite
Terminology:
5. vibe_coding: AI handles implementation while human guides
Which items should be added to .rivet/systems.yaml? (comma-separated numbers, or 'all')
```
### Step 5: Assign to Systems
For each selected item, confirm or reassign the target system:
```
Item: "must support nested routes"
Detected system: Router
[Enter] to confirm, or type system name to reassign:
```
### Step 6: Write to .rivet/systems.yaml
Add extracted items to the appropriate systems:
```yaml
systems:
Router:
description: URL routing and navigation
requirements:
- must support nested routes
decisions:
- async-first approach for scale
```
Add glossary terms to the project level:
```yaml
glossary:
vibe_coding: AI handles implementation while human guides
```
## Usage
```
/rivet-harvest
```
The skill will:
1. Check for .rivet/systems.yaml (fail if missing)
2. Scan recent transcripts
3. Extract potential items
4. Present interactive selection
5. Write selected items to .rivet/systems.yaml
## Notes
- Items are deduplicated against existing .rivet/systems.yaml entries
- Each harvest is atomic - all selected items written in one commit
- Git auto-commits changes with descriptive message
عرض على GitHub