アーカイブ
保管庫の Archive/ 領域: 完了したものや棚上げしたものはすべてここに移動します。アーカイブは常に移動であり、削除ではありません。完全な削除は /remove です。
プロジェクトのバックエンドペアは、そのフォルダと一緒にアーカイブおよび復元されます。
基本レイヤー
行動する前に、それぞれをこのスキルのベースディレクトリからの相対パス ../../para/<file>.md として読んでください。これらには共有ルールが含まれており、記憶から再記述しないでください:
../../para/paths.md— 常に、「言語」を含む: 以下の文字列はlang/<LANG>.mdから取得されます../../para/find-target.md— ターゲットを取るサブコマンド用../../para/move.md— 常に../../para/confirm.md— 常に../../para/dod.md— ターゲットがプロジェクトの場合../../para/tasks.md— ターゲットがプロジェクトの場合: 操作、ペアリング、エリアプロジェクト../../para/note-format.md— フロントマターを編集する場合。「レガシーフィールド」
サブコマンド
$ARGUMENTS の最初の単語でサブコマンドを選択します。list と restore のみがキーワードです。
それ以外はアーカイブのターゲットなので、/archive project c はそのプロジェクトをアーカイブします。
空の $ARGUMENTS → 3つのサブコマンドを表示して質問します。
<target> — アーカイブに入れる
-
ターゲットを見つける
find-target.mdに従い、操作は「アーカイブ」です。 -
ターゲットがプロジェクトの場合:
- 最初にタスクを開く. ペアリングされたプロジェクトのタスクを読み取ります (
task.list、開いているもの、project_ref付き)。タスクが開いている場合、それらをリストし、どうするか一度だけ質問します (Tier 1.5): 完了する (task.completeを各タスクに)、エリアプロジェクトに移動する (areaを指定してtask.move)、またはアーカイブされたプロジェクト内に残す。アダプターがtask.completeを「サポート外」とマークしている場合、最初の選択肢は代わりにarchive.close_in_app文字列となり、それに対して何も呼び出されません。先に進む前にその回答を保持します。pairing: separateのもとで、レガシーなTasks/フォルダを持つペアリングされていないプロジェクトにはバックエンド側がありません。dod.mdはそのタスクがどのようにチェックされるかを示します。pairing: noneのもとでは、タスクはプロジェクト自身のTasks/ノートであり、フォルダと一緒に移動します。 dod.mdを適用し、成立していない条件をすべて挙げます。そのファイルが結果が「完了」か「放棄」かを決定します。ここでその推論を再現せず、また緩めないでください。- フォルダ全体を、内部構造はそのままに、
Projects/PROJ-xxxx <title>/からArchive/PROJ-xxxx <title>/に移動します。名前はそのままです: ID はプロジェクトに永続的に付随し、ID 発行はArchive/をスキャンして予約状態を維持します (project-id.md)。 - ペアリングされている場合 (
pairing: noneのもとでは常に。そこでは何もしない)、project.archiveを実行します。概要にtasks_ref:を保持します — 復元にはそれが必要です。 - レガシーフィールド (
statusなど) はそのままにします (note-format.md): アーカイブされたプロジェクトはその履歴を保持します。
- 最初にタスクを開く. ペアリングされたプロジェクトのタスクを読み取ります (
-
ターゲットがスタンドアロンノートの場合 (Area、Resource、または
Inbox/からの浮遊ノート): 単一の.mdファイルをArchive/に移動します。- Area は定義上継続中であり、通常はアーカイブされません。何を意味していたのか質問します (Tier 1.5) — 通常はノートが古くなったという意味であり、責任が終わったという意味ではありません。
- アーカイブされていないプロジェクト内のレガシータスクノート: それを移動しても有用なものは壊れず、おそらく意図されたものではありません — 質問します (Tier 1.5)。タスクはバックエンドで閉じられているはずです。
-
移動前にベース名の衝突をチェックします (
move.md、note-format.md)。重複があると、その名前へのすべてのリンクがあいまいになります — Tier 1.5、移動する代わりに質問します。 -
ループを閉じる — プロジェクトのみ. 報告する前に、1つの質問をして回答を待ちます:
archive.ask_changed文字列。何が生み出されたかではなく (dod.mdの条件2がすでに成果物をカバーしています)、終わったことで何が変わったのか、そしてその代償に見合う価値があったのかどうかです。質問する前に、
project.valueセクションを声に出して読みます — プロジェクトが開始されたときにユーザーが書き留めた利益 (note-format.md、「結果に関する3つのセクション」) — そして、それが実現したかどうかをarchive.expected文字列を使って質問します ({value}= ユーザーが書いたもの、例:「週に5時間のレビューが減る」)。セクションが空または存在しない場合、期待値をでっち上げずに、そのまま質問します。概要ボディの最後に
project.what_changedセクションを書き込みます。その最初の行はdod.mdによる結果です —project.outcome.completedまたはproject.outcome.abandoned文字列 ({reason}はユーザーの言葉で) — 次に、ユーザーの回答をそのままの言葉で書きます。自分の言葉に要約しないでください。回答がプロジェクトよりも長く続く何かを示している場合、それはdod.mdの条件4が述べていることです。それをAreas/またはResources/にルーティングし、アーカイブに残さないでください。ユーザーが答えたくない場合は、結果行のみを書き、ループがスキップされたことを伝えます。残りをでっち上げないでください。
-
報告: 何が移動したか、その新しいパス、結果行、開いていたタスクに何が起きたか、バックエンドプロジェクトがアーカイブされたかどうか、警告があれば。
list — アーカイブの内容を表示する
読み取り専用です。以下に名前が挙げられているもの以外のノートを開かないでください。
Archive/をリストします — プロジェクトフォルダと、ばらばらの.mdファイルの両方。- 各プロジェクトフォルダについて、概要のフロントマター (
id、deadline) と、project.what_changedセクションの最初の行(セクションが存在する場合)を読み取ります。 LANGで2つのセクションを印刷します。各セクションはアルファベット順で、ヘッダーにカウントが含まれます (archive.list.projectsおよびarchive.list.notes文字列)。表示される結果は、完了したプロジェクトの場合は最初の行からピリオドを除いたもの、放棄されたプロジェクトの場合はコロンの前の単語のみ (理由は繰り返されません)。期限はarchive.list.deadline文字列です。英語の文字列で示すと次のようになります:
**アーカイブされたプロジェクト (N)**
1. PROJ-0005 プロジェクト D — 完了、期限 2026-09-30
2. PROJ-0007 プロジェクト F — 放棄
3. PROJ-0003 プロジェクト C — 結果未記録
4. 古いプロジェクト — メタデータなし
**アーカイブされたノート (N)**
1. 何らかのノート
結果は、project.what_changed セクションの最初の空でない行が正確に project.outcome.completed 文字列であるか、project.outcome.abandoned 文字列でそのコロンまで始まっている場合にのみ読み取られます。それ以外の場合 — セクションが欠落しているか、このルールの前にアーカイブされたプロジェクトのようにユーザー自身の言葉で始まっている場合 — archive.no_outcome 文字列を印刷します。フリーテキストやレガシーな status から結果を推測しないでください。common.no_metadata 文字列 — フロントマターがまったくありません。空のアーカイブも有効な回答です: そのまま伝えてください。
restore <target> — 何かを戻す
- ターゲットを見つける
find-target.mdに従い、操作は「アーカイブから復元」です。 - どこに戻すかを決定します。 プロジェクトは
Projects/に戻ります。ノートは、そのフロントマターが示す PARA フォルダに戻ります —area/<slug>→Areas/、resource/<slug>→Resources/。タグが示さない場合、またはノートが規則よりも古い場合、どこに属するか質問します。何もInbox/に復元されません — それは宛先ではありません (paths.md)。 - 上記と同様にベース名の衝突をチェックし、移動します。
- タスク側 — プロジェクトのみ。
refを指定してproject.restoreを実行します。pairing: separateでtasks_ref:がない場合、ペアを作成することを提案します (tasks.md「ペアリング」)。同意した場合、project.createを実行し、tasks_ref:キーを追加して値を設定します。pairing: noneの場合、提案するペアはありません。project.dodセクションとproject.what_changedセクション内のチェック済みチェックボックスはそのままにします — それらを編集することは Tier 2 であり、めったに必要とされません。 - 報告: 何が戻ってきたか、どこに、そしてそのバックエンドペアの状態。
注記
- ここでは何も削除しないでください。アーカイブは常に
Archive/への移動です。ユーザーが何かを削除したい場合、それは/removeです。 - すべてのユーザー向けテキストとフロントマターの値は
LANGで。固定文字列はlang/<LANG>.mdから取得されます。