Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 4 additions & 82 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -1,84 +1,6 @@
# 残タスク / Backlog
# TODO / Backlog

`要求仕様書.md`・`企画書.md` と現コードベースの差分を整理。
分類は **マイルストーン(リリース単位)× 優先度(`P0..P3`)**。`(FR/NFR/§)` は要求仕様書の参照。
進行中・未対応・完了の状況は **[GitHub Issues](https://github.com/yk-lab/setup-task/issues)** を真実の源として管理する。要件(FR/NFR)は [`要求仕様書.md`](要求仕様書.md)、設計判断は [`企画書.md`](企画書.md) 参照。

**現状**: FR-1〜FR-10 と主要 NFR は実装・テスト済み。CI(`ci.yml` / `self-test.yml`)も green。
残りは **リリース運用(M3/M4)**、セキュリティ強化系 CI、将来拡張・任意機能。

---

## マイルストーン `v1.0.0`(要求仕様書 §11 DoD)

### 実装・テスト済み(Done)

| 参照 | 内容 | 実装箇所 |
|---|---|---|
| FR-1 | バージョン解決(exact / range / latest, `v` 正規化, prerelease 除外) | `src/version.ts` |
| FR-2 | プラットフォーム判定 + `architecture` 上書き | `src/platform.ts` |
| FR-3 | 認証付き DL + content-type ガード | `src/download.ts` / `src/github.ts` |
| FR-4 | 指数バックオフ + 恒久エラー即 fail | `src/download.ts` / `src/errors.ts` |
| FR-5 | SHA256 検証(既定 ON, BSD `*name` 形式対応) | `src/checksum.ts` |
| FR-6〜FR-9 | 展開 / chmod / tool-cache / PATH / outputs | `src/main.ts` / `src/install.ts` |
| FR-10 | `arduino/setup-task` 互換 inputs | `action.yml` |
| NFR-1 | `repo-token` マスク + 取得ホスト/リダイレクト先検証 | `src/main.ts` / `src/url-guard.ts` / `src/github.ts` / `src/download.ts` |
| NFR-3 | exact 指定時の一覧取得スキップ + cache 優先 | `src/version.ts` / `src/main.ts` |
| §10.1 | ユニットテスト(version / platform / github / download / checksum) | `tests/*.test.ts` |
| §10.2 | cache-hit 経路の self-test | `.github/workflows/self-test.yml` |
| §10.3 | checksum 改ざん検出テスト | `tests/checksum.test.ts` |

### 未対応・進行中

| # | 概要 | 優先度 | 参照 | 備考 |
|---|---|---|---|---|

### 未対応・進行中(リリース運用 / M3・M4)

| # | 概要 | 優先度 | ラベル | 備考 |
|---|---|---|---|---|
| [#37](https://github.com/yk-lab/setup-task/issues/37) | `[release]` リリース自動化 + `v1` ムービングタグ + Marketplace 公開 | `P1: high` | `release` | **release-please + `JasonEtco/build-and-tag-action`(パターン A)** で実装。詳細は Issue 内コメント参照 |

---

## マイルストーン `Backlog`(将来 / optional)

### 未対応・進行中

| # | 概要 | 優先度 | ラベル | 備考 |
|---|---|---|---|---|
| [#39](https://github.com/yk-lab/setup-task/issues/39) | `[enhancement]` ジョブサマリに導入結果を出力(NFR-5) | `P3: low` | `enhancement` |
| [#44](https://github.com/yk-lab/setup-task/issues/44) | `[enhancement]` フォールバックソースをサポート(FR-11) | `P3: low` | `enhancement` |

### 未 Issue 化

なし

---

## 備考: 既に解決した Issue

v1.0.0 実装中に作成・解決済みの Issue(参考)。

| # | 概要 | 解決 PR(推定) |
|---|---|---|
| [#8](https://github.com/yk-lab/setup-task/issues/8) | `[ci]` Codecov でカバレッジを PR 表示 | #46 / #47 |
| [#1](https://github.com/yk-lab/setup-task/issues/1) | `[security]` `repo-token` を `core.setSecret` で秘匿 | #24 |
| [#2](https://github.com/yk-lab/setup-task/issues/2) | `[test]` `withRetry` のユニットテスト | #25 |
| [#3](https://github.com/yk-lab/setup-task/issues/3) | `[test]` `fetchJson` content-type ガードのテスト | #26 |
| [#4](https://github.com/yk-lab/setup-task/issues/4) | `[test]` checksum 改ざん注入の self-test | #27 |
| [#5](https://github.com/yk-lab/setup-task/issues/5) | `[test]` cache-hit 経路の self-test | #29 |
| [#7](https://github.com/yk-lab/setup-task/issues/7) | `[bug]` レンジ指定時に tool-cache より先に GitHub 解決する | #30 |
| [#22](https://github.com/yk-lab/setup-task/issues/22) | dist/ freshness 管理 | #36(main から dist/ を外し、リリース時ビルド方式へ) |
| [#40](https://github.com/yk-lab/setup-task/issues/40) | `[enhancement]` リトライ回数・間隔を input 化(FR-4) | #51 |
| [#43](https://github.com/yk-lab/setup-task/issues/43) | `[chore]` checksum 改ざんテストの重複ファイルを統合 | #52 |
| [#42](https://github.com/yk-lab/setup-task/issues/42) | `[security]` ダウンロード先ホスト/リダイレクト先を検証(NFR-1) | #53 |
| [#54](https://github.com/yk-lab/setup-task/issues/54) | `[enhancement]` HTTP(S) proxy 環境で全 fetch を proxy 経由にする | #57 |
| [#55](https://github.com/yk-lab/setup-task/issues/55) | `[documentation]` テスト規約(CLAUDE.md)を stub-fetch unit test の実態に合わせる | #58 |
| [#59](https://github.com/yk-lab/setup-task/issues/59) | `[ci]` paths-filter が root 直下の .md を docs 扱いせずフル CI が走る | #60 |
| [#56](https://github.com/yk-lab/setup-task/issues/56) | `[security]` 取得ボディにサイズ上限/タイムアウトを設ける | #61 |
| [#41](https://github.com/yk-lab/setup-task/issues/41) | `[test]` platform.test.ts を §9 全 os/arch 組合せに拡張 | #62 |
| [#23](https://github.com/yk-lab/setup-task/issues/23) | `[ci]` ワークフロー静的解析(actionlint / zizmor)を CI に追加 | #68 |
| [#45](https://github.com/yk-lab/setup-task/issues/45) | `[chore]` Biome 導入を評価 → 一元化採用 | #70 |
| [#38](https://github.com/yk-lab/setup-task/issues/38) | `[docs]` README に arduino/setup-task からの移行ガイドを追加 | #72 |
| [#73](https://github.com/yk-lab/setup-task/issues/73) | `[docs]` セキュア路線へポジショニング見直し(arduino v3 を受けて) | #72 |
| [#9](https://github.com/yk-lab/setup-task/issues/9) | `[chore]` lefthook で pre-push に `pnpm run all` を仕込む | #71 |
> このファイルは以前 Issue を手動ミラーしていたが、GitHub と二重管理になり編集のたびに
> マージ衝突を生んでいたため、ポインタだけ残して撤去した。
Loading