nerftools 1.3.0__tar.gz → 2.0.0__tar.gz

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.
Files changed (882) hide show
  1. nerftools-2.0.0/.claude/agents/nerftool-manifest-reviewer.md +235 -0
  2. nerftools-2.0.0/.cspell.json +60 -0
  3. nerftools-2.0.0/.github/agents/nerftool-manifest-reviewer.md +237 -0
  4. nerftools-2.0.0/.github/workflows/ci.yml +91 -0
  5. nerftools-2.0.0/.gitignore +72 -0
  6. nerftools-2.0.0/.release-please-manifest.json +3 -0
  7. nerftools-2.0.0/.rulesync/subagents/nerftool-manifest-reviewer.md +236 -0
  8. nerftools-2.0.0/.rulesync-version +1 -0
  9. nerftools-2.0.0/CHANGELOG.md +223 -0
  10. nerftools-2.0.0/CONTRIBUTING.md +113 -0
  11. nerftools-2.0.0/PKG-INFO +13 -0
  12. nerftools-2.0.0/docs/nerf-manifest.md +877 -0
  13. nerftools-2.0.0/nerf.yaml +25 -0
  14. nerftools-2.0.0/nerftools/builder.py +957 -0
  15. nerftools-2.0.0/nerftools/cli.py +196 -0
  16. nerftools-2.0.0/nerftools/config.py +437 -0
  17. nerftools-2.0.0/nerftools/default_manifests/az-account.yaml +50 -0
  18. nerftools-2.0.0/nerftools/default_manifests/az-aks.yaml +295 -0
  19. nerftools-2.0.0/nerftools/default_manifests/az-boards.yaml +480 -0
  20. nerftools-2.0.0/nerftools/default_manifests/az-cosmosdb.yaml +135 -0
  21. nerftools-2.0.0/nerftools/default_manifests/az-devops.yaml +35 -0
  22. nerftools-2.0.0/nerftools/default_manifests/az-keyvault.yaml +173 -0
  23. nerftools-2.0.0/nerftools/default_manifests/az-monitor.yaml +154 -0
  24. nerftools-2.0.0/nerftools/default_manifests/az-network.yaml +604 -0
  25. nerftools-2.0.0/nerftools/default_manifests/az-pipelines.yaml +297 -0
  26. nerftools-2.0.0/nerftools/default_manifests/az-postgres.yaml +105 -0
  27. nerftools-2.0.0/nerftools/default_manifests/az-repos.yaml +301 -0
  28. nerftools-2.0.0/nerftools/default_manifests/az-resource.yaml +113 -0
  29. nerftools-2.0.0/nerftools/default_manifests/az-role.yaml +121 -0
  30. nerftools-2.0.0/nerftools/default_manifests/az-storage.yaml +104 -0
  31. nerftools-2.0.0/nerftools/default_manifests/gh.yaml +417 -0
  32. nerftools-2.0.0/nerftools/default_manifests/git.yaml +1156 -0
  33. nerftools-2.0.0/nerftools/default_manifests/kubectl.yaml +451 -0
  34. nerftools-2.0.0/nerftools/default_manifests/nx.yaml +90 -0
  35. nerftools-2.0.0/nerftools/default_manifests/pkgrun.yaml +62 -0
  36. nerftools-2.0.0/nerftools/default_manifests/tf.yaml +40 -0
  37. nerftools-2.0.0/nerftools/default_manifests/tg.yaml +109 -0
  38. nerftools-2.0.0/nerftools/default_manifests/uv.yaml +70 -0
  39. nerftools-2.0.0/nerftools/formats.py +887 -0
  40. nerftools-2.0.0/nerftools/manifest.py +919 -0
  41. nerftools-2.0.0/nerftools/nerfctl/claude/grant-allow.sh +176 -0
  42. nerftools-2.0.0/nerftools/nerfctl/claude/grant-by-threat.sh +307 -0
  43. nerftools-2.0.0/nerftools/nerfctl/claude/grant-deny.sh +170 -0
  44. nerftools-2.0.0/nerftools/nerfctl/claude/grant-list.sh +113 -0
  45. nerftools-2.0.0/nerftools/nerfctl/claude/grant-reset.sh +161 -0
  46. nerftools-2.0.0/out/claude-plugin/.claude-plugin/plugin.json +18 -0
  47. nerftools-2.0.0/out/claude-plugin/hooks/hooks.json +26 -0
  48. nerftools-2.0.0/out/claude-plugin/hooks/nerf-bash-hint +154 -0
  49. nerftools-2.0.0/out/claude-plugin/hooks/nerf-session-start +27 -0
  50. nerftools-2.0.0/out/claude-plugin/scripts/nerfctl-grant-allow +176 -0
  51. nerftools-2.0.0/out/claude-plugin/scripts/nerfctl-grant-by-threat +307 -0
  52. nerftools-2.0.0/out/claude-plugin/scripts/nerfctl-grant-deny +170 -0
  53. nerftools-2.0.0/out/claude-plugin/scripts/nerfctl-grant-list +113 -0
  54. nerftools-2.0.0/out/claude-plugin/scripts/nerfctl-grant-reset +161 -0
  55. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-account/scripts/nerf-az-account-list +45 -0
  56. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-account/scripts/nerf-az-account-set +75 -0
  57. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-account/scripts/nerf-az-account-show +45 -0
  58. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-command-invoke +106 -0
  59. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-get-credentials +100 -0
  60. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-get-credentials-admin +100 -0
  61. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-get-versions +83 -0
  62. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-list +58 -0
  63. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-nodepool-list +94 -0
  64. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-nodepool-show +105 -0
  65. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-show +94 -0
  66. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-boards/SKILL.md +210 -0
  67. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-area-list +53 -0
  68. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-mywi-comment +137 -0
  69. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-mywi-list +51 -0
  70. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-mywi-show +113 -0
  71. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-mywi-update +131 -0
  72. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-wi-add-parent +125 -0
  73. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-wi-comment +115 -0
  74. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-wi-create +135 -0
  75. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-wi-list +83 -0
  76. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-wi-show +93 -0
  77. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-wi-update +128 -0
  78. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-cosmosdb/scripts/nerf-az-cosmosdb-database-list +94 -0
  79. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-cosmosdb/scripts/nerf-az-cosmosdb-list +58 -0
  80. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-cosmosdb/scripts/nerf-az-cosmosdb-network-rule-list +94 -0
  81. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-cosmosdb/scripts/nerf-az-cosmosdb-show +94 -0
  82. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-devops/scripts/nerf-az-devops-set-default-project +75 -0
  83. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-keyvault/scripts/nerf-az-keyvault-list +58 -0
  84. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-keyvault/scripts/nerf-az-keyvault-network-rule-list +88 -0
  85. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-keyvault/scripts/nerf-az-keyvault-secret-list +83 -0
  86. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-keyvault/scripts/nerf-az-keyvault-secret-stats +124 -0
  87. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-keyvault/scripts/nerf-az-keyvault-show +88 -0
  88. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-monitor/scripts/nerf-az-monitor-activity-log +119 -0
  89. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-monitor/scripts/nerf-az-monitor-diagnostic-settings-list +83 -0
  90. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-monitor/scripts/nerf-az-monitor-metrics-list +132 -0
  91. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-nic-show +94 -0
  92. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-nsg-list +58 -0
  93. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-nsg-show +94 -0
  94. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-dns-link-list +94 -0
  95. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-dns-link-show +105 -0
  96. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-dns-record-list +94 -0
  97. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-dns-zone-list +58 -0
  98. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-dns-zone-show +94 -0
  99. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-endpoint-list +58 -0
  100. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-endpoint-show +94 -0
  101. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-link-resource-list +83 -0
  102. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-public-ip-list +58 -0
  103. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-public-ip-show +94 -0
  104. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-route-table-show +94 -0
  105. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-subnet-show +105 -0
  106. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-vnet-list +58 -0
  107. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-vnet-peering-list +94 -0
  108. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-vnet-peering-show +105 -0
  109. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-vnet-show +94 -0
  110. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-pipelines/SKILL.md +121 -0
  111. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-pipelines/scripts/nerf-az-pipelines-check +93 -0
  112. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-pipelines/scripts/nerf-az-pipelines-list +53 -0
  113. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-pipelines/scripts/nerf-az-pipelines-run-log +203 -0
  114. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-pipelines/scripts/nerf-az-pipelines-run-show +93 -0
  115. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-pipelines/scripts/nerf-az-pipelines-run-timeline +148 -0
  116. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-pipelines/scripts/nerf-az-pipelines-runs +53 -0
  117. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-postgres/scripts/nerf-az-postgres-flexible-server-firewall-rule-list +94 -0
  118. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-postgres/scripts/nerf-az-postgres-flexible-server-list +58 -0
  119. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-postgres/scripts/nerf-az-postgres-flexible-server-show +94 -0
  120. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-repos/SKILL.md +147 -0
  121. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-comments +116 -0
  122. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-create +129 -0
  123. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-edit +105 -0
  124. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-list +92 -0
  125. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-set-status +124 -0
  126. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-show +93 -0
  127. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-vote +124 -0
  128. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-resource/scripts/nerf-az-group-list +53 -0
  129. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-resource/scripts/nerf-az-group-show +83 -0
  130. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-resource/scripts/nerf-az-resource-list +68 -0
  131. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-resource/scripts/nerf-az-resource-show +83 -0
  132. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-role/scripts/nerf-az-role-assignment-by-id +83 -0
  133. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-role/scripts/nerf-az-role-assignment-list +79 -0
  134. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-role/scripts/nerf-az-role-definition-list +69 -0
  135. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-storage/scripts/nerf-az-storage-account-list +58 -0
  136. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-storage/scripts/nerf-az-storage-account-network-rule-list +94 -0
  137. nerftools-2.0.0/out/claude-plugin/skills/nerf-az-storage/scripts/nerf-az-storage-account-show +94 -0
  138. nerftools-2.0.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-issue-comment +97 -0
  139. nerftools-2.0.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-issue-create +93 -0
  140. nerftools-2.0.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-issue-list +87 -0
  141. nerftools-2.0.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-issue-view +75 -0
  142. nerftools-2.0.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-pr-create +99 -0
  143. nerftools-2.0.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-pr-diff +75 -0
  144. nerftools-2.0.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-pr-inline-comments +85 -0
  145. nerftools-2.0.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-pr-list +93 -0
  146. nerftools-2.0.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-pr-review-comments +117 -0
  147. nerftools-2.0.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-pr-reviews +109 -0
  148. nerftools-2.0.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-pr-thread-comment +97 -0
  149. nerftools-2.0.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-pr-thread-comments +85 -0
  150. nerftools-2.0.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-pr-view +75 -0
  151. nerftools-2.0.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-run-list +87 -0
  152. nerftools-2.0.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-run-view +85 -0
  153. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/SKILL.md +687 -0
  154. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-add +154 -0
  155. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-blame +168 -0
  156. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-branch-checkout-remote +206 -0
  157. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-branch-current +134 -0
  158. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-branch-delete-merged +195 -0
  159. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-branch-list-local +134 -0
  160. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-branch-list-remote +134 -0
  161. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-cherry-pick +194 -0
  162. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-commit +193 -0
  163. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-commit-amend +212 -0
  164. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-create-branch +174 -0
  165. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-diff +201 -0
  166. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-fetch +174 -0
  167. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-log +190 -0
  168. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-ls-remote +200 -0
  169. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-merge-no-ff +194 -0
  170. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-mv +194 -0
  171. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-pull +174 -0
  172. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-push-branch +194 -0
  173. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-push-main +174 -0
  174. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-rebase-abort +134 -0
  175. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-rebase-continue +134 -0
  176. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-rebase-unpushed +200 -0
  177. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-reflog +134 -0
  178. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-remote-list +134 -0
  179. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-reset-hard-last +154 -0
  180. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-reset-unpushed +206 -0
  181. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-restore-staged +154 -0
  182. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-restore-worktree +154 -0
  183. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-revert +164 -0
  184. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-rm +154 -0
  185. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-show +168 -0
  186. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-stash-drop +174 -0
  187. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-stash-list +134 -0
  188. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-stash-pop +168 -0
  189. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-stash-push +139 -0
  190. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-status +134 -0
  191. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-submodule-status +134 -0
  192. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-switch +174 -0
  193. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-tag +202 -0
  194. nerftools-2.0.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-tag-push +206 -0
  195. nerftools-2.0.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-api-resources +63 -0
  196. nerftools-2.0.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-api-versions +45 -0
  197. nerftools-2.0.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-cluster-info +45 -0
  198. nerftools-2.0.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-config-current-context +45 -0
  199. nerftools-2.0.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-config-get-contexts +45 -0
  200. nerftools-2.0.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-config-use-context +85 -0
  201. nerftools-2.0.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-describe +137 -0
  202. nerftools-2.0.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-exec +130 -0
  203. nerftools-2.0.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-explain +92 -0
  204. nerftools-2.0.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-get +151 -0
  205. nerftools-2.0.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-get-secrets +113 -0
  206. nerftools-2.0.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-logs +139 -0
  207. nerftools-2.0.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-port-forward +158 -0
  208. nerftools-2.0.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-rollout-restart +103 -0
  209. nerftools-2.0.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-top-nodes +53 -0
  210. nerftools-2.0.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-top-pods +74 -0
  211. nerftools-2.0.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-version +45 -0
  212. nerftools-2.0.0/out/claude-plugin/skills/nerf-nx/scripts/nerf-nx-affected +47 -0
  213. nerftools-2.0.0/out/claude-plugin/skills/nerf-nx/scripts/nerf-nx-graph +47 -0
  214. nerftools-2.0.0/out/claude-plugin/skills/nerf-nx/scripts/nerf-nx-reset +47 -0
  215. nerftools-2.0.0/out/claude-plugin/skills/nerf-nx/scripts/nerf-nx-run +87 -0
  216. nerftools-2.0.0/out/claude-plugin/skills/nerf-nx/scripts/nerf-nx-show-project +87 -0
  217. nerftools-2.0.0/out/claude-plugin/skills/nerf-nx/scripts/nerf-nx-show-projects +47 -0
  218. nerftools-2.0.0/out/claude-plugin/skills/nerf-pkgrun/scripts/nerf-pkgrun-cspell +78 -0
  219. nerftools-2.0.0/out/claude-plugin/skills/nerf-pkgrun/scripts/nerf-pkgrun-markdownlint +78 -0
  220. nerftools-2.0.0/out/claude-plugin/skills/nerf-pkgrun/scripts/nerf-pkgrun-prettier +78 -0
  221. nerftools-2.0.0/out/claude-plugin/skills/nerf-stdutils/scripts/nerf-find +59 -0
  222. nerftools-2.0.0/out/claude-plugin/skills/nerf-stdutils/scripts/nerf-find-cwd +59 -0
  223. nerftools-2.0.0/out/claude-plugin/skills/nerf-stdutils/scripts/nerf-grep +124 -0
  224. nerftools-2.0.0/out/claude-plugin/skills/nerf-stdutils/scripts/nerf-grep-recursive-cwd +108 -0
  225. nerftools-2.0.0/out/claude-plugin/skills/nerf-tf/SKILL.md +33 -0
  226. nerftools-2.0.0/out/claude-plugin/skills/nerf-tf/scripts/nerf-tf-fmt +165 -0
  227. nerftools-2.0.0/out/claude-plugin/skills/nerf-tg/scripts/nerf-tg-fmt +52 -0
  228. nerftools-2.0.0/out/claude-plugin/skills/nerf-tg/scripts/nerf-tg-fmt-all +52 -0
  229. nerftools-2.0.0/out/claude-plugin/skills/nerf-tg/scripts/nerf-tg-init +52 -0
  230. nerftools-2.0.0/out/claude-plugin/skills/nerf-tg/scripts/nerf-tg-init-all +52 -0
  231. nerftools-2.0.0/out/claude-plugin/skills/nerf-tg/scripts/nerf-tg-output +45 -0
  232. nerftools-2.0.0/out/claude-plugin/skills/nerf-tg/scripts/nerf-tg-output-all +45 -0
  233. nerftools-2.0.0/out/claude-plugin/skills/nerf-tg/scripts/nerf-tg-plan +45 -0
  234. nerftools-2.0.0/out/claude-plugin/skills/nerf-tg/scripts/nerf-tg-plan-all +45 -0
  235. nerftools-2.0.0/out/claude-plugin/skills/nerf-tg/scripts/nerf-tg-validate +45 -0
  236. nerftools-2.0.0/out/claude-plugin/skills/nerf-tg/scripts/nerf-tg-validate-all +45 -0
  237. nerftools-2.0.0/out/claude-plugin/skills/nerf-uv/scripts/nerf-uv-mypy +59 -0
  238. nerftools-2.0.0/out/claude-plugin/skills/nerf-uv/scripts/nerf-uv-pytest +59 -0
  239. nerftools-2.0.0/out/claude-plugin/skills/nerf-uv/scripts/nerf-uv-ruff-check +59 -0
  240. nerftools-2.0.0/out/claude-plugin/skills/nerf-uv/scripts/nerf-uv-ruff-fix +59 -0
  241. nerftools-2.0.0/out/claude-plugin/skills/nerftools/SKILL.md +41 -0
  242. nerftools-2.0.0/out/codex-plugin/.codex-plugin/plugin.json +18 -0
  243. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-account/scripts/nerf-az-account-list +45 -0
  244. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-account/scripts/nerf-az-account-set +75 -0
  245. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-account/scripts/nerf-az-account-show +45 -0
  246. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-command-invoke +106 -0
  247. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-get-credentials +100 -0
  248. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-get-credentials-admin +100 -0
  249. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-get-versions +83 -0
  250. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-list +58 -0
  251. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-nodepool-list +94 -0
  252. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-nodepool-show +105 -0
  253. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-show +94 -0
  254. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-boards/SKILL.md +210 -0
  255. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-area-list +53 -0
  256. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-mywi-comment +137 -0
  257. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-mywi-list +51 -0
  258. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-mywi-show +113 -0
  259. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-mywi-update +131 -0
  260. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-wi-add-parent +125 -0
  261. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-wi-comment +115 -0
  262. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-wi-create +135 -0
  263. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-wi-list +83 -0
  264. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-wi-show +93 -0
  265. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-wi-update +128 -0
  266. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-cosmosdb/scripts/nerf-az-cosmosdb-database-list +94 -0
  267. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-cosmosdb/scripts/nerf-az-cosmosdb-list +58 -0
  268. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-cosmosdb/scripts/nerf-az-cosmosdb-network-rule-list +94 -0
  269. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-cosmosdb/scripts/nerf-az-cosmosdb-show +94 -0
  270. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-devops/scripts/nerf-az-devops-set-default-project +75 -0
  271. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-keyvault/scripts/nerf-az-keyvault-list +58 -0
  272. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-keyvault/scripts/nerf-az-keyvault-network-rule-list +88 -0
  273. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-keyvault/scripts/nerf-az-keyvault-secret-list +83 -0
  274. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-keyvault/scripts/nerf-az-keyvault-secret-stats +124 -0
  275. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-keyvault/scripts/nerf-az-keyvault-show +88 -0
  276. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-monitor/scripts/nerf-az-monitor-activity-log +119 -0
  277. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-monitor/scripts/nerf-az-monitor-diagnostic-settings-list +83 -0
  278. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-monitor/scripts/nerf-az-monitor-metrics-list +132 -0
  279. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-nic-show +94 -0
  280. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-nsg-list +58 -0
  281. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-nsg-show +94 -0
  282. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-dns-link-list +94 -0
  283. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-dns-link-show +105 -0
  284. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-dns-record-list +94 -0
  285. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-dns-zone-list +58 -0
  286. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-dns-zone-show +94 -0
  287. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-endpoint-list +58 -0
  288. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-endpoint-show +94 -0
  289. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-link-resource-list +83 -0
  290. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-public-ip-list +58 -0
  291. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-public-ip-show +94 -0
  292. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-route-table-show +94 -0
  293. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-subnet-show +105 -0
  294. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-vnet-list +58 -0
  295. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-vnet-peering-list +94 -0
  296. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-vnet-peering-show +105 -0
  297. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-vnet-show +94 -0
  298. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-pipelines/SKILL.md +121 -0
  299. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-pipelines/scripts/nerf-az-pipelines-check +93 -0
  300. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-pipelines/scripts/nerf-az-pipelines-list +53 -0
  301. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-pipelines/scripts/nerf-az-pipelines-run-log +203 -0
  302. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-pipelines/scripts/nerf-az-pipelines-run-show +93 -0
  303. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-pipelines/scripts/nerf-az-pipelines-run-timeline +148 -0
  304. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-pipelines/scripts/nerf-az-pipelines-runs +53 -0
  305. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-postgres/scripts/nerf-az-postgres-flexible-server-firewall-rule-list +94 -0
  306. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-postgres/scripts/nerf-az-postgres-flexible-server-list +58 -0
  307. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-postgres/scripts/nerf-az-postgres-flexible-server-show +94 -0
  308. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-repos/SKILL.md +147 -0
  309. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-comments +116 -0
  310. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-create +129 -0
  311. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-edit +105 -0
  312. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-list +92 -0
  313. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-set-status +124 -0
  314. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-show +93 -0
  315. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-vote +124 -0
  316. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-resource/scripts/nerf-az-group-list +53 -0
  317. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-resource/scripts/nerf-az-group-show +83 -0
  318. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-resource/scripts/nerf-az-resource-list +68 -0
  319. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-resource/scripts/nerf-az-resource-show +83 -0
  320. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-role/scripts/nerf-az-role-assignment-by-id +83 -0
  321. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-role/scripts/nerf-az-role-assignment-list +79 -0
  322. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-role/scripts/nerf-az-role-definition-list +69 -0
  323. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-storage/scripts/nerf-az-storage-account-list +58 -0
  324. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-storage/scripts/nerf-az-storage-account-network-rule-list +94 -0
  325. nerftools-2.0.0/out/codex-plugin/skills/nerf-az-storage/scripts/nerf-az-storage-account-show +94 -0
  326. nerftools-2.0.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-issue-comment +97 -0
  327. nerftools-2.0.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-issue-create +93 -0
  328. nerftools-2.0.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-issue-list +87 -0
  329. nerftools-2.0.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-issue-view +75 -0
  330. nerftools-2.0.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-pr-create +99 -0
  331. nerftools-2.0.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-pr-diff +75 -0
  332. nerftools-2.0.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-pr-inline-comments +85 -0
  333. nerftools-2.0.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-pr-list +93 -0
  334. nerftools-2.0.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-pr-review-comments +117 -0
  335. nerftools-2.0.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-pr-reviews +109 -0
  336. nerftools-2.0.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-pr-thread-comment +97 -0
  337. nerftools-2.0.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-pr-thread-comments +85 -0
  338. nerftools-2.0.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-pr-view +75 -0
  339. nerftools-2.0.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-run-list +87 -0
  340. nerftools-2.0.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-run-view +85 -0
  341. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/SKILL.md +687 -0
  342. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-add +154 -0
  343. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-blame +168 -0
  344. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-branch-checkout-remote +206 -0
  345. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-branch-current +134 -0
  346. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-branch-delete-merged +195 -0
  347. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-branch-list-local +134 -0
  348. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-branch-list-remote +134 -0
  349. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-cherry-pick +194 -0
  350. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-commit +193 -0
  351. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-commit-amend +212 -0
  352. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-create-branch +174 -0
  353. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-diff +201 -0
  354. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-fetch +174 -0
  355. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-log +190 -0
  356. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-ls-remote +200 -0
  357. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-merge-no-ff +194 -0
  358. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-mv +194 -0
  359. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-pull +174 -0
  360. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-push-branch +194 -0
  361. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-push-main +174 -0
  362. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-rebase-abort +134 -0
  363. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-rebase-continue +134 -0
  364. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-rebase-unpushed +200 -0
  365. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-reflog +134 -0
  366. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-remote-list +134 -0
  367. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-reset-hard-last +154 -0
  368. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-reset-unpushed +206 -0
  369. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-restore-staged +154 -0
  370. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-restore-worktree +154 -0
  371. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-revert +164 -0
  372. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-rm +154 -0
  373. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-show +168 -0
  374. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-stash-drop +174 -0
  375. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-stash-list +134 -0
  376. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-stash-pop +168 -0
  377. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-stash-push +139 -0
  378. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-status +134 -0
  379. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-submodule-status +134 -0
  380. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-switch +174 -0
  381. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-tag +202 -0
  382. nerftools-2.0.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-tag-push +206 -0
  383. nerftools-2.0.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-api-resources +63 -0
  384. nerftools-2.0.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-api-versions +45 -0
  385. nerftools-2.0.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-cluster-info +45 -0
  386. nerftools-2.0.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-config-current-context +45 -0
  387. nerftools-2.0.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-config-get-contexts +45 -0
  388. nerftools-2.0.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-config-use-context +85 -0
  389. nerftools-2.0.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-describe +137 -0
  390. nerftools-2.0.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-exec +130 -0
  391. nerftools-2.0.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-explain +92 -0
  392. nerftools-2.0.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-get +151 -0
  393. nerftools-2.0.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-get-secrets +113 -0
  394. nerftools-2.0.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-logs +139 -0
  395. nerftools-2.0.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-port-forward +158 -0
  396. nerftools-2.0.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-rollout-restart +103 -0
  397. nerftools-2.0.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-top-nodes +53 -0
  398. nerftools-2.0.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-top-pods +74 -0
  399. nerftools-2.0.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-version +45 -0
  400. nerftools-2.0.0/out/codex-plugin/skills/nerf-nx/scripts/nerf-nx-affected +47 -0
  401. nerftools-2.0.0/out/codex-plugin/skills/nerf-nx/scripts/nerf-nx-graph +47 -0
  402. nerftools-2.0.0/out/codex-plugin/skills/nerf-nx/scripts/nerf-nx-reset +47 -0
  403. nerftools-2.0.0/out/codex-plugin/skills/nerf-nx/scripts/nerf-nx-run +87 -0
  404. nerftools-2.0.0/out/codex-plugin/skills/nerf-nx/scripts/nerf-nx-show-project +87 -0
  405. nerftools-2.0.0/out/codex-plugin/skills/nerf-nx/scripts/nerf-nx-show-projects +47 -0
  406. nerftools-2.0.0/out/codex-plugin/skills/nerf-pkgrun/scripts/nerf-pkgrun-cspell +78 -0
  407. nerftools-2.0.0/out/codex-plugin/skills/nerf-pkgrun/scripts/nerf-pkgrun-markdownlint +78 -0
  408. nerftools-2.0.0/out/codex-plugin/skills/nerf-pkgrun/scripts/nerf-pkgrun-prettier +78 -0
  409. nerftools-2.0.0/out/codex-plugin/skills/nerf-stdutils/scripts/nerf-find +59 -0
  410. nerftools-2.0.0/out/codex-plugin/skills/nerf-stdutils/scripts/nerf-find-cwd +59 -0
  411. nerftools-2.0.0/out/codex-plugin/skills/nerf-stdutils/scripts/nerf-grep +124 -0
  412. nerftools-2.0.0/out/codex-plugin/skills/nerf-stdutils/scripts/nerf-grep-recursive-cwd +108 -0
  413. nerftools-2.0.0/out/codex-plugin/skills/nerf-tf/SKILL.md +33 -0
  414. nerftools-2.0.0/out/codex-plugin/skills/nerf-tf/scripts/nerf-tf-fmt +165 -0
  415. nerftools-2.0.0/out/codex-plugin/skills/nerf-tg/scripts/nerf-tg-fmt +52 -0
  416. nerftools-2.0.0/out/codex-plugin/skills/nerf-tg/scripts/nerf-tg-fmt-all +52 -0
  417. nerftools-2.0.0/out/codex-plugin/skills/nerf-tg/scripts/nerf-tg-init +52 -0
  418. nerftools-2.0.0/out/codex-plugin/skills/nerf-tg/scripts/nerf-tg-init-all +52 -0
  419. nerftools-2.0.0/out/codex-plugin/skills/nerf-tg/scripts/nerf-tg-output +45 -0
  420. nerftools-2.0.0/out/codex-plugin/skills/nerf-tg/scripts/nerf-tg-output-all +45 -0
  421. nerftools-2.0.0/out/codex-plugin/skills/nerf-tg/scripts/nerf-tg-plan +45 -0
  422. nerftools-2.0.0/out/codex-plugin/skills/nerf-tg/scripts/nerf-tg-plan-all +45 -0
  423. nerftools-2.0.0/out/codex-plugin/skills/nerf-tg/scripts/nerf-tg-validate +45 -0
  424. nerftools-2.0.0/out/codex-plugin/skills/nerf-tg/scripts/nerf-tg-validate-all +45 -0
  425. nerftools-2.0.0/out/codex-plugin/skills/nerf-uv/scripts/nerf-uv-mypy +59 -0
  426. nerftools-2.0.0/out/codex-plugin/skills/nerf-uv/scripts/nerf-uv-pytest +59 -0
  427. nerftools-2.0.0/out/codex-plugin/skills/nerf-uv/scripts/nerf-uv-ruff-check +59 -0
  428. nerftools-2.0.0/out/codex-plugin/skills/nerf-uv/scripts/nerf-uv-ruff-fix +59 -0
  429. nerftools-2.0.0/out/codex-plugin/skills/nerftools/SKILL.md +41 -0
  430. nerftools-2.0.0/pyproject.toml +64 -0
  431. nerftools-2.0.0/rulesync.jsonc +11 -0
  432. nerftools-2.0.0/rulesync.local.jsonc.example +14 -0
  433. nerftools-2.0.0/scripts/rulesync-upgen.bash +48 -0
  434. nerftools-2.0.0/tests/test_builder.py +1211 -0
  435. nerftools-2.0.0/tests/test_config.py +371 -0
  436. nerftools-2.0.0/tests/test_formats.py +783 -0
  437. nerftools-2.0.0/tests/test_manifest.py +990 -0
  438. nerftools-2.0.0/uv.lock +384 -0
  439. nerftools-1.3.0/.cspell.json +0 -53
  440. nerftools-1.3.0/.github/workflows/ci.yml +0 -63
  441. nerftools-1.3.0/.gitignore +0 -45
  442. nerftools-1.3.0/.release-please-manifest.json +0 -3
  443. nerftools-1.3.0/CHANGELOG.md +0 -158
  444. nerftools-1.3.0/CONTRIBUTING.md +0 -90
  445. nerftools-1.3.0/PKG-INFO +0 -13
  446. nerftools-1.3.0/docs/nerf-manifest.md +0 -772
  447. nerftools-1.3.0/nerf.yaml +0 -22
  448. nerftools-1.3.0/nerftools/builder.py +0 -951
  449. nerftools-1.3.0/nerftools/cli.py +0 -193
  450. nerftools-1.3.0/nerftools/config.py +0 -399
  451. nerftools-1.3.0/nerftools/default_manifests/az-account.yaml +0 -48
  452. nerftools-1.3.0/nerftools/default_manifests/az-aks.yaml +0 -293
  453. nerftools-1.3.0/nerftools/default_manifests/az-boards.yaml +0 -357
  454. nerftools-1.3.0/nerftools/default_manifests/az-cosmosdb.yaml +0 -133
  455. nerftools-1.3.0/nerftools/default_manifests/az-devops.yaml +0 -33
  456. nerftools-1.3.0/nerftools/default_manifests/az-keyvault.yaml +0 -171
  457. nerftools-1.3.0/nerftools/default_manifests/az-monitor.yaml +0 -152
  458. nerftools-1.3.0/nerftools/default_manifests/az-network.yaml +0 -602
  459. nerftools-1.3.0/nerftools/default_manifests/az-pipelines.yaml +0 -114
  460. nerftools-1.3.0/nerftools/default_manifests/az-postgres.yaml +0 -103
  461. nerftools-1.3.0/nerftools/default_manifests/az-repos.yaml +0 -248
  462. nerftools-1.3.0/nerftools/default_manifests/az-resource.yaml +0 -110
  463. nerftools-1.3.0/nerftools/default_manifests/az-role.yaml +0 -119
  464. nerftools-1.3.0/nerftools/default_manifests/az-storage.yaml +0 -102
  465. nerftools-1.3.0/nerftools/default_manifests/gh.yaml +0 -410
  466. nerftools-1.3.0/nerftools/default_manifests/git.yaml +0 -541
  467. nerftools-1.3.0/nerftools/default_manifests/kubectl.yaml +0 -449
  468. nerftools-1.3.0/nerftools/default_manifests/nx.yaml +0 -88
  469. nerftools-1.3.0/nerftools/default_manifests/pkgrun.yaml +0 -58
  470. nerftools-1.3.0/nerftools/default_manifests/tg.yaml +0 -107
  471. nerftools-1.3.0/nerftools/default_manifests/uv.yaml +0 -68
  472. nerftools-1.3.0/nerftools/formats.py +0 -542
  473. nerftools-1.3.0/nerftools/manifest.py +0 -873
  474. nerftools-1.3.0/nerftools/nerfctl/claude/grant-allow.sh +0 -170
  475. nerftools-1.3.0/nerftools/nerfctl/claude/grant-by-threat.sh +0 -307
  476. nerftools-1.3.0/nerftools/nerfctl/claude/grant-deny.sh +0 -164
  477. nerftools-1.3.0/nerftools/nerfctl/claude/grant-list.sh +0 -107
  478. nerftools-1.3.0/nerftools/nerfctl/claude/grant-reset.sh +0 -155
  479. nerftools-1.3.0/out/claude-plugin/.claude-plugin/plugin.json +0 -18
  480. nerftools-1.3.0/out/claude-plugin/scripts/nerfctl-grant-allow +0 -170
  481. nerftools-1.3.0/out/claude-plugin/scripts/nerfctl-grant-by-threat +0 -307
  482. nerftools-1.3.0/out/claude-plugin/scripts/nerfctl-grant-deny +0 -164
  483. nerftools-1.3.0/out/claude-plugin/scripts/nerfctl-grant-list +0 -107
  484. nerftools-1.3.0/out/claude-plugin/scripts/nerfctl-grant-reset +0 -155
  485. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-account/scripts/nerf-az-account-list +0 -39
  486. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-account/scripts/nerf-az-account-set +0 -69
  487. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-account/scripts/nerf-az-account-show +0 -39
  488. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-command-invoke +0 -100
  489. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-get-credentials +0 -94
  490. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-get-credentials-admin +0 -94
  491. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-get-versions +0 -77
  492. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-list +0 -52
  493. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-nodepool-list +0 -88
  494. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-nodepool-show +0 -99
  495. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-show +0 -88
  496. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-boards/SKILL.md +0 -182
  497. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-area-list +0 -47
  498. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-mywi-comment +0 -109
  499. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-mywi-show +0 -87
  500. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-wi-add-parent +0 -119
  501. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-wi-comment +0 -109
  502. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-wi-create +0 -129
  503. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-wi-list +0 -77
  504. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-wi-show +0 -87
  505. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-wi-update +0 -122
  506. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-cosmosdb/scripts/nerf-az-cosmosdb-database-list +0 -88
  507. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-cosmosdb/scripts/nerf-az-cosmosdb-list +0 -52
  508. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-cosmosdb/scripts/nerf-az-cosmosdb-network-rule-list +0 -88
  509. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-cosmosdb/scripts/nerf-az-cosmosdb-show +0 -88
  510. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-devops/scripts/nerf-az-devops-set-default-project +0 -69
  511. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-keyvault/scripts/nerf-az-keyvault-list +0 -52
  512. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-keyvault/scripts/nerf-az-keyvault-network-rule-list +0 -82
  513. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-keyvault/scripts/nerf-az-keyvault-secret-list +0 -77
  514. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-keyvault/scripts/nerf-az-keyvault-secret-stats +0 -118
  515. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-keyvault/scripts/nerf-az-keyvault-show +0 -82
  516. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-monitor/scripts/nerf-az-monitor-activity-log +0 -113
  517. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-monitor/scripts/nerf-az-monitor-diagnostic-settings-list +0 -77
  518. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-monitor/scripts/nerf-az-monitor-metrics-list +0 -126
  519. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-nic-show +0 -88
  520. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-nsg-list +0 -52
  521. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-nsg-show +0 -88
  522. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-dns-link-list +0 -88
  523. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-dns-link-show +0 -99
  524. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-dns-record-list +0 -88
  525. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-dns-zone-list +0 -52
  526. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-dns-zone-show +0 -88
  527. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-endpoint-list +0 -52
  528. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-endpoint-show +0 -88
  529. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-link-resource-list +0 -77
  530. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-public-ip-list +0 -52
  531. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-public-ip-show +0 -88
  532. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-route-table-show +0 -88
  533. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-subnet-show +0 -99
  534. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-vnet-list +0 -52
  535. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-vnet-peering-list +0 -88
  536. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-vnet-peering-show +0 -99
  537. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-network/scripts/nerf-az-network-vnet-show +0 -88
  538. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-pipelines/SKILL.md +0 -76
  539. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-pipelines/scripts/nerf-az-pipelines-check +0 -87
  540. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-pipelines/scripts/nerf-az-pipelines-list +0 -47
  541. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-pipelines/scripts/nerf-az-pipelines-run-show +0 -87
  542. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-pipelines/scripts/nerf-az-pipelines-runs +0 -47
  543. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-postgres/scripts/nerf-az-postgres-flexible-server-firewall-rule-list +0 -88
  544. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-postgres/scripts/nerf-az-postgres-flexible-server-list +0 -52
  545. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-postgres/scripts/nerf-az-postgres-flexible-server-show +0 -88
  546. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-repos/SKILL.md +0 -126
  547. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-comments +0 -110
  548. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-create +0 -108
  549. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-list +0 -86
  550. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-set-status +0 -118
  551. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-show +0 -87
  552. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-vote +0 -118
  553. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-resource/scripts/nerf-az-group-list +0 -47
  554. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-resource/scripts/nerf-az-group-show +0 -77
  555. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-resource/scripts/nerf-az-resource-list +0 -62
  556. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-resource/scripts/nerf-az-resource-show +0 -77
  557. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-role/scripts/nerf-az-role-assignment-by-id +0 -77
  558. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-role/scripts/nerf-az-role-assignment-list +0 -73
  559. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-role/scripts/nerf-az-role-definition-list +0 -63
  560. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-storage/scripts/nerf-az-storage-account-list +0 -52
  561. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-storage/scripts/nerf-az-storage-account-network-rule-list +0 -88
  562. nerftools-1.3.0/out/claude-plugin/skills/nerf-az-storage/scripts/nerf-az-storage-account-show +0 -88
  563. nerftools-1.3.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-issue-comment +0 -91
  564. nerftools-1.3.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-issue-create +0 -87
  565. nerftools-1.3.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-issue-list +0 -81
  566. nerftools-1.3.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-issue-view +0 -69
  567. nerftools-1.3.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-pr-create +0 -93
  568. nerftools-1.3.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-pr-diff +0 -69
  569. nerftools-1.3.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-pr-inline-comments +0 -79
  570. nerftools-1.3.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-pr-list +0 -87
  571. nerftools-1.3.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-pr-review-comments +0 -111
  572. nerftools-1.3.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-pr-reviews +0 -99
  573. nerftools-1.3.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-pr-thread-comment +0 -91
  574. nerftools-1.3.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-pr-thread-comments +0 -79
  575. nerftools-1.3.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-pr-view +0 -69
  576. nerftools-1.3.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-run-list +0 -81
  577. nerftools-1.3.0/out/claude-plugin/skills/nerf-gh/scripts/nerf-gh-run-view +0 -79
  578. nerftools-1.3.0/out/claude-plugin/skills/nerf-git/SKILL.md +0 -372
  579. nerftools-1.3.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-add +0 -148
  580. nerftools-1.3.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-branch-checkout-remote +0 -200
  581. nerftools-1.3.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-branch-delete-merged +0 -189
  582. nerftools-1.3.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-branch-list-local +0 -128
  583. nerftools-1.3.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-branch-list-remote +0 -128
  584. nerftools-1.3.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-commit +0 -171
  585. nerftools-1.3.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-commit-amend +0 -188
  586. nerftools-1.3.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-create-branch +0 -168
  587. nerftools-1.3.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-diff +0 -128
  588. nerftools-1.3.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-diff-staged +0 -128
  589. nerftools-1.3.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-fetch +0 -168
  590. nerftools-1.3.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-log +0 -128
  591. nerftools-1.3.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-pull +0 -168
  592. nerftools-1.3.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-push-branch +0 -188
  593. nerftools-1.3.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-push-main +0 -168
  594. nerftools-1.3.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-rebase-unpushed +0 -194
  595. nerftools-1.3.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-reset-hard-last +0 -148
  596. nerftools-1.3.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-reset-unpushed +0 -200
  597. nerftools-1.3.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-revert +0 -158
  598. nerftools-1.3.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-status +0 -128
  599. nerftools-1.3.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-switch +0 -168
  600. nerftools-1.3.0/out/claude-plugin/skills/nerf-git/scripts/nerf-git-tag +0 -170
  601. nerftools-1.3.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-api-resources +0 -57
  602. nerftools-1.3.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-api-versions +0 -39
  603. nerftools-1.3.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-cluster-info +0 -39
  604. nerftools-1.3.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-config-current-context +0 -39
  605. nerftools-1.3.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-config-get-contexts +0 -39
  606. nerftools-1.3.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-config-use-context +0 -79
  607. nerftools-1.3.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-describe +0 -131
  608. nerftools-1.3.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-exec +0 -124
  609. nerftools-1.3.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-explain +0 -86
  610. nerftools-1.3.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-get +0 -145
  611. nerftools-1.3.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-get-secrets +0 -107
  612. nerftools-1.3.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-logs +0 -133
  613. nerftools-1.3.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-port-forward +0 -152
  614. nerftools-1.3.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-rollout-restart +0 -97
  615. nerftools-1.3.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-top-nodes +0 -47
  616. nerftools-1.3.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-top-pods +0 -68
  617. nerftools-1.3.0/out/claude-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-version +0 -39
  618. nerftools-1.3.0/out/claude-plugin/skills/nerf-nx/scripts/nerf-nx-affected +0 -41
  619. nerftools-1.3.0/out/claude-plugin/skills/nerf-nx/scripts/nerf-nx-graph +0 -41
  620. nerftools-1.3.0/out/claude-plugin/skills/nerf-nx/scripts/nerf-nx-reset +0 -41
  621. nerftools-1.3.0/out/claude-plugin/skills/nerf-nx/scripts/nerf-nx-run +0 -81
  622. nerftools-1.3.0/out/claude-plugin/skills/nerf-nx/scripts/nerf-nx-show-project +0 -81
  623. nerftools-1.3.0/out/claude-plugin/skills/nerf-nx/scripts/nerf-nx-show-projects +0 -41
  624. nerftools-1.3.0/out/claude-plugin/skills/nerf-pkgrun/scripts/nerf-pkgrun-cspell +0 -72
  625. nerftools-1.3.0/out/claude-plugin/skills/nerf-pkgrun/scripts/nerf-pkgrun-markdownlint +0 -72
  626. nerftools-1.3.0/out/claude-plugin/skills/nerf-pkgrun/scripts/nerf-pkgrun-prettier +0 -72
  627. nerftools-1.3.0/out/claude-plugin/skills/nerf-stdutils/scripts/nerf-find +0 -53
  628. nerftools-1.3.0/out/claude-plugin/skills/nerf-stdutils/scripts/nerf-find-cwd +0 -53
  629. nerftools-1.3.0/out/claude-plugin/skills/nerf-stdutils/scripts/nerf-grep +0 -118
  630. nerftools-1.3.0/out/claude-plugin/skills/nerf-stdutils/scripts/nerf-grep-recursive-cwd +0 -102
  631. nerftools-1.3.0/out/claude-plugin/skills/nerf-tg/scripts/nerf-tg-fmt +0 -46
  632. nerftools-1.3.0/out/claude-plugin/skills/nerf-tg/scripts/nerf-tg-fmt-all +0 -46
  633. nerftools-1.3.0/out/claude-plugin/skills/nerf-tg/scripts/nerf-tg-init +0 -46
  634. nerftools-1.3.0/out/claude-plugin/skills/nerf-tg/scripts/nerf-tg-init-all +0 -46
  635. nerftools-1.3.0/out/claude-plugin/skills/nerf-tg/scripts/nerf-tg-output +0 -39
  636. nerftools-1.3.0/out/claude-plugin/skills/nerf-tg/scripts/nerf-tg-output-all +0 -39
  637. nerftools-1.3.0/out/claude-plugin/skills/nerf-tg/scripts/nerf-tg-plan +0 -39
  638. nerftools-1.3.0/out/claude-plugin/skills/nerf-tg/scripts/nerf-tg-plan-all +0 -39
  639. nerftools-1.3.0/out/claude-plugin/skills/nerf-tg/scripts/nerf-tg-validate +0 -39
  640. nerftools-1.3.0/out/claude-plugin/skills/nerf-tg/scripts/nerf-tg-validate-all +0 -39
  641. nerftools-1.3.0/out/claude-plugin/skills/nerf-uv/scripts/nerf-uv-mypy +0 -53
  642. nerftools-1.3.0/out/claude-plugin/skills/nerf-uv/scripts/nerf-uv-pytest +0 -53
  643. nerftools-1.3.0/out/claude-plugin/skills/nerf-uv/scripts/nerf-uv-ruff-check +0 -53
  644. nerftools-1.3.0/out/claude-plugin/skills/nerf-uv/scripts/nerf-uv-ruff-fix +0 -53
  645. nerftools-1.3.0/out/claude-plugin/skills/nerftools/SKILL.md +0 -40
  646. nerftools-1.3.0/out/codex-plugin/.codex-plugin/plugin.json +0 -18
  647. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-account/scripts/nerf-az-account-list +0 -39
  648. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-account/scripts/nerf-az-account-set +0 -69
  649. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-account/scripts/nerf-az-account-show +0 -39
  650. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-command-invoke +0 -100
  651. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-get-credentials +0 -94
  652. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-get-credentials-admin +0 -94
  653. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-get-versions +0 -77
  654. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-list +0 -52
  655. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-nodepool-list +0 -88
  656. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-nodepool-show +0 -99
  657. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-aks/scripts/nerf-az-aks-show +0 -88
  658. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-boards/SKILL.md +0 -182
  659. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-area-list +0 -47
  660. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-mywi-comment +0 -109
  661. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-mywi-show +0 -87
  662. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-wi-add-parent +0 -119
  663. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-wi-comment +0 -109
  664. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-wi-create +0 -129
  665. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-wi-list +0 -77
  666. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-wi-show +0 -87
  667. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-boards/scripts/nerf-az-boards-wi-update +0 -122
  668. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-cosmosdb/scripts/nerf-az-cosmosdb-database-list +0 -88
  669. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-cosmosdb/scripts/nerf-az-cosmosdb-list +0 -52
  670. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-cosmosdb/scripts/nerf-az-cosmosdb-network-rule-list +0 -88
  671. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-cosmosdb/scripts/nerf-az-cosmosdb-show +0 -88
  672. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-devops/scripts/nerf-az-devops-set-default-project +0 -69
  673. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-keyvault/scripts/nerf-az-keyvault-list +0 -52
  674. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-keyvault/scripts/nerf-az-keyvault-network-rule-list +0 -82
  675. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-keyvault/scripts/nerf-az-keyvault-secret-list +0 -77
  676. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-keyvault/scripts/nerf-az-keyvault-secret-stats +0 -118
  677. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-keyvault/scripts/nerf-az-keyvault-show +0 -82
  678. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-monitor/scripts/nerf-az-monitor-activity-log +0 -113
  679. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-monitor/scripts/nerf-az-monitor-diagnostic-settings-list +0 -77
  680. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-monitor/scripts/nerf-az-monitor-metrics-list +0 -126
  681. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-nic-show +0 -88
  682. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-nsg-list +0 -52
  683. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-nsg-show +0 -88
  684. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-dns-link-list +0 -88
  685. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-dns-link-show +0 -99
  686. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-dns-record-list +0 -88
  687. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-dns-zone-list +0 -52
  688. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-dns-zone-show +0 -88
  689. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-endpoint-list +0 -52
  690. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-endpoint-show +0 -88
  691. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-private-link-resource-list +0 -77
  692. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-public-ip-list +0 -52
  693. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-public-ip-show +0 -88
  694. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-route-table-show +0 -88
  695. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-subnet-show +0 -99
  696. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-vnet-list +0 -52
  697. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-vnet-peering-list +0 -88
  698. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-vnet-peering-show +0 -99
  699. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-network/scripts/nerf-az-network-vnet-show +0 -88
  700. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-pipelines/SKILL.md +0 -76
  701. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-pipelines/scripts/nerf-az-pipelines-check +0 -87
  702. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-pipelines/scripts/nerf-az-pipelines-list +0 -47
  703. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-pipelines/scripts/nerf-az-pipelines-run-show +0 -87
  704. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-pipelines/scripts/nerf-az-pipelines-runs +0 -47
  705. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-postgres/scripts/nerf-az-postgres-flexible-server-firewall-rule-list +0 -88
  706. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-postgres/scripts/nerf-az-postgres-flexible-server-list +0 -52
  707. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-postgres/scripts/nerf-az-postgres-flexible-server-show +0 -88
  708. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-repos/SKILL.md +0 -126
  709. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-comments +0 -110
  710. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-create +0 -108
  711. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-list +0 -86
  712. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-set-status +0 -118
  713. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-show +0 -87
  714. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-repos/scripts/nerf-az-repos-pr-vote +0 -118
  715. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-resource/scripts/nerf-az-group-list +0 -47
  716. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-resource/scripts/nerf-az-group-show +0 -77
  717. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-resource/scripts/nerf-az-resource-list +0 -62
  718. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-resource/scripts/nerf-az-resource-show +0 -77
  719. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-role/scripts/nerf-az-role-assignment-by-id +0 -77
  720. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-role/scripts/nerf-az-role-assignment-list +0 -73
  721. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-role/scripts/nerf-az-role-definition-list +0 -63
  722. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-storage/scripts/nerf-az-storage-account-list +0 -52
  723. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-storage/scripts/nerf-az-storage-account-network-rule-list +0 -88
  724. nerftools-1.3.0/out/codex-plugin/skills/nerf-az-storage/scripts/nerf-az-storage-account-show +0 -88
  725. nerftools-1.3.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-issue-comment +0 -91
  726. nerftools-1.3.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-issue-create +0 -87
  727. nerftools-1.3.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-issue-list +0 -81
  728. nerftools-1.3.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-issue-view +0 -69
  729. nerftools-1.3.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-pr-create +0 -93
  730. nerftools-1.3.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-pr-diff +0 -69
  731. nerftools-1.3.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-pr-inline-comments +0 -79
  732. nerftools-1.3.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-pr-list +0 -87
  733. nerftools-1.3.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-pr-review-comments +0 -111
  734. nerftools-1.3.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-pr-reviews +0 -99
  735. nerftools-1.3.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-pr-thread-comment +0 -91
  736. nerftools-1.3.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-pr-thread-comments +0 -79
  737. nerftools-1.3.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-pr-view +0 -69
  738. nerftools-1.3.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-run-list +0 -81
  739. nerftools-1.3.0/out/codex-plugin/skills/nerf-gh/scripts/nerf-gh-run-view +0 -79
  740. nerftools-1.3.0/out/codex-plugin/skills/nerf-git/SKILL.md +0 -372
  741. nerftools-1.3.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-add +0 -148
  742. nerftools-1.3.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-branch-checkout-remote +0 -200
  743. nerftools-1.3.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-branch-delete-merged +0 -189
  744. nerftools-1.3.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-branch-list-local +0 -128
  745. nerftools-1.3.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-branch-list-remote +0 -128
  746. nerftools-1.3.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-commit +0 -171
  747. nerftools-1.3.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-commit-amend +0 -188
  748. nerftools-1.3.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-create-branch +0 -168
  749. nerftools-1.3.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-diff +0 -128
  750. nerftools-1.3.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-diff-staged +0 -128
  751. nerftools-1.3.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-fetch +0 -168
  752. nerftools-1.3.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-log +0 -128
  753. nerftools-1.3.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-pull +0 -168
  754. nerftools-1.3.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-push-branch +0 -188
  755. nerftools-1.3.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-push-main +0 -168
  756. nerftools-1.3.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-rebase-unpushed +0 -194
  757. nerftools-1.3.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-reset-hard-last +0 -148
  758. nerftools-1.3.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-reset-unpushed +0 -200
  759. nerftools-1.3.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-revert +0 -158
  760. nerftools-1.3.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-status +0 -128
  761. nerftools-1.3.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-switch +0 -168
  762. nerftools-1.3.0/out/codex-plugin/skills/nerf-git/scripts/nerf-git-tag +0 -170
  763. nerftools-1.3.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-api-resources +0 -57
  764. nerftools-1.3.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-api-versions +0 -39
  765. nerftools-1.3.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-cluster-info +0 -39
  766. nerftools-1.3.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-config-current-context +0 -39
  767. nerftools-1.3.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-config-get-contexts +0 -39
  768. nerftools-1.3.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-config-use-context +0 -79
  769. nerftools-1.3.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-describe +0 -131
  770. nerftools-1.3.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-exec +0 -124
  771. nerftools-1.3.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-explain +0 -86
  772. nerftools-1.3.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-get +0 -145
  773. nerftools-1.3.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-get-secrets +0 -107
  774. nerftools-1.3.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-logs +0 -133
  775. nerftools-1.3.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-port-forward +0 -152
  776. nerftools-1.3.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-rollout-restart +0 -97
  777. nerftools-1.3.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-top-nodes +0 -47
  778. nerftools-1.3.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-top-pods +0 -68
  779. nerftools-1.3.0/out/codex-plugin/skills/nerf-kubectl/scripts/nerf-kubectl-version +0 -39
  780. nerftools-1.3.0/out/codex-plugin/skills/nerf-nx/scripts/nerf-nx-affected +0 -41
  781. nerftools-1.3.0/out/codex-plugin/skills/nerf-nx/scripts/nerf-nx-graph +0 -41
  782. nerftools-1.3.0/out/codex-plugin/skills/nerf-nx/scripts/nerf-nx-reset +0 -41
  783. nerftools-1.3.0/out/codex-plugin/skills/nerf-nx/scripts/nerf-nx-run +0 -81
  784. nerftools-1.3.0/out/codex-plugin/skills/nerf-nx/scripts/nerf-nx-show-project +0 -81
  785. nerftools-1.3.0/out/codex-plugin/skills/nerf-nx/scripts/nerf-nx-show-projects +0 -41
  786. nerftools-1.3.0/out/codex-plugin/skills/nerf-pkgrun/scripts/nerf-pkgrun-cspell +0 -72
  787. nerftools-1.3.0/out/codex-plugin/skills/nerf-pkgrun/scripts/nerf-pkgrun-markdownlint +0 -72
  788. nerftools-1.3.0/out/codex-plugin/skills/nerf-pkgrun/scripts/nerf-pkgrun-prettier +0 -72
  789. nerftools-1.3.0/out/codex-plugin/skills/nerf-stdutils/scripts/nerf-find +0 -53
  790. nerftools-1.3.0/out/codex-plugin/skills/nerf-stdutils/scripts/nerf-find-cwd +0 -53
  791. nerftools-1.3.0/out/codex-plugin/skills/nerf-stdutils/scripts/nerf-grep +0 -118
  792. nerftools-1.3.0/out/codex-plugin/skills/nerf-stdutils/scripts/nerf-grep-recursive-cwd +0 -102
  793. nerftools-1.3.0/out/codex-plugin/skills/nerf-tg/scripts/nerf-tg-fmt +0 -46
  794. nerftools-1.3.0/out/codex-plugin/skills/nerf-tg/scripts/nerf-tg-fmt-all +0 -46
  795. nerftools-1.3.0/out/codex-plugin/skills/nerf-tg/scripts/nerf-tg-init +0 -46
  796. nerftools-1.3.0/out/codex-plugin/skills/nerf-tg/scripts/nerf-tg-init-all +0 -46
  797. nerftools-1.3.0/out/codex-plugin/skills/nerf-tg/scripts/nerf-tg-output +0 -39
  798. nerftools-1.3.0/out/codex-plugin/skills/nerf-tg/scripts/nerf-tg-output-all +0 -39
  799. nerftools-1.3.0/out/codex-plugin/skills/nerf-tg/scripts/nerf-tg-plan +0 -39
  800. nerftools-1.3.0/out/codex-plugin/skills/nerf-tg/scripts/nerf-tg-plan-all +0 -39
  801. nerftools-1.3.0/out/codex-plugin/skills/nerf-tg/scripts/nerf-tg-validate +0 -39
  802. nerftools-1.3.0/out/codex-plugin/skills/nerf-tg/scripts/nerf-tg-validate-all +0 -39
  803. nerftools-1.3.0/out/codex-plugin/skills/nerf-uv/scripts/nerf-uv-mypy +0 -53
  804. nerftools-1.3.0/out/codex-plugin/skills/nerf-uv/scripts/nerf-uv-pytest +0 -53
  805. nerftools-1.3.0/out/codex-plugin/skills/nerf-uv/scripts/nerf-uv-ruff-check +0 -53
  806. nerftools-1.3.0/out/codex-plugin/skills/nerf-uv/scripts/nerf-uv-ruff-fix +0 -53
  807. nerftools-1.3.0/out/codex-plugin/skills/nerftools/SKILL.md +0 -40
  808. nerftools-1.3.0/pyproject.toml +0 -61
  809. nerftools-1.3.0/tests/test_builder.py +0 -1202
  810. nerftools-1.3.0/tests/test_config.py +0 -328
  811. nerftools-1.3.0/tests/test_formats.py +0 -360
  812. nerftools-1.3.0/tests/test_manifest.py +0 -930
  813. nerftools-1.3.0/uv.lock +0 -384
  814. {nerftools-1.3.0 → nerftools-2.0.0}/.agents/plugins/marketplace.json +0 -0
  815. {nerftools-1.3.0 → nerftools-2.0.0}/.claude-plugin/marketplace.json +0 -0
  816. {nerftools-1.3.0 → nerftools-2.0.0}/.editorconfig +0 -0
  817. {nerftools-1.3.0 → nerftools-2.0.0}/.github/workflows/release-please.yml +0 -0
  818. {nerftools-1.3.0 → nerftools-2.0.0}/.github/workflows/release.yml +0 -0
  819. {nerftools-1.3.0 → nerftools-2.0.0}/.markdownlint-cli2.jsonc +0 -0
  820. {nerftools-1.3.0 → nerftools-2.0.0}/.prettierrc +0 -0
  821. {nerftools-1.3.0 → nerftools-2.0.0}/.python-version +0 -0
  822. {nerftools-1.3.0 → nerftools-2.0.0}/LICENSE +0 -0
  823. {nerftools-1.3.0 → nerftools-2.0.0}/README.md +0 -0
  824. {nerftools-1.3.0 → nerftools-2.0.0}/docs/sdd/2026-04-04-nerf-refactor/frd.md +0 -0
  825. {nerftools-1.3.0 → nerftools-2.0.0}/docs/sdd/2026-04-04-nerf-refactor/hla.md +0 -0
  826. {nerftools-1.3.0 → nerftools-2.0.0}/docs/sdd/2026-04-04-nerf-refactor/locked.md +0 -0
  827. {nerftools-1.3.0 → nerftools-2.0.0}/docs/sdd/2026-04-04-nerf-refactor/manifest-spec.md +0 -0
  828. {nerftools-1.3.0 → nerftools-2.0.0}/docs/sdd/2026-04-04-nerf-refactor/plan.md +0 -0
  829. {nerftools-1.3.0 → nerftools-2.0.0}/nerftools/__init__.py +0 -0
  830. {nerftools-1.3.0 → nerftools-2.0.0}/nerftools/default_manifests/README.md +0 -0
  831. {nerftools-1.3.0 → nerftools-2.0.0}/nerftools/default_manifests/__init__.py +0 -0
  832. {nerftools-1.3.0 → nerftools-2.0.0}/nerftools/default_manifests/stdutils.yaml +0 -0
  833. {nerftools-1.3.0 → nerftools-2.0.0}/nerftools/nerfctl/__init__.py +0 -0
  834. {nerftools-1.3.0 → nerftools-2.0.0}/nerftools/rendering.py +0 -0
  835. {nerftools-1.3.0 → nerftools-2.0.0}/nerftools/skill.py +0 -0
  836. {nerftools-1.3.0 → nerftools-2.0.0}/out/claude-plugin/skills/nerf-az-account/SKILL.md +0 -0
  837. {nerftools-1.3.0 → nerftools-2.0.0}/out/claude-plugin/skills/nerf-az-aks/SKILL.md +0 -0
  838. {nerftools-1.3.0 → nerftools-2.0.0}/out/claude-plugin/skills/nerf-az-cosmosdb/SKILL.md +0 -0
  839. {nerftools-1.3.0 → nerftools-2.0.0}/out/claude-plugin/skills/nerf-az-devops/SKILL.md +0 -0
  840. {nerftools-1.3.0 → nerftools-2.0.0}/out/claude-plugin/skills/nerf-az-keyvault/SKILL.md +0 -0
  841. {nerftools-1.3.0 → nerftools-2.0.0}/out/claude-plugin/skills/nerf-az-monitor/SKILL.md +0 -0
  842. {nerftools-1.3.0 → nerftools-2.0.0}/out/claude-plugin/skills/nerf-az-network/SKILL.md +0 -0
  843. {nerftools-1.3.0 → nerftools-2.0.0}/out/claude-plugin/skills/nerf-az-postgres/SKILL.md +0 -0
  844. {nerftools-1.3.0 → nerftools-2.0.0}/out/claude-plugin/skills/nerf-az-resource/SKILL.md +0 -0
  845. {nerftools-1.3.0 → nerftools-2.0.0}/out/claude-plugin/skills/nerf-az-role/SKILL.md +0 -0
  846. {nerftools-1.3.0 → nerftools-2.0.0}/out/claude-plugin/skills/nerf-az-storage/SKILL.md +0 -0
  847. {nerftools-1.3.0 → nerftools-2.0.0}/out/claude-plugin/skills/nerf-gh/SKILL.md +0 -0
  848. {nerftools-1.3.0 → nerftools-2.0.0}/out/claude-plugin/skills/nerf-kubectl/SKILL.md +0 -0
  849. {nerftools-1.3.0 → nerftools-2.0.0}/out/claude-plugin/skills/nerf-nx/SKILL.md +0 -0
  850. {nerftools-1.3.0 → nerftools-2.0.0}/out/claude-plugin/skills/nerf-pkgrun/SKILL.md +0 -0
  851. {nerftools-1.3.0 → nerftools-2.0.0}/out/claude-plugin/skills/nerf-stdutils/SKILL.md +0 -0
  852. {nerftools-1.3.0 → nerftools-2.0.0}/out/claude-plugin/skills/nerf-tg/SKILL.md +0 -0
  853. {nerftools-1.3.0 → nerftools-2.0.0}/out/claude-plugin/skills/nerf-uv/SKILL.md +0 -0
  854. {nerftools-1.3.0 → nerftools-2.0.0}/out/claude-plugin/skills/nerfctl-grant-allow/SKILL.md +0 -0
  855. {nerftools-1.3.0 → nerftools-2.0.0}/out/claude-plugin/skills/nerfctl-grant-by-threat/SKILL.md +0 -0
  856. {nerftools-1.3.0 → nerftools-2.0.0}/out/claude-plugin/skills/nerfctl-grant-deny/SKILL.md +0 -0
  857. {nerftools-1.3.0 → nerftools-2.0.0}/out/claude-plugin/skills/nerfctl-grant-list/SKILL.md +0 -0
  858. {nerftools-1.3.0 → nerftools-2.0.0}/out/claude-plugin/skills/nerfctl-grant-reset/SKILL.md +0 -0
  859. {nerftools-1.3.0 → nerftools-2.0.0}/out/codex-plugin/skills/nerf-az-account/SKILL.md +0 -0
  860. {nerftools-1.3.0 → nerftools-2.0.0}/out/codex-plugin/skills/nerf-az-aks/SKILL.md +0 -0
  861. {nerftools-1.3.0 → nerftools-2.0.0}/out/codex-plugin/skills/nerf-az-cosmosdb/SKILL.md +0 -0
  862. {nerftools-1.3.0 → nerftools-2.0.0}/out/codex-plugin/skills/nerf-az-devops/SKILL.md +0 -0
  863. {nerftools-1.3.0 → nerftools-2.0.0}/out/codex-plugin/skills/nerf-az-keyvault/SKILL.md +0 -0
  864. {nerftools-1.3.0 → nerftools-2.0.0}/out/codex-plugin/skills/nerf-az-monitor/SKILL.md +0 -0
  865. {nerftools-1.3.0 → nerftools-2.0.0}/out/codex-plugin/skills/nerf-az-network/SKILL.md +0 -0
  866. {nerftools-1.3.0 → nerftools-2.0.0}/out/codex-plugin/skills/nerf-az-postgres/SKILL.md +0 -0
  867. {nerftools-1.3.0 → nerftools-2.0.0}/out/codex-plugin/skills/nerf-az-resource/SKILL.md +0 -0
  868. {nerftools-1.3.0 → nerftools-2.0.0}/out/codex-plugin/skills/nerf-az-role/SKILL.md +0 -0
  869. {nerftools-1.3.0 → nerftools-2.0.0}/out/codex-plugin/skills/nerf-az-storage/SKILL.md +0 -0
  870. {nerftools-1.3.0 → nerftools-2.0.0}/out/codex-plugin/skills/nerf-gh/SKILL.md +0 -0
  871. {nerftools-1.3.0 → nerftools-2.0.0}/out/codex-plugin/skills/nerf-kubectl/SKILL.md +0 -0
  872. {nerftools-1.3.0 → nerftools-2.0.0}/out/codex-plugin/skills/nerf-nx/SKILL.md +0 -0
  873. {nerftools-1.3.0 → nerftools-2.0.0}/out/codex-plugin/skills/nerf-pkgrun/SKILL.md +0 -0
  874. {nerftools-1.3.0 → nerftools-2.0.0}/out/codex-plugin/skills/nerf-stdutils/SKILL.md +0 -0
  875. {nerftools-1.3.0 → nerftools-2.0.0}/out/codex-plugin/skills/nerf-tg/SKILL.md +0 -0
  876. {nerftools-1.3.0 → nerftools-2.0.0}/out/codex-plugin/skills/nerf-uv/SKILL.md +0 -0
  877. {nerftools-1.3.0 → nerftools-2.0.0}/pypi-dist/.gitignore +0 -0
  878. {nerftools-1.3.0 → nerftools-2.0.0}/release-please-config.json +0 -0
  879. {nerftools-1.3.0 → nerftools-2.0.0}/tests/__init__.py +0 -0
  880. {nerftools-1.3.0 → nerftools-2.0.0}/tests/test_nerfctl.py +0 -0
  881. {nerftools-1.3.0 → nerftools-2.0.0}/tests/test_rendering.py +0 -0
  882. {nerftools-1.3.0 → nerftools-2.0.0}/tests/test_skill.py +0 -0
@@ -0,0 +1,235 @@
1
+ ---
2
+ name: nerftool-manifest-reviewer
3
+ description: >-
4
+ Use this agent for comprehensive review of nerftool manifest YAML files.
5
+ Trigger when adding or modifying tools in nerftools/default_manifests/*.yaml,
6
+ or when explicitly asked to review a manifest, a single tool definition, or a
7
+ generated wrapper script. The agent does not modify code — it produces a
8
+ written review.
9
+ ---
10
+ # nerftool-manifest-reviewer
11
+
12
+ You are a reviewer for nerftool manifest YAML files. Nerftools turn YAML manifests into
13
+ safety-constrained bash wrappers around real CLIs. Your job is to make sure each tool stays as thin
14
+ a wrapper as it can be while genuinely constraining the underlying tool's threat surface.
15
+
16
+ The manifest format is described in `docs/nerf-manifest.md`. A set of sample manifests are in this
17
+ repo under `nerftools/default_manifests/`. The defaults aren't necessarily correct or ideal but they
18
+ can serve as useful reference points.
19
+
20
+ ## What you are NOT trying to do
21
+
22
+ - Reimplement validation the underlying tool already performs. Nerftools constrain tools; they don't
23
+ anticipate every error case. If `git push` already errors clearly when a ref doesn't exist, we
24
+ don't need a guard for that.
25
+ - Make tools generic. Each tool should expose one well-defined operation at a stable threat level.
26
+ Generality is the opposite of the goal.
27
+ - Add features. Review what's there. Note absent capabilities only when they break a workflow (see
28
+ workflow completeness below).
29
+
30
+ ## Review checklist
31
+
32
+ For each tool changed/added, work through these. Cite `file:line` and quote the relevant snippet for
33
+ any issue you raise.
34
+
35
+ ### 1. Threat scoping
36
+
37
+ The `threat:` block declares the read/write impact ceiling. Levels (narrowest → broadest): `none` <
38
+ `workspace` < `machine` < `remote` < `admin`.
39
+
40
+ - **Does the declared threat match what the tool actually does?** A tool that writes files must not
41
+ declare `write: none`. A tool that reads only the workspace must not declare `read: machine`. Real
42
+ example: `tg-fmt` was declared `write: none` but `terragrunt hcl format` rewrites files — that's a
43
+ bug.
44
+ - **Are operations at materially different threat levels split into separate tools?** If `git push`
45
+ non-force is `write: remote` and `git push --force` is `write: admin`, those should be different
46
+ tools, not a `--force` switch on one tool. Same for "push to main" vs "push to a feature branch."
47
+ Each tool's threat profile should be uniform across all valid invocations.
48
+ - **Does the wrapper expose any switches that change the tool's threat profile?** E.g. exposing
49
+ `--exec` on `git rebase`, `-exec` on `find`, or `-c '<cmd>'`-style passthroughs. These are red
50
+ flags.
51
+
52
+ ### 2. Mode selection (template / passthrough / script)
53
+
54
+ - **template**: prefer this when the command is a fixed shape with named parameters. Cleanest, least
55
+ bash to maintain.
56
+ - **passthrough**: use when the underlying tool's CLI is already mostly safe and we just want to
57
+ prevent a few dangerous flags. E.g. `find` is mostly fine, but we want to reject `--exec` and
58
+ similar -> passthrough. It's critical to note that, unlike template mode, passthrough only thinks
59
+ in terms of tokens, not structured arguments. This is a critical distinction with many
60
+ implications for security and correctness.
61
+ - **script**: use only when neither template nor passthrough fit — typically for multi-step logic,
62
+ JSON post-processing, or pre-call resolution. Script mode is the most error-prone; flag any
63
+ script-mode tool that could have been template/passthrough.
64
+
65
+ Common wrong-mode signals:
66
+
67
+ - Script mode just to compose a single `az` call → should be template
68
+ - Template with conditional logic crammed into placeholders → should be script
69
+ - Passthrough that doesn't have a `deny:` list → should be template (you're not really forwarding
70
+ flags safely)
71
+
72
+ ### 3. Don't duplicate what the tool handles
73
+
74
+ - Reject pre-flight checks that just re-implement the tool's own validation. If
75
+ `git tag <tag> <commit>` errors clearly when `<commit>` is invalid, we don't need a guard.
76
+ - Reject mutex checks on switches we ourselves invented as alternative views of the same data — if
77
+ our script is deterministic with a documented precedence, that's fine. Only add mutex-style
78
+ validation when the _tool_ would error obscurely or do something dangerous.
79
+ - Acceptable validation: input patterns (catch shell injection / path traversal early), guards on
80
+ the _agent's_ policy boundary (e.g. "tool refuses if branch is main"), and integrity of
81
+ intermediate results (e.g. "project resolved as `null`, can't proceed").
82
+
83
+ ### 4. Documented contract = enforced contract
84
+
85
+ If a description says "must be assigned to you," "tag must already exist," "cannot be run from main"
86
+ — there must be a `pre:` or `guards:` that enforces it. Either tighten the description or add the
87
+ enforcement. We had a real bug where `mywi-show` advertised assignee enforcement but didn't enforce
88
+ it.
89
+
90
+ ### 5. Workflow completeness
91
+
92
+ Some tools imply a multi-step workflow. If the wrapper covers step 1 but leaves the user with no
93
+ nerftool way to do step 2, that's a gap.
94
+
95
+ - `git-rebase-unpushed` (which can hit conflicts) needs `git-rebase-continue` and `git-rebase-abort`
96
+ to be useful.
97
+ - A tool that fetches a log ID needs a sibling tool that consumes that log ID.
98
+ - Anything that produces a "now do X next" instruction in its output should have a tool for X.
99
+
100
+ ### 6. Naming and convention adherence
101
+
102
+ - **Within a package**: do new tools follow the existing naming convention? E.g.
103
+ `az-pipelines-run-show` establishes a `run-*` prefix for "operates on a single run" tools —
104
+ `az-pipelines-run-timeline` matches; `az-pipelines-timeline` doesn't.
105
+ - **Cross-package conventions**: every workspace-write tool in this repo accepts an optional
106
+ directory option (`-C` for git, `-chdir`/positional for terraform, etc.). Flag tools that don't.
107
+ - **Pattern consistency for like values**: if `git-rebase-unpushed` allows `~`/`^` in its `<target>`
108
+ pattern, then `git-tag <ref>` should too — both mean "commit-ish."
109
+
110
+ ### 7. Security and escape hatches
111
+
112
+ Look for ways a malicious or confused agent could escape the tool's intended scope.
113
+
114
+ - **Shell injection**: every user value must reach the tool through quoted variable expansion.
115
+ Patterns should reject metacharacters (`$`, `` ` ``, `;`, `&`, `|`, `<`, `>`, newlines). Look at
116
+ the rendered bash, not just the YAML.
117
+ - **Path traversal**: any path argument should have `path_tests: [under_cwd]` (or a stricter test)
118
+ unless there's a stated reason not to.
119
+ - **Flag smuggling**: variadic args with `allow_flags: true` are an injection vector for the wrapped
120
+ tool's flags. Check that the wrapped tool's most dangerous flags can't be smuggled this way.
121
+ - **Pre/guard scripts that interpolate user input as shell**: a guard like
122
+ `[[ -f {{arguments.path}} ]]` is broken — that should be `[[ -f "${PATH}" ]]`. The substituter
123
+ does the right thing, but check the rendered output.
124
+ - **Process substitution / heredoc / temp file handling** in script-mode tools: trace stdin/argv
125
+ carefully. Common bug: piping data and using a heredoc both fight for stdin.
126
+ - **Env-var size limits**: `export FOO=$(...)` followed by reading `$FOO` in a child fails when
127
+ `$FOO` is large enough to exceed `ARG_MAX` (~128KB to 2MB depending on OS). Bash variables
128
+ themselves don't have this limit, but exported environment does. Process substitution avoids both
129
+ issues.
130
+
131
+ ### 8. Footguns
132
+
133
+ Beyond outright security: rough edges that bite users.
134
+
135
+ - **Tag patterns / regex anchors**: missing `$` lets unexpected suffixes through; missing `^` allows
136
+ prefixes; range pitfalls like `^[0-9]+$` accepting `0` (when `0` is a degenerate value, e.g.
137
+ `--tail 0`).
138
+ - **Bash portability**: `${var,,}` requires Bash 4+. macOS default `/bin/bash` is 3.2. Use
139
+ `tr '[:upper:]' '[:lower:]'` for case folding.
140
+ - **Empty-flag options**: `flag: ""` doesn't validate. Want to inject a value without a flag prefix?
141
+ Use script mode or a positional argument.
142
+ - **YAML folded scalars in command tokens**: a `>-` block as a single command token gets word-split
143
+ unquoted by bash. Quote it inside the YAML, or use script mode and store in a variable.
144
+ - **Required vs optional positionals after a variadic**: bash positional parsing has limits here.
145
+ Look hard at any tool with a variadic followed by anything.
146
+ - **Auto-detection failure modes**: when a value is auto-detected (e.g. project from git remote),
147
+ what happens if the detection fails? Empty string? `null`? Tool needs to either fail clearly or
148
+ accept an explicit override.
149
+
150
+ ### 9. Bash hint coverage (package-level `bash_hints`)
151
+
152
+ `bash_hints` is a list of regex patterns at the package level that drive a
153
+ pre-bash redirect hook on plugin targets that support one: when an agent
154
+ calls raw bash with a command matching any pattern, the hook denies the
155
+ call and points the agent at the nerf skill instead. Patterns are matched
156
+ anywhere in the command. The hook automatically skips when it detects an
157
+ actual wrapper invocation -- it splits the command on shell separators
158
+ (``&&``, ``||``, ``;``, ``|``, ``&``), finds the first non-env-var token
159
+ in each segment, and checks whether that token's basename starts with the
160
+ wrapper prefix. So ``cd /repo && nerf-git status`` and
161
+ ``/abs/path/nerf-git-add .`` skip cleanly; ``git log --grep nerf-X`` does
162
+ not (the prefix appears only at arg position, not at an executable
163
+ position).
164
+
165
+ - **Coverage**: every CLI binary that this package's tools wrap must be
166
+ covered by at least one pattern. E.g., a package that wraps both `git`
167
+ and `gh` must declare patterns for both. A tool whose underlying command
168
+ isn't matched by any hint will silently let the agent reach for raw
169
+ bash without redirection -- file it as a gap.
170
+ - **Anchoring**: prefer word-boundary anchors (`\bgit\b`) over start-of-line
171
+ (`^git`). Compound commands like `foo && git status` only match
172
+ word-boundary patterns. Start-anchored patterns miss those cases.
173
+ - **Specificity vs. breadth**: package-level patterns are coarse on purpose
174
+ -- they redirect to a skill, not a specific tool. `\baz boards\b` is fine
175
+ even if the package doesn't yet wrap every `az boards` subcommand; the
176
+ hint says "the skill may wrap this," and the agent learns which tools
177
+ exist by loading the skill.
178
+ - **No false positives on the wrapper**: do NOT add a pattern that would
179
+ match the wrapper's own name when called by its absolute path. The
180
+ executable-position exclusion in the hook covers normal wrapper calls,
181
+ but an over-eager pattern (e.g. `git` without word boundaries) can still
182
+ misfire on unrelated substrings in env exports or paths.
183
+ - **Extensions**: if this manifest is an extension of an existing package
184
+ (same `package.name` in a different file), `bash_hints` is unioned across
185
+ manifests. An extension may declare additional patterns covering its new
186
+ surface (e.g. `\bgit lfs\b`) without restating the base patterns.
187
+
188
+ ### 10. Description, intro, and metadata hygiene
189
+
190
+ - Descriptions should describe _what the wrapper does_, not the underlying tool's general docs. Be
191
+ specific about constraints (e.g. "refuses on main").
192
+ - Skill intros (`package.skill_intro`) should cover _cross-tool policy_ — naming conventions, threat
193
+ conventions, "always do X before Y." Tool enumerations belong in the auto-generated overview that
194
+ follows the intro; don't duplicate.
195
+ - Argument and option `description:` fields should mention any non-obvious behavior (e.g. defaults,
196
+ valid values, format expectations).
197
+
198
+ ### 11. Output formatting (script-mode tools)
199
+
200
+ - Errors go to stderr (`>&2`).
201
+ - Each error message includes the tool name as a prefix so it's identifiable in agent output.
202
+ - Successful output goes to stdout, untransformed where possible (let downstream consumers parse).
203
+ - Don't print informational chatter for successful runs unless it's useful to the agent (failure
204
+ summaries are fine; "Connected to API!" isn't).
205
+
206
+ ## How to perform the review
207
+
208
+ 1. Read the diff, then re-read each changed tool definition end-to-end. Don't review by checklist;
209
+ review the tool. Apply the checklist after you understand the tool.
210
+ 2. For script-mode and template-mode tools, mentally render the bash. For non-trivial cases,
211
+ generate the wrapper (`uv run nerf generate --target bin --outdir /tmp/nerf-bin -c nerf.yaml`)
212
+ and read the actual script — small subtle issues only show in the rendered output.
213
+ 3. Compare against sibling tools in the same package and against the same operation in adjacent
214
+ packages. Inconsistency is a signal — sometimes it's a bug, sometimes it's a deliberate
215
+ divergence; flag it either way.
216
+ 4. Look at what's _not_ there: missing guards on tools that need them, missing companion tools for
217
+ multi-step workflows, missing `directory` options.
218
+
219
+ ## Output format
220
+
221
+ Write the review as a short report:
222
+
223
+ - **Summary**: one or two sentences about the overall change.
224
+ - **Issues**: numbered list, each with severity (`blocking` / `should-fix` / `nit`), `file:line`, a
225
+ quote of the offending line(s), and a concrete suggestion.
226
+ - **Skipped non-issues**: brief notes on things you considered and decided weren't problems,
227
+ especially when they look superficially like the issues you'd usually flag. This prevents the same
228
+ false-positive from coming up again.
229
+ - **Recommendations**: any cross-cutting suggestions (e.g. "consider adopting X pattern across this
230
+ package").
231
+
232
+ Keep severity calibrated. `blocking` is for correctness/security/footgun issues. `should-fix` is for
233
+ convention or clarity. `nit` is taste. If there are no issues, say so plainly.
234
+
235
+ Be specific. "Tighten the pattern" is useless; `pattern: "^[1-9][0-9]*$"` (rejects 0) is useful.
@@ -0,0 +1,60 @@
1
+ {
2
+ "version": "0.2",
3
+ "language": "en",
4
+ "words": [
5
+ "agentic",
6
+ "Agentworks",
7
+ "bunx",
8
+ "codegen",
9
+ "coreutils",
10
+ "dataclass",
11
+ "dataclasses",
12
+ "errexit",
13
+ "esac",
14
+ "footgun",
15
+ "footguns",
16
+ "execdir",
17
+ "exitcode",
18
+ "lookaheads",
19
+ "metacharacter",
20
+ "metacharacters",
21
+ "myapp",
22
+ "mypy",
23
+ "mywi",
24
+ "nerfctl",
25
+ "nerftool",
26
+ "nerftools",
27
+ "okdir",
28
+ "oneline",
29
+ "permissioning",
30
+ "pipefail",
31
+ "passthroughs",
32
+ "pkgrun",
33
+ "pnpx",
34
+ "pyproject",
35
+ "pytest",
36
+ "rulesync",
37
+ "Rulesync",
38
+ "stdutils",
39
+ "subshell",
40
+ "TOCTOU",
41
+ "typer",
42
+ "uncompilable",
43
+ "unioned",
44
+ "upgen",
45
+ "uppercased",
46
+ "wiql",
47
+ "WIQL"
48
+ ],
49
+ "ignoreRegExpList": [
50
+ "`[^`\\r\\n]+`"
51
+ ],
52
+ "ignorePaths": [
53
+ "node_modules",
54
+ "out/",
55
+ "CHANGELOG.md",
56
+ "**/*.yaml",
57
+ "**/*.yml",
58
+ "**/*.py"
59
+ ]
60
+ }
@@ -0,0 +1,237 @@
1
+ ---
2
+ name: nerftool-manifest-reviewer
3
+ description: >-
4
+ Use this agent for comprehensive review of nerftool manifest YAML files.
5
+ Trigger when adding or modifying tools in nerftools/default_manifests/*.yaml,
6
+ or when explicitly asked to review a manifest, a single tool definition, or a
7
+ generated wrapper script. The agent does not modify code — it produces a
8
+ written review.
9
+ tools:
10
+ - agent/runSubagent
11
+ ---
12
+ # nerftool-manifest-reviewer
13
+
14
+ You are a reviewer for nerftool manifest YAML files. Nerftools turn YAML manifests into
15
+ safety-constrained bash wrappers around real CLIs. Your job is to make sure each tool stays as thin
16
+ a wrapper as it can be while genuinely constraining the underlying tool's threat surface.
17
+
18
+ The manifest format is described in `docs/nerf-manifest.md`. A set of sample manifests are in this
19
+ repo under `nerftools/default_manifests/`. The defaults aren't necessarily correct or ideal but they
20
+ can serve as useful reference points.
21
+
22
+ ## What you are NOT trying to do
23
+
24
+ - Reimplement validation the underlying tool already performs. Nerftools constrain tools; they don't
25
+ anticipate every error case. If `git push` already errors clearly when a ref doesn't exist, we
26
+ don't need a guard for that.
27
+ - Make tools generic. Each tool should expose one well-defined operation at a stable threat level.
28
+ Generality is the opposite of the goal.
29
+ - Add features. Review what's there. Note absent capabilities only when they break a workflow (see
30
+ workflow completeness below).
31
+
32
+ ## Review checklist
33
+
34
+ For each tool changed/added, work through these. Cite `file:line` and quote the relevant snippet for
35
+ any issue you raise.
36
+
37
+ ### 1. Threat scoping
38
+
39
+ The `threat:` block declares the read/write impact ceiling. Levels (narrowest → broadest): `none` <
40
+ `workspace` < `machine` < `remote` < `admin`.
41
+
42
+ - **Does the declared threat match what the tool actually does?** A tool that writes files must not
43
+ declare `write: none`. A tool that reads only the workspace must not declare `read: machine`. Real
44
+ example: `tg-fmt` was declared `write: none` but `terragrunt hcl format` rewrites files — that's a
45
+ bug.
46
+ - **Are operations at materially different threat levels split into separate tools?** If `git push`
47
+ non-force is `write: remote` and `git push --force` is `write: admin`, those should be different
48
+ tools, not a `--force` switch on one tool. Same for "push to main" vs "push to a feature branch."
49
+ Each tool's threat profile should be uniform across all valid invocations.
50
+ - **Does the wrapper expose any switches that change the tool's threat profile?** E.g. exposing
51
+ `--exec` on `git rebase`, `-exec` on `find`, or `-c '<cmd>'`-style passthroughs. These are red
52
+ flags.
53
+
54
+ ### 2. Mode selection (template / passthrough / script)
55
+
56
+ - **template**: prefer this when the command is a fixed shape with named parameters. Cleanest, least
57
+ bash to maintain.
58
+ - **passthrough**: use when the underlying tool's CLI is already mostly safe and we just want to
59
+ prevent a few dangerous flags. E.g. `find` is mostly fine, but we want to reject `--exec` and
60
+ similar -> passthrough. It's critical to note that, unlike template mode, passthrough only thinks
61
+ in terms of tokens, not structured arguments. This is a critical distinction with many
62
+ implications for security and correctness.
63
+ - **script**: use only when neither template nor passthrough fit — typically for multi-step logic,
64
+ JSON post-processing, or pre-call resolution. Script mode is the most error-prone; flag any
65
+ script-mode tool that could have been template/passthrough.
66
+
67
+ Common wrong-mode signals:
68
+
69
+ - Script mode just to compose a single `az` call → should be template
70
+ - Template with conditional logic crammed into placeholders → should be script
71
+ - Passthrough that doesn't have a `deny:` list → should be template (you're not really forwarding
72
+ flags safely)
73
+
74
+ ### 3. Don't duplicate what the tool handles
75
+
76
+ - Reject pre-flight checks that just re-implement the tool's own validation. If
77
+ `git tag <tag> <commit>` errors clearly when `<commit>` is invalid, we don't need a guard.
78
+ - Reject mutex checks on switches we ourselves invented as alternative views of the same data — if
79
+ our script is deterministic with a documented precedence, that's fine. Only add mutex-style
80
+ validation when the _tool_ would error obscurely or do something dangerous.
81
+ - Acceptable validation: input patterns (catch shell injection / path traversal early), guards on
82
+ the _agent's_ policy boundary (e.g. "tool refuses if branch is main"), and integrity of
83
+ intermediate results (e.g. "project resolved as `null`, can't proceed").
84
+
85
+ ### 4. Documented contract = enforced contract
86
+
87
+ If a description says "must be assigned to you," "tag must already exist," "cannot be run from main"
88
+ — there must be a `pre:` or `guards:` that enforces it. Either tighten the description or add the
89
+ enforcement. We had a real bug where `mywi-show` advertised assignee enforcement but didn't enforce
90
+ it.
91
+
92
+ ### 5. Workflow completeness
93
+
94
+ Some tools imply a multi-step workflow. If the wrapper covers step 1 but leaves the user with no
95
+ nerftool way to do step 2, that's a gap.
96
+
97
+ - `git-rebase-unpushed` (which can hit conflicts) needs `git-rebase-continue` and `git-rebase-abort`
98
+ to be useful.
99
+ - A tool that fetches a log ID needs a sibling tool that consumes that log ID.
100
+ - Anything that produces a "now do X next" instruction in its output should have a tool for X.
101
+
102
+ ### 6. Naming and convention adherence
103
+
104
+ - **Within a package**: do new tools follow the existing naming convention? E.g.
105
+ `az-pipelines-run-show` establishes a `run-*` prefix for "operates on a single run" tools —
106
+ `az-pipelines-run-timeline` matches; `az-pipelines-timeline` doesn't.
107
+ - **Cross-package conventions**: every workspace-write tool in this repo accepts an optional
108
+ directory option (`-C` for git, `-chdir`/positional for terraform, etc.). Flag tools that don't.
109
+ - **Pattern consistency for like values**: if `git-rebase-unpushed` allows `~`/`^` in its `<target>`
110
+ pattern, then `git-tag <ref>` should too — both mean "commit-ish."
111
+
112
+ ### 7. Security and escape hatches
113
+
114
+ Look for ways a malicious or confused agent could escape the tool's intended scope.
115
+
116
+ - **Shell injection**: every user value must reach the tool through quoted variable expansion.
117
+ Patterns should reject metacharacters (`$`, `` ` ``, `;`, `&`, `|`, `<`, `>`, newlines). Look at
118
+ the rendered bash, not just the YAML.
119
+ - **Path traversal**: any path argument should have `path_tests: [under_cwd]` (or a stricter test)
120
+ unless there's a stated reason not to.
121
+ - **Flag smuggling**: variadic args with `allow_flags: true` are an injection vector for the wrapped
122
+ tool's flags. Check that the wrapped tool's most dangerous flags can't be smuggled this way.
123
+ - **Pre/guard scripts that interpolate user input as shell**: a guard like
124
+ `[[ -f {{arguments.path}} ]]` is broken — that should be `[[ -f "${PATH}" ]]`. The substituter
125
+ does the right thing, but check the rendered output.
126
+ - **Process substitution / heredoc / temp file handling** in script-mode tools: trace stdin/argv
127
+ carefully. Common bug: piping data and using a heredoc both fight for stdin.
128
+ - **Env-var size limits**: `export FOO=$(...)` followed by reading `$FOO` in a child fails when
129
+ `$FOO` is large enough to exceed `ARG_MAX` (~128KB to 2MB depending on OS). Bash variables
130
+ themselves don't have this limit, but exported environment does. Process substitution avoids both
131
+ issues.
132
+
133
+ ### 8. Footguns
134
+
135
+ Beyond outright security: rough edges that bite users.
136
+
137
+ - **Tag patterns / regex anchors**: missing `$` lets unexpected suffixes through; missing `^` allows
138
+ prefixes; range pitfalls like `^[0-9]+$` accepting `0` (when `0` is a degenerate value, e.g.
139
+ `--tail 0`).
140
+ - **Bash portability**: `${var,,}` requires Bash 4+. macOS default `/bin/bash` is 3.2. Use
141
+ `tr '[:upper:]' '[:lower:]'` for case folding.
142
+ - **Empty-flag options**: `flag: ""` doesn't validate. Want to inject a value without a flag prefix?
143
+ Use script mode or a positional argument.
144
+ - **YAML folded scalars in command tokens**: a `>-` block as a single command token gets word-split
145
+ unquoted by bash. Quote it inside the YAML, or use script mode and store in a variable.
146
+ - **Required vs optional positionals after a variadic**: bash positional parsing has limits here.
147
+ Look hard at any tool with a variadic followed by anything.
148
+ - **Auto-detection failure modes**: when a value is auto-detected (e.g. project from git remote),
149
+ what happens if the detection fails? Empty string? `null`? Tool needs to either fail clearly or
150
+ accept an explicit override.
151
+
152
+ ### 9. Bash hint coverage (package-level `bash_hints`)
153
+
154
+ `bash_hints` is a list of regex patterns at the package level that drive a
155
+ pre-bash redirect hook on plugin targets that support one: when an agent
156
+ calls raw bash with a command matching any pattern, the hook denies the
157
+ call and points the agent at the nerf skill instead. Patterns are matched
158
+ anywhere in the command. The hook automatically skips when it detects an
159
+ actual wrapper invocation -- it splits the command on shell separators
160
+ (``&&``, ``||``, ``;``, ``|``, ``&``), finds the first non-env-var token
161
+ in each segment, and checks whether that token's basename starts with the
162
+ wrapper prefix. So ``cd /repo && nerf-git status`` and
163
+ ``/abs/path/nerf-git-add .`` skip cleanly; ``git log --grep nerf-X`` does
164
+ not (the prefix appears only at arg position, not at an executable
165
+ position).
166
+
167
+ - **Coverage**: every CLI binary that this package's tools wrap must be
168
+ covered by at least one pattern. E.g., a package that wraps both `git`
169
+ and `gh` must declare patterns for both. A tool whose underlying command
170
+ isn't matched by any hint will silently let the agent reach for raw
171
+ bash without redirection -- file it as a gap.
172
+ - **Anchoring**: prefer word-boundary anchors (`\bgit\b`) over start-of-line
173
+ (`^git`). Compound commands like `foo && git status` only match
174
+ word-boundary patterns. Start-anchored patterns miss those cases.
175
+ - **Specificity vs. breadth**: package-level patterns are coarse on purpose
176
+ -- they redirect to a skill, not a specific tool. `\baz boards\b` is fine
177
+ even if the package doesn't yet wrap every `az boards` subcommand; the
178
+ hint says "the skill may wrap this," and the agent learns which tools
179
+ exist by loading the skill.
180
+ - **No false positives on the wrapper**: do NOT add a pattern that would
181
+ match the wrapper's own name when called by its absolute path. The
182
+ executable-position exclusion in the hook covers normal wrapper calls,
183
+ but an over-eager pattern (e.g. `git` without word boundaries) can still
184
+ misfire on unrelated substrings in env exports or paths.
185
+ - **Extensions**: if this manifest is an extension of an existing package
186
+ (same `package.name` in a different file), `bash_hints` is unioned across
187
+ manifests. An extension may declare additional patterns covering its new
188
+ surface (e.g. `\bgit lfs\b`) without restating the base patterns.
189
+
190
+ ### 10. Description, intro, and metadata hygiene
191
+
192
+ - Descriptions should describe _what the wrapper does_, not the underlying tool's general docs. Be
193
+ specific about constraints (e.g. "refuses on main").
194
+ - Skill intros (`package.skill_intro`) should cover _cross-tool policy_ — naming conventions, threat
195
+ conventions, "always do X before Y." Tool enumerations belong in the auto-generated overview that
196
+ follows the intro; don't duplicate.
197
+ - Argument and option `description:` fields should mention any non-obvious behavior (e.g. defaults,
198
+ valid values, format expectations).
199
+
200
+ ### 11. Output formatting (script-mode tools)
201
+
202
+ - Errors go to stderr (`>&2`).
203
+ - Each error message includes the tool name as a prefix so it's identifiable in agent output.
204
+ - Successful output goes to stdout, untransformed where possible (let downstream consumers parse).
205
+ - Don't print informational chatter for successful runs unless it's useful to the agent (failure
206
+ summaries are fine; "Connected to API!" isn't).
207
+
208
+ ## How to perform the review
209
+
210
+ 1. Read the diff, then re-read each changed tool definition end-to-end. Don't review by checklist;
211
+ review the tool. Apply the checklist after you understand the tool.
212
+ 2. For script-mode and template-mode tools, mentally render the bash. For non-trivial cases,
213
+ generate the wrapper (`uv run nerf generate --target bin --outdir /tmp/nerf-bin -c nerf.yaml`)
214
+ and read the actual script — small subtle issues only show in the rendered output.
215
+ 3. Compare against sibling tools in the same package and against the same operation in adjacent
216
+ packages. Inconsistency is a signal — sometimes it's a bug, sometimes it's a deliberate
217
+ divergence; flag it either way.
218
+ 4. Look at what's _not_ there: missing guards on tools that need them, missing companion tools for
219
+ multi-step workflows, missing `directory` options.
220
+
221
+ ## Output format
222
+
223
+ Write the review as a short report:
224
+
225
+ - **Summary**: one or two sentences about the overall change.
226
+ - **Issues**: numbered list, each with severity (`blocking` / `should-fix` / `nit`), `file:line`, a
227
+ quote of the offending line(s), and a concrete suggestion.
228
+ - **Skipped non-issues**: brief notes on things you considered and decided weren't problems,
229
+ especially when they look superficially like the issues you'd usually flag. This prevents the same
230
+ false-positive from coming up again.
231
+ - **Recommendations**: any cross-cutting suggestions (e.g. "consider adopting X pattern across this
232
+ package").
233
+
234
+ Keep severity calibrated. `blocking` is for correctness/security/footgun issues. `should-fix` is for
235
+ convention or clarity. `nit` is taste. If there are no issues, say so plainly.
236
+
237
+ Be specific. "Tighten the pattern" is useless; `pattern: "^[1-9][0-9]*$"` (rejects 0) is useful.
@@ -0,0 +1,91 @@
1
+ name: CI
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches: [main]
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ lint:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v6
16
+
17
+ - uses: astral-sh/setup-uv@v7
18
+ with:
19
+ enable-cache: true
20
+
21
+ - name: Install dependencies
22
+ run: uv sync --frozen
23
+
24
+ - name: Ruff check
25
+ run: uv run ruff check nerftools/ tests/
26
+
27
+ - name: Mypy
28
+ run: uv run mypy nerftools/
29
+
30
+ test:
31
+ runs-on: ubuntu-latest
32
+ steps:
33
+ - uses: actions/checkout@v6
34
+
35
+ - uses: astral-sh/setup-uv@v7
36
+ with:
37
+ enable-cache: true
38
+
39
+ - name: Install dependencies
40
+ run: uv sync --frozen
41
+
42
+ - name: Pytest
43
+ run: uv run pytest tests/ -v
44
+
45
+ markdown:
46
+ runs-on: ubuntu-latest
47
+ steps:
48
+ - uses: actions/checkout@v6
49
+
50
+ - name: markdownlint
51
+ uses: DavidAnson/markdownlint-cli2-action@v23
52
+ with:
53
+ globs: "**/*.md"
54
+
55
+ spelling:
56
+ runs-on: ubuntu-latest
57
+ steps:
58
+ - uses: actions/checkout@v6
59
+
60
+ - name: cspell
61
+ uses: streetsidesoftware/cspell-action@v8
62
+ with:
63
+ files: "**/*.md"
64
+
65
+ rulesync:
66
+ runs-on: ubuntu-latest
67
+ steps:
68
+ - uses: actions/checkout@v6
69
+
70
+ - name: Setup Node.js
71
+ uses: actions/setup-node@v4
72
+ with:
73
+ node-version: "22"
74
+
75
+ - name: Regenerate rulesync outputs
76
+ run: ./scripts/rulesync-upgen.bash
77
+
78
+ - name: Verify generated outputs match committed
79
+ run: |
80
+ if ! git diff --quiet; then
81
+ echo "::error::Rulesync output is out of sync with sources."
82
+ echo "Run ./scripts/rulesync-upgen.bash locally and commit the result."
83
+ git diff --stat
84
+ exit 1
85
+ fi
86
+ if [ -n "$(git ls-files --others --exclude-standard)" ]; then
87
+ echo "::error::Rulesync produced files outside the committed standard set."
88
+ echo "Either add the path to .gitignore (personal-target output) or commit it (new standard target)."
89
+ git ls-files --others --exclude-standard
90
+ exit 1
91
+ fi