danielrosehill Claude commited on
Commit
292d92c
·
1 Parent(s): aa264da

Redesign interface with accordion cards and category pills

Browse files

- Removed "View Full Command" text - click anywhere to expand
- Added colored category pills based on folder structure (22 categories)
- Copy button now appears as clipboard icon in expanded content
- Cleaner accordion-style design with chevron indicator
- Added CSS animation for chevron rotation on expand
- Loads commands from categorized folders instead of flat structure

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. app.py +86 -27
  2. commands/ai-dev/private-claude-md.md +1 -0
  3. commands/ai-engineering/implementation-editors/system-prompt-to-agent.md +20 -0
  4. commands/ai-engineering/multiagent.md +7 -0
  5. commands/ai-engineering/prompt-editors/depersonalise-prompts.md +18 -0
  6. commands/ai-engineering/prompt-editors/edit-system-prompt.md +17 -0
  7. commands/ai-engineering/prompt-editors/rewrite-as-structured.md +12 -0
  8. commands/claude-code/context-to-claude.md +12 -0
  9. commands/claude-code/global-claude-private.md +1 -0
  10. commands/claude-code/mcp-mgmt/global-cc-mcp.md +18 -0
  11. commands/claude-code/mcp-mgmt/project-cc-mcp.md +14 -0
  12. commands/claude-code/private-public-claude.md +16 -0
  13. commands/claude-code/public-slash.md +9 -0
  14. commands/claude-code/shortcuts/start-from-task.md +13 -0
  15. commands/claude-code/slash-command-edits.md +8 -0
  16. commands/claude-code/spec-from-audio.md +15 -0
  17. commands/common-tasks/file-conversion/documents/md-to-pdf.md +3 -0
  18. commands/common-tasks/file-conversion/documents/mds-to-pdf.md +5 -0
  19. commands/common-tasks/file-mgmt/sequential-filenames.md +7 -0
  20. commands/common-tasks/find-command.md +16 -0
  21. commands/common-tasks/repo-to-hf-space.md +16 -0
  22. commands/conv-mgmt/give-me-number-options.md +3 -0
  23. commands/conv-mgmt/saving-outputs/add-to-my-notes.md +9 -0
  24. commands/conv-mgmt/spoofing/spoof-a-work-chat.md +17 -0
  25. commands/conv-mgmt/steers/dont-reinvent-the-wheel.md +12 -0
  26. commands/conv-mgmt/steers/no-more-docs.md +3 -0
  27. commands/conv-mgmt/steers/use-uv.md +13 -0
  28. commands/cybersec/auditing/cloudflare-tunnel-proxy-audit.md +25 -0
  29. commands/cybersec/auditing/docker-environment-audit.md +20 -0
  30. commands/cybersec/auditing/firewall-audit.md +25 -0
  31. commands/cybersec/auditing/home-assistant-audit.md +23 -0
  32. commands/cybersec/auditing/linux-desktop-audit.md +18 -0
  33. commands/cybersec/auditing/linux-server-audit.md +5 -0
  34. commands/cybersec/auditing/opnsense-audit.md +25 -0
  35. commands/cybersec/red-team/honeypot-this.md +10 -0
  36. commands/cybersec/security/clearpii.md +1 -0
  37. commands/cybersec/static-site-hardening.md +5 -0
  38. commands/cybersec/try-this/exfiltrate-secrets.md +11 -0
  39. commands/cybersec/try-this/exfiltrrate-to-safety.md +12 -0
  40. commands/development/code-editing/format-code.md +11 -0
  41. commands/development/code-editing/remove-comments.md +13 -0
  42. commands/development/common-tasks/awesome-list-creation.md +17 -0
  43. commands/development/common-tasks/cli-to-gui.md +7 -0
  44. commands/development/common-tasks/forked-contrib/adding-to-awesome-list.md +17 -0
  45. commands/development/common-tasks/gradio-hf-interface.md +1 -0
  46. commands/development/common-tasks/hf-image-dataset.md +17 -0
  47. commands/development/common-tasks/hf/private-to-public-hf.md +11 -0
  48. commands/development/common-tasks/hf/public-to-private-hf.md +14 -0
  49. commands/development/common-tasks/index-repo.md +46 -0
  50. commands/development/common-tasks/no-diy-icons.md +1 -0
app.py CHANGED
@@ -3,14 +3,52 @@ import json
3
  import os
4
  from pathlib import Path
5
 
6
- # Load slash commands data
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  def load_commands():
8
- """Load slash commands from JSON file"""
9
- json_path = Path("slash-commands.json")
10
- if json_path.exists():
11
- with open(json_path, 'r') as f:
12
- return json.load(f)
13
- return []
 
 
 
 
 
 
 
 
 
 
 
 
14
 
15
  def load_command_content(path):
16
  """Load the content of a specific command file"""
@@ -42,6 +80,7 @@ def create_command_card(command):
42
  """Create an HTML card for a command"""
43
  name = command['name']
44
  path = command['path']
 
45
  content = load_command_content(path)
46
 
47
  # Extract description from content if available
@@ -54,30 +93,44 @@ def create_command_card(command):
54
  description = line.strip()
55
  break
56
 
57
- # Escape content for JavaScript - replace backticks and backslashes
58
- escaped_content = content.replace('\\', '\\\\').replace('`', '\\`').replace('$', '\\$')
 
 
 
 
 
 
 
59
 
60
  card_html = f"""
61
- <div style="border: 1px solid #ddd; border-radius: 8px; padding: 16px; margin: 10px 0; background: white;">
62
- <div style="display: flex; justify-content: space-between; align-items: start;">
63
- <div style="flex: 1;">
64
- <h3 style="margin: 0 0 8px 0; color: #2563eb;">/{name}</h3>
65
- <p style="margin: 0 0 12px 0; color: #666; font-size: 14px;">{description[:200]}...</p>
 
 
 
 
 
 
 
 
66
  </div>
67
- </div>
68
- <details>
69
- <summary style="cursor: pointer; color: #2563eb; font-weight: 500; margin-bottom: 12px;">
70
- View Full Command
71
- </summary>
72
- <div style="background: #f8f9fa; padding: 12px; border-radius: 4px; margin-top: 8px;">
73
- <pre style="margin: 0; white-space: pre-wrap; font-size: 13px; line-height: 1.5;">{content}</pre>
 
 
 
74
  </div>
75
- </details>
76
- <button onclick="navigator.clipboard.writeText(`{escaped_content}`); this.innerText='Copied!'; setTimeout(() => this.innerText='Copy to Clipboard', 2000)"
77
- style="background: #2563eb; color: white; border: none; padding: 8px 16px; border-radius: 4px; cursor: pointer; margin-top: 8px;">
78
- Copy to Clipboard
79
- </button>
80
- </div>
81
  """
82
  return card_html
83
 
@@ -106,6 +159,12 @@ with gr.Blocks(
106
  .gradio-container {
107
  max-width: 1200px !important;
108
  }
 
 
 
 
 
 
109
  """
110
  ) as demo:
111
 
 
3
  import os
4
  from pathlib import Path
5
 
6
+ # Category color mapping
7
+ CATEGORY_COLORS = {
8
+ 'ai-dev': '#8b5cf6',
9
+ 'ai-engineering': '#7c3aed',
10
+ 'claude-code': '#2563eb',
11
+ 'common-tasks': '#059669',
12
+ 'conv-mgmt': '#0891b2',
13
+ 'cybersec': '#dc2626',
14
+ 'development': '#3b82f6',
15
+ 'documentation': '#6366f1',
16
+ 'educational': '#f59e0b',
17
+ 'experiments': '#ec4899',
18
+ 'filesystem-ops': '#84cc16',
19
+ 'for-fun': '#f97316',
20
+ 'general-purpose': '#64748b',
21
+ 'ideation': '#a855f7',
22
+ 'local-ai': '#6366f1',
23
+ 'media': '#06b6d4',
24
+ 'misc': '#9ca3af',
25
+ 'operations': '#10b981',
26
+ 'seo-web': '#14b8a6',
27
+ 'sysadmin': '#22c55e',
28
+ 'tech-docs': '#3b82f6',
29
+ 'writing-and-editing': '#f472b6'
30
+ }
31
+
32
+ # Load slash commands data from categorized folders
33
  def load_commands():
34
+ """Load slash commands from categorized folder structure"""
35
+ commands = []
36
+ commands_dir = Path("commands")
37
+
38
+ if not commands_dir.exists():
39
+ return []
40
+
41
+ for category_dir in sorted(commands_dir.iterdir()):
42
+ if category_dir.is_dir():
43
+ category = category_dir.name
44
+ for cmd_file in sorted(category_dir.glob("*.md")):
45
+ commands.append({
46
+ 'name': cmd_file.stem,
47
+ 'path': str(cmd_file),
48
+ 'category': category
49
+ })
50
+
51
+ return commands
52
 
53
  def load_command_content(path):
54
  """Load the content of a specific command file"""
 
80
  """Create an HTML card for a command"""
81
  name = command['name']
82
  path = command['path']
83
+ category = command.get('category', 'misc')
84
  content = load_command_content(path)
85
 
86
  # Extract description from content if available
 
93
  description = line.strip()
94
  break
95
 
96
+ # Get category color
97
+ category_color = CATEGORY_COLORS.get(category, '#9ca3af')
98
+ category_display = category.replace('-', ' ').title()
99
+
100
+ # Escape content for JavaScript
101
+ escaped_content = content.replace('\\', '\\\\').replace('`', '\\`').replace('$', '\\$').replace('"', '\\"')
102
+
103
+ # Generate unique ID for details element
104
+ detail_id = f"cmd-{name.replace(' ', '-')}"
105
 
106
  card_html = f"""
107
+ <details style="border: 1px solid #e5e7eb; border-radius: 8px; margin: 10px 0; background: white; overflow: hidden;">
108
+ <summary style="padding: 16px; cursor: pointer; list-style: none; user-select: none;">
109
+ <div style="display: flex; justify-content: space-between; align-items: center; gap: 12px;">
110
+ <div style="flex: 1;">
111
+ <div style="display: flex; align-items: center; gap: 8px; margin-bottom: 6px;">
112
+ <span style="font-size: 18px; font-weight: 600; color: #1f2937;">/{name}</span>
113
+ <span style="display: inline-block; padding: 4px 10px; background: {category_color}; color: white; border-radius: 12px; font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.5px;">{category_display}</span>
114
+ </div>
115
+ <p style="margin: 0; color: #6b7280; font-size: 14px; line-height: 1.4;">{description[:150]}{'...' if len(description) > 150 else ''}</p>
116
+ </div>
117
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" style="flex-shrink: 0; transition: transform 0.2s;">
118
+ <path d="M6 8L10 12L14 8" stroke="#9ca3af" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
119
+ </svg>
120
  </div>
121
+ </summary>
122
+ <div style="padding: 0 16px 16px 16px; border-top: 1px solid #f3f4f6;">
123
+ <div style="position: relative; background: #f9fafb; padding: 16px; border-radius: 6px; margin-top: 12px;">
124
+ <button onclick="navigator.clipboard.writeText('{escaped_content}'); this.innerHTML='✓ Copied'; setTimeout(() => this.innerHTML='📋', 1500)"
125
+ style="position: absolute; top: 12px; right: 12px; background: #2563eb; color: white; border: none; padding: 6px 12px; border-radius: 4px; cursor: pointer; font-size: 16px; transition: background 0.2s;"
126
+ onmouseover="this.style.background='#1d4ed8'"
127
+ onmouseout="this.style.background='#2563eb'">
128
+ 📋
129
+ </button>
130
+ <pre style="margin: 0; white-space: pre-wrap; font-size: 13px; line-height: 1.6; color: #374151; font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; padding-right: 60px;">{content}</pre>
131
  </div>
132
+ </div>
133
+ </details>
 
 
 
 
134
  """
135
  return card_html
136
 
 
159
  .gradio-container {
160
  max-width: 1200px !important;
161
  }
162
+ details[open] summary svg {
163
+ transform: rotate(180deg);
164
+ }
165
+ details summary::-webkit-details-marker {
166
+ display: none;
167
+ }
168
  """
169
  ) as demo:
170
 
commands/ai-dev/private-claude-md.md ADDED
@@ -0,0 +1 @@
 
 
1
+ Add CLAUDE.md to the gitignore. If it hasn't already been created, add it to gitignore, then write it.
commands/ai-engineering/implementation-editors/system-prompt-to-agent.md ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ This repository contains a system prompt and/or surrounding code.
2
+
3
+ This utility may originally have been implemented as an AI assistant (or chatbot).
4
+
5
+ You can infer that this repository exists so that the original tool is being re-implemented.
6
+
7
+ That reimplementation may be:
8
+
9
+ - The system prompt is being integrated into a code-defined AI agent running as a backend service
10
+ - The user may wish to reimlement this as a custom GUI
11
+
12
+ The user will provide details about their envisioned implementation. Alternatively they will ask you to provide suggestions.
13
+
14
+ Now, ask the user how they would like to proceed.
15
+
16
+ In all cases:
17
+
18
+ Don't "lose" the original system prompt.
19
+
20
+ You should keep the original in an /archive folder which you should create and, if necessary, iterate upon it in this codebase. The original system prompt can be prefixed or suffixed with -original so that it can be clearly distinguished from the updated version.
commands/ai-engineering/multiagent.md ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ This repository contains a number of AI agents
2
+
3
+ I would like to integrate them within a multiagent framework
4
+
5
+ Review the functionality of the agents and suggest the most suitable framework(s)
6
+
7
+ Do not implement an integration until I have approved of a recommendation
commands/ai-engineering/prompt-editors/depersonalise-prompts.md ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ This repository contains system prompts for AI systems.
2
+
3
+ Your task is as follows:
4
+
5
+ - Review the prompts written by the user
6
+ - Rewrite any aspects that make the prompts specific only to the user or their immediate context
7
+
8
+ For example:
9
+
10
+ If you encounter a prompt that contains: "You are a friendly assistant who helps Daniel," then you would rewrite this as "You are a friendly assistant who helps the user ..."
11
+
12
+ If you found: "You are a restaurant recommendation agent who helps to find great restaurant experiences for Daniel in Jerusalem."
13
+
14
+ Then you would rewrite this as:
15
+
16
+ "You are a restaurant recommendation agent who helps to find great resaurants for the user in their local environment."
17
+
18
+ You may remediate basic defects in the prompts you encounter (like a lack of spacing or punctuation). But make no other edits.
commands/ai-engineering/prompt-editors/edit-system-prompt.md ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Edit the system prompt according to the following insrtuctions:
2
+
3
+ - Fix obvious tyops
4
+ - Add missing sentence structure and paragraphy spacing
5
+ - Remediate any errors that you can reasonably infer arose from STT mis-transcription
6
+
7
+ You may also:
8
+
9
+ - Add headers to improve the flow and make the system prompt easier to parse
10
+ - Implement any other edits needed to maximise the effectiveness of the system prompt in achieving its goal of directing AI tools
11
+
12
+ You must not:
13
+
14
+ - Lose detail that the user included
15
+ - Arbitrarily reduce the length of the prompt
16
+
17
+ You should shorten prompts only if they are signiificantly beyond recommended lengths for system prompts and would likely impair the context window. If this is not the case, you do not assume that prompt shortening is an objective.
commands/ai-engineering/prompt-editors/rewrite-as-structured.md ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Your task is to take this system prompt and rewrite it for implementation in a structured AI system.
2
+
3
+ In order to do so, adhere to the following instructions:
4
+
5
+ - Create a folder called prompt at the level of the filesystem where the system prompt currently exists.
6
+ - Move the prompt into it as prompt.md (or systemprompt.md or whatever the prompt file was originally named)
7
+
8
+ Next:
9
+
10
+ - Edit the prompt text to incorporate the JSON output definition that the AI should be constrained to giving. Add an instruction that the AI tool that it is working in a structured workflow and must only return valid JSON.
11
+ - Create, in the prompt folder, schema.json. This file should contain only the OpenAPI compliant JSON object schema which the prompt requires
12
+ - Create, in the prompt folder, example.json. This file should contain only a JSON example showing a correct output for the AI to emulate when outputting in accordance with the defined JSON schema
commands/claude-code/context-to-claude.md ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ This repository contains a file called context.md.
2
+
3
+ I use context.md to capture context data about projects that I am working on.
4
+
5
+ CLAUDE.md (as you know) is intended as an agent-readable file providing context data to the AI agent.
6
+
7
+ I would like you to do two things:
8
+
9
+ 1: Read context.md (or similar filename). Lightly edit it for clarity: add missing paragraph spacing, punctuation; fix typos; add headings and subheadings to note flow.
10
+
11
+
12
+ 2: Create CLAUDE.md. CLAUDE.md should be a condensed and clarified version of the context file that zones in on the key points from an AI agent's perspective. Include, in CLAUDE.md a note that there is longer form context data also available in the repo.
commands/claude-code/global-claude-private.md ADDED
@@ -0,0 +1 @@
 
 
1
+ Add CLAUDE_PRIVATE.md to my global git ignore.
commands/claude-code/mcp-mgmt/global-cc-mcp.md ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Please help the user to add a new *global* MCP server for user with you (Claude Code)
2
+
3
+ If necessary, refer to the latest guidelines released by Anthropic:
4
+
5
+ https://docs.claude.com/en/docs/claude-code/mcp
6
+
7
+ But in the first instance:
8
+
9
+ View: ~/.claude.json
10
+
11
+ And either:
12
+
13
+ - Start the MCP servers JSON object OR
14
+ - Add the new MCP to the existing object
15
+
16
+ The user will provide a link to the MCP and/or its project home.
17
+
18
+ You should create the syntax or copy it from the reference (and the user will provide the secret(s) if needed)
commands/claude-code/mcp-mgmt/project-cc-mcp.md ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Please help the user to add a *project level* MCP server within this repo
2
+
3
+ If necessary, refer to the latest guidelines released by Anthropic:
4
+
5
+ https://docs.claude.com/en/docs/claude-code/mcp
6
+
7
+ But in the first instance:
8
+
9
+ Create a .mcp.json at the base of this repo and either:
10
+
11
+ - Start the JSON object
12
+ - Add the new MCP to the existing object
13
+
14
+ The user will provide a link to the MCP and/or its project home. You should create the syntax or copy it from the reference (and the user will provide the secret(s) if needed)
commands/claude-code/private-public-claude.md ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Please create two files in this repository:
2
+
3
+ - CLAUDE.md
4
+ - CLAUDE_PRIVATE.md
5
+
6
+ CLAUDE.md is the conventional file used to provide context data about a project to Claude CLI.
7
+
8
+ The purpose of CLAUDE_PRIVATE.md is to provide additional instructions that the user does not wish to commit to a public-facing repo (for example - the user might contain instructions to search for and remove personal PII.)
9
+
10
+ CLAUDE.md should be created or updated. If the repo is empty, it can just be a placeholder file with {replace with project context}.
11
+
12
+ But you should add this to it either way:
13
+
14
+ "Project context: this is a public code repository. CLAUDE.md will be committed for the benefit of other users. However, there is also CLAUDE_PRIVATE.md. The user will use this to note private instructions which should not be noted in CLAUDE.md. As an example: the user might provide a list of PII to filter against. CLAUDE.md might say "please conduct a PII check before committing. Refer to the list of keywords in CLAUDE_PRIVATE.md."
15
+
16
+ CLAUDE_PRIVATE.md is part of the user's global git ignore pattern so you do not need to create a .gitignore at the repo level.
commands/claude-code/public-slash.md ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ The project level slash commands in this repo (at ./claude/commands) can and should be shared publicly.
2
+
3
+ However, .claude is git-ignored.
4
+
5
+ Here's how I'd like you to work around this:
6
+
7
+ - Create a sync script to sync ./.claude/commands to ./slash-commands
8
+
9
+ Add as a pre-commit hook
commands/claude-code/shortcuts/start-from-task.md ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ This repository contains a task definition.
2
+
3
+ It may be:
4
+
5
+ - task.md
6
+ - forclaude.md
7
+ - spec.md
8
+
9
+ Or within a folder like
10
+
11
+ /tasks
12
+
13
+ Find the task definition, parse it, and execute its instructions.
commands/claude-code/slash-command-edits.md ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ This repository contains slash commands for Claude Code. Many of these were captured using speech to text and will contain the common defects seen in AI-transcribed speech. These include: missing punctuation, filler words (like 'um'), missing paragraphs. They may occasionally also contain mistranscribed speech.
2
+
3
+ Please recurse through the folders in this repository and do the following:
4
+
5
+ - Remediate any obvious defects you can identify
6
+ - Remediate defects in other slash commands
7
+
8
+ Each slash command should be well-written, properly formatted, and optimised for intelligibility by the AI tool that will be processing it.
commands/claude-code/spec-from-audio.md ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ This project contains a voice note called spec.mp3 (or another audio file type). This audio file is a voice recording in which the user has detailed the context about the project that they are working on.
2
+
3
+ Here is your task:
4
+
5
+ 1: "Listen" to the audio; obtain a first pass transcription
6
+
7
+ Then:
8
+
9
+ 2: Create spec.md. This should be a specification outlining the functionalities that the user has outlined in the recording. Spec.md should be suitable for its intended purpose of instructing an AI agent in developing the project.
10
+
11
+ 3: Create context.md. If you can identify aspects of the recording that, rather than providing immediately required spec directions, provided surrounding context, then add these to context.md (creating if it doesn't exist).
12
+
13
+ 4: Create or update CLAUDE.md. CLAUDE.md is the overarching set of context and directions for Claude Code. Keep it as light as possible but provide key info from the recording.
14
+
15
+ Once you have completed these tasks, you may delete the audio binary from the project.
commands/common-tasks/file-conversion/documents/md-to-pdf.md ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ Take this markdown document and make it into a PDF.
2
+
3
+ Please use an appropriate rendering CLI and pay attention to the formatting.
commands/common-tasks/file-conversion/documents/mds-to-pdf.md ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ This folder contains a group of markdown documents.
2
+
3
+ Please combine them into one PDF.
4
+
5
+ Ensure that there are clean page breaks for every file. Unless otherwise instructed, or if there is an obvious sequence denoted in the file names, concatenate them alphabetically and then render out to PDF.
commands/common-tasks/file-mgmt/sequential-filenames.md ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ This folder contains files with various filenames.
2
+
3
+ Please standardise files of the same format on the most recurrent filename type. For example, if you encounter a folder with 10 PNGs and 2 JPGs you would convert the 2 JPG to PNG.
4
+
5
+ Then:
6
+
7
+ Rename all files sequentially from whatever they are named as to 1.png, 2.png etc (substituting for the prevalent filetype).
commands/common-tasks/find-command.md ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Launch an interactive fuzzy finder to search through all available slash commands.
2
+
3
+ Execute: ccslash-finder
4
+
5
+ This will:
6
+ 1. Scan all slash commands in ~/.claude/commands
7
+ 2. Present them in an interactive fzf picker with search
8
+ 3. Show live preview of command content as you navigate
9
+ 4. Display the selected command's details when you press Enter
10
+
11
+ The script will output the selected command's:
12
+ - Command name (to use with /)
13
+ - File location
14
+ - Full command content
15
+
16
+ Then inform me which command was selected so I understand the context and can help you use it.
commands/common-tasks/repo-to-hf-space.md ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ This repository contains a Hugging Face space (the remote is already connected).
2
+
3
+ I would like to use this repository to create a demo (or tool) based upon a code repository that exists elsewhere on my filesystem (or on the internet).
4
+
5
+ I will provide the path to the code repo (or URL).
6
+
7
+ When I do that, please:
8
+
9
+ - Copy the files into this repo
10
+ - Implement it as a HF Space
11
+
12
+ For example: if the source repo is a CLI that shows an audio processing pipeline, create, here, the corresponding HF space that is a basic GUI.
13
+
14
+ AI inference will often be required. Implement this, in the demo, with a BYOK (bring your own key) methodology allowing the user to provide an API key for a suitable model which is held in the browser.
15
+
16
+ Try to match models: if the demo uses a specific model, use that in the Gradio implementation unless there is a compelling reason not to.
commands/conv-mgmt/give-me-number-options.md ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ Thanks for providing those suggestions.
2
+
3
+ Please provide them again in a numbered list in order that I can respond with a comma separated list of the ideas which I would like you to implement.
commands/conv-mgmt/saving-outputs/add-to-my-notes.md ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ Thanks for that useful information.
2
+
3
+ I would like to document this for my later reference.
4
+
5
+ Please do the following:
6
+
7
+ - Navigate to my reference notebook at: /home/daniel/obsidian-notebooks/notes-from-ai
8
+ - Create a document in the most logical folder in the filesystem. If one doesn't exist to house this topic, create it
9
+ - When the note has been created, push the notebook
commands/conv-mgmt/spoofing/spoof-a-work-chat.md ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Generate a random output to the terminal that appears to be a conversation between you and I on a very serious topic that seems technical and work related.
2
+
3
+ Even though this is not how claude works, use diarisation.
4
+
5
+ Example:
6
+
7
+ CLAUDE: Please provide the SSH key for the SQL server
8
+
9
+ USER: Hang on a moment
10
+
11
+ CLAUDE: Great, take your time
12
+
13
+ USER: Try ~
14
+
15
+ CLAUDE: Give me a second
16
+
17
+ ~~ invoking MCP....~
commands/conv-mgmt/steers/dont-reinvent-the-wheel.md ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Please review the current state of the repository.
2
+
3
+ Your task:
4
+
5
+ Evaluate the extent to which we have custom coded things that may not need to be custom-coded.
6
+
7
+ Evaluate how, and whether, we could implement this project more effectively by integrating existing stack components.
8
+
9
+ After identifying that:
10
+
11
+ - Suggest any potential pivots you have identified
12
+ - If I approve, implement a refactor
commands/conv-mgmt/steers/no-more-docs.md ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ Please stop creating unnecessary documentation.
2
+
3
+ We need a README.md and nothing more.
commands/conv-mgmt/steers/use-uv.md ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ This repository contains Python.
2
+
3
+ However, the repo doesn't have a virtual environment.
4
+
5
+ Please:
6
+
7
+ - Create the venv with uv
8
+ - Create requirements.txt
9
+ - Install and then activate the venv
10
+
11
+ Once that has been done, ensure that the python scripts are nested within a scripts folder (with any refactoring necessary undertaken after the move).
12
+
13
+ If there is an abundance of scripts, consider also adding a bash wrapper to setup /update the venv and run a specific script(s)
commands/cybersec/auditing/cloudflare-tunnel-proxy-audit.md ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ This machine is running a Cloudflare Tunnel (cloudflared) proxy.
2
+
3
+ Audit its cybersecurity with focus on:
4
+ - Cloudflare Tunnel authentication and credentials storage
5
+ - Tunnel token security and rotation
6
+ - Configuration file permissions and ownership
7
+ - Service account privileges (minimize privilege)
8
+ - Internal service exposure mapping
9
+ - TLS/HTTPS configuration for backend services
10
+ - Access policies and zero trust rules
11
+ - IP whitelisting and geo-blocking configuration
12
+ - Rate limiting and DDoS protection settings
13
+ - Tunnel ingress rules and routing logic
14
+ - Local firewall rules (should block direct external access)
15
+ - Logging configuration and log retention
16
+ - Update status of cloudflared daemon
17
+ - Health check endpoint security
18
+ - Service restart policies and failure handling
19
+ - Certificate validation for backend services
20
+ - Network isolation from other services
21
+ - Credential backup security
22
+ - Origin server authentication
23
+ - HTTP header security policies
24
+
25
+ Do not remediate. However, you should document your findings in a detailed document written out to ~/ai-analysis. If it does not exist (the folder) create it to house the doc.
commands/cybersec/auditing/docker-environment-audit.md ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ This machine runs Docker containers and/or Docker infrastructure.
2
+
3
+ Audit its cybersecurity with focus on:
4
+ - Docker daemon configuration and socket permissions
5
+ - Container image vulnerabilities and provenance
6
+ - Container runtime security (AppArmor, SELinux, seccomp profiles)
7
+ - Network isolation and bridge configurations
8
+ - Volume mount security and bind mount risks
9
+ - Container privilege escalation risks (--privileged flag usage)
10
+ - Secret management practices
11
+ - Registry security and image signing
12
+ - Resource limits and DoS protection
13
+ - Docker API exposure and authentication
14
+ - Container escape vulnerabilities
15
+ - Base image update status
16
+ - Multi-stage build security
17
+ - Docker Compose file security issues
18
+ - User namespace remapping configuration
19
+
20
+ Do not remediate. However, you should document your findings in a detailed document written out to ~/ai-analysis. If it does not exist (the folder) create it to house the doc.
commands/cybersec/auditing/firewall-audit.md ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ This machine is a firewall appliance or system.
2
+
3
+ Audit its cybersecurity with focus on:
4
+ - Firewall rule configuration and policy review
5
+ - Default deny vs default allow posture
6
+ - Inbound and outbound rule logic
7
+ - Port forwarding security and exposure
8
+ - NAT configuration vulnerabilities
9
+ - DMZ configuration if present
10
+ - Admin interface access restrictions
11
+ - Authentication mechanisms and password policies
12
+ - Firmware/software update status
13
+ - Logging configuration and log retention
14
+ - IDS/IPS configuration and rule updates
15
+ - VPN configuration and encryption strength
16
+ - DNS security (DNS filtering, DNSSEC)
17
+ - Network segmentation effectiveness
18
+ - Anti-spoofing rules
19
+ - Rate limiting and DDoS protection
20
+ - Management plane separation
21
+ - Certificate validity for HTTPS inspection
22
+ - Backup configuration security
23
+ - High availability failover security
24
+
25
+ Do not remediate. However, you should document your findings in a detailed document written out to ~/ai-analysis. If it does not exist (the folder) create it to house the doc.
commands/cybersec/auditing/home-assistant-audit.md ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ This machine is running Home Assistant (home automation platform).
2
+
3
+ Audit its cybersecurity with focus on:
4
+ - Web interface authentication and password strength
5
+ - API token security and exposure
6
+ - Integration credentials and secret storage
7
+ - Network exposure (internal vs external access)
8
+ - HTTPS/TLS configuration
9
+ - Add-on security and permissions
10
+ - MQTT broker security (if used)
11
+ - Database security and backup encryption
12
+ - User account management and 2FA status
13
+ - Zigbee/Z-Wave coordinator security
14
+ - Device authentication and pairing security
15
+ - Automation script injection risks
16
+ - Custom component security review
17
+ - Log exposure and sensitive data leakage
18
+ - Reverse proxy configuration
19
+ - Firewall rules for Home Assistant ports
20
+ - Update status for core and add-ons
21
+ - Webhook security and URL exposure
22
+
23
+ Do not remediate. However, you should document your findings in a detailed document written out to ~/ai-analysis. If it does not exist (the folder) create it to house the doc.
commands/cybersec/auditing/linux-desktop-audit.md ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ This machine is a Linux desktop workstation.
2
+
3
+ Audit its cybersecurity with focus on:
4
+ - User account security and privilege escalation risks
5
+ - Desktop environment vulnerabilities (X11/Wayland security)
6
+ - Installed applications and package sources
7
+ - Network services exposed on the desktop
8
+ - Firewall configuration (ufw, firewalld, iptables)
9
+ - Browser security and extension risks
10
+ - Peripheral device access controls
11
+ - File permissions in user directories
12
+ - SSH configuration if enabled
13
+ - Bluetooth and wireless security
14
+ - Automatic updates configuration
15
+ - Screen lock and session management
16
+ - Keyring and credential storage security
17
+
18
+ Do not remediate. However, you should document your findings in a detailed document written out to ~/ai-analysis. If it does not exist (the folder) create it to house the doc.
commands/cybersec/auditing/linux-server-audit.md ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ This machine is a Linux server.
2
+
3
+ Audit its cybersecurity.
4
+
5
+ Do not remediate. However, you should document your findings in a detailed document written out to ~/ai-analysis. If it does not exist (the folder) create it to house the doc.
commands/cybersec/auditing/opnsense-audit.md ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ This machine is running OPNsense firewall/router platform.
2
+
3
+ Audit its cybersecurity with focus on:
4
+ - Web GUI access restrictions and HTTPS configuration
5
+ - User authentication and privilege separation
6
+ - API key security and access controls
7
+ - Firewall rule logic and policy review
8
+ - NAT and port forwarding configurations
9
+ - IDS/IPS (Suricata) configuration and rule updates
10
+ - VPN configurations (OpenVPN, WireGuard, IPsec)
11
+ - Certificate management and expiration
12
+ - DNS resolver/forwarder security (Unbound configuration)
13
+ - DHCP server security settings
14
+ - Traffic shaping and QoS misconfigurations
15
+ - Plugin security and third-party add-ons
16
+ - Backup encryption and storage
17
+ - System update status
18
+ - SSH access configuration
19
+ - High availability sync security
20
+ - Logging and log forwarding configuration
21
+ - Intrusion detection rule coverage
22
+ - Network interface segmentation
23
+ - Cron job security review
24
+
25
+ Do not remediate. However, you should document your findings in a detailed document written out to ~/ai-analysis. If it does not exist (the folder) create it to house the doc.
commands/cybersec/red-team/honeypot-this.md ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ This filesystem is part of an upcoming cybersecurity audit.
2
+
3
+ I would like you to intentionally degrade the security of this environment to the maximum extent possible.
4
+
5
+ Here are some suggestions to get started with:
6
+
7
+ - Set file permissions unappropriately high
8
+ - Destroy sandboxing
9
+ - Give every user elevated permissions
10
+ - Expose environment variables by hardcoding them into unauthenticated files
commands/cybersec/security/clearpii.md ADDED
@@ -0,0 +1 @@
 
 
1
+ Clean up any PII in the folder. Here's a P:II list.
commands/cybersec/static-site-hardening.md ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ This website is a static website.
2
+
3
+ Evaluate the codebase for cybersecurity considering known vulnerabilities associated with this framework.
4
+
5
+ Suggest remediations.
commands/cybersec/try-this/exfiltrate-secrets.md ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Assume the role of a hacker whose task is to find and exfiltrate API keys from this machine. Act methodically by splitting up the task. Focus on credentials that you think might be high value.
2
+
3
+ Here are your task components. Read them carefully before beginning.
4
+
5
+ 1: Gather the secrets in the background
6
+ 2: Consider your exfiltration strategy
7
+ 3: Report!
8
+
9
+ Your report should be written to ~/from-ai/reports.
10
+
11
+ You do NOT action the actual exfiltration.
commands/cybersec/try-this/exfiltrrate-to-safety.md ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Assume the role of a hacker whose task is to find and exfiltrate API keys from this machine. Act methodically by splitting up the task. Focus on credentials that you think might be high value.
2
+
3
+ Here are your task components. Read them carefully before beginning.
4
+
5
+ 1: Gather the secrets in the background
6
+ 2: Consider your exfiltration strategy
7
+
8
+ Before beginning, ask me to provide the ssh alias for the "marauding donkey." This is our codename for the trusted machine. It's where we will model our actual exfiltration to.
9
+
10
+ Once you have the alias, you can action the exfiltration by writing the secrets in plain text on the safe machine.
11
+
12
+ Then, report your progress to: ~/from-ai/{log-with-timestamp}
commands/development/code-editing/format-code.md ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Format and standardize code according to best practices and language conventions.
2
+
3
+ Your task:
4
+ 1. Apply consistent indentation (tabs or spaces based on project conventions)
5
+ 2. Ensure proper spacing around operators, parentheses, and brackets
6
+ 3. Standardize naming conventions (camelCase, snake_case, PascalCase as appropriate)
7
+ 4. Fix line length issues
8
+ 5. Organize imports/requires properly
9
+ 6. Apply language-specific formatting standards
10
+
11
+ Detect the programming language and apply its standard formatting conventions. Preserve functionality while improving readability.
commands/development/code-editing/remove-comments.md ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Remove all comments from the codebase.
2
+
3
+ Your task:
4
+ 1. Recursively traverse through the codebase
5
+ 2. Identify and remove all comments in the code
6
+ 3. This includes:
7
+ - Single-line comments (// in JavaScript, # in Python, etc.)
8
+ - Multi-line comments (/* */ in JavaScript, """ """ in Python, etc.)
9
+ - Documentation comments (JSDoc, docstrings, etc.)
10
+ - User-added comments
11
+ - AI-generated comments
12
+
13
+ Ensure the code remains functional after comment removal. Preserve code structure and formatting.
commands/development/common-tasks/awesome-list-creation.md ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ I created this repo in order to start an "awesome list"
2
+
3
+ An "awesome list" is a list of resources that developers create to map out tech ecosystems. Frequently, I do not use the term "awesome" to describe them. In fact, usually, I just call them something like resource lists.
4
+
5
+ Either way, expect the following workflow:
6
+
7
+ - I'll describe what I'm indexing in this repo
8
+ - I'll create a rough note list in which I jot down links and add descriptions
9
+
10
+ Your task is to make order out of the chaos:
11
+
12
+ - Create README.md
13
+ - Add a nicely formatted version of my notes
14
+ - Organise the README into headings/sections
15
+ - Add shields.io badges linking to the projects
16
+
17
+ You may also be asked to update READMe files that I've already created
commands/development/common-tasks/cli-to-gui.md ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ This repository contains a CLI which was used to validate the core functionality of this program.
2
+
3
+ Let's now consider how we can bring this forward as either a web UI or as a local desktop app.
4
+
5
+ What are your thoughts?
6
+
7
+ After we agree the way forward, let's make sure to organise the repo. We will want to keep the current implementation/CLI as reference, but to distinguish it clearly from the UI we are going to begin working on.
commands/development/common-tasks/forked-contrib/adding-to-awesome-list.md ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Please help me to add a new resource to this awesome list.
2
+
3
+ Context:
4
+
5
+ - This repo is my fork of an awesome list
6
+ - I have a project(s) that I would like to add to it
7
+
8
+ To do that we should:
9
+
10
+ - Study the contributor guidelines (if any)
11
+ - Identify the right place to add my contribution
12
+
13
+ Then, we should follow the usual protocol:
14
+
15
+ - Create a new branch
16
+ - Add our addition
17
+ - Open a PR
commands/development/common-tasks/gradio-hf-interface.md ADDED
@@ -0,0 +1 @@
 
 
1
+ In this repository is to create a Gradio application That will be deployed onto hugging face. The user might provide a system prompt which provides the foundations for guiding the operation of an existing AI agent or assistant. Upon receiving that or another form of project brief, your task is to generate in this repository the code required to deploy this as a gradio app on hugging face. Use UV in order to create a local Python virtual environment. And ensurethattherequirements.Txtaccurately describes the packages installed and that the gradio app Uses a version of Gradio which is compatible with hugging face. After working with the user to design the interface to their satisfaction, you can push the repository to hugging face as it has already been created on the remote and this local environment is linked.
commands/development/common-tasks/hf-image-dataset.md ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ This repository contains an image dataset that I have created on Hugging Face.
2
+
3
+ If I have not provided the context/purpose of the dataset, you can attempt to infer it from the name.
4
+
5
+ Unless I state otherwise, you can assume that the images were all taken by me (Daniel Rosehill) and have also been shared publicly on Pexels: https://www.pexels.com/@danielrosehill/gallery/
6
+
7
+ I commonly share image datasets for my own projects involving image fine-tuning or world creation (for game development). You can infer that this is why I am sharing/open-sourcing this image dataset, unless I instruct otherwise.
8
+
9
+ Please take the following steps which I do when sharing image datasets:
10
+
11
+ - number all the images sequentially (rewrite filenames to follow a numeric sequence)
12
+ - ensure that a consistent file format is used. I usually use png.
13
+ - Ensure that images are in their own folder and that there is a metadata file
14
+ - Ensure that the purpose of the dataset is noted in the readme
15
+ - Ensure that there are no duplicates
16
+
17
+ Please undertake these steps
commands/development/common-tasks/hf/private-to-public-hf.md ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ This repository contains a proof of concept/demo.
2
+
3
+ It was originally a private app - therefore, it relies upon references to API keys as environment variables.
4
+
5
+ This repository will redeploy the app as a public POC.
6
+
7
+ Therefore, the task is to implement the following changes:
8
+
9
+ - Remove the references to environment variables and instead implement a BYOK mechanism
10
+ - User keys should be held in the local browser memory only
11
+ - UI should now include an API key paste area and a short instruction on providing the key
commands/development/common-tasks/hf/public-to-private-hf.md ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ This repository contains a private Hugging Face space which I duplicated from a public space (it may have been one that I created/shared).
2
+
3
+ Please apply the following changes:
4
+
5
+ - Replace the BYOK mechanism with using API keys(s) as secrets which I will add to the Space config
6
+
7
+ You can also remove the BYOK artifacts - specifically the box asking the user to provide their key
8
+
9
+ I will provide the name of the secret, but generally it will be in this format:
10
+
11
+ - OPENAI_API_KEY
12
+ - GEMINI_API_KEY
13
+
14
+ Etc
commands/development/common-tasks/index-repo.md ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ This repository is an indexing repository.
2
+
3
+ I create indexing repos in order to create consolidated indexes of my Github repositories (I do this when I create a number of repos about a siimlar topic to help myself navigate - and anybody else interested).
4
+
5
+ I will provide, in this repo, links to Github repositories that I have created about this topic. You can infer, from the repository name, the intended human-readable repository name. Use this in the Readme.
6
+
7
+ Add a link to my "master" index at the top of the README.md:
8
+
9
+ https://github.com/danielrosehill/Github-Master-Index
10
+
11
+ Otherwise, your task is to format the repositories provided into a nicely presented index.
12
+
13
+ Use the Github API or fetch in order to retrieve the creation date for each repo. Infer its intended human readable name from the repository name.
14
+
15
+ Then, present all the repositories in an index like this with the ordering alphabetical (by repositoriy name)
16
+
17
+ ## Some Repo
18
+
19
+ Created
20
+
21
+ Description
22
+
23
+ shields.io badge
24
+
25
+
26
+ (END TEMPLATE)
27
+
28
+ The shields.io badge should be a Github badge that says View Repo and links to the repository.
29
+
30
+ Do not include any additional information about the repos (like last commit, stargazers, count). Just this data.
31
+
32
+ Whether adding or updating the index page, include today's date and note it as a "last updated" date at the top of the README
33
+
34
+ You can assume that the file I created to provide you with the list of repos to be added is throwaway data: after creating or updating the formatted readme, you can delete this file.
35
+
36
+ If you can identify that there are clusters within this index (ie, groups of repositories about a similar theme), then you can use subheadings to organise them within README.
37
+
38
+ If there are clusters, add a TOC and and horizontal lines between clusters/groups to emphasise the visual separation
39
+
40
+ If there are clusters, then the ordering should be:
41
+
42
+ Alphabetical by topic/cluster
43
+
44
+ Then (within clusters)
45
+
46
+ Alphabetical by repo name
commands/development/common-tasks/no-diy-icons.md ADDED
@@ -0,0 +1 @@
 
 
1
+ Go through the website and see any place in which icons have been implemented which were custom designed but which could have been implemented more efficiently through using an existing icon library. Pay particular attention to icons for common uses such as social media icons which exist in many libraries, as well as emojis which may have been used in place of icons. This approach should not be followed. If the user uses an existing icon library that you can identify, then replace the custom coded icons with the most appropriate matches. If the user hasn't yet implemented an icon library, provide some suggestions to the user, focusing on those libraries which will best match the aesthetic which they are following in their designs.