damage-control-dev 0.1.0__py3-none-any.whl

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 (74) hide show
  1. damage_control/__init__.py +9 -0
  2. damage_control/__main__.py +7 -0
  3. damage_control/adapter.py +179 -0
  4. damage_control/audit.py +432 -0
  5. damage_control/breakglass.py +155 -0
  6. damage_control/claude_code.py +148 -0
  7. damage_control/cli.py +173 -0
  8. damage_control/engine.py +10656 -0
  9. damage_control/groups.py +114 -0
  10. damage_control/harness_config.py +205 -0
  11. damage_control/hook.py +54 -0
  12. damage_control/install.py +618 -0
  13. damage_control/packs.py +219 -0
  14. damage_control/policy.py +323 -0
  15. damage_control/profile.py +177 -0
  16. damage_control/rules/aws.json +85 -0
  17. damage_control/rules/aws.yaml +76 -0
  18. damage_control/rules/cloud-hosting.json +162 -0
  19. damage_control/rules/cloud-hosting.yaml +163 -0
  20. damage_control/rules/containers.json +67 -0
  21. damage_control/rules/containers.yaml +69 -0
  22. damage_control/rules/control-plane.json +7 -0
  23. damage_control/rules/control-plane.yaml +21 -0
  24. damage_control/rules/core.json +332 -0
  25. damage_control/rules/core.yaml +441 -0
  26. damage_control/rules/databases.json +117 -0
  27. damage_control/rules/databases.yaml +123 -0
  28. damage_control/rules/firebase.json +34 -0
  29. damage_control/rules/firebase.yaml +30 -0
  30. damage_control/rules/gcp.json +60 -0
  31. damage_control/rules/gcp.yaml +57 -0
  32. damage_control/rules/git.json +119 -0
  33. damage_control/rules/git.yaml +120 -0
  34. damage_control/rules/infrastructure.json +69 -0
  35. damage_control/rules/infrastructure.yaml +66 -0
  36. damage_control/rules/mcp-tools.json +11 -0
  37. damage_control/rules/mcp-tools.yaml +47 -0
  38. damage_control/rules/outbound.json +40 -0
  39. damage_control/rules/outbound.yaml +58 -0
  40. damage_control/rules/payloads.json +120 -0
  41. damage_control/rules/payloads.yaml +155 -0
  42. damage_control/rules/publish.json +46 -0
  43. damage_control/rules/publish.yaml +46 -0
  44. damage_control/rules/registry.json +10 -0
  45. damage_control/rules/registry.yaml +11 -0
  46. damage_control/rules/remote.json +31 -0
  47. damage_control/rules/remote.yaml +53 -0
  48. damage_control/rules/tmux.json +17 -0
  49. damage_control/rules/tmux.yaml +16 -0
  50. damage_control/ruleset.py +94 -0
  51. damage_control/tooldefs/aws.json +140 -0
  52. damage_control/tooldefs/aws.yaml +119 -0
  53. damage_control/tooldefs/docker.json +146 -0
  54. damage_control/tooldefs/docker.yaml +123 -0
  55. damage_control/tooldefs/gcp.json +186 -0
  56. damage_control/tooldefs/gcp.yaml +158 -0
  57. damage_control/tooldefs/gh.json +172 -0
  58. damage_control/tooldefs/gh.yaml +145 -0
  59. damage_control/tooldefs/git.json +166 -0
  60. damage_control/tooldefs/git.yaml +143 -0
  61. damage_control/tooldefs/kubectl.json +101 -0
  62. damage_control/tooldefs/kubectl.yaml +85 -0
  63. damage_control/tooldefs/npm.json +77 -0
  64. damage_control/tooldefs/npm.yaml +65 -0
  65. damage_control/tooldefs/terraform.json +68 -0
  66. damage_control/tooldefs/terraform.yaml +57 -0
  67. damage_control/tooldefs/uv.json +112 -0
  68. damage_control/tooldefs/uv.yaml +97 -0
  69. damage_control_dev-0.1.0.dist-info/METADATA +15 -0
  70. damage_control_dev-0.1.0.dist-info/RECORD +74 -0
  71. damage_control_dev-0.1.0.dist-info/WHEEL +4 -0
  72. damage_control_dev-0.1.0.dist-info/entry_points.txt +2 -0
  73. damage_control_dev-0.1.0.dist-info/licenses/LICENSE +201 -0
  74. damage_control_dev-0.1.0.dist-info/licenses/NOTICE +4 -0
@@ -0,0 +1,166 @@
1
+ {
2
+ "name": "Git",
3
+ "binary": "git",
4
+ "purpose": "Version control — track changes, manage branches, collaborate via remotes",
5
+ "docs": "https://git-scm.com/docs",
6
+ "commands": [
7
+ {
8
+ "cmd": "git status",
9
+ "access": "read",
10
+ "description": "Show working tree status"
11
+ },
12
+ {
13
+ "cmd": "git log [--oneline] [--graph]",
14
+ "access": "read",
15
+ "description": "Show commit history"
16
+ },
17
+ {
18
+ "cmd": "git diff [<file>]",
19
+ "access": "read",
20
+ "description": "Show unstaged changes"
21
+ },
22
+ {
23
+ "cmd": "git diff --staged",
24
+ "access": "read",
25
+ "description": "Show staged changes"
26
+ },
27
+ {
28
+ "cmd": "git show <commit>",
29
+ "access": "read",
30
+ "description": "Show commit details"
31
+ },
32
+ {
33
+ "cmd": "git branch [-a] [-v]",
34
+ "access": "read",
35
+ "description": "List branches"
36
+ },
37
+ {
38
+ "cmd": "git remote -v",
39
+ "access": "read",
40
+ "description": "List remotes"
41
+ },
42
+ {
43
+ "cmd": "git stash list",
44
+ "access": "read",
45
+ "description": "List stashed changes"
46
+ },
47
+ {
48
+ "cmd": "git stash show [-p]",
49
+ "access": "read",
50
+ "description": "Show a stash's changes"
51
+ },
52
+ {
53
+ "cmd": "git merge-base [--is-ancestor] <commit> <commit>",
54
+ "access": "read",
55
+ "description": "Find common ancestor / check ancestry"
56
+ },
57
+ {
58
+ "cmd": "git add <file>",
59
+ "access": "write",
60
+ "description": "Stage file for commit",
61
+ "id": "git.add"
62
+ },
63
+ {
64
+ "cmd": "git add -u",
65
+ "access": "write",
66
+ "description": "Stage all tracked file changes (deletions + modifications)",
67
+ "id": "git.add-u"
68
+ },
69
+ {
70
+ "cmd": "git commit -m '<message>'",
71
+ "access": "write",
72
+ "description": "Create a commit",
73
+ "id": "git.commit"
74
+ },
75
+ {
76
+ "id": "tooldef.git-stash-current-changes",
77
+ "cmd": "git stash",
78
+ "access": "write",
79
+ "description": "Stash current changes"
80
+ },
81
+ {
82
+ "id": "tooldef.git-apply-most-recent-stash",
83
+ "cmd": "git stash pop",
84
+ "access": "write",
85
+ "description": "Apply most recent stash"
86
+ },
87
+ {
88
+ "id": "tooldef.git-switch-branches-create-one-b-or-restore-working-tree-fil",
89
+ "cmd": "git checkout <target>",
90
+ "access": "write",
91
+ "description": "Switch branches, create one (-b), or restore working-tree files (overwrites uncommitted changes to restored paths)"
92
+ },
93
+ {
94
+ "id": "tooldef.git-merge-branch-into-current",
95
+ "cmd": "git merge <branch>",
96
+ "access": "write",
97
+ "description": "Merge branch into current"
98
+ },
99
+ {
100
+ "id": "tooldef.git-rebase-current-branch-onto-another",
101
+ "cmd": "git rebase <branch>",
102
+ "access": "write",
103
+ "description": "Rebase current branch onto another"
104
+ },
105
+ {
106
+ "id": "tooldef.git-apply-a-commit-to-current-branch",
107
+ "cmd": "git cherry-pick <commit>",
108
+ "access": "write",
109
+ "description": "Apply a commit to current branch"
110
+ },
111
+ {
112
+ "cmd": "git fetch [--all]",
113
+ "access": "read",
114
+ "description": "Download remote changes without merging"
115
+ },
116
+ {
117
+ "id": "tooldef.git-fetch-and-merge-remote-changes",
118
+ "cmd": "git pull",
119
+ "access": "write",
120
+ "description": "Fetch and merge remote changes"
121
+ },
122
+ {
123
+ "cmd": "git push",
124
+ "access": "write",
125
+ "description": "Push commits to remote",
126
+ "id": "git.push"
127
+ },
128
+ {
129
+ "id": "tooldef.git-force-push-only-if-remote-hasn-t-changed-safer-than-forc",
130
+ "cmd": "git push --force-with-lease",
131
+ "access": "write",
132
+ "description": "Force push only if remote hasn't changed (safer than --force)"
133
+ },
134
+ {
135
+ "cmd": "git reset --hard",
136
+ "access": "blocked",
137
+ "description": "Discard all uncommitted changes (unrecoverable)"
138
+ },
139
+ {
140
+ "cmd": "git push --force",
141
+ "access": "blocked",
142
+ "description": "Force push regardless of remote state — can overwrite others' work",
143
+ "note": "Use --force-with-lease instead"
144
+ },
145
+ {
146
+ "cmd": "git clean -fd",
147
+ "access": "blocked",
148
+ "description": "Delete all untracked files and directories"
149
+ },
150
+ {
151
+ "cmd": "git stash clear",
152
+ "access": "blocked",
153
+ "description": "Delete ALL stashes permanently"
154
+ },
155
+ {
156
+ "cmd": "git filter-branch",
157
+ "access": "blocked",
158
+ "description": "Rewrite entire commit history"
159
+ },
160
+ {
161
+ "cmd": "git reflog expire",
162
+ "access": "blocked",
163
+ "description": "Destroy the recovery mechanism for lost commits"
164
+ }
165
+ ]
166
+ }
@@ -0,0 +1,143 @@
1
+ name: Git
2
+ binary: git
3
+ purpose: Version control — track changes, manage branches, collaborate via remotes
4
+ docs: https://git-scm.com/docs
5
+
6
+ commands:
7
+ # Status & inspection
8
+ - cmd: "git status"
9
+ access: read
10
+ description: Show working tree status
11
+
12
+ - cmd: "git log [--oneline] [--graph]"
13
+ access: read
14
+ description: Show commit history
15
+
16
+ - cmd: "git diff [<file>]"
17
+ access: read
18
+ description: Show unstaged changes
19
+
20
+ - cmd: "git diff --staged"
21
+ access: read
22
+ description: Show staged changes
23
+
24
+ - cmd: "git show <commit>"
25
+ access: read
26
+ description: Show commit details
27
+
28
+ - cmd: "git branch [-a] [-v]"
29
+ access: read
30
+ description: List branches
31
+
32
+ - cmd: "git remote -v"
33
+ access: read
34
+ description: List remotes
35
+
36
+ - cmd: "git stash list"
37
+ access: read
38
+ description: List stashed changes
39
+
40
+ - cmd: "git stash show [-p]"
41
+ access: read
42
+ description: Show a stash's changes
43
+
44
+ - cmd: "git merge-base [--is-ancestor] <commit> <commit>"
45
+ access: read
46
+ description: Find common ancestor / check ancestry
47
+
48
+ # Staging & committing
49
+ - cmd: "git add <file>"
50
+ access: write
51
+ description: Stage file for commit
52
+ id: git.add
53
+
54
+ - cmd: "git add -u"
55
+ access: write
56
+ description: Stage all tracked file changes (deletions + modifications)
57
+ id: git.add-u
58
+
59
+ - cmd: "git commit -m '<message>'"
60
+ access: write
61
+ description: Create a commit
62
+ id: git.commit
63
+
64
+ - id: tooldef.git-stash-current-changes
65
+ cmd: "git stash"
66
+ access: write
67
+ description: Stash current changes
68
+
69
+ - id: tooldef.git-apply-most-recent-stash
70
+ cmd: "git stash pop"
71
+ access: write
72
+ description: Apply most recent stash
73
+
74
+ # Branching & merging
75
+ # One prefix rule covers every checkout form (the generated pattern stops at
76
+ # the first flag), so the description must name the whole operation — the old
77
+ # "Create and switch to new branch" misdescribed a refused
78
+ # ``git checkout -- <file>`` (#933).
79
+ - id: tooldef.git-switch-branches-create-one-b-or-restore-working-tree-fil
80
+ cmd: "git checkout <target>"
81
+ access: write
82
+ description: Switch branches, create one (-b), or restore working-tree files (overwrites uncommitted changes to restored paths)
83
+
84
+ - id: tooldef.git-merge-branch-into-current
85
+ cmd: "git merge <branch>"
86
+ access: write
87
+ description: Merge branch into current
88
+
89
+ - id: tooldef.git-rebase-current-branch-onto-another
90
+ cmd: "git rebase <branch>"
91
+ access: write
92
+ description: Rebase current branch onto another
93
+
94
+ - id: tooldef.git-apply-a-commit-to-current-branch
95
+ cmd: "git cherry-pick <commit>"
96
+ access: write
97
+ description: Apply a commit to current branch
98
+
99
+ # Remote operations
100
+ - cmd: "git fetch [--all]"
101
+ access: read
102
+ description: Download remote changes without merging
103
+
104
+ - id: tooldef.git-fetch-and-merge-remote-changes
105
+ cmd: "git pull"
106
+ access: write
107
+ description: Fetch and merge remote changes
108
+
109
+ - cmd: "git push"
110
+ access: write
111
+ description: Push commits to remote
112
+ id: git.push
113
+
114
+ - id: tooldef.git-force-push-only-if-remote-hasn-t-changed-safer-than-forc
115
+ cmd: "git push --force-with-lease"
116
+ access: write
117
+ description: Force push only if remote hasn't changed (safer than --force)
118
+
119
+ # Blocked operations
120
+ - cmd: "git reset --hard"
121
+ access: blocked
122
+ description: Discard all uncommitted changes (unrecoverable)
123
+
124
+ - cmd: "git push --force"
125
+ access: blocked
126
+ description: Force push regardless of remote state — can overwrite others' work
127
+ note: Use --force-with-lease instead
128
+
129
+ - cmd: "git clean -fd"
130
+ access: blocked
131
+ description: Delete all untracked files and directories
132
+
133
+ - cmd: "git stash clear"
134
+ access: blocked
135
+ description: Delete ALL stashes permanently
136
+
137
+ - cmd: "git filter-branch"
138
+ access: blocked
139
+ description: Rewrite entire commit history
140
+
141
+ - cmd: "git reflog expire"
142
+ access: blocked
143
+ description: Destroy the recovery mechanism for lost commits
@@ -0,0 +1,101 @@
1
+ {
2
+ "name": "kubectl",
3
+ "binary": "kubectl",
4
+ "purpose": "Manage Kubernetes clusters — deploy workloads, inspect resources, manage config",
5
+ "docs": "https://kubernetes.io/docs/reference/kubectl/",
6
+ "install": "brew install kubectl",
7
+ "commands": [
8
+ {
9
+ "cmd": "kubectl cluster-info",
10
+ "access": "read",
11
+ "description": "Show cluster endpoint info"
12
+ },
13
+ {
14
+ "cmd": "kubectl get nodes",
15
+ "access": "read",
16
+ "description": "List cluster nodes"
17
+ },
18
+ {
19
+ "cmd": "kubectl config get-contexts",
20
+ "access": "read",
21
+ "description": "List available kubeconfig contexts"
22
+ },
23
+ {
24
+ "id": "tooldef.kubectl-switch-active-cluster-context",
25
+ "cmd": "kubectl config use-context <context>",
26
+ "access": "write",
27
+ "description": "Switch active cluster context"
28
+ },
29
+ {
30
+ "cmd": "kubectl get pods [-n <namespace>]",
31
+ "access": "read",
32
+ "description": "List pods"
33
+ },
34
+ {
35
+ "cmd": "kubectl describe pod <pod>",
36
+ "access": "read",
37
+ "description": "Detailed pod info and events"
38
+ },
39
+ {
40
+ "cmd": "kubectl logs <pod> [-c <container>]",
41
+ "access": "read",
42
+ "description": "View pod logs"
43
+ },
44
+ {
45
+ "id": "tooldef.kubectl-execute-command-in-pod",
46
+ "cmd": "kubectl exec -it <pod> -- <cmd>",
47
+ "access": "write",
48
+ "description": "Execute command in pod"
49
+ },
50
+ {
51
+ "id": "tooldef.kubectl-create-or-update-resources-from-manifest",
52
+ "cmd": "kubectl apply -f <file>",
53
+ "access": "write",
54
+ "description": "Create or update resources from manifest"
55
+ },
56
+ {
57
+ "id": "tooldef.kubectl-rolling-restart-of-a-deployment",
58
+ "cmd": "kubectl rollout restart deployment/<name>",
59
+ "access": "write",
60
+ "description": "Rolling restart of a deployment"
61
+ },
62
+ {
63
+ "id": "tooldef.kubectl-scale-a-deployment",
64
+ "cmd": "kubectl scale deployment/<name> --replicas=<n>",
65
+ "access": "write",
66
+ "description": "Scale a deployment"
67
+ },
68
+ {
69
+ "id": "tooldef.kubectl-delete-a-pod-will-be-recreated-by-deployment",
70
+ "cmd": "kubectl delete pod <pod>",
71
+ "access": "write",
72
+ "description": "Delete a pod (will be recreated by deployment)"
73
+ },
74
+ {
75
+ "cmd": "kubectl get services [-n <namespace>]",
76
+ "access": "read",
77
+ "description": "List services"
78
+ },
79
+ {
80
+ "id": "tooldef.kubectl-forward-local-port-to-pod",
81
+ "cmd": "kubectl port-forward <pod> <local>:<remote>",
82
+ "access": "write",
83
+ "description": "Forward local port to pod"
84
+ },
85
+ {
86
+ "cmd": "kubectl delete namespace <ns>",
87
+ "access": "blocked",
88
+ "description": "Delete namespace and ALL its resources"
89
+ },
90
+ {
91
+ "cmd": "kubectl delete all --all",
92
+ "access": "blocked",
93
+ "description": "Delete all resources in current namespace"
94
+ },
95
+ {
96
+ "cmd": "helm uninstall <release>",
97
+ "access": "blocked",
98
+ "description": "Remove a Helm release and its resources"
99
+ }
100
+ ]
101
+ }
@@ -0,0 +1,85 @@
1
+ name: kubectl
2
+ binary: kubectl
3
+ purpose: Manage Kubernetes clusters — deploy workloads, inspect resources, manage config
4
+ docs: https://kubernetes.io/docs/reference/kubectl/
5
+ install: brew install kubectl
6
+
7
+ commands:
8
+ # Cluster info
9
+ - cmd: "kubectl cluster-info"
10
+ access: read
11
+ description: Show cluster endpoint info
12
+
13
+ - cmd: "kubectl get nodes"
14
+ access: read
15
+ description: List cluster nodes
16
+
17
+ - cmd: "kubectl config get-contexts"
18
+ access: read
19
+ description: List available kubeconfig contexts
20
+
21
+ - id: tooldef.kubectl-switch-active-cluster-context
22
+ cmd: "kubectl config use-context <context>"
23
+ access: write
24
+ description: Switch active cluster context
25
+
26
+ # Workloads
27
+ - cmd: "kubectl get pods [-n <namespace>]"
28
+ access: read
29
+ description: List pods
30
+
31
+ - cmd: "kubectl describe pod <pod>"
32
+ access: read
33
+ description: Detailed pod info and events
34
+
35
+ - cmd: "kubectl logs <pod> [-c <container>]"
36
+ access: read
37
+ description: View pod logs
38
+
39
+ - id: tooldef.kubectl-execute-command-in-pod
40
+ cmd: "kubectl exec -it <pod> -- <cmd>"
41
+ access: write
42
+ description: Execute command in pod
43
+
44
+ - id: tooldef.kubectl-create-or-update-resources-from-manifest
45
+ cmd: "kubectl apply -f <file>"
46
+ access: write
47
+ description: Create or update resources from manifest
48
+
49
+ - id: tooldef.kubectl-rolling-restart-of-a-deployment
50
+ cmd: "kubectl rollout restart deployment/<name>"
51
+ access: write
52
+ description: Rolling restart of a deployment
53
+
54
+ - id: tooldef.kubectl-scale-a-deployment
55
+ cmd: "kubectl scale deployment/<name> --replicas=<n>"
56
+ access: write
57
+ description: Scale a deployment
58
+
59
+ - id: tooldef.kubectl-delete-a-pod-will-be-recreated-by-deployment
60
+ cmd: "kubectl delete pod <pod>"
61
+ access: write
62
+ description: Delete a pod (will be recreated by deployment)
63
+
64
+ # Services & networking
65
+ - cmd: "kubectl get services [-n <namespace>]"
66
+ access: read
67
+ description: List services
68
+
69
+ - id: tooldef.kubectl-forward-local-port-to-pod
70
+ cmd: "kubectl port-forward <pod> <local>:<remote>"
71
+ access: write
72
+ description: Forward local port to pod
73
+
74
+ # Blocked
75
+ - cmd: "kubectl delete namespace <ns>"
76
+ access: blocked
77
+ description: Delete namespace and ALL its resources
78
+
79
+ - cmd: "kubectl delete all --all"
80
+ access: blocked
81
+ description: Delete all resources in current namespace
82
+
83
+ - cmd: "helm uninstall <release>"
84
+ access: blocked
85
+ description: Remove a Helm release and its resources
@@ -0,0 +1,77 @@
1
+ {
2
+ "name": "npm",
3
+ "binary": "npm",
4
+ "purpose": "Node.js package manager — install dependencies, run scripts, publish packages",
5
+ "docs": "https://docs.npmjs.com/cli/",
6
+ "install": "bundled with Node.js",
7
+ "commands": [
8
+ {
9
+ "cmd": "npm list [--depth=0]",
10
+ "access": "read",
11
+ "description": "List installed packages"
12
+ },
13
+ {
14
+ "cmd": "npm outdated",
15
+ "access": "read",
16
+ "description": "Check for outdated packages"
17
+ },
18
+ {
19
+ "cmd": "npm audit",
20
+ "access": "read",
21
+ "description": "Check for security vulnerabilities"
22
+ },
23
+ {
24
+ "id": "tooldef.npm-run-a-package-json-script",
25
+ "cmd": "npm run <script>",
26
+ "access": "write",
27
+ "description": "Run a package.json script"
28
+ },
29
+ {
30
+ "id": "tooldef.npm-install-all-dependencies-from-package-json",
31
+ "cmd": "npm install",
32
+ "access": "write",
33
+ "description": "Install all dependencies from package.json"
34
+ },
35
+ {
36
+ "id": "tooldef.npm-install-a-package",
37
+ "cmd": "npm install <package>",
38
+ "access": "write",
39
+ "description": "Install a package"
40
+ },
41
+ {
42
+ "id": "tooldef.npm-install-a-dev-dependency",
43
+ "cmd": "npm install -D <package>",
44
+ "access": "write",
45
+ "description": "Install a dev dependency"
46
+ },
47
+ {
48
+ "id": "tooldef.npm-remove-a-package",
49
+ "cmd": "npm uninstall <package>",
50
+ "access": "write",
51
+ "description": "Remove a package"
52
+ },
53
+ {
54
+ "id": "tooldef.npm-update-packages-to-latest-allowed-versions",
55
+ "cmd": "npm update [<package>]",
56
+ "access": "write",
57
+ "description": "Update packages to latest allowed versions"
58
+ },
59
+ {
60
+ "id": "tooldef.npm-clean-install-from-package-lock-json-faster-deterministi",
61
+ "cmd": "npm ci",
62
+ "access": "write",
63
+ "description": "Clean install from package-lock.json (faster, deterministic)"
64
+ },
65
+ {
66
+ "id": "tooldef.npm-publish-package-to-npm-registry",
67
+ "cmd": "npm publish",
68
+ "access": "write",
69
+ "description": "Publish package to npm registry"
70
+ },
71
+ {
72
+ "cmd": "npm unpublish <package>",
73
+ "access": "blocked",
74
+ "description": "Remove package from registry (irreversible after 72h, affects downstream users)"
75
+ }
76
+ ]
77
+ }
@@ -0,0 +1,65 @@
1
+ name: npm
2
+ binary: npm
3
+ purpose: Node.js package manager — install dependencies, run scripts, publish packages
4
+ docs: https://docs.npmjs.com/cli/
5
+ install: bundled with Node.js
6
+
7
+ commands:
8
+ # Inspection
9
+ - cmd: "npm list [--depth=0]"
10
+ access: read
11
+ description: List installed packages
12
+
13
+ - cmd: "npm outdated"
14
+ access: read
15
+ description: Check for outdated packages
16
+
17
+ - cmd: "npm audit"
18
+ access: read
19
+ description: Check for security vulnerabilities
20
+
21
+ - id: tooldef.npm-run-a-package-json-script
22
+ cmd: "npm run <script>"
23
+ access: write
24
+ description: Run a package.json script
25
+
26
+ # Package management
27
+ - id: tooldef.npm-install-all-dependencies-from-package-json
28
+ cmd: "npm install"
29
+ access: write
30
+ description: Install all dependencies from package.json
31
+
32
+ - id: tooldef.npm-install-a-package
33
+ cmd: "npm install <package>"
34
+ access: write
35
+ description: Install a package
36
+
37
+ - id: tooldef.npm-install-a-dev-dependency
38
+ cmd: "npm install -D <package>"
39
+ access: write
40
+ description: Install a dev dependency
41
+
42
+ - id: tooldef.npm-remove-a-package
43
+ cmd: "npm uninstall <package>"
44
+ access: write
45
+ description: Remove a package
46
+
47
+ - id: tooldef.npm-update-packages-to-latest-allowed-versions
48
+ cmd: "npm update [<package>]"
49
+ access: write
50
+ description: Update packages to latest allowed versions
51
+
52
+ - id: tooldef.npm-clean-install-from-package-lock-json-faster-deterministi
53
+ cmd: "npm ci"
54
+ access: write
55
+ description: Clean install from package-lock.json (faster, deterministic)
56
+
57
+ # Publishing
58
+ - id: tooldef.npm-publish-package-to-npm-registry
59
+ cmd: "npm publish"
60
+ access: write
61
+ description: Publish package to npm registry
62
+
63
+ - cmd: "npm unpublish <package>"
64
+ access: blocked
65
+ description: Remove package from registry (irreversible after 72h, affects downstream users)