-
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-pathflag 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-pathcommand 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.jsonfiles -
seedfolder configcommand 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.jsonglobal configuration - Add
.seedfolder.jsonper-directory configuration - Create
seedfolder configcommand 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 templatecommand 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 fileSubtasks:
- Create GitHub marketplace repository (
solrevdev/seedfolder-marketplace) - Design template metadata schema (
template.json) with validation - Implement
seedfolder templatecommand 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 templatecommand groupseedfolder configcommand 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.csstructure 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.