-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprotected_paths.json
More file actions
62 lines (62 loc) · 6.3 KB
/
Copy pathprotected_paths.json
File metadata and controls
62 lines (62 loc) · 6.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
{
"_README": "削除と上書きから守るものの正典。tools/claude/guard_delete.py(PreToolUse フック。削除コマンドと Write を見る)と tools/claude/trash.ps1(削除コマンド)の両方がこの 1 ファイルを読む。**同じ表を 2 つの言語に書き写さない**——片方だけ直したときに、守っているつもりで素通りになるため。経緯は docs/decisions/0044-削除はごみ箱送りに一本化しrmを機械で止める.md。",
"_README_criteria": "載せる基準は「消えたとき、**戻す操作が現実的か・戻し損ねたことに気づけるか**」である(2026-09-07 に決め直した。ごみ箱送りにした時点で「戻せない」ものはほとんど無くなったので、基準を立て直した)。当たるものが 3 種類ある(**番号で参照しない**——増減するため)。**戻す操作が一括になり、取りこぼしに気づけないもの**——.git/ は千を超えるファイルがあり、ごみ箱から「全選択して元に戻す」しかない。1 個取りこぼしても git は「壊れている」とは言わず、次に何かを読んだときに初めて分かる。**中身が git のどこにも無く、消えると人手の作業がやり直しになるもの**——稼働 DB(帳簿のデータ)と、追跡外の環境設定。**ごみ箱に入りきらないほど大きいもの**——Windows はごみ箱の容量を超えるものを完全削除するとされる(**未確認**——実測も一次情報も取っていない。**未確認のまま進むと決めた。2026-09-08**。材料と残る危険は docs/decisions/0044-削除はごみ箱送りに一本化しrmを機械で止める.md の決定 12 と帰結。この類型に当たる行はまだ 1 つも無いが、**正典に載っていない大きなファイルは trash が素通りさせる**)。**追跡外の大きなデータを新しく置いたら、ここに足す**——足し忘れを機械は拾えない。**追跡外でも作り直せるもの(obj/・bin/ のような生成物)は載せない。**",
"_README_how": "path はリポジトリルートからの相対パス。trash.ps1 と guard_delete.py の Write の判定は、絶対パスへ解決して「その配下か・それを含むか」を見る。guard_delete.py の削除コマンドの判定だけは、シェルを解釈できないので path の字面をコマンド文字列に探す——区切りは / でも \\ でもよく、`\\\\`(エスケープ済み)・`//`・`/./` は照合前に畳む。`LocalData/db` の行は `db` だけの語には当たらない(**末尾の名前で探すと、`db`・`backup` のような一般語の行を置いた日に、関係のないコマンドが拒まれる**。2026-09-10 に相対パスの照合へ変えた)。**親を裸で指す形も止める**——行が `LocalData/db` のように親を持つとき、`LocalData`・`LocalData/`・`LocalData/*`・`LocalData/..` を当たり先に書く上書き・移動は、守る配下を含むので拒む(`LocalData/temp/…` には当たらない)。**kind は dir か file。** .claude/settings.json の ask に要る行の形(フォルダなら Edit(<path>/**)、ファイルなら Edit(<path>))を guard_delete.py --selftest が撃ち分けるために要る——**ファイルに /** を付けた形は何も覆わないのに、形だけ見ると緑になってしまうから**(自己レビューで判明。2026-09-08)。**`LocalData/temp/` は載せない**——いつ消えてもいいものを置く場所で、Claude も書き・消す(開発者の指示。2026-09-10。消えてまずいものはそこに置かない)。**`LocalData/` に新しいサブフォルダを足したら、守るものならここに 1 行足す**——親の 1 行で覆う形をやめたので、足し忘れは機械では拾えない。",
"protected": [
{
"path": "LocalData/db",
"kind": "dir",
"why": "LocalData/db/(稼働 DB)の中身は git のどこにも無く、消えると実機での確認がやり直しになる"
},
{
"path": "LocalData/designs",
"kind": "dir",
"why": "LocalData/designs/(デプロイ zip)は稼働サーバが読む実体で、消えると画面が出なくなる"
},
{
"path": "LocalData/storages",
"kind": "dir",
"why": "LocalData/storages/(添付ファイルの実体)は git のどこにも無く、消えると帳簿の証憑参照が切れる"
},
{
"path": "LocalData/backup",
"kind": "dir",
"why": "LocalData/backup/(稼働 DB の退避)は戻すための現物で、消えると復元できなくなる"
},
{
"path": "LocalData/README.md",
"kind": "file",
"why": "LocalData/README.md(環境データ置き場の説明。退避の片づけの手順を持つ)は Git 追跡外で、消えると各自の環境にしか無い文書が失われる"
},
{
"path": "Designer/LocalEnvironment.md",
"kind": "file",
"why": "Designer/LocalEnvironment.md(デザイナ exe のパス等)は Git 追跡外で、消えるとデザイナ CLI が動かなくなる"
},
{
"path": ".claude/settings.local.json",
"kind": "file",
"why": ".claude/settings.local.json(マシン固有の許可とフック)は Git 追跡外で、消えると Claude Code の配線が落ちる"
},
{
"path": "Designer/.claude/settings.local.json",
"kind": "file",
"why": "Designer/.claude/settings.local.json(デザインワークスペース側のマシン固有設定)は Git 追跡外である"
},
{
"path": "BusinessApp/BusinessApp.Server/appsettings.Development.json",
"kind": "file",
"why": "appsettings.Development.json(接続文字列・デザイン zip の配置先)は Git 追跡外で、消えるとサーバが起動しなくなる"
},
{
"path": "Designer/Design/designer.settings.Development.json",
"kind": "file",
"why": "designer.settings.Development.json(デザイナ CLI の接続先)は Git 追跡外である"
},
{
"path": ".git",
"kind": "dir",
"why": ".git/ は履歴そのもので、戻す操作が一括になり、取りこぼしても気づけない"
}
]
}