Prompt file imported from davidmoneil/AIfred (
.claude/commands/create-project.md). Fill in{{arguments}}before use. Copyright stays with the author.
Create a new Claude Code project: {{arguments}}
Step 1: Parse Arguments
Extract:
- Project name (required): First argument
- Project type (optional): Second argument (writing, coding, research, operations, other)
- If type not provided, ask user to choose
Valid types:
- writing: Blog posts, documentation, articles
- coding: Software development projects
- research: Technical deep-dives, investigations
- operations: Infrastructure, DevOps, automation
- other: Custom project type
Step 2: Validate Project Request
-
Normalize project name to slug format:
- Lowercase
- Replace spaces with hyphens
- Remove special characters
- Example: "CISO Blog Writing" ā "ciso-blog-writing"
-
Check if project already exists:
ls -la .claude/projects/ | grep -i <normalized-name>- If exists: Error and show existing project
- If similar projects found: Ask if user wants to use existing or create new
-
Search for similar projects:
- Load @.claude/projects/_index.md
- Look for projects with similar names or types
- If found, inform user and ask if they want to continue
Step 3: Gather Project Configuration
Ask user for:
-
Brief description (1-2 sentences):
- What is this project about?
- What will you create/achieve?
-
Primary agent (optional):
- Which agent will mainly work on this?
- Suggest based on type:
- writing ā writer
- coding ā developer
- research ā research
- operations ā devops
-
Specific goals (optional):
- Any success criteria?
- Deliverables expected?
Step 4: Create Project Structure
-
Create directories:
mkdir -p .claude/projects/<project-name>/{examples,knowledge,archive} -
Copy template files:
- Copy from @.claude/templates/project-template/
- All files: README.md, config.yaml, todo.md, learned-patterns.md, progress.md, knowledge/
-
Populate template variables:
- Replace
[project-name]with normalized name - Replace
[Project Title]with proper title - Replace
[description]with user's description - Replace
[primary-agent]with chosen agent - Replace
[created-date]with today's date - Replace
[created-by]with "David Moneil" - Replace
[project-type]with chosen type
- Replace
Step 5: Initialize Type-Specific Knowledge
Based on project type, create initial knowledge files:
For Writing Projects
Create knowledge/style-guide.md:
# Style Guide
## Voice & Tone
- Conversational but authoritative
- Active voice preferred
- Avoid jargon unless necessary
## Structure
- Executive summary (2-3 sentences)
- Problem statement
- Solution/approach
- Conclusion
## Length
- Target: 500-750 words
- Max: 1000 words
For Coding Projects
Create knowledge/coding-standards.md:
# Coding Standards
## Language
- Python 3.12+
- Type hints required
- Docstrings for all public functions
## Style
- Black formatting
- Ruff linting
- Maximum line length: 120 characters
## Testing
- pytest for unit tests
- Minimum 80% coverage
For Research Projects
Create knowledge/research-framework.md:
# Research Framework
## Process
1. Define research question
2. Gather sources
3. Analyze findings
4. Document conclusions
## Output Format
- Executive summary
- Detailed findings
- Recommendations
- References
For Operations Projects
Create knowledge/automation-guide.md:
# Automation Guide
## Systems
- List systems involved
- Access requirements
- Dependencies
## Safety
- Always test in dev first
- Document rollback procedures
- Never automate destructive operations without approval
Step 6: Update Project Registry
-
Read current index:
- Load @.claude/projects/_index.md
-
Add new project entry:
### [Project Title] - **Path**: `.claude/projects/<project-name>/` - **Type**: [project-type] - **Primary Agent**: [primary-agent] - **Created**: [created-date] - **Status**: Active - **Description**: [description] -
Write updated index:
- Update the file with new entry
- Keep sorted by status (Active first)
Step 7: Create Initial Git Commit
-
Stage new project:
cd $AIFRED_HOME git add .claude/projects/<project-name>/ git add .claude/projects/_index.md -
Create commit:
git commit -m "Create project: [Project Title] Type: [project-type] Primary agent: [primary-agent] Created: [created-date] [description] Initial structure: - Project configuration - Knowledge templates - Empty examples and progress tracking" -
Check git status:
git status
Step 8: Return Success Summary
Output:
ā
Project created: [Project Title]
š Location: .claude/projects/<project-name>/
š¤ Primary Agent: [primary-agent]
š Type: [project-type]
š
Created: [created-date]
š Files created:
- README.md
- config.yaml
- todo.md
- learned-patterns.md
- progress.md
- knowledge/ (with type-specific guides)
ā
Git: Committed to local repository
Next steps:
1. Review project structure: cd .claude/projects/<project-name>/
2. Customize config.yaml if needed
3. Add your first todo to todo.md
4. Start working - the system will learn as you go!
To start: Just begin working in this project context
Or: "Load project: [project-name]"
Error Handling
If project exists:
ā Project '<project-name>' already exists
Location: .claude/projects/<project-name>/
Created: <date>
Status: <status>
Options:
1. Open existing project
2. Choose a different name
3. Archive old and create new
If validation fails:
ā Invalid project name: [reason]
Valid names:
- Lowercase letters, numbers, hyphens
- No spaces or special characters
- 3-50 characters long
Example: ciso-blog-writing
Examples
# Simple creation
/create-project ciso-blog-writing
# With type specified
/create-project homelab-automation operations
# Will prompt for type
/create-project kubernetes-learning