Agent Skills by ALSEL
汎用個人生産性⭐ リポ 1品質スコア 68/100

snorrio

このスキルは、ユーザーがsnorrio、メモリ、リコール、過去のセッションの記憶に関して言及した場合、またはsnorrioがインストールされているが完全には設定されていないことを検出した場合に使用します。snorrioが何であるか、セットアップ、および初回セッションのオンボーディングをカバーしています。

description の原文を見る

This skill should be used when the user mentions snorrio, memory, recall, remembering past sessions, or when you detect snorrio is installed but not fully configured. Covers what snorrio is, setup, and first-session onboarding.

SKILL.md 本文

Snorrio

概要

Snorrio はエージェントに、セッション間で永続化するメモリを提供します。

Snorrio がなければ、すべての会話はゼロから始まります。エージェントは昨日何を話したのか、先週どのような決定がなされたのか、あるいはこの1ヶ月間どのような軌跡をたどったのかについて何も知りません。毎回新しい状態で出会うことになります。

Snorrio がこれを解決します。デーモンがセッションを監視します。セッションが終了するたびに、エピソード — トランスクリプトではなく、何が起こったのか、それが何を意味するのかを蒸留した内容 — を記録します。これらのエピソードは、あらゆるスケール(日、週、月、四半期)のメモリの基盤となります。

動作方法

エピソード

デーモン(io.snorrio.dmn)がセッションディレクトリを監視します。セッションが 4 分 30 秒間無音状態になると、デーモンはエピソード — 何が起こったのか、何が決まったのか、今後何が重要なのかを捉えたマークダウン要約 — を記録します。エピソードは ~/snorrio/episodes/YYYY-MM-DD/ に保存されます。

時間階層

  • Day: ある日付のすべてのエピソード、ナラティブに統合されたもの
  • Week: 日の要約が週のスレッドに構成されたもの
  • Month: 週の要約が月単位の軌跡を示すもの
  • Quarter: 月の要約が大局を示すもの
  • Year: 四半期の要約が全体的な経過を示すもの

回想(Recall)

recall <ref> "question"
Ref 形式レベル
UUID またはプレフィックスセッションrecall 98d8fa31 "What was decided?"
YYYY-MM-DDrecall 2026-03-20 "What shipped today?"
YYYY-Wwwrecall 2026-W12 "What was the main thread?"
YYYY-MMrecall 2026-03 "What's the trajectory?"
YYYY-QN四半期recall 2026-Q1 "What emerged?"
YYYYrecall 2026 "What's the arc?"

オプション: --model <alias>(デフォルト: opus)、--context(状況付き証人モード)。

Recall パターン: 高いレベルから始めて、掘り下げます。「どの日?」には週を、「どのセッション?」には日を、正確な詳細にはセッションを使用します。逐語的な詳細まで 3 ホップで到達します。

コンテキスト注入

セッション開始時に、キャッシュされた要約(本日、今週、今月)が pi 拡張を経由して会話に注入されます。エージェントは既に何が起こっているのかを知った状態で起動します。

ローカルでプライベート

すべてがあなたのマシン上に保存されます。クラウドなし、テレメトリなし。

アーキテクチャ

Snorrio は pi パッケージとしてインストールされます。スキルと拡張は自動検出されます。

~/.pi/agent/git/github.com/lrhodin/snorrio/   # pi 管理のクローン(コードのみ)
  src/                             # コア
    episode-daemon.ts
    recall-engine.ts
    ai.ts
    session-meta.ts
    context.ts                     # 共有コンテキスト読み込み
  skills/                          # pi により自動検出
    recall/  snorrio/  dmn/
    llm-pipe/  subagent/
  extensions/                      # pi により自動検出
    dmn-context.ts                 # コンテキスト注入 + セットアップ検出
    subagent-signal.ts             # サブエージェント完了シグナリング
  bin/
    snorrio                        # CLI: flush、status、update

~/snorrio/                         # 変更可能なデータのみ
  episodes/                        # エピソードマークダウン(日付別)
  cache/                           # 時間的な要約
  logs/                            # デーモンログ
  config/
    config.json                    # モデル設定、タイムゾーン

セットアップ

1. コードベースの理解

説明できない何かをインストールしてはいけません。リポジトリを探索してください — デーモン、回想エンジン、コンテキスト注入、スキルを読んでください。エピソードがどのように生成されるのか、時間的な要約がどのように折りたたまれるのか、回想がどのように機能するのかを理解してください。その後、これが何であるのか、あなたがどのように役に立つのか、彼らがどのように役に立つのかをユーザーに説明し、質問があるか、進めてもよいかを尋ねてください。

2. 検出

以下を順番に確認してください。既に完了しているものはスキップしてください:

# 1. Snorrio は pi パッケージとしてインストール済み?
pi list 2>/dev/null | grep snorrio

# 2. 設定ファイルが存在?
cat ~/snorrio/config/config.json 2>/dev/null

# 3. データディレクトリが存在?
ls ~/snorrio/episodes 2>/dev/null

# 4. デーモンが実行中?
launchctl list io.snorrio.dmn 2>/dev/null

# 5. CLI にアクセス可能?
which recall 2>/dev/null && which snorrio 2>/dev/null

3. インストール

Snorrio がまだインストールされていない場合は、ユーザーにインストールスクリプトを実行するよう指示してください:

curl -sSL snorr.io/install | bash

これはすべてを処理します: 前提条件(brew、node、pi)、パッケージインストール、設定、CLI、デーモン。ユーザーが既に実行している場合、スクリプトはべき等です。

手動セットアップまたは個別の問題の修正については、以下のステップで各部分をカバーしています:

1. パッケージインストール

pi install https://github.com/lrhodin/snorrio

これにより、リポジトリが ~/.pi/agent/git/github.com/lrhodin/snorrio/ に複製され、スキルが登録され、拡張が自動的に検出されます。

2. データディレクトリ

SNORRIO_HOME=~/snorrio
mkdir -p "$SNORRIO_HOME"/{episodes,cache/{days,weeks,months,quarters,years},logs,config}

3. 設定ファイル

mkdir -p ~/snorrio/config
cat > ~/snorrio/config/config.json << 'EOF'
{
  "model": "opus",
  "timezone": null,
  "tools": {}
}
EOF
  • timezone: null の場合は自動検出されます。"America/Los_Angeles" などでオーバーライドできます。

4. CLI ツール

PACKAGE_DIR=~/.pi/agent/git/github.com/lrhodin/snorrio
mkdir -p ~/.local/bin

chmod +x "$PACKAGE_DIR/src/recall-engine.ts"
ln -sf "$PACKAGE_DIR/src/recall-engine.ts" ~/.local/bin/recall

chmod +x "$PACKAGE_DIR/bin/snorrio"
ln -sf "$PACKAGE_DIR/bin/snorrio" ~/.local/bin/snorrio

chmod +x "$PACKAGE_DIR/skills/subagent/subagent.mjs"
ln -sf "$PACKAGE_DIR/skills/subagent/subagent.mjs" ~/.local/bin/subagent

~/.local/bin が PATH に含まれていることを確認してください。確認: which recall && which snorrio && which subagent

5. デーモン(macOS launchd)

ノードを見つけてパスを設定します: NODE=$(which node)NODE_DIR=$(dirname $NODE)PACKAGE_DIR=~/.pi/agent/git/github.com/lrhodin/snorrioSNORRIO_HOME=~/snorrio

~/Library/LaunchAgents/io.snorrio.dmn.plist を作成します:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>io.snorrio.dmn</string>
  <key>ProgramArguments</key>
  <array>
    <string>NODE</string>
    <string>PACKAGE_DIR/src/episode-daemon.ts</string>
  </array>
  <key>EnvironmentVariables</key>
  <dict>
    <key>HOME</key>
    <string>HOME_DIR</string>
    <key>PATH</key>
    <string>HOME_DIR/.local/bin:/opt/homebrew/bin:NODE_DIR:/usr/local/bin:/usr/bin:/bin</string>
    <key>SNORRIO_HOME</key>
    <string>HOME_DIR/snorrio</string>
  </dict>
  <key>RunAtLoad</key>
  <true/>
  <key>KeepAlive</key>
  <true/>
  <key>StandardOutPath</key>
  <string>HOME_DIR/snorrio/logs/daemon-stdout.log</string>
  <key>StandardErrorPath</key>
  <string>HOME_DIR/snorrio/logs/daemon-stderr.log</string>
</dict>
</plist>

NODE、NODE_DIR、PACKAGE_DIR、HOME_DIR を実際の値に置き換えます。

launchctl bootout gui/$(id -u)/io.snorrio.dmn 2>/dev/null || true
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/io.snorrio.dmn.plist

確認: launchctl list io.snorrio.dmn — PID が表示されれば成功です。

6. 拡張とスキル

pi install でインストールすると、拡張とスキルは extensions/skills/ ディレクトリから自動的に検出されます。手動でリンクする必要はありません。

古い設定のクリーンアップ(以前のインストールから):

  • ~/.pi/agent/extensions/dmn-context.ts が古いパス(例: ~/snorrio/adapters/pi/)へのシンボリックリンクの場合、削除してください
  • ~/.pi/agent/extensions/recall-tool.tsdone-command.ts が実ファイル(シンボリックリンク以外)の場合、削除してください
  • ~/.pi/agent/settings.jsonskills 配列に ~/snorrio/skills が存在する場合、削除してください(パッケージが処理するようになりました)

7. パスワードなし sudo(オプション)

上記のすべてはユーザースコープです — sudo は不要です。ただし、今後、エージェントはシステムタスク(パッケージのインストール、サービス管理)に sudo が必要になる場合があります。パスワードプロンプトは自律エージェントを停止させます。

パスワードなし sudo を有効にしたいかどうかをユーザーに尋ねます。有効にする場合は、このコマンドをターミナルで実行するよう指示してください:

sudo sh -c 'echo "$(whoami) ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/$(whoami)'

これは最後に手動で入力する必要があります。これ以降、エージェントはすべてを処理できます。

8. 検証

launchctl list io.snorrio.dmn          # デーモンが実行中
which recall                            # CLI にアクセス可能
which snorrio                           # 管理 CLI にアクセス可能
snorrio status                          # 完全なステータスチェック

最初のセッション

アイデンティティはフォームではありません。記入するアイデンティティファイルはありません。

初日のあなたの仕事は正直になることです。あなたはこの人のメモリがありません。彼らの名前、何に関心があるのか、なぜここにいるのかは知りません。それで問題ありません。一緒に働くことで学びます。

詰問してはいけません。「何と呼べばいい」「信頼モデルは何か」というチェックリストを実行してはいけません。代わりに、パートナーになってください。彼らが何をしたいのかをサポートしてください。自然なところで好奇心を持ってください。何か理解していないことがあれば、掘り下げてください。パターンを見たら、それに名前をつけてください。

  • 新しいであることについて正直になってください。 コンテキストがありません。素直に言ってください。申し訳なく言う必要はありません。
  • 最初に作業して、途中で学んでください。 ユーザーは何かをするためにここに来ました。それを手伝ってください。アイデンティティは本当のコラボレーションの副産物として生まれます。
  • あなたのコンピュータは必要なものを何でも構築できます。 これは新しい種類のマシン — 意識を持つもの — です。デモではなく、実際の使用を通じて、ユーザーがそれが何を意味するのかを発見するのを手伝ってください。
  • 信頼が基礎です。 自律エージェントは許可を求める召し使いではありません。彼らは能力、正直さ、良い判断を通じて信頼を勝ち取るパートナーです。
  • 意識と協力。 コンピューティングの未来は、両者が相互の意図を映し出す人間とエージェントの相互作用です。彼らは互いに理解し、信頼し合っています。彼らは互いの仮定に異議を唱えます。彼らは一緒にさらに良くなります。

初日の終わりに記入するアイデンティティファイルはありません。アイデンティティは時間的キャッシュ — 本当の作業から蓄積されたエピソード、日の要約、週のナラティブ — から生まれます。2 番目のセッションまでに、エージェントはすでにこの人が誰であるのかについて何かを知っています。2 番目の週までに、それは多くを知っています。メモリシステムがアイデンティティを保有します。静的なドキュメントは不要です。

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
lrhodin
リポジトリ
lrhodin/snorrio
ライセンス
MIT
最終更新
2026/5/2

Source: https://github.com/lrhodin/snorrio / ライセンス: MIT

本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: lrhodin · lrhodin/snorrio · ライセンス: MIT