name: ccn:create-topic description: Create a new topic file in .notes/ with frontmatter template disable-model-invocation: true argument-hint: [topic-name]
Create Topic Skill
This skill creates a new topic file in the .notes/ directory with structured frontmatter and section headers.
Instructions for Claude
When this command is invoked with /ccn:create-topic $ARGUMENTS:
Step 1: Validate argument
If $ARGUMENTS is empty or not provided:
- Show error: "Error: Topic name required"
- Show usage: "Usage: /ccn:create-topic <topic-name>"
- STOP - do not continue
Step 2: Normalize topic name to filename
Take the provided topic name and transform it:
- Replace all spaces with underscores
- Replace all hyphens with underscores
- Convert to UPPERCASE
- Add
.mdextension
Examples:
- "api-design" → "API_DESIGN.md"
- "my topic" → "MY_TOPIC.md"
- "error_handling" → "ERROR_HANDLING.md"
Store the result as the filename.
Step 3: Check if file exists
Use the Read tool to check if .notes/{filename} already exists.
-
If the file EXISTS:
- Tell user: "Error: Topic already exists: .notes/{filename}"
- Tell user: "Use /ccn:update-topic to add entries to this topic"
- STOP - do not continue
-
If the file DOES NOT exist:
- Continue to next step
Step 4: Create .notes/ directory if needed
Use the Bash tool to ensure the directory exists:
mkdir -p .notes
Step 5: Generate frontmatter
Create YAML frontmatter with these fields:
-
description: "Knowledge and patterns for {original topic name}"
- Use the original input, not the normalized filename
- Example: input "api-design" → "Knowledge and patterns for api-design"
-
keywords: Generate array from normalized filename
- Split filename (without .md) on underscores
- Lowercase each part
- Include the combined form (full filename without .md, lowercased)
- Example: "API_DESIGN.md" →
["api", "design", "api_design"]
-
last_updated: Today's date in YYYY-MM-DD format
Step 6: Create file with template
Use the Write tool to create .notes/{filename} with this structure:
---
description: "Knowledge and patterns for {topic}"
keywords: [{keyword array}]
last_updated: "YYYY-MM-DD"
---
# {Topic Name}
## Overview
(Add overview content here)
## Key Concepts
(Document key concepts here)
## Patterns
(Capture recurring patterns here)
## Notes
(Add detailed notes here)
---
*Topic created: YYYY-MM-DD*
Important formatting notes:
- Use the original topic name (not normalized) for the H1 heading
- Use proper YAML array syntax for keywords
- Include the footer timestamp at the bottom
Step 7: Confirm completion
Tell the user: "Created: .notes/{filename}"
Error Handling
If any tool fails (mkdir, Read, Write):
- Show the error message
- Explain what went wrong
- Do NOT create partial files
Task Prioritizer
Productivity
Prioritizes your tasks using Eisenhower, ICE, and RICE frameworks.
Weekly Status Report Generator
Productivity
Generate structured and concise weekly status reports.
Daily Standup Report
Productivity
Generates structured and concise daily standup reports.