Sync: update plugins, settings, archive skills, add new sessions and marketplaces
- plugins: update installed_plugins, known_marketplaces, install-counts-cache, blocklist; add agent-toolkit and cal-claude-plugins marketplaces - settings.json: significant config changes (129 insertions, -129 deletions net) - CLAUDE.md: minor update - skills: remove json-pretty and save-doc (archived to _archive/save-doc) - sessions: remove 2 old sessions, add 4 new sessions - add command-permissions.json, permission-audit.jsonl, tmp/permissions-audit.md
This commit is contained in:
parent
b464a10964
commit
9fd5539dc1
@ -33,3 +33,4 @@ Automatic loads are NOT enough — Read loads required CLAUDE.md context along t
|
|||||||
- Just `ssh <alias>` (e.g. `ssh sba-db`, `ssh proxmox`, `ssh manticore`)
|
- Just `ssh <alias>` (e.g. `ssh sba-db`, `ssh proxmox`, `ssh manticore`)
|
||||||
- If unsure of an alias, read `~/.ssh/config` to find the right one
|
- If unsure of an alias, read `~/.ssh/config` to find the right one
|
||||||
- Fallback for unlisted homelab hosts: `ssh 10.10.0.x` (wildcard rule handles key/user)
|
- Fallback for unlisted homelab hosts: `ssh 10.10.0.x` (wildcard rule handles key/user)
|
||||||
|
|
||||||
|
|||||||
5
command-permissions.json
Normal file
5
command-permissions.json
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"allow": [
|
||||||
|
"git pull*"
|
||||||
|
]
|
||||||
|
}
|
||||||
6530
permission-audit.jsonl
Normal file
6530
permission-audit.jsonl
Normal file
File diff suppressed because one or more lines are too long
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"fetchedAt": "2026-03-18T06:15:49.939Z",
|
"fetchedAt": "2026-03-20T07:00:45.229Z",
|
||||||
"plugins": [
|
"plugins": [
|
||||||
{
|
{
|
||||||
"plugin": "code-review@claude-plugins-official",
|
"plugin": "code-review@claude-plugins-official",
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -23,10 +23,10 @@
|
|||||||
"playground@claude-plugins-official": [
|
"playground@claude-plugins-official": [
|
||||||
{
|
{
|
||||||
"scope": "user",
|
"scope": "user",
|
||||||
"installPath": "/home/cal/.claude/plugins/cache/claude-plugins-official/playground/6b70f99f769f",
|
"installPath": "/home/cal/.claude/plugins/cache/claude-plugins-official/playground/b664e152af57",
|
||||||
"version": "6b70f99f769f",
|
"version": "b664e152af57",
|
||||||
"installedAt": "2026-02-18T19:51:28.422Z",
|
"installedAt": "2026-02-18T19:51:28.422Z",
|
||||||
"lastUpdated": "2026-03-17T22:45:51.123Z",
|
"lastUpdated": "2026-03-20T05:00:48.614Z",
|
||||||
"gitCommitSha": "261ce4fba4f2c314c490302158909a32e5889c88"
|
"gitCommitSha": "261ce4fba4f2c314c490302158909a32e5889c88"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -43,10 +43,10 @@
|
|||||||
"frontend-design@claude-plugins-official": [
|
"frontend-design@claude-plugins-official": [
|
||||||
{
|
{
|
||||||
"scope": "user",
|
"scope": "user",
|
||||||
"installPath": "/home/cal/.claude/plugins/cache/claude-plugins-official/frontend-design/6b70f99f769f",
|
"installPath": "/home/cal/.claude/plugins/cache/claude-plugins-official/frontend-design/b664e152af57",
|
||||||
"version": "6b70f99f769f",
|
"version": "b664e152af57",
|
||||||
"installedAt": "2026-02-22T05:53:45.091Z",
|
"installedAt": "2026-02-22T05:53:45.091Z",
|
||||||
"lastUpdated": "2026-03-17T22:45:51.117Z",
|
"lastUpdated": "2026-03-20T05:00:48.607Z",
|
||||||
"gitCommitSha": "aa296ec81e8ccb49c9784f167c2c0aa625a86cec"
|
"gitCommitSha": "aa296ec81e8ccb49c9784f167c2c0aa625a86cec"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -59,6 +59,96 @@
|
|||||||
"lastUpdated": "2026-02-27T01:15:24.393Z",
|
"lastUpdated": "2026-02-27T01:15:24.393Z",
|
||||||
"gitCommitSha": "55b58ec6e5649104f926ba7558b567dc8d33c5ff"
|
"gitCommitSha": "55b58ec6e5649104f926ba7558b567dc8d33c5ff"
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"session@agent-toolkit": [
|
||||||
|
{
|
||||||
|
"scope": "user",
|
||||||
|
"installPath": "/home/cal/.claude/plugins/cache/agent-toolkit/session/3.5.0",
|
||||||
|
"version": "3.5.0",
|
||||||
|
"installedAt": "2026-03-18T23:37:09.034Z",
|
||||||
|
"lastUpdated": "2026-03-18T23:37:09.034Z",
|
||||||
|
"gitCommitSha": "8c6e15ce7c51ae53121ec12d8dceee3c8bf936c6"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"format-on-save@agent-toolkit": [
|
||||||
|
{
|
||||||
|
"scope": "user",
|
||||||
|
"installPath": "/home/cal/.claude/plugins/cache/agent-toolkit/format-on-save/1.1.0",
|
||||||
|
"version": "1.1.0",
|
||||||
|
"installedAt": "2026-03-18T23:38:34.141Z",
|
||||||
|
"lastUpdated": "2026-03-18T23:38:34.141Z",
|
||||||
|
"gitCommitSha": "8c6e15ce7c51ae53121ec12d8dceee3c8bf936c6"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"permission-manager@agent-toolkit": [
|
||||||
|
{
|
||||||
|
"scope": "user",
|
||||||
|
"installPath": "/home/cal/.claude/plugins/cache/agent-toolkit/permission-manager/2.5.0",
|
||||||
|
"version": "2.5.0",
|
||||||
|
"installedAt": "2026-03-18T23:38:34.158Z",
|
||||||
|
"lastUpdated": "2026-03-18T23:38:34.158Z",
|
||||||
|
"gitCommitSha": "8c6e15ce7c51ae53121ec12d8dceee3c8bf936c6"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"json-pretty@cal-claude-plugins": [
|
||||||
|
{
|
||||||
|
"scope": "local",
|
||||||
|
"projectPath": "/mnt/NV2/Development/claude-plugins",
|
||||||
|
"installPath": "/home/cal/.claude/plugins/cache/cal-claude-plugins/json-pretty/1.0.0",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"installedAt": "2026-03-19T19:27:24.303Z",
|
||||||
|
"lastUpdated": "2026-03-19T19:27:24.303Z",
|
||||||
|
"gitCommitSha": "52ccf51e8123d500bd800862544264ee65419eaa"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scope": "local",
|
||||||
|
"projectPath": "/mnt/NV2/Development/paper-dynasty/card-creation",
|
||||||
|
"installPath": "/home/cal/.claude/plugins/cache/cal-claude-plugins/json-pretty/1.0.0",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"installedAt": "2026-03-19T20:06:19.803Z",
|
||||||
|
"lastUpdated": "2026-03-19T20:06:19.803Z",
|
||||||
|
"gitCommitSha": "4287001dd8dcb0864e89f9b412218f0a695b2c35"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"project-plan@cal-claude-plugins": [
|
||||||
|
{
|
||||||
|
"scope": "user",
|
||||||
|
"installPath": "/home/cal/.claude/plugins/cache/cal-claude-plugins/project-plan/1.0.0",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"installedAt": "2026-03-19T20:07:15.440Z",
|
||||||
|
"lastUpdated": "2026-03-19T20:07:15.440Z",
|
||||||
|
"gitCommitSha": "4287001dd8dcb0864e89f9b412218f0a695b2c35"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"save-doc@cal-claude-plugins": [
|
||||||
|
{
|
||||||
|
"scope": "user",
|
||||||
|
"installPath": "/home/cal/.claude/plugins/cache/cal-claude-plugins/save-doc/1.0.0",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"installedAt": "2026-03-19T20:07:15.456Z",
|
||||||
|
"lastUpdated": "2026-03-19T20:07:15.456Z",
|
||||||
|
"gitCommitSha": "4287001dd8dcb0864e89f9b412218f0a695b2c35"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"youtube-transcriber@cal-claude-plugins": [
|
||||||
|
{
|
||||||
|
"scope": "user",
|
||||||
|
"installPath": "/home/cal/.claude/plugins/cache/cal-claude-plugins/youtube-transcriber/1.0.0",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"installedAt": "2026-03-19T20:07:15.472Z",
|
||||||
|
"lastUpdated": "2026-03-19T20:07:15.472Z",
|
||||||
|
"gitCommitSha": "4287001dd8dcb0864e89f9b412218f0a695b2c35"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"z-image@cal-claude-plugins": [
|
||||||
|
{
|
||||||
|
"scope": "user",
|
||||||
|
"installPath": "/home/cal/.claude/plugins/cache/cal-claude-plugins/z-image/1.0.0",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"installedAt": "2026-03-19T20:07:15.488Z",
|
||||||
|
"lastUpdated": "2026-03-19T20:07:15.488Z",
|
||||||
|
"gitCommitSha": "4287001dd8dcb0864e89f9b412218f0a695b2c35"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -5,7 +5,7 @@
|
|||||||
"url": "https://github.com/anthropics/claude-plugins-official.git"
|
"url": "https://github.com/anthropics/claude-plugins-official.git"
|
||||||
},
|
},
|
||||||
"installLocation": "/home/cal/.claude/plugins/marketplaces/claude-plugins-official",
|
"installLocation": "/home/cal/.claude/plugins/marketplaces/claude-plugins-official",
|
||||||
"lastUpdated": "2026-03-17T14:00:49.109Z"
|
"lastUpdated": "2026-03-19T18:01:10.476Z"
|
||||||
},
|
},
|
||||||
"claude-code-plugins": {
|
"claude-code-plugins": {
|
||||||
"source": {
|
"source": {
|
||||||
@ -13,6 +13,23 @@
|
|||||||
"repo": "anthropics/claude-code"
|
"repo": "anthropics/claude-code"
|
||||||
},
|
},
|
||||||
"installLocation": "/home/cal/.claude/plugins/marketplaces/claude-code-plugins",
|
"installLocation": "/home/cal/.claude/plugins/marketplaces/claude-code-plugins",
|
||||||
"lastUpdated": "2026-03-18T07:00:48.444Z"
|
"lastUpdated": "2026-03-20T07:00:48.487Z"
|
||||||
|
},
|
||||||
|
"agent-toolkit": {
|
||||||
|
"source": {
|
||||||
|
"source": "github",
|
||||||
|
"repo": "St0nefish/agent-toolkit"
|
||||||
|
},
|
||||||
|
"installLocation": "/home/cal/.claude/plugins/marketplaces/agent-toolkit",
|
||||||
|
"lastUpdated": "2026-03-18T23:36:04.279Z"
|
||||||
|
},
|
||||||
|
"cal-claude-plugins": {
|
||||||
|
"source": {
|
||||||
|
"source": "git",
|
||||||
|
"url": "https://git.manticorum.com/cal/claude-plugins.git"
|
||||||
|
},
|
||||||
|
"installLocation": "/home/cal/.claude/plugins/marketplaces/cal-claude-plugins",
|
||||||
|
"lastUpdated": "2026-03-19T20:32:33.873Z",
|
||||||
|
"autoUpdate": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
1
plugins/marketplaces/agent-toolkit
Submodule
1
plugins/marketplaces/agent-toolkit
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 8c6e15ce7c51ae53121ec12d8dceee3c8bf936c6
|
||||||
1
plugins/marketplaces/cal-claude-plugins
Submodule
1
plugins/marketplaces/cal-claude-plugins
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 4287001dd8dcb0864e89f9b412218f0a695b2c35
|
||||||
@ -1 +1 @@
|
|||||||
Subproject commit a3d9426e3e183d1fdc560fcc8a69e9d854f040c9
|
Subproject commit 16536693ecc04f50f04696e109fe2a1a5f0d09fd
|
||||||
@ -1 +1 @@
|
|||||||
Subproject commit 6b70f99f769f58b9b642dc8a271936b17862cf8c
|
Subproject commit b664e152af5742dd11b6a6e5d7a65848a8c5a261
|
||||||
@ -1 +0,0 @@
|
|||||||
{"pid":1547863,"sessionId":"b6b7297b-08ce-48fc-9cab-7c26eba76dae","cwd":"/mnt/NV2/Development/paper-dynasty/card-creation","startedAt":1773524318697}
|
|
||||||
@ -1 +0,0 @@
|
|||||||
{"pid":2121928,"sessionId":"03413088-aceb-4863-a6d8-358355abf06d","cwd":"/mnt/NV2/Development/claude-home","startedAt":1773803933365}
|
|
||||||
1
sessions/3329518.json
Normal file
1
sessions/3329518.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"pid":3329518,"sessionId":"cefc895c-cc54-4802-a333-23fe9d249a51","cwd":"/home/cal/work/esb-monorepo","startedAt":1773934215198}
|
||||||
1
sessions/3658665.json
Normal file
1
sessions/3658665.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"pid":3658665,"sessionId":"b8652ead-c5db-4e4d-87fa-5ebef4b52dca","cwd":"/mnt/NV2/Development/claude-plugins","startedAt":1773948416776}
|
||||||
1
sessions/3715596.json
Normal file
1
sessions/3715596.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"pid":3715596,"sessionId":"b3de910b-ef57-4d77-96ca-b39750532918","cwd":"/mnt/NV2/Development/paper-dynasty/card-creation","startedAt":1773952331523}
|
||||||
1
sessions/3717522.json
Normal file
1
sessions/3717522.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"pid":3717522,"sessionId":"bb120e55-3562-4c44-9432-d3a93d7c1d64","cwd":"/mnt/NV2/Development/mlb-the-show","startedAt":1773952373260}
|
||||||
129
settings.json
129
settings.json
@ -9,7 +9,6 @@
|
|||||||
"allow": [
|
"allow": [
|
||||||
"Bash",
|
"Bash",
|
||||||
"Read(*)",
|
"Read(*)",
|
||||||
"Read(//home/cal/.claude/**)",
|
|
||||||
"MultiEdit(*)",
|
"MultiEdit(*)",
|
||||||
"Glob(*)",
|
"Glob(*)",
|
||||||
"Grep(*)",
|
"Grep(*)",
|
||||||
@ -23,104 +22,11 @@
|
|||||||
"Task(*)",
|
"Task(*)",
|
||||||
"Skill(*)",
|
"Skill(*)",
|
||||||
"SlashCommand(*)",
|
"SlashCommand(*)",
|
||||||
"Bash(git add:*)",
|
|
||||||
"Bash(sudo systemctl status:*)",
|
|
||||||
"Bash(sudo journalctl:*)",
|
|
||||||
"WebFetch(domain:github.com)",
|
|
||||||
"Bash(podman exec tdarr-node-gpu ls:*)",
|
|
||||||
"Bash(podman exec tdarr-node-gpu tail:*)",
|
|
||||||
"WebFetch(domain:docs.tdarr.io)",
|
|
||||||
"WebFetch(domain:superuser.com)",
|
|
||||||
"Bash(ping:*)",
|
|
||||||
"Bash(podman logs:*)",
|
|
||||||
"Bash(podman exec tdarr-node-gpu-unmapped ls:*)",
|
|
||||||
"Bash(podman exec tdarr-node-gpu-unmapped find:*)",
|
|
||||||
"Bash(ssh tdarr \"docker inspect\":*)",
|
|
||||||
"WebFetch(domain:docs.podman.io)",
|
|
||||||
"Bash(sudo podman logs:*)",
|
|
||||||
"Bash(sudo podman ps:*)",
|
|
||||||
"Bash(mkdir:*)",
|
|
||||||
"Read(//home/cal/.local/share/Steam/userdata/32759396/1144200/ac/WinAppDataLocal/ReadyOrNot/**)",
|
|
||||||
"Read(//home/cal/.local/share/Steam/userdata/32759396/1144200/**)",
|
|
||||||
"mcp__notion__API-retrieve-a-page",
|
|
||||||
"mcp__notion__API-get-block-children",
|
|
||||||
"mcp__notion__API-post-database-query",
|
|
||||||
"WebFetch(domain:platform.openai.com)",
|
|
||||||
"Skill(youtube-transcriber)",
|
|
||||||
"Skill(proxmox)",
|
|
||||||
"WebFetch(domain:docs.n8n.io)",
|
|
||||||
"WebFetch(domain:help.ko-fi.com)",
|
|
||||||
"WebFetch(domain:n8n.io)",
|
|
||||||
"Skill(mcp-manager)",
|
|
||||||
"mcp__notediscovery__get_notes_by_tag",
|
|
||||||
"mcp__memorygraph__*",
|
|
||||||
"mcp__memorygraph__get_memory",
|
|
||||||
"Skill(notediscovery)",
|
|
||||||
"mcp__cognitive-memory__*",
|
|
||||||
"mcp__n8n-mcp__*",
|
"mcp__n8n-mcp__*",
|
||||||
"mcp__gitea-mcp__*",
|
"mcp__gitea-mcp__*",
|
||||||
"WebFetch(domain:custom-system-builder.gitlab.io)",
|
|
||||||
"WebFetch(domain:foundryvtt.com)",
|
|
||||||
"WebFetch(domain:10.10.0.174)",
|
|
||||||
"WebFetch(domain:docs.openclaw.ai)",
|
|
||||||
"WebFetch(domain:pve.proxmox.com)",
|
|
||||||
"WebFetch(domain:git.manticorum.com)",
|
|
||||||
"WebFetch(domain:developers.cloudflare.com)",
|
|
||||||
"WebFetch(domain:uptime-kuma-api.readthedocs.io)",
|
|
||||||
"WebFetch(domain:www.enworld.org)",
|
|
||||||
"WebFetch(domain:2minutetabletop.com)",
|
|
||||||
"WebFetch(domain:www.forgotten-adventures.net)",
|
|
||||||
"WebFetch(domain:www.doodlesanddragons.com)",
|
|
||||||
"WebFetch(domain:www.drivethrurpg.com)",
|
|
||||||
"WebFetch(domain:forums.rptools.net)",
|
|
||||||
"WebFetch(domain:www.fantasygrounds.com)",
|
|
||||||
"WebFetch(domain:gmkeros.wordpress.com)",
|
|
||||||
"WebFetch(domain:inkwellideas.com)",
|
|
||||||
"WebFetch(domain:itch.io)",
|
|
||||||
"WebFetch(domain:opengameart.org)",
|
|
||||||
"WebFetch(domain:store.paizo.com)",
|
|
||||||
"WebFetch(domain:forum.gitea.com)",
|
|
||||||
"WebFetch(domain:docs.gitea.com)",
|
|
||||||
"WebFetch(domain:gitea.com)",
|
|
||||||
"WebFetch(domain:docs.anthropic.com)",
|
|
||||||
"WebFetch(domain:raw.githubusercontent.com)",
|
|
||||||
"WebFetch(domain:ra-h.app)",
|
|
||||||
"WebFetch(domain:ollama.com)",
|
|
||||||
"mcp__cognitive-memory__memory_store",
|
|
||||||
"mcp__cognitive-memory__memory_episode",
|
|
||||||
"mcp__cognitive-memory__memory_recall",
|
|
||||||
"mcp__cognitive-memory__memory_search",
|
|
||||||
"mcp__cognitive-memory__memory_get",
|
|
||||||
"WebFetch(domain:community.teamspeak.com)",
|
|
||||||
"WebFetch(domain:docs.docker.com)",
|
|
||||||
"WebFetch(domain:forums.docker.com)",
|
|
||||||
"mcp__docker-mcp-gateway__mcp-find",
|
|
||||||
"mcp__docker-mcp-gateway__mcp-config-set",
|
|
||||||
"WebFetch(domain:about.gitea.com)",
|
|
||||||
"mcp__docker-mcp-gateway__mcp-add",
|
|
||||||
"mcp__docker-mcp-gateway__mcp-exec",
|
|
||||||
"mcp__tui-driver__*"
|
"mcp__tui-driver__*"
|
||||||
],
|
],
|
||||||
"deny": [
|
"deny": [
|
||||||
"Bash(diskutil partitionDisk)",
|
|
||||||
"Bash(diskutil eraseDisk)",
|
|
||||||
"Bash(diskutil eraseVolume)",
|
|
||||||
"Bash(diskutil reformat)",
|
|
||||||
"Bash(diskutil zeroDisk)",
|
|
||||||
"Bash(diskutil appleRAID)",
|
|
||||||
"Bash(diskutil randomDisk)",
|
|
||||||
"Bash(diskutil coreStorage)",
|
|
||||||
"Bash(diskutil cs)",
|
|
||||||
"Bash(diskutil disableJournal)",
|
|
||||||
"Bash(diskutil resetFusion)",
|
|
||||||
"Bash(diskutil disableOwnership)",
|
|
||||||
"Bash(diskutil apfs deleteContainer)",
|
|
||||||
"Bash(diskutil apfs eraseVolume)",
|
|
||||||
"Bash(diskutil apfs decryptVolume)",
|
|
||||||
"Bash(diskutil apfs changePassphrase)",
|
|
||||||
"Bash(diskutil apfs deleteVolume)",
|
|
||||||
"Bash(diskutil apfs deleteVolumeGroup)",
|
|
||||||
"Bash(diskutil apfs deleteSnapshot)",
|
|
||||||
"Bash(rm -rf /)",
|
"Bash(rm -rf /)",
|
||||||
"Bash(rm -rf /*)",
|
"Bash(rm -rf /*)",
|
||||||
"Bash(rm -rf ~)",
|
"Bash(rm -rf ~)",
|
||||||
@ -164,17 +70,6 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
|
||||||
"SessionEnd": [
|
|
||||||
{
|
|
||||||
"hooks": [
|
|
||||||
{
|
|
||||||
"type": "command",
|
|
||||||
"command": "/usr/bin/python3 /mnt/NV2/Development/cognitive-memory/scripts/session_memory.py",
|
|
||||||
"timeout": 15
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"statusLine": {
|
"statusLine": {
|
||||||
@ -186,7 +81,29 @@
|
|||||||
"claude-code-setup@claude-plugins-official": true,
|
"claude-code-setup@claude-plugins-official": true,
|
||||||
"frontend-design@claude-plugins-official": true,
|
"frontend-design@claude-plugins-official": true,
|
||||||
"rust-analyzer-lsp@claude-plugins-official": true,
|
"rust-analyzer-lsp@claude-plugins-official": true,
|
||||||
"pyright-lsp@claude-plugins-official": true
|
"pyright-lsp@claude-plugins-official": true,
|
||||||
|
"session@agent-toolkit": true,
|
||||||
|
"format-on-save@agent-toolkit": true,
|
||||||
|
"permission-manager@agent-toolkit": true,
|
||||||
|
"project-plan@cal-claude-plugins": true,
|
||||||
|
"save-doc@cal-claude-plugins": true,
|
||||||
|
"youtube-transcriber@cal-claude-plugins": true,
|
||||||
|
"z-image@cal-claude-plugins": true
|
||||||
|
},
|
||||||
|
"extraKnownMarketplaces": {
|
||||||
|
"agent-toolkit": {
|
||||||
|
"source": {
|
||||||
|
"source": "github",
|
||||||
|
"repo": "St0nefish/agent-toolkit"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cal-claude-plugins": {
|
||||||
|
"source": {
|
||||||
|
"source": "git",
|
||||||
|
"url": "https://git.manticorum.com/cal/claude-plugins.git"
|
||||||
|
},
|
||||||
|
"autoUpdate": true
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"autoUpdatesChannel": "latest",
|
"autoUpdatesChannel": "latest",
|
||||||
"skipDangerousModePermissionPrompt": true
|
"skipDangerousModePermissionPrompt": true
|
||||||
|
|||||||
@ -1,66 +0,0 @@
|
|||||||
# json-pretty
|
|
||||||
|
|
||||||
Simple JSON prettifier CLI tool for formatting JSON without using external online services.
|
|
||||||
|
|
||||||
## When to Use
|
|
||||||
|
|
||||||
Use when the user asks to:
|
|
||||||
- "prettify json"
|
|
||||||
- "format json"
|
|
||||||
- "pretty print json"
|
|
||||||
- "validate json"
|
|
||||||
- "clean up json"
|
|
||||||
- Or mentions wanting to format/prettify JSON data
|
|
||||||
|
|
||||||
## Tool Location
|
|
||||||
|
|
||||||
`~/.claude/skills/json-pretty/json-pretty.py`
|
|
||||||
|
|
||||||
Symlinked to `~/.local/bin/json-pretty` for PATH access.
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# From file
|
|
||||||
json-pretty input.json
|
|
||||||
|
|
||||||
# From stdin/pipe
|
|
||||||
cat data.json | json-pretty
|
|
||||||
echo '{"foo":"bar"}' | json-pretty
|
|
||||||
|
|
||||||
# Save to file
|
|
||||||
json-pretty input.json -o output.json
|
|
||||||
|
|
||||||
# Options
|
|
||||||
json-pretty input.json --indent 4 # Custom indentation
|
|
||||||
json-pretty input.json --sort-keys # Sort object keys
|
|
||||||
json-pretty input.json --compact # Minify instead of prettify
|
|
||||||
```
|
|
||||||
|
|
||||||
## Options
|
|
||||||
|
|
||||||
- `-o, --output FILE`: Write to file instead of stdout
|
|
||||||
- `-i, --indent N`: Indentation spaces (default: 2)
|
|
||||||
- `-s, --sort-keys`: Sort object keys alphabetically
|
|
||||||
- `-c, --compact`: Compact output (minify)
|
|
||||||
|
|
||||||
## Examples
|
|
||||||
|
|
||||||
**Prettify inline JSON:**
|
|
||||||
```bash
|
|
||||||
echo '{"name":"cal","items":[1,2,3]}' | json-pretty
|
|
||||||
```
|
|
||||||
|
|
||||||
**Format a file:**
|
|
||||||
```bash
|
|
||||||
json-pretty messy.json -o clean.json
|
|
||||||
```
|
|
||||||
|
|
||||||
**Sort keys and use 4-space indent:**
|
|
||||||
```bash
|
|
||||||
json-pretty data.json --indent 4 --sort-keys
|
|
||||||
```
|
|
||||||
|
|
||||||
## Privacy Note
|
|
||||||
|
|
||||||
Built specifically to avoid posting potentially sensitive JSON to online prettifier services.
|
|
||||||
@ -1,88 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
"""Simple JSON prettifier for command-line use."""
|
|
||||||
|
|
||||||
import json
|
|
||||||
import sys
|
|
||||||
import argparse
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
parser = argparse.ArgumentParser(
|
|
||||||
description="Pretty-print JSON from file or stdin",
|
|
||||||
epilog="Examples:\n"
|
|
||||||
" json-pretty input.json\n"
|
|
||||||
" cat data.json | json-pretty\n"
|
|
||||||
" json-pretty input.json -o output.json\n"
|
|
||||||
" echo '{\"a\":1}' | json-pretty --indent 4",
|
|
||||||
formatter_class=argparse.RawDescriptionHelpFormatter
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
'input',
|
|
||||||
nargs='?',
|
|
||||||
help='Input JSON file (omit or use - for stdin)'
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
'-o', '--output',
|
|
||||||
help='Output file (default: stdout)'
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
'-i', '--indent',
|
|
||||||
type=int,
|
|
||||||
default=2,
|
|
||||||
help='Indentation spaces (default: 2)'
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
'-s', '--sort-keys',
|
|
||||||
action='store_true',
|
|
||||||
help='Sort object keys alphabetically'
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
'-c', '--compact',
|
|
||||||
action='store_true',
|
|
||||||
help='Compact output (no extra whitespace)'
|
|
||||||
)
|
|
||||||
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
# Read input
|
|
||||||
try:
|
|
||||||
if args.input and args.input != '-':
|
|
||||||
with open(args.input, 'r') as f:
|
|
||||||
input_text = f.read()
|
|
||||||
else:
|
|
||||||
input_text = sys.stdin.read()
|
|
||||||
except FileNotFoundError:
|
|
||||||
print(f"Error: File '{args.input}' not found", file=sys.stderr)
|
|
||||||
sys.exit(1)
|
|
||||||
except Exception as e:
|
|
||||||
print(f"Error reading input: {e}", file=sys.stderr)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
# Parse and format JSON
|
|
||||||
try:
|
|
||||||
data = json.loads(input_text)
|
|
||||||
|
|
||||||
if args.compact:
|
|
||||||
output = json.dumps(data, sort_keys=args.sort_keys, separators=(',', ':'))
|
|
||||||
else:
|
|
||||||
output = json.dumps(data, indent=args.indent, sort_keys=args.sort_keys)
|
|
||||||
|
|
||||||
except json.JSONDecodeError as e:
|
|
||||||
print(f"Error: Invalid JSON - {e}", file=sys.stderr)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
# Write output
|
|
||||||
try:
|
|
||||||
if args.output:
|
|
||||||
with open(args.output, 'w') as f:
|
|
||||||
f.write(output)
|
|
||||||
f.write('\n')
|
|
||||||
else:
|
|
||||||
print(output)
|
|
||||||
except Exception as e:
|
|
||||||
print(f"Error writing output: {e}", file=sys.stderr)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
||||||
156
tmp/permissions-audit.md
Normal file
156
tmp/permissions-audit.md
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
# Claude Code Permissions Audit
|
||||||
|
|
||||||
|
**Date:** 2026-03-18
|
||||||
|
**Purpose:** Document current state before migrating to permission-manager plugin
|
||||||
|
|
||||||
|
## Current Approach
|
||||||
|
|
||||||
|
Flat allow/deny lists in `~/.claude/settings.json` with ~100+ individual entries.
|
||||||
|
No cmd-gate hook patterns. Bash is fully open.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Allow-list: Tool Permissions
|
||||||
|
|
||||||
|
### Fully open (wildcard)
|
||||||
|
| Permission | Notes |
|
||||||
|
|---|---|
|
||||||
|
| `Bash` | No restrictions on any Bash command |
|
||||||
|
| `Read(*)` | All files |
|
||||||
|
| `Glob(*)`, `Grep(*)`, `LS(*)` | All search/list |
|
||||||
|
| `WebFetch(domain:*)` | All web domains |
|
||||||
|
| `WebSearch` | Unrestricted |
|
||||||
|
| `TodoWrite(*)`, `Task(*)` | All task operations |
|
||||||
|
| `Skill(*)`, `SlashCommand(*)` | All skills |
|
||||||
|
| `NotebookRead(*)`, `NotebookEdit(*)` | All notebooks |
|
||||||
|
| `MultiEdit(*)`, `ExitPlanMode(*)` | Unrestricted |
|
||||||
|
|
||||||
|
### MCP servers (full access)
|
||||||
|
| Permission | Server |
|
||||||
|
|---|---|
|
||||||
|
| `mcp__n8n-mcp__*` | n8n workflow automation |
|
||||||
|
| `mcp__gitea-mcp__*` | Gitea git hosting |
|
||||||
|
| `mcp__tui-driver__*` | TUI automation |
|
||||||
|
| `mcp__cognitive-memory__*` | Cognitive memory (DECOMMISSIONED) |
|
||||||
|
| `mcp__memorygraph__*` | Memory graph (DECOMMISSIONED) |
|
||||||
|
|
||||||
|
### MCP servers (specific tools)
|
||||||
|
| Permission | Notes |
|
||||||
|
|---|---|
|
||||||
|
| `mcp__notion__API-retrieve-a-page` | Read-only Notion |
|
||||||
|
| `mcp__notion__API-get-block-children` | Read-only Notion |
|
||||||
|
| `mcp__notion__API-post-database-query` | Read-only Notion |
|
||||||
|
| `mcp__notediscovery__get_notes_by_tag` | Note discovery |
|
||||||
|
| `mcp__docker-mcp-gateway__mcp-find` | Docker MCP gateway |
|
||||||
|
| `mcp__docker-mcp-gateway__mcp-config-set` | Docker MCP gateway |
|
||||||
|
| `mcp__docker-mcp-gateway__mcp-add` | Docker MCP gateway |
|
||||||
|
| `mcp__docker-mcp-gateway__mcp-exec` | Docker MCP gateway |
|
||||||
|
|
||||||
|
### Specific Bash commands
|
||||||
|
These were added before `Bash` was opened fully — now redundant:
|
||||||
|
- `Bash(git add:*)`
|
||||||
|
- `Bash(sudo systemctl status:*)`, `Bash(sudo journalctl:*)`
|
||||||
|
- `Bash(ping:*)`, `Bash(mkdir:*)`
|
||||||
|
- `Bash(podman exec tdarr-node-gpu ls:*)`, `Bash(podman exec tdarr-node-gpu tail:*)`
|
||||||
|
- `Bash(podman exec tdarr-node-gpu-unmapped ls:*)`, `Bash(podman exec tdarr-node-gpu-unmapped find:*)`
|
||||||
|
- `Bash(ssh tdarr "docker inspect":*)`
|
||||||
|
- `Bash(podman logs:*)`, `Bash(sudo podman logs:*)`, `Bash(sudo podman ps:*)`
|
||||||
|
|
||||||
|
### Specific WebFetch domains
|
||||||
|
All redundant given `WebFetch(domain:*)` wildcard:
|
||||||
|
- github.com, docs.tdarr.io, superuser.com, docs.podman.io
|
||||||
|
- platform.openai.com, docs.n8n.io, help.ko-fi.com, n8n.io
|
||||||
|
- custom-system-builder.gitlab.io, foundryvtt.com, 10.10.0.174
|
||||||
|
- docs.openclaw.ai, pve.proxmox.com, git.manticorum.com
|
||||||
|
- developers.cloudflare.com, uptime-kuma-api.readthedocs.io
|
||||||
|
- www.enworld.org, 2minutetabletop.com, www.forgotten-adventures.net
|
||||||
|
- www.doodlesanddragons.com, www.drivethrurpg.com, forums.rptools.net
|
||||||
|
- www.fantasygrounds.com, gmkeros.wordpress.com, inkwellideas.com
|
||||||
|
- itch.io, opengameart.org, store.paizo.com
|
||||||
|
- forum.gitea.com, docs.gitea.com, gitea.com, about.gitea.com
|
||||||
|
- docs.anthropic.com, raw.githubusercontent.com, ra-h.app, ollama.com
|
||||||
|
- community.teamspeak.com, docs.docker.com, forums.docker.com
|
||||||
|
|
||||||
|
### Specific Skills
|
||||||
|
- `Skill(youtube-transcriber)`, `Skill(proxmox)`, `Skill(mcp-manager)`, `Skill(notediscovery)`
|
||||||
|
- All redundant given `Skill(*)`
|
||||||
|
|
||||||
|
### Specific Read paths
|
||||||
|
- `Read(//home/cal/.claude/**)` — redundant given `Read(*)`
|
||||||
|
- `Read(//home/cal/.local/share/Steam/userdata/32759396/1144200/**)` — Ready or Not save data
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Deny-list
|
||||||
|
|
||||||
|
### Destructive disk operations (macOS — NOT APPLICABLE on Linux)
|
||||||
|
- `diskutil partitionDisk`, `eraseDisk`, `eraseVolume`, `reformat`, `zeroDisk`
|
||||||
|
- `diskutil appleRAID`, `randomDisk`, `coreStorage`, `cs`
|
||||||
|
- `diskutil disableJournal`, `resetFusion`, `disableOwnership`
|
||||||
|
- `diskutil apfs deleteContainer`, `eraseVolume`, `decryptVolume`
|
||||||
|
- `diskutil apfs changePassphrase`, `deleteVolume`, `deleteVolumeGroup`, `deleteSnapshot`
|
||||||
|
|
||||||
|
### Destructive Linux operations (KEEP)
|
||||||
|
- `rm -rf /`, `rm -rf /*`, `rm -rf ~`, `rm -rf $HOME`
|
||||||
|
- `rm -rf $PAI_HOME`, `rm -rf $PAI_DIR`
|
||||||
|
- `sudo rm -rf /`, `sudo rm -rf /*`
|
||||||
|
- `fork bomb`
|
||||||
|
- `dd if=/dev/zero of=/dev/sda`
|
||||||
|
- `mkfs.ext4 /dev/sda`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Hooks
|
||||||
|
|
||||||
|
| Event | Matcher | Script | Status |
|
||||||
|
|---|---|---|---|
|
||||||
|
| PostToolUse | `Edit\|Write\|MultiEdit` | `~/.claude/hooks/format-code.sh` | Active |
|
||||||
|
| SubagentStop | (all) | `~/.claude/hooks/notify-subagent-done.sh` | Active |
|
||||||
|
| SessionEnd | (all) | `/mnt/NV2/Development/cognitive-memory/scripts/session_memory.py` | **REMOVE** (decommissioned) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Plugins
|
||||||
|
|
||||||
|
| Plugin | Source | Status |
|
||||||
|
|---|---|---|
|
||||||
|
| `permission-manager@agent-toolkit` | St0nefish/agent-toolkit | Installed, cmd-gate has no custom patterns |
|
||||||
|
| `session@agent-toolkit` | St0nefish/agent-toolkit | Installed |
|
||||||
|
| `format-on-save@agent-toolkit` | St0nefish/agent-toolkit | Installed (overlaps PostToolUse hook) |
|
||||||
|
| `playground@claude-plugins-official` | Official | Active |
|
||||||
|
| `claude-code-setup@claude-plugins-official` | Official | Active |
|
||||||
|
| `frontend-design@claude-plugins-official` | Official | Active |
|
||||||
|
| `rust-analyzer-lsp@claude-plugins-official` | Official | Active |
|
||||||
|
| `pyright-lsp@claude-plugins-official` | Official | Active |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Additional Directories
|
||||||
|
|
||||||
|
- `/home/cal/.config/steamtinkerlaunch/`
|
||||||
|
- `/mnt/NV2/SteamLibrary/`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Migration Recommendations
|
||||||
|
|
||||||
|
### Cleanup (do first)
|
||||||
|
1. Remove all `diskutil` deny entries — not on macOS
|
||||||
|
2. Remove all specific `Bash(...)` entries — redundant with `Bash` wildcard
|
||||||
|
3. Remove all specific `WebFetch(domain:...)` entries — redundant with `domain:*`
|
||||||
|
4. Remove all specific `Skill(...)` entries — redundant with `Skill(*)`
|
||||||
|
5. Remove specific `Read(...)` entries — redundant with `Read(*)`
|
||||||
|
6. Remove `mcp__cognitive-memory__*` and all individual cognitive-memory entries
|
||||||
|
7. Remove `mcp__memorygraph__*`
|
||||||
|
8. Remove `mcp__notediscovery__get_notes_by_tag` and `Skill(notediscovery)`
|
||||||
|
9. Remove `mcp__docker-mcp-gateway__*` if not actively used
|
||||||
|
10. Remove `SessionEnd` cognitive-memory hook
|
||||||
|
|
||||||
|
### Migration to cmd-gate (do second)
|
||||||
|
1. Remove `Bash` wildcard from allow-list
|
||||||
|
2. Define cmd-gate custom patterns for common safe operations
|
||||||
|
3. Replace `WebFetch(domain:*)` with explicit domain groups
|
||||||
|
4. Test workflow to ensure nothing breaks
|
||||||
|
|
||||||
|
### Hook deduplication
|
||||||
|
- `format-on-save@agent-toolkit` may overlap with existing `PostToolUse(Edit|Write|MultiEdit)` → `format-code.sh` hook — pick one
|
||||||
Loading…
Reference in New Issue
Block a user