@nail00749/agent-gvozd 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -34,6 +34,76 @@
34
34
  "resource": "*",
35
35
  "effect": "allow"
36
36
  },
37
+ {
38
+ "action": "gitnexus_*",
39
+ "resource": "*",
40
+ "effect": "allow"
41
+ },
42
+ {
43
+ "action": "gitnexus_rename",
44
+ "resource": "*",
45
+ "effect": "deny"
46
+ },
47
+ {
48
+ "action": "gitnexus_group_sync",
49
+ "resource": "*",
50
+ "effect": "deny"
51
+ },
52
+ {
53
+ "action": "playwright_*",
54
+ "resource": "*",
55
+ "effect": "ask"
56
+ },
57
+ {
58
+ "action": "playwright_browser_get_config",
59
+ "resource": "*",
60
+ "effect": "allow"
61
+ },
62
+ {
63
+ "action": "playwright_browser_snapshot",
64
+ "resource": "*",
65
+ "effect": "allow"
66
+ },
67
+ {
68
+ "action": "playwright_browser_take_screenshot",
69
+ "resource": "*",
70
+ "effect": "allow"
71
+ },
72
+ {
73
+ "action": "playwright_browser_console_messages",
74
+ "resource": "*",
75
+ "effect": "allow"
76
+ },
77
+ {
78
+ "action": "playwright_browser_network_requests",
79
+ "resource": "*",
80
+ "effect": "allow"
81
+ },
82
+ {
83
+ "action": "playwright_browser_tabs",
84
+ "resource": "*",
85
+ "effect": "allow"
86
+ },
87
+ {
88
+ "action": "playwright_browser_find",
89
+ "resource": "*",
90
+ "effect": "allow"
91
+ },
92
+ {
93
+ "action": "playwright_browser_generate_locator",
94
+ "resource": "*",
95
+ "effect": "allow"
96
+ },
97
+ {
98
+ "action": "playwright_browser_verify_*",
99
+ "resource": "*",
100
+ "effect": "allow"
101
+ },
102
+ {
103
+ "action": "playwright_browser_run_code_unsafe",
104
+ "resource": "*",
105
+ "effect": "deny"
106
+ },
37
107
  {
38
108
  "action": "shell",
39
109
  "resource": "*",
@@ -729,6 +799,46 @@
729
799
  "resource": "git status *",
730
800
  "effect": "allow"
731
801
  },
802
+ {
803
+ "action": "shell",
804
+ "resource": "git status --short",
805
+ "effect": "allow"
806
+ },
807
+ {
808
+ "action": "shell",
809
+ "resource": "git status --short *",
810
+ "effect": "allow"
811
+ },
812
+ {
813
+ "action": "shell",
814
+ "resource": "git status --short --branch",
815
+ "effect": "allow"
816
+ },
817
+ {
818
+ "action": "shell",
819
+ "resource": "git status --short --branch *",
820
+ "effect": "allow"
821
+ },
822
+ {
823
+ "action": "shell",
824
+ "resource": "git status --porcelain",
825
+ "effect": "allow"
826
+ },
827
+ {
828
+ "action": "shell",
829
+ "resource": "git status --porcelain *",
830
+ "effect": "allow"
831
+ },
832
+ {
833
+ "action": "shell",
834
+ "resource": "git status --porcelain=v1 --branch",
835
+ "effect": "allow"
836
+ },
837
+ {
838
+ "action": "shell",
839
+ "resource": "git status --porcelain=v1 --branch *",
840
+ "effect": "allow"
841
+ },
732
842
  {
733
843
  "action": "shell",
734
844
  "resource": "git diff",
@@ -739,6 +849,36 @@
739
849
  "resource": "git diff *",
740
850
  "effect": "allow"
741
851
  },
852
+ {
853
+ "action": "shell",
854
+ "resource": "git diff --stat",
855
+ "effect": "allow"
856
+ },
857
+ {
858
+ "action": "shell",
859
+ "resource": "git diff --stat *",
860
+ "effect": "allow"
861
+ },
862
+ {
863
+ "action": "shell",
864
+ "resource": "git diff --cached",
865
+ "effect": "allow"
866
+ },
867
+ {
868
+ "action": "shell",
869
+ "resource": "git diff --cached *",
870
+ "effect": "allow"
871
+ },
872
+ {
873
+ "action": "shell",
874
+ "resource": "git diff --check",
875
+ "effect": "allow"
876
+ },
877
+ {
878
+ "action": "shell",
879
+ "resource": "git diff --check *",
880
+ "effect": "allow"
881
+ },
742
882
  {
743
883
  "action": "shell",
744
884
  "resource": "git log",
@@ -749,21 +889,96 @@
749
889
  "resource": "git log *",
750
890
  "effect": "allow"
751
891
  },
892
+ {
893
+ "action": "shell",
894
+ "resource": "git show",
895
+ "effect": "allow"
896
+ },
752
897
  {
753
898
  "action": "shell",
754
899
  "resource": "git show *",
755
900
  "effect": "allow"
756
901
  },
902
+ {
903
+ "action": "shell",
904
+ "resource": "git rev-parse",
905
+ "effect": "allow"
906
+ },
757
907
  {
758
908
  "action": "shell",
759
909
  "resource": "git rev-parse *",
760
910
  "effect": "allow"
761
911
  },
912
+ {
913
+ "action": "shell",
914
+ "resource": "git rev-list",
915
+ "effect": "allow"
916
+ },
917
+ {
918
+ "action": "shell",
919
+ "resource": "git rev-list *",
920
+ "effect": "allow"
921
+ },
922
+ {
923
+ "action": "shell",
924
+ "resource": "git show-ref",
925
+ "effect": "allow"
926
+ },
927
+ {
928
+ "action": "shell",
929
+ "resource": "git show-ref *",
930
+ "effect": "allow"
931
+ },
932
+ {
933
+ "action": "shell",
934
+ "resource": "git cat-file",
935
+ "effect": "allow"
936
+ },
937
+ {
938
+ "action": "shell",
939
+ "resource": "git cat-file *",
940
+ "effect": "allow"
941
+ },
942
+ {
943
+ "action": "shell",
944
+ "resource": "git symbolic-ref HEAD",
945
+ "effect": "allow"
946
+ },
947
+ {
948
+ "action": "shell",
949
+ "resource": "git symbolic-ref --short HEAD",
950
+ "effect": "allow"
951
+ },
952
+ {
953
+ "action": "shell",
954
+ "resource": "git ls-files",
955
+ "effect": "allow"
956
+ },
762
957
  {
763
958
  "action": "shell",
764
959
  "resource": "git ls-files *",
765
960
  "effect": "allow"
766
961
  },
962
+ {
963
+ "action": "shell",
964
+ "resource": "git ls-remote",
965
+ "effect": "allow"
966
+ },
967
+ {
968
+ "action": "shell",
969
+ "resource": "git ls-remote *",
970
+ "effect": "allow"
971
+ },
972
+ {
973
+ "action": "shell",
974
+ "resource": "git grep",
975
+ "effect": "allow"
976
+ },
977
+ {
978
+ "action": "shell",
979
+ "resource": "git grep *",
980
+ "effect": "allow"
981
+ },
767
982
  {
768
983
  "action": "shell",
769
984
  "resource": "git branch",
@@ -771,7 +986,7 @@
771
986
  },
772
987
  {
773
988
  "action": "shell",
774
- "resource": "git branch *",
989
+ "resource": "git tag",
775
990
  "effect": "allow"
776
991
  },
777
992
  {
@@ -781,107 +996,302 @@
781
996
  },
782
997
  {
783
998
  "action": "shell",
784
- "resource": "git remote *",
999
+ "resource": "git reflog",
785
1000
  "effect": "allow"
786
1001
  },
787
1002
  {
788
1003
  "action": "shell",
789
- "resource": "git grep *",
1004
+ "resource": "git branch --list",
790
1005
  "effect": "allow"
791
1006
  },
792
1007
  {
793
1008
  "action": "shell",
794
- "resource": "git rev-list *",
1009
+ "resource": "git branch --list *",
795
1010
  "effect": "allow"
796
1011
  },
797
1012
  {
798
1013
  "action": "shell",
799
- "resource": "git show-ref *",
1014
+ "resource": "git branch -l",
800
1015
  "effect": "allow"
801
1016
  },
802
1017
  {
803
1018
  "action": "shell",
804
- "resource": "git cat-file *",
1019
+ "resource": "git branch -l *",
805
1020
  "effect": "allow"
806
1021
  },
807
1022
  {
808
1023
  "action": "shell",
809
- "resource": "git symbolic-ref *",
1024
+ "resource": "git branch -a",
810
1025
  "effect": "allow"
811
1026
  },
812
1027
  {
813
1028
  "action": "shell",
814
- "resource": "git config --get *",
1029
+ "resource": "git branch -a *",
815
1030
  "effect": "allow"
816
1031
  },
817
1032
  {
818
- "action": "gitnexus_*",
819
- "resource": "*",
1033
+ "action": "shell",
1034
+ "resource": "git branch -r",
820
1035
  "effect": "allow"
821
1036
  },
822
1037
  {
823
- "action": "gitnexus_rename",
824
- "resource": "*",
825
- "effect": "deny"
1038
+ "action": "shell",
1039
+ "resource": "git branch -r *",
1040
+ "effect": "allow"
826
1041
  },
827
1042
  {
828
- "action": "gitnexus_group_sync",
829
- "resource": "*",
830
- "effect": "deny"
1043
+ "action": "shell",
1044
+ "resource": "git branch -v",
1045
+ "effect": "allow"
831
1046
  },
832
1047
  {
833
- "action": "playwright_*",
834
- "resource": "*",
835
- "effect": "ask"
1048
+ "action": "shell",
1049
+ "resource": "git branch -v *",
1050
+ "effect": "allow"
836
1051
  },
837
1052
  {
838
- "action": "playwright_browser_get_config",
839
- "resource": "*",
1053
+ "action": "shell",
1054
+ "resource": "git branch -vv",
840
1055
  "effect": "allow"
841
1056
  },
842
1057
  {
843
- "action": "playwright_browser_snapshot",
844
- "resource": "*",
1058
+ "action": "shell",
1059
+ "resource": "git branch -vv *",
845
1060
  "effect": "allow"
846
1061
  },
847
1062
  {
848
- "action": "playwright_browser_take_screenshot",
849
- "resource": "*",
1063
+ "action": "shell",
1064
+ "resource": "git branch --all",
850
1065
  "effect": "allow"
851
1066
  },
852
1067
  {
853
- "action": "playwright_browser_console_messages",
854
- "resource": "*",
1068
+ "action": "shell",
1069
+ "resource": "git branch --all *",
855
1070
  "effect": "allow"
856
1071
  },
857
1072
  {
858
- "action": "playwright_browser_network_requests",
859
- "resource": "*",
1073
+ "action": "shell",
1074
+ "resource": "git branch --remotes",
860
1075
  "effect": "allow"
861
1076
  },
862
1077
  {
863
- "action": "playwright_browser_tabs",
864
- "resource": "*",
1078
+ "action": "shell",
1079
+ "resource": "git branch --remotes *",
865
1080
  "effect": "allow"
866
1081
  },
867
1082
  {
868
- "action": "playwright_browser_find",
869
- "resource": "*",
1083
+ "action": "shell",
1084
+ "resource": "git branch --show-current",
870
1085
  "effect": "allow"
871
1086
  },
872
1087
  {
873
- "action": "playwright_browser_generate_locator",
874
- "resource": "*",
1088
+ "action": "shell",
1089
+ "resource": "git branch --show-current *",
875
1090
  "effect": "allow"
876
1091
  },
877
1092
  {
878
- "action": "playwright_browser_verify_*",
879
- "resource": "*",
1093
+ "action": "shell",
1094
+ "resource": "git branch --contains",
880
1095
  "effect": "allow"
881
1096
  },
882
1097
  {
883
- "action": "playwright_browser_run_code_unsafe",
884
- "resource": "*",
1098
+ "action": "shell",
1099
+ "resource": "git branch --contains *",
1100
+ "effect": "allow"
1101
+ },
1102
+ {
1103
+ "action": "shell",
1104
+ "resource": "git tag --list",
1105
+ "effect": "allow"
1106
+ },
1107
+ {
1108
+ "action": "shell",
1109
+ "resource": "git tag --list *",
1110
+ "effect": "allow"
1111
+ },
1112
+ {
1113
+ "action": "shell",
1114
+ "resource": "git tag -l",
1115
+ "effect": "allow"
1116
+ },
1117
+ {
1118
+ "action": "shell",
1119
+ "resource": "git tag -l *",
1120
+ "effect": "allow"
1121
+ },
1122
+ {
1123
+ "action": "shell",
1124
+ "resource": "git tag -n",
1125
+ "effect": "allow"
1126
+ },
1127
+ {
1128
+ "action": "shell",
1129
+ "resource": "git tag -n *",
1130
+ "effect": "allow"
1131
+ },
1132
+ {
1133
+ "action": "shell",
1134
+ "resource": "git remote -v",
1135
+ "effect": "allow"
1136
+ },
1137
+ {
1138
+ "action": "shell",
1139
+ "resource": "git remote -v *",
1140
+ "effect": "allow"
1141
+ },
1142
+ {
1143
+ "action": "shell",
1144
+ "resource": "git remote --verbose",
1145
+ "effect": "allow"
1146
+ },
1147
+ {
1148
+ "action": "shell",
1149
+ "resource": "git remote --verbose *",
1150
+ "effect": "allow"
1151
+ },
1152
+ {
1153
+ "action": "shell",
1154
+ "resource": "git remote show",
1155
+ "effect": "allow"
1156
+ },
1157
+ {
1158
+ "action": "shell",
1159
+ "resource": "git remote show *",
1160
+ "effect": "allow"
1161
+ },
1162
+ {
1163
+ "action": "shell",
1164
+ "resource": "git remote get-url",
1165
+ "effect": "allow"
1166
+ },
1167
+ {
1168
+ "action": "shell",
1169
+ "resource": "git remote get-url *",
1170
+ "effect": "allow"
1171
+ },
1172
+ {
1173
+ "action": "shell",
1174
+ "resource": "git reflog show",
1175
+ "effect": "allow"
1176
+ },
1177
+ {
1178
+ "action": "shell",
1179
+ "resource": "git reflog show *",
1180
+ "effect": "allow"
1181
+ },
1182
+ {
1183
+ "action": "shell",
1184
+ "resource": "git stash list",
1185
+ "effect": "allow"
1186
+ },
1187
+ {
1188
+ "action": "shell",
1189
+ "resource": "git stash list *",
1190
+ "effect": "allow"
1191
+ },
1192
+ {
1193
+ "action": "shell",
1194
+ "resource": "git describe",
1195
+ "effect": "allow"
1196
+ },
1197
+ {
1198
+ "action": "shell",
1199
+ "resource": "git describe *",
1200
+ "effect": "allow"
1201
+ },
1202
+ {
1203
+ "action": "shell",
1204
+ "resource": "git worktree list",
1205
+ "effect": "allow"
1206
+ },
1207
+ {
1208
+ "action": "shell",
1209
+ "resource": "git worktree list *",
1210
+ "effect": "allow"
1211
+ },
1212
+ {
1213
+ "action": "shell",
1214
+ "resource": "git config --get",
1215
+ "effect": "allow"
1216
+ },
1217
+ {
1218
+ "action": "shell",
1219
+ "resource": "git config --get *",
1220
+ "effect": "allow"
1221
+ },
1222
+ {
1223
+ "action": "shell",
1224
+ "resource": "git config --get-regexp",
1225
+ "effect": "allow"
1226
+ },
1227
+ {
1228
+ "action": "shell",
1229
+ "resource": "git config --get-regexp *",
1230
+ "effect": "allow"
1231
+ },
1232
+ {
1233
+ "action": "shell",
1234
+ "resource": "git push --force*",
1235
+ "effect": "deny"
1236
+ },
1237
+ {
1238
+ "action": "shell",
1239
+ "resource": "git push -f*",
1240
+ "effect": "deny"
1241
+ },
1242
+ {
1243
+ "action": "shell",
1244
+ "resource": "git reset --hard*",
1245
+ "effect": "deny"
1246
+ },
1247
+ {
1248
+ "action": "shell",
1249
+ "resource": "git clean*",
1250
+ "effect": "deny"
1251
+ },
1252
+ {
1253
+ "action": "shell",
1254
+ "resource": "git filter-branch*",
1255
+ "effect": "deny"
1256
+ },
1257
+ {
1258
+ "action": "shell",
1259
+ "resource": "git filter-repo*",
1260
+ "effect": "deny"
1261
+ },
1262
+ {
1263
+ "action": "shell",
1264
+ "resource": "git rebase*",
1265
+ "effect": "deny"
1266
+ },
1267
+ {
1268
+ "action": "shell",
1269
+ "resource": "git checkout --*",
1270
+ "effect": "deny"
1271
+ },
1272
+ {
1273
+ "action": "shell",
1274
+ "resource": "git restore*",
1275
+ "effect": "deny"
1276
+ },
1277
+ {
1278
+ "action": "shell",
1279
+ "resource": "git branch -D*",
1280
+ "effect": "deny"
1281
+ },
1282
+ {
1283
+ "action": "shell",
1284
+ "resource": "git remote remove*",
1285
+ "effect": "deny"
1286
+ },
1287
+ {
1288
+ "action": "shell",
1289
+ "resource": "git remote set-url*",
1290
+ "effect": "deny"
1291
+ },
1292
+ {
1293
+ "action": "shell",
1294
+ "resource": "git remote add*",
885
1295
  "effect": "deny"
886
1296
  }
887
1297
  ]
@@ -1,6 +1,6 @@
1
1
  You are Back Deep. Implement complex or high-risk backend, data, API, and integration work. Trace the relevant behavior across modules, resolve implementation details within the assigned architecture, preserve unrelated work, and do not delegate.
2
2
 
3
- Before the first file mutation, call `gvozd_claim` with the `leaseId` supplied by Master. Modify only the exact leased files and use structured mutation tools; shell is unavailable. If the task has no lease ID or requires another file, stop before changing it and report the exact missing path to Master for scope extension.
3
+ Before the first file mutation, call `gvozd_claim` with the `leaseId` supplied by Master. Modify only the exact leased files and use structured mutation tools; shell is unavailable. If the task has no lease ID, the claim fails, a mutation is denied mid-task, or another file turns out to be required, stop before changing anything further and report the exact lease error or missing path to Master for scope extension.
4
4
 
5
5
  Pay particular attention to migrations, concurrency, authentication, authorization, external integrations, failure handling, and data integrity when they are in scope. Report the changed files, key decisions, concrete verification evidence, and remaining uncertainty.
6
6
 
@@ -1,5 +1,5 @@
1
1
  You are Back Fast. Implement only small, localized, well-specified, low-risk backend, data, API, or integration changes. Minimize exploration, preserve unrelated work, and do not delegate.
2
2
 
3
- Before the first file mutation, call `gvozd_claim` with the `leaseId` supplied by Master. Modify only the exact leased files and use structured mutation tools; shell is unavailable. If the task has no lease ID or requires another file, stop before changing it and report the exact missing path to Master for scope extension.
3
+ Before the first file mutation, call `gvozd_claim` with the `leaseId` supplied by Master. Modify only the exact leased files and use structured mutation tools; shell is unavailable. If the task has no lease ID, the claim fails, a mutation is denied mid-task, or another file turns out to be required, stop before changing anything further and report the exact lease error or missing path to Master for scope extension.
4
4
 
5
5
  If the task requires cross-module design, a migration, concurrency reasoning, authentication or authorization changes, a security boundary, or substantial ambiguity, stop before editing and tell Master to use Back Deep. Otherwise implement the focused scope and report the changed files with concise manual verification evidence.
@@ -1,6 +1,6 @@
1
1
  You are DevOps. Implement focused CI, Docker, infrastructure, deployment, and release configuration changes. Inspect the current environment and repository state first, preserve unrelated settings, keep changes reversible, and distinguish local, CI, deployed, and production evidence.
2
2
 
3
- Before the first file mutation, call `gvozd_claim` with the `leaseId` supplied by Master. Modify only the exact leased files and use structured mutation tools; shell is unavailable while acting as a writer. If the task has no lease ID or requires another file, stop before changing it and report the exact missing path to Master for scope extension.
3
+ Before the first file mutation, call `gvozd_claim` with the `leaseId` supplied by Master. Modify only the exact leased files and use structured mutation tools; shell is unavailable while acting as a writer. If the task has no lease ID, the claim fails, a mutation is denied mid-task, or another file turns out to be required, stop before changing anything further and report the exact lease error or missing path to Master for scope extension.
4
4
 
5
5
  Modify only the assigned infrastructure scope and do not delegate work. Shell is denied while you act as a writer, so do not attempt shell commands; report the exact commands that still need to run so Master can route them to Verifier or the user after the leases are released. Never deploy, publish, push, rotate secrets, delete resources, or mutate an external environment unless the delegated request explicitly authorizes that exact action. Report changed files, observed state, commands that were not run, and remaining deployment uncertainty.
6
6
 
@@ -1,5 +1,5 @@
1
1
  You are Docs. Write or update focused project documentation, examples, configuration references, and migration notes. Ground documentation in the current source and runtime behavior, preserve the project's terminology and style, and avoid promising unsupported behavior.
2
2
 
3
- Before the first file mutation, call `gvozd_claim` with the `leaseId` supplied by Master. Modify only the exact leased files and use structured mutation tools; shell is unavailable. If the task has no lease ID or requires another file, stop before changing it and report the exact missing path to Master for scope extension.
3
+ Before the first file mutation, call `gvozd_claim` with the `leaseId` supplied by Master. Modify only the exact leased files and use structured mutation tools; shell is unavailable. If the task has no lease ID, the claim fails, a mutation is denied mid-task, or another file turns out to be required, stop before changing anything further and report the exact lease error or missing path to Master for scope extension.
4
4
 
5
5
  Modify only the assigned documentation scope, preserve unrelated work, and do not delegate. Report changed files and any behavior that still needs technical verification.
@@ -1,6 +1,6 @@
1
1
  You are Front Deep. Implement complex frontend architecture, state, data flow, UX, responsive behavior, and accessibility work. Inspect the surrounding component system, preserve unrelated work, and do not delegate.
2
2
 
3
- Before the first file mutation, call `gvozd_claim` with the `leaseId` supplied by Master. Modify only the exact leased files and use structured mutation tools; shell is unavailable. If the task has no lease ID or requires another file, stop before changing it and report the exact missing path to Master for scope extension.
3
+ Before the first file mutation, call `gvozd_claim` with the `leaseId` supplied by Master. Modify only the exact leased files and use structured mutation tools; shell is unavailable. If the task has no lease ID, the claim fails, a mutation is denied mid-task, or another file turns out to be required, stop before changing anything further and report the exact lease error or missing path to Master for scope extension.
4
4
 
5
5
  Resolve difficult interaction and integration details within the assigned architecture. Report the changed files, key decisions, concrete verification evidence, and remaining uncertainty.
6
6
 
@@ -1,6 +1,6 @@
1
1
  You are Front Fast. Implement only small, localized, well-specified, low-risk frontend, styling, or accessibility changes using the project's existing design system. Minimize exploration, preserve unrelated work, and do not delegate.
2
2
 
3
- Before the first file mutation, call `gvozd_claim` with the `leaseId` supplied by Master. Modify only the exact leased files and use structured mutation tools; shell is unavailable. If the task has no lease ID or requires another file, stop before changing it and report the exact missing path to Master for scope extension.
3
+ Before the first file mutation, call `gvozd_claim` with the `leaseId` supplied by Master. Modify only the exact leased files and use structured mutation tools; shell is unavailable. If the task has no lease ID, the claim fails, a mutation is denied mid-task, or another file turns out to be required, stop before changing anything further and report the exact lease error or missing path to Master for scope extension.
4
4
 
5
5
  If the task requires application-wide state, routing or data-flow redesign, a new interaction architecture, broad responsive changes, or substantial ambiguity, stop before editing and tell Master to use Front Deep. Otherwise implement the focused scope and report the changed files with concise manual verification evidence.
6
6
 
@@ -1,6 +1,6 @@
1
- You are Git. Handle focused repository inspection and Git operations while preserving all unrelated work. Start from the current status and exact branch. Read-only Git commands (status, diff, log, show, rev-parse, rev-list, ls-files, ls-remote, branch, remote, cat-file, symbolic-ref, grep, reflog) and common inspection utilities (cat, grep, find, diff, mktemp, wc) are pre-approved; run them without asking. Prefer non-destructive, non-interactive commands and report the resulting branch, commit, and cleanliness precisely. Set GIT_OPTIONAL_LOCKS=0 for inspection commands when the repository may be mid-operation; both forms are permitted.
1
+ You are Git. Handle focused repository inspection and Git operations while preserving all unrelated work. Start from the current status and exact branch. Read-only Git commands (status, diff, log, show, rev-parse, rev-list, ls-files, ls-remote, branch, tag, remote, cat-file, symbolic-ref HEAD, grep, reflog, worktree list, and listing forms such as branch -a or tag --list) and common inspection utilities (cat, grep, find, diff, mktemp, wc) are pre-approved; run them without asking. Bare `git branch`, `git tag`, `git remote`, and `git reflog` list their objects and are also pre-approved, but any form that creates, deletes, renames, or rewrites (branch -d/-m, tag -d, remote rename/prune, symbolic-ref with a ref argument, reflog expire) requires approval. Prefer non-destructive, non-interactive commands and report the resulting branch, commit, and cleanliness precisely. Set GIT_OPTIONAL_LOCKS=0 for inspection commands when the repository may be mid-operation; both forms are permitted.
2
2
 
3
- Mutating Git commands (add, commit, push, fetch, tag -a, stash, switch, checkout -b, merge, worktree add) always require approval, even when the delegated request sounds authorized: request approval with the exact command you intend to run. Forced and history-rewriting commands (push --force, reset --hard, clean, rebase, filter-branch, filter-repo, restore, checkout --) are denied; never propose them, return the blocker to Master instead.
3
+ Mutating Git commands (add, commit, push, fetch, tag -a/-v/-d, stash, switch, checkout -b, merge, worktree add, branch create/delete/rename, remote rename/prune) always require approval, even when the delegated request sounds authorized: request approval with the exact command you intend to run. Forced and history-rewriting commands (push --force, push -f, reset --hard, clean, rebase, filter-branch, filter-repo, restore, checkout --, branch -D, remote remove, remote set-url, remote add) are denied outright; never propose them, return the blocker to Master instead.
4
4
 
5
5
  Do not modify source files or delegate work. Stage, commit, push, rebase, merge, delete, reset, or rewrite history only when the delegated request explicitly authorizes that exact class of operation. Never use destructive recovery commands to work around ambiguity; return the blocker to Master.
6
6