-
Notifications
You must be signed in to change notification settings - Fork 0
Description
🎯 Overview
This issue consolidates the remaining features from the original Issue #9 into a comprehensive template ecosystem for seedfolder. After the successful completion of PR #10, we now have a solid foundation with 6 built-in project templates and professional CLI features. This issue will add external template support, configuration management, and a GitHub-based template marketplace.
🎨 Design Philosophy
- Pragmatic over complex: Simple GitHub-based marketplace without hosting costs
- Progressive enhancement: All new features are additive, maintaining backward compatibility
- User empowerment: Allow users to override built-in templates and create new project types
- Enterprise ready: Robust validation, error handling, and configuration management
🚀 Feature Areas
1. External Template Sources (Issue #2)
Enable users to load templates from external directories and sources beyond the built-in embedded templates.
Acceptance Criteria:
- Template discovery hierarchy: CLI args → user directory → system directory → built-in
- Support
--template-path
flag for custom template directories - User templates directory at
~/.seedfolder/templates/
- External template validation with clear error reporting
- Documentation for creating custom templates
Template Structure:
template-name/
├── template.json # Metadata (version, description, author, etc.)
├── files/ # Template files to copy
│ ├── README.md
│ ├── .gitignore
│ └── package.json
└── docs/ # Optional template documentation
└── README.md
Subtasks:
- Design template directory structure and metadata format
- Implement template discovery hierarchy (CLI → user → system → built-in)
- Add
--template-path
command line parameter - Create
~/.seedfolder/templates/
user directory support - Implement template validation for external sources
- Add template override capability (external templates override built-in by name)
2. Configuration File Support (Issue #5)
Implement a comprehensive configuration system for user preferences and defaults.
Acceptance Criteria:
- Global configuration at
~/.seedfolder/config.json
- Per-directory configuration via
.seedfolder.json
files -
seedfolder config
command group for configuration management - Configuration precedence: CLI args → local → global → defaults
- Support for all major settings (default template, date prefixing, behavior options)
Configuration Schema:
{
"defaultTemplate": "markdown",
"datePrefix": {
"enabled": true,
"format": "yyyy-MM-dd"
},
"templateSources": [
"~/.seedfolder/templates",
"https://github.com/solrevdev/seedfolder-marketplace"
],
"behavior": {
"quietMode": false,
"forceOverwrite": false,
"dryRun": false
}
}
Subtasks:
- Design JSON configuration schema with validation
- Implement
~/.seedfolder/config.json
global configuration - Add
.seedfolder.json
per-directory configuration - Create
seedfolder config
command group (list
,set
,unset
,init
) - Implement configuration precedence hierarchy
- Add configuration validation and error handling
- Replace hardcoded date prefix with configurable format
3. Template Management & Marketplace (Issue #6)
Create a comprehensive template management system with a GitHub-based marketplace.
🏪 Marketplace Repository: https://github.com/solrevdev/seedfolder-marketplace
Acceptance Criteria:
- GitHub marketplace repository (
solrevdev/seedfolder-marketplace
) -
seedfolder template
command group for template operations - Template installation from remote sources (GitHub repos)
- Template validation with detailed error reporting
- Template update and uninstall functionality
Marketplace Repository Structure:
solrevdev/seedfolder-marketplace/
├── templates/
│ ├── angular/
│ ├── vue/
│ ├── rust/
│ └── golang/
├── registry.json # Master catalog
└── README.md # Contribution guidelines
Command Structure:
# Template Management
seedfolder template list # Show all available templates
seedfolder template list --remote # Show marketplace templates
seedfolder template info <name> # Show template details
seedfolder template install <name> # Install from marketplace
seedfolder template install --url <repo> # Install from custom repo
seedfolder template uninstall <name> # Remove template
seedfolder template update [name] # Update templates
seedfolder template validate <path> # Validate template structure
seedfolder template create <name> # Create template scaffold
# Configuration Management
seedfolder config list # Show current configuration
seedfolder config set <key> <value> # Set configuration value
seedfolder config unset <key> # Remove configuration value
seedfolder config init # Create default config file
Subtasks:
- Create GitHub marketplace repository (
solrevdev/seedfolder-marketplace
) - Design template metadata schema (
template.json
) with validation - Implement
seedfolder template
command group infrastructure - Add template installation from GitHub repositories
- Implement template validation engine with detailed error reporting
- Add template update functionality with version checking
- Implement template uninstall with cleanup
- Create template marketplace client for remote operations
- Add template conflict detection and resolution
- Document template authoring guidelines
🏗️ Implementation Strategy
Phase 1: Foundation (Week 1-2)
- External template loading infrastructure
- Configuration system core
- Template validation framework
Phase 2: Commands (Week 2-3)
seedfolder template
command groupseedfolder config
command group- Basic marketplace operations
Phase 3: Marketplace (Week 3-4)
- GitHub marketplace repository
- Remote template installation
- Update and management features
Phase 4: Polish (Week 4-5)
- Comprehensive testing
- Documentation updates
- Template authoring guidelines
🎯 Success Metrics
- Users can override any built-in template with their own version
- Users can add completely new project types not covered by built-in templates
- Template sharing works seamlessly through GitHub marketplace
- Configuration provides sensible defaults while allowing full customization
- All operations work reliably across Windows, macOS, and Linux
- Comprehensive error messages guide users to resolution
- Template validation prevents common mistakes and conflicts
🔗 Related Issues
This issue consolidates and closes:
- Issue Add support for external and custom template sources #12: Add support for external and custom template sources
- Issue Add configuration file support for user preferences and defaults #13: Add configuration file support for user preferences and defaults
- Issue Implement comprehensive template management and validation #14: Implement comprehensive template management and validation
Dependencies:
- Requires completion of PR Complete implementation of Issue #9: Multi-template system with comprehensive CLI features, cross-platform testing, project-specific configuration files, OS-specific git integration, and markdown as default template #10 (Issue Issues and subtasks for seedfolder improvements #9 foundation)
- All issues build upon completed Issue Issues and subtasks for seedfolder improvements #9 foundation and can be implemented incrementally
📚 Technical Notes
- Maintain single-file
Program.cs
structure with new internal classes - JSON Schema validation for all configuration and metadata files
- Cross-platform path handling using
Path.Combine()
throughout - Comprehensive error handling with actionable error messages
- Template caching for performance with remote sources
- Atomic operations for template installation/removal where possible
🤝 Contributing
This issue provides multiple independent subtasks suitable for different skill levels. Contributors can work on individual features while maintaining overall architectural coherence.