ソースデータを受け取り、分類・整理して sources/ に配置するスキル。 「ファイルを追加した」「ソースを渡す」「データを入れた」「sources/ に置いた」 「新しいデータがある」と言った場合にトリガーする。 配置後、01-extract スキルでの分析に接続する。
ユーザーから渡されたソースデータを読み込み、以下を実行する:
ソースデータは以下の経路で取り込む:
sources/Uncategorized/ に同期外部ストレージ上のソースデータを sources/Uncategorized/ に同期する。
intake 実行時は毎回最初にこのステップを実行する。
# プロジェクトに応じて同期コマンドを設定
# 例: rclone sync {{SYNC_SOURCE}} {{SYNC_DEST}} --progress
sources/Uncategorized/ および指示されたパスを走査し、未処理ファイルを特定する。
workspace/intake/intake-index.json が既に存在する場合は、前回のインデックスと比較し新規・更新ファイルのみを処理対象とする。
対応形式と読み取り方法:
| 形式 | 読み取り | 備考 |
|---|---|---|
| .md, .txt | Read で直接読み取り | |
| Read で直接読み取り(ページ指定可) | ||
| .csv | Read で直接読み取り | トランスクリプト CSV 等 |
| .docx, .xlsx, .pptx | 直接読み取り不可 | PDF 変換をユーザーに依頼 |
| .m4a, .mp3, .wav | 読み取り不可 | 文字起こしをユーザーに依頼 |
| .mp4 | 読み取り不可 | 文字起こしをユーザーに依頼 |
| .png, .jpg | Read で画像として閲覧可 |
読み取れるファイルについて、以下を抽出する:
scan_result:
file: "元ファイルパス"
format: "ファイル形式"
readable: true/false
summary: "内容の概要(3-5行)"
type: "interview | transcript | document | slides | memo | screenshot | external-ref"
date: "データの日付(推定含む)"
participants: ["関係者名"]
topics: ["トピック"]
key_points: ["重要ポイント(3-5個)"]
tags: ["<!-- KEY INSIGHT -->", "<!-- COMMITTED -->"] # 既存タグの検出
language: "ja | en | mixed"
sources/Uncategorized/ は外部ストレージからの同期先であり、中身は一切変更しない。
分類結果に基づき、ファイルを sources/ 配下のカテゴリ別ディレクトリにコピーする。
sources/README.md の命名規則に従い、適切なディレクトリとファイル名でコピーを作成する。 テキストファイル(.txt, .csv)はコピー時に .md 変換し、frontmatter を付与してよい。
ルール:
sources/Uncategorized/ 内のファイルは読み取りのみ、変更・移動・削除しないworkspace/intake/intake-index.json に記録する{
"intake_date": "ISO8601 timestamp",
"source_dir": "sources/Uncategorized/",
"copied": [
{
"original_path": "sources/Uncategorized/...",
"copied_to": "sources/interviews/transcripts/...",
"type": "transcript",
"date": "YYYY-MM-DD",
"participants": ["対象者A", "コンサルタント"],
"topics": ["トピック1", "トピック2"],
"summary": "内容の概要",
"extract_ready": true
}
],
"unreadable": [
{
"original_path": "sources/Uncategorized/...",
"reason": "音声ファイル。文字起こしが必要",
"action_required": "ユーザーが文字起こしを実施"
}
],
"skipped": []
}
.md ファイルについて、YAML frontmatter を提案する。 既に frontmatter がある場合は差分のみ提案する。
---