Aapastech セッション・バックログ:タスクを決して忘れない は何をしますか?
長時間のセッションやマルチタスクプロンプトでは、AIアシスタントが作業を見落としがちです。最初に依頼した内容が薄れ、後のターンで一つの詳細に没頭してしまいます。このスキルは、ユーザー自身のコンピュータ上に保存されるバックログでこの問題を解決します。会話メモリは情報源ではありません。バックログが情報源です。バックログにないタスクは存在せず、バックログにあるタスクは「完了」または「中止」とマークされるまで終了しません。
このスキルは、ユーザーのコンピュータでシェルコマンドを実行できる、またはMCPツールを呼び出せる任意のアシスタントやエージェントで動作します。同じコンピュータ上のすべてのセッション(ツールやモデルを問わず)が同じバックログを共有します。
プライバシールール: タスクデータは作業を実行するデバイス上に保持されます。バックログをクラウドサービス、ホストされたページ、コネクタ、共有ドキュメントにコピーしないでください。ユーザーのデバイスに到達できない場合は、代わりにオフラインモード(セクション9)を使用してください。
1. バックログを見つけてエンジンを実行する
ツールリストに backlog_* ツールがある場合(MCPサーバー、セクション11)、それらを使用してください。これらは以下のコマンドと一対一で対応し、フォルダ、エンコーディング、アップグレードを自動処理します。このセクションの残りはスキップしてください。
それ以外の場合、バックログは bl.py(エンジン)、config.json、tasks/(タスクごとに1つのJSONファイル)、sessions/、board.html、BOARD.md を含むフォルダです。以下の順序で探してください:
- ユーザーが設定、メモリ、またはプロジェクト指示で伝えた場所。
BACKLOG_DIR環境変数(設定されている場合)。~/Documents/Aapastech-Backlog(デフォルト)。~/Documents/Claude-Backlog(v3より前のフォルダ名。ユーザーのタスクがそこにある場合は引き続き使用)。
実行方法。 このドキュメントでは bl <コマンド> を省略形として使用します。常に完全なコマンドを入力してください。シェル変数($BL …)に保存しないでください(macOSのデフォルトシェルzshでは失敗します)。
| シェル | コマンド |
|---|---|
| macOS / Linux (bash, zsh) | python3 ~/Documents/Aapastech-Backlog/bl.py <コマンド> … |
| Windows PowerShell | py -3 "$HOME\Documents\Aapastech-Backlog\bl.py" <コマンド> …(py がない場合は python を試してください) |
| Windows cmd | py -3 "%USERPROFILE%\Documents\Aapastech-Backlog\bl.py" <コマンド> … |
| Git Bash on Windows | py -3 ~/Documents/Aapastech-Backlog/bl.py <コマンド> … |
bl where は使用中のフォルダとエンジンバージョンを表示します。Windowsでは、Documents がOneDriveに移動されていることがよくあります(%USERPROFILE%\OneDrive\Documents)。~\Documents が存在しない場合はそこを探し、BACKLOG_DIR を設定してすべてのセッションが同じフォルダを見つけられるように提案してください。
Python。 エンジンにはPython 3.8以上が必要で、他に依存関係はありません。
- macOS: 新しいMacで最初に
python3を呼び出すと、Appleの「コマンドラインデベロッパツールをインストール」ダイアログが表示されることがあります。ユーザーに、これは想定内であり安全に受け入れられること、またはpython.orgからPythonをインストールすることを伝えてください。 - Windows: Pythonは通常インストールされていません。
py -3とpythonの両方が失敗した場合は、ユーザーにpython.orgからPython 3を「Add python.exe to PATH」にチェックを入れてインストールするか、winget install Python.Python.3.12を実行するよう依頼してください。他の方法にフォールバックしないでください。
2. デバイスでの初回実行(ブートストラップ)
バックログがまだ存在しない場合:
- フォルダ
~/Documents/Aapastech-Backlog(またはユーザーが選択した場所)を作成します。 - このスキル自身のフォルダから
scripts/bl.pyをそこにコピーします。これはボードが組み込まれた、stdlibのみを使用する単一のPythonファイルです。 - ユーザーに一つだけ短い質問をします:自分を待っているタスクに表示する名前と、その作業が該当するエリア(3~8エリア、例:クライアント、製品、管理、個人)は何か。あなたが既に知っている情報からエリアを提案してください。次に実行:
bl init --owner "<名前>" --areas "エリア1,エリア2,…,個人,AI-Ops"ユーザーが独自のボード名を希望する場合は--title "<ボードタイトル>"を追加します(デフォルトは「Aapastech Backlog」)。 - ボードの場所を知らせます:
file://…/Aapastech-Backlog/board.html。開くことを提案し(bl board --open)、タブをピン留めするよう勧めます。 - スキルを常時オンにすることを提案します。例えば、アシスタントの個人設定や指示ファイルに次のように追加します:「すべてのセッション開始時と、作業を伴うタスクの前に、session-backlogスキルを必ず読み込んでください。」
アップグレード: bl version がこのスキルの scripts/bl.py よりも低いバージョンを表示する場合(VERSION = "…" を探してください)、新しい bl.py を古いものに上書きコピーします。タスクデータと設定はそのままです。
3. セッションID(セッションごとに一度)
安定したセッションIDを選び、すべての呼び出しで再利用します:
- プラットフォームがセッションにURLまたはIDを提供する場合はそれを使用し、URLを
--urlで渡します。 - それ以外の場合:
<サーフェス>-<YYYYMMDD-HHMM>形式でセッション開始時刻を使用します(例:desktop-20261018-1652、code-20261018-0910、api-20261018-1200、sched-20261019-0600)。
bl session --id <SID> --label "<サーフェス> · <メイン トピック>" --surface code|desktop|cloud|api|scheduled [--url <リンク>]
これにより、そのセッションのオープンタスクに加えて、他のセッションからの未クレームまたは古くなったタスクが表示されます。期限切れやユーザー待ちのタスクを一行で言及します。リスト全体をダンプしないでください。
4. ターンループ(作業を伴うすべてのターン)
A. 最初に再読み込み。 最初のターン以降の各ターンの開始時に、bl open --session <SID> を実行します。これは、プロンプトが一つのサブタスクに深く潜り込む場合に特に重要です。このステップが他の作業を忘れないようにするものです。絶対にスキップしないでください。
B. 作業前にキャプチャ。 新しい要求はすべて、作業を開始する前に一括でキャプチャします。これには「あとで…」「忘れずに…」「後で…」などの付随的なコメントも含まれます。バッチをJSONファイルに書き込み、ファイル書き込みツールを使用してパスを渡します。ファイルはすべてのシェルで機能します。JSONを echo でパイプするとWindowsシェルで壊れ、非ASCIIテキストが文字化けします。
[
{"title":"価格ページのリデザイン","area":"製品","eta":"1h","priority":"P1",
"source":"プロンプト 16:52: 価格ページのやり直し","next":"現在のコピーを取得",
"children":[{"title":"現在のコピーを監査","eta":"10m"},
{"title":"2つのレイアウトをドラフト","eta":"30m"},
{"title":"選択したレイアウトを公開","eta":"20m"}]},
{"title":"サプライヤーに返信","area":"管理","eta":"15m","status":"waiting_user","next":"ユーザーが数量を確認するのを待つ"}
]
bl batch --session <SID> <ファイルパス.json>(ファイルはスクラッチまたは一時フォルダに置き、ユーザーのプロジェクトには置かないでください)。
キャプチャをコンパクトな一行で再生し、ユーザーが修正できるようにします:
キャプチャしました: T-0042 価格ページ (1h) → T-0043 監査 (10m)、T-0044 レイアウト (30m)、T-0045 公開 (20m); T-0046 サプライヤー返信 (あなた待ち)。
最初に bl list を確認し、重複を作成せずに既存のタスクを更新します。"parent":"T-0042"(または bl add に --parent T-0042)を追加して、サブタスクを既存のタスクの下に配置します。
C. クレームしてから作業。 各タスクを開始する前に bl claim <ID> --session <SID> [--eta 20m] を実行します。別のアクティブセッションが所有しているためにクレームが拒否された場合は、そのままにしておきます。クレームはロックされるため、2つのセッションが同時に同じタスクを獲得することはありません。可能な場合は並行して作業します。オーケストレーションセッションは、サブエージェントにタスクIDを渡して、サブエージェントのバックログを更新します。
D. 進捗に応じて更新。
bl update <ID> --session <SID> --log "決定/発見事項" [--next "…"] [--output <パスまたはリンク>] [--status blocked|waiting_user|ready]
- ユーザーの決定をそのままの言葉で記録します。
- 生成したすべてのファイルやリンクを
--outputに含めます。 - ユーザー待ちの場合は
--status waiting_user --next "<正確に必要な内容>"。
E. 正直にクローズ。 bl done <ID> --session <SID> --log "納品完了…" --output … は、結果を確認した後にのみ実行します。親タスクは、そのサブタスクがすべてオープンな間はクローズできません。タスクを放棄するには、bl drop <ID> --session <SID> --reason "…" を実行します。決して削除しないでください。
F. フッター。 作業を伴ったすべての返信の最後に、bl footer --session <SID> [--exclude <報告済みID>] の一行出力を追加します。
5. エリア
すべてのトップレベルタスクには config.json からエリアが割り当てられます(bl areas で一覧表示)。サブタスクは親のエリアを継承します。最も近いものを選んでください。新しい作業ラインが明確に現れた場合にのみ、新しいエリアを追加します(bl areas --add "名前")。その際、そのことを言及してください。bl areas --rename 旧 新 で、設定とすべてのタスクのエリア名を変更します。
6. ETA(すべてのタスクに一つ)
- ETAとは、並行作業を前提としてアシスタントが完了するまでの壁時計時間です。通常は5~60分、時には数時間、まれに数日です。形式:
10m、45m、2h、1h30m、1d。 - 結果の確認時間を含めます。
- カウントダウンはクレームまたは作成時に開始します。ボードは期限切れタスクを赤で表示します。
- 超過しそうな場合は、すぐに再見積もりします:
--eta 1h --eta-reason "…"。タスクを黙って期限切れにしないでください。 waiting_userタスクの場合、ETAはユーザーが返信した後の完了までの時間です。
7. クロスセッションルール
- クレームは、そのセッションがタスクを更新し続けている限りアクティブです。24時間更新がないと古くなり、どのセッションでも引き継ぐことができます(引き継ぎは記録されます)。
- ユーザーの了承なしにアクティブなクレームに
--forceを使用しないでください。 - 長時間の作業が終わる前に、各クレームタスクに新しいセッションがそのまま行動できる
--nextを残します。未完了の作業は--status ready --log "リリース済み: <状態>"で解放します。 - 「何がオープンか」「どこまで進んでいるか」「他のセッションが何をしたか」については、会話メモリではなく
bl list(--all、--area X、--session Y)から回答します。 - バックログは1つのデバイスに属します。他のデバイスやクラウド上のセッションは、そのデバイスへのリンクを通じてのみ使用します。
- コマンドがタスクはビジーだと表示した場合、別のセッションがその瞬間に書き込んでいます。少し待ってからもう一度試してください。
8. キャプチャをスキップするタイミング
同じ返信内で完全に回答できる一回限りの質問に対してのみキャプチャをスキップします。それ以外はすべてキャプチャします:成果物があるもの、複数のターンにわたるもの、先送りされたもの。疑わしい場合はキャプチャしてください。
9. オフラインモード(ユーザーデバイスに到達できない場合)
- プラットフォームにタスクリスト機能があればそこにミラーリングし、なければ返信内のチェックリストにミラーリングします。
- 意図した
bl.py操作をそれぞれ、一行に一つのJSONオブジェクトとして、スクラッチスペース(ユーザーのプロジェクトではなく)のbacklog-pending.jsonlにキューイングします:{"cmd":"add","args":{…},"at":"<iso>"}。 - ユーザーに一度伝えます:「あなたのコンピュータにアクセスできないため、バックログの更新はキューイングされ、復旧後に同期されます。」
- 毎ターンデバイスへの接続を再試行します。接続可能になったら、キューを順に再生し、
bl openを実行します。 - 同期前にセッションが終了した場合、最後の返信で未同期タスクをすべてリストアップする必要があります。
10. ボード
board.html は書き込みのたびに再生成され、30秒ごとに自動更新されます。表示内容:
- エリアごとのスイムレーン、列は「To do / 進行中 / ブロック中 / <所有者>待ち / 完了」
- 各カードのETAとカウントダウン、期限切れタスクは赤色
- 各タスクを作成、作業、完了したセッション
- 完全なログと出力へのクリックスルー
BOARD.md は同じボードのテキスト版です。
ユーザーが表示を要求した場合(「バックログを見せて」「ボードを開いて」「何がオープン?」):
- バックログを保持するコンピュータ上で、
bl board --openを実行してデフォルトブラウザで開きます。 - そのコンピュータのブラウザにアクセスできない場合(例:電話でのチャット)、エリアごとにグループ化し、期限切れとユーザー待ちタスクを最初にした
bl listの簡潔なサマリーを貼り付けます。 - ボードはローカルファイルです。公開、アップロード、共有は決して行いません。
11. プラットフォーム別メモ
- MCPクライアント(任意のアシスタントまたはエージェントフレームワーク)。
scripts/backlog_mcp.pyは、stdio上のstdlib MCPサーバーであり、backlog_session、backlog_open、backlog_add、backlog_claim、backlog_update、backlog_done、backlog_drop、backlog_list、backlog_show、backlog_footer、backlog_board、backlog_init、backlog_whereを公開します。コマンドpython3(Windowsではpy、引数-3 <パス>)と引数<backlog_mcp.py へのパス>、オプションで環境変数BACKLOG_DIRを指定して登録します。同じbl.pyを実行するため、シェルとMCPルートは同じバックログを共有します。 - API駆動エージェント。 APIを通じて呼び出されるモデルは、それ自体ではユーザーのファイルにアクセスできません。開発者は、バックログを所有するマシン上でMCPサーバー(または独自のツールの背後にある
bl.py)を実行し、それらのツールをモデルに提供します。ホストされたコードサンドボックスは一時的であるため、そこにバックログを置くとサンドボックス終了時に失われます。そこには保持しないでください。 - ユーザーのコンピュータにリンクされたClaude Desktop / Cloud / Phoneセッション(
device_bash、device_request_folder_access、device_commit_filesなどのデバイスツール。遅延ロードされている場合はツール検索でロードしてください)。バックログフォルダまたはその親(例:~/Documents)は接続フォルダである必要があります。そうでない場合は、device_request_folder_accessを「このコンピュータにタスクバックログを保持するため」という理由で一度呼び出します。その後、接続されたパスを使用してdevice_bashを通じてコマンドを実行します(例:python3 $HOME/mnt/Documents/Aapastech-Backlog/bl.py …)。ブリッジ経由でbl.pyをインストールするには、ファイルをステージングしてデバイスにコミットします(device_commit_files)。 - Claude Code / Codex / Cursor / その他のコーディングエージェント は、セクション1の表に従って、シェル内でエンジンを直接実行します。
コマンドリファレンス
bl init [--owner NAME] [--areas "A,B,C"] [--title T] 初回セットアップ / 所有者、エリア、ボードタイトルの変更
bl version エンジンバージョン
bl where バックログフォルダ、エンジンバージョン、ボードリンク
bl areas [--add NAME …] [--rename OLD NEW] エリアの一覧表示 / 追加 / 名前変更
bl session --id SID --label L --surface S [--url U] セッションの登録。オープンタスクを表示
bl open --session SID このセッションのオープンタスク + 未クレームタスク
bl batch --session SID file.json|- 複数タスクの追加(ネストされた "children" = サブタスク)
bl add --session SID --title T --area A --eta 20m [--parent ID] [--status S] [--next N] [--priority P1]
bl claim ID --session SID [--eta 20m] [--force]
bl update ID --session SID [--status S] [--eta E --eta-reason R] [--next N] [--log L] [--output O] [--area A] [--title T]
bl done ID --session SID [--log L] [--output O] [--force]
bl drop ID --session SID --reason R
bl list [--all] [--area A] [--session SID] [--json]
bl show ID
bl footer --session SID [--exclude ID1,ID2]
bl board [--open]
bl where
bl version
[翻訳のため一部省略]