Define deletion semantics for linked project skills
- 主要言語
- Rust
- スター
- 54.2k
- フォーク
- 6.2k
- 平均マージ
- 3日 4時間
- マージ済み PR(30日)
- 240
説明
**Describe the bug**
Project skill discovery supports whole-skill links, but source deletion resolves the linked directory and recursively removes the target. The current API therefore lacks a clear contract for whether deleting a linked project skill removes the local link, rejects the operation, or deletes the shared target.
The same provenance question affects update and export behavior for linked skills.
---
**To Reproduce**
1. Add a project skill as a whole-directory link to a valid skill outside the project.
2. Discover it through the ACP source API.
3. Delete the discovered project skill.
4. Observe that deletion operates on the resolved target rather than an explicit project-local identity.
---
**Expected behavior**
Define safe, compatible semantics for linked project skills. The preferred user-facing behavior should preserve shared targets unless target deletion is explicitly part of the supported contract.
---
**Screenshots**
Not applicable.
---
**Please provide the following information**
- **OS & Arch:** Cross-platform filesystem behavior
- **Interface:** ACP source API
- **Version:** current `main`
- **Extensions enabled:** Skills
- **Provider & Model:** Not applicable
---
**Additional context**
The design should choose among:
- unlink only the project-local link or junction and preserve the target;
- reject deletion of linked skills; or
- intentionally delete linked targets with an explicit confirmation and ownership contract.
It should also state whether update and export remain supported for linked roots. The verification plan should cover direct links, linked ancestors, ordinary project/global deletion, concurrent replacement, Unix symlinks, and Windows junctions/reparse points.
Do not begin implementation until this issue reaches **Ready** on the [Goose Issues board](https://github.com/orgs/aaif-goose/projects/1).
コントリビューションガイド
調査の方向性
この issue は ACP source API とリンクされたプロジェクト skills に関するものです。まず、skill の検出と削除を処理しているコードを調べます。おそらく source API モジュール内にあります。リンクされたディレクトリを解決し、削除を実行する関数を探してください。再現手順を実行して、現在の動作を理解します。目標はセマンティクスを設計することなので、調査ではリンクされた skills に関する API 契約と既存のテストに焦点を当て、issue が Ready とマークされるまで変更を実装しないでください。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- rust
- 領域
- backend-api-design
- issue の種類
- 機能追加
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 活発
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 45/100