Community研究&データ分析github.com

ノートブッククリーンアップ

完了した現在のタスクの使い捨てノートブックレコードのみを自動的に削除します。スコープなしの直接公開呼び出しは、現在のセッション全体のノートブックを削除します。

ノートブッククリーンアップ とは?

このスキルは、Cursorエージェントのワークフロー内でタスク完了後にノートブックレコードをクリーンアップするためのものです。主な目的は、現在のタスクに関連する使い捨てレコードのみを自動削除し、セッション全体や他のタスクのデータを保護することです。`scope=current-task`を指定した場合、完了したタスクのノートブックレコードのみを対象とし、必要な結果や証拠、CLEAN手順が完了した後に実行されます。一方、スコープなしで直接公開呼び出しを行うと、現在のCursorセッション全体のTask Notebookディレクトリを削除する権限が与えられ、その場合はタスク完了の待機や確認は不要です。このスキルは、シンボリックリンクのチェック、セッションIDの検証、正確な所有権確認など、厳格な安全機構を備えており、誤削除を防止します。Node.jsの組み込みAPIを使用し、`force`オプションやグロブを使わずに安全に削除を実行します。

対応~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/ARQAWA/cursor-pi/tree/HEAD/research/history/codex-harness-cursor/plugins/scope-focus/cursor/skills/cleanup-notebook

Installed? Explore more 研究&データ分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

ノートブッククリーンアップ は何をしますか?

Mainまたは指定された所有者による自動選択では、常に以下の scope=current-task のみを使用し、セッション全体のデフォルトは使用しません。使い捨てレコードが存在することが確認できた場合、結果と必要なチェックが完了し、タスクスクラッチのクリーンアップが所有権/リンクを使用して終了した後に使用します。それ以外の場合は、クリーンアップワークフローを開始しないでください。保管指示、要求されたノートブック結果、必要なオリジナル、およびまだ使用中のリンクは除外対象です。削除を可能にするためだけにこれらを移動またはアーカイブしないでください。一時停止、ブロッカー、承認待ち、ターン終了、エージェント停止、および破棄を伴わないキャンセルは完了ではありません。必要な継続を保持してください。

そのスコープなしの直接公開呼び出しは、このCursorセッションのTask Notebookディレクトリ全体(完了したレコードを含む)を削除する権限を与えます。その公開デフォルトでは、タスクの完了を待ったり、再度確認を求めたりしないでください。

セッション全体の公開デフォルト

Cursorタスクコンテキストで明示的に利用可能な場合にのみ、現在の session_id を取得します。Node.jsビルトインを使用して、sessionKey を Buffer.from(session_id, 'utf8').toString('hex') として計算し、次に正確なターゲットを path.join(os.tmpdir(), 'scope-focus', 'task-notebook', sessionKey) として計算します。空でないセッションIDが必要です。利用できない場合は、何も削除せず、現在のセッションのノートブックを特定できなかったことを報告します。ディレクトリ一覧、古いノートブック、または別のタスクからセッションを推測しないでください。

ターゲットが存在しない場合は、削除が必要なものはなかったことを報告します。存在する場合は、Scope Focusノートブックルートとターゲットが実際のディレクトリであり、シンボリックリンクではないことを確認します。plan.md が存在する場合は、それが通常のファイルであり、シンボリックリンクではなく、そのSession: ヘッダーが現在のセッションIDと一致することを要求します。その内容を列挙し、削除前に正確なターゲットと除外を再チェックします。ターゲット外のリンクをたどらないでください。他のセッションディレクトリ、リポジトリファイル、または他の場所に保存されたHTMLレポートを削除しないでください。

fs.rmSync(target, { recursive: true }) を使用して、force やグロブなしで検証済みターゲットのみを削除します。その後、ターゲットが存在しないことを確認し、結果を報告します。所有権またはターゲットが曖昧な場合は、何も削除せず、正確な理由を報告します。自動的に交換用ノートブックを作成しないでください。

scope=current-task

適格な現在のタスクレコードに対して自動的に、またはこのスコープを指定した明示的なリクエストで使用します。セッション全体の削除を許可することはありません。実際の実質的な結果、必要な証拠、および選択または必須のすべてのCLEANが完了し、クリーンアップが保留中のクロージングノートブック結果が得られるまで待機します。これらの条件のいずれかが満たされない間は、継続に必要なレコードを保持します。

正確なタスクキー、この完了した実行との関係、および明示的に利用可能な現在の session_id または Task Notebook の手動継続契約に基づく同じ選択タスクの明示的に提供されたノートブック plan.md パスが必要です。ディレクトリや古いレコードからノートブックを検索したり、現在のセッションを推測したりしないでください。現在のセッションの場合は、上記の既存のセッションキーパスを計算します。提供された手動パスの場合は、元の Session: ヘッダーをセッションキーディレクトリおよびこのタスクとの明示的な関係に対して検証します。現在のセッションに再割り当てしないでください。

fs.realpathSync で実際の os.tmpdir() を解決します。ノートブックセッションディレクトリが、その scope-focus/task-notebook 名前空間内に直接存在することを要求します。名前空間、セッション、およびタスクディレクトリは実際のディレクトリであり、シンボリックリンクであってはなりません。エントリプラン(存在する場合)は通常のファイルでなければなりません。変更前に、正規の包含関係と影響を受けるすべてのパスコンポーネントを検証します。タスクキーは、ファイルシステムセーフなベース名であり、セパレータ、.、または .. であってはなりません。Session:、Task:、直接選択、またはその順序ソースと必要性による自動選択、および正確な実行関連付けをチェックします。Mainが提供するルートロケーターは、子のローカルフックロケーターよりも優先されます。メタデータだけでは所有権は付与されません。提供された手動パスは、計算されたパスと同じ場所と所有権のチェックを通過する必要があります。

正確なターゲットと除外のみを列挙します。タスクキーディレクトリは、その内容がこの実行のレコードであることが証明された場合にのみ削除します。必要なオリジナル、結果、他のタスク、および不明または曖昧なエントリはすべて保持します。不明な所有権は、そのターゲットの削除をブロックしますが、その親の削除許可はブロックしません。セッションエントリ plan.md は、そのヘッダーがまだこの実行を指している場合にのみ削除します。現在別のタスクに属している場合は、それを保持し、このタスクのディレクトリに対して確立された所有権レコードを使用します。その異なるヘッダーは、別のタスクを削除する権限ではありません。証拠の欠落または矛盾は、いかなる削除も許可しません。

削除の直前に、正確なパス、所有権、完了、および除外を再チェックします。Node.jsビルトインを使用して、force、グロブ、またはシンボリックリンクの追跡なしで証明済みターゲットに対して実行します。セッションおよび名前空間の親ディレクトリは、実際に空の場合にのみ削除します。他のタスクキーとセッションを保持します。選択されたターゲットが存在しないこと、および除外がその後も残っていることを確認します。すでに存在しない場合は、何も作成しません。実際の結果または具体的な制限を報告します。交換用ノートブック、移行、またはアーカイブを作成しないでください。

必要な適格な削除が未完了のままの場合は、必要な継続を保持し、具体的な残作業を報告します。不明または保持されたレコードは自動削除から除外されますが、その親を削除する許可ではありません。必須の作業が残っている間は、完全な完了を主張しないでください。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

関連スキル