Skip to main content

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
ソースの最終更新活動
2026年1月9日 05:23
検出された SKILL.md の言語
英語
スター
1
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する 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で見る