Add External Template Sources, Configuration System, and Template Management #15

Description

@solrevdev

🎯 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 group
  • seedfolder 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:

Dependencies:

📚 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
       blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
      }
      } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
      })();
      (function(){
      try {
      var __m = "github.com";
      var __re = new RegExp('^' + "github\\.com" + '
      
      Skip to content

      Add External Template Sources, Configuration System, and Template Management #15

      Description

      @solrevdev

      🎯 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 group
      • seedfolder 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:

      Dependencies:

      📚 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.

      Activity

      Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

      Metadata

      Metadata

      Assignees

      No one assigned

        Labels

        No labels
        No labels

        Projects

        No projects

          Milestone

          No milestone

          Relationships

          None yet

          Development

          No branches or pull requests

          Issue actions

          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
          Skip to content

          Add External Template Sources, Configuration System, and Template Management #15

          Description

          @solrevdev

          🎯 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 group
          • seedfolder 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:

          Dependencies:

          📚 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.

          Activity

          Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

          Metadata

          Metadata

          Assignees

          No one assigned

            Labels

            No labels
            No labels

            Projects

            No projects

              Milestone

              No milestone

              Relationships

              None yet

              Development

              No branches or pull requests

              Issue actions

              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
              Skip to content

              Add External Template Sources, Configuration System, and Template Management #15

              Description

              @solrevdev

              🎯 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 group
              • seedfolder 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:

              Dependencies:

              📚 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.

              Activity

              Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

              Metadata

              Metadata

              Assignees

              No one assigned

                Labels

                No labels
                No labels

                Projects

                No projects

                  Milestone

                  No milestone

                  Relationships

                  None yet

                  Development

                  No branches or pull requests

                  Issue actions

                  , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
                  Skip to content

                  Add External Template Sources, Configuration System, and Template Management #15

                  Description

                  @solrevdev

                  🎯 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 group
                  • seedfolder 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:

                  Dependencies:

                  📚 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.

                  Activity

                  Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

                  Metadata

                  Metadata

                  Assignees

                  No one assigned

                    Labels

                    No labels
                    No labels

                    Projects

                    No projects

                      Milestone

                      No milestone

                      Relationships

                      None yet

                      Development

                      No branches or pull requests

                      Issue actions

                      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
                      Skip to content

                      Add External Template Sources, Configuration System, and Template Management #15

                      Description

                      @solrevdev

                      🎯 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 group
                      • seedfolder 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:

                      Dependencies:

                      📚 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.

                      Activity

                      Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

                      Metadata

                      Metadata

                      Assignees

                      No one assigned

                        Labels

                        No labels
                        No labels

                        Projects

                        No projects

                          Milestone

                          No milestone

                          Relationships

                          None yet

                          Development

                          No branches or pull requests

                          Issue actions

                          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
                          Skip to content

                          Add External Template Sources, Configuration System, and Template Management #15

                          Description

                          @solrevdev

                          🎯 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 group
                          • seedfolder 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:

                          Dependencies:

                          📚 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.

                          Activity

                          Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

                          Metadata

                          Metadata

                          Assignees

                          No one assigned

                            Labels

                            No labels
                            No labels

                            Projects

                            No projects

                              Milestone

                              No milestone

                              Relationships

                              None yet

                              Development

                              No branches or pull requests

                              Issue actions

                              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
                              Skip to content

                              Add External Template Sources, Configuration System, and Template Management #15

                              Description

                              @solrevdev

                              🎯 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 group
                              • seedfolder 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:

                              Dependencies:

                              📚 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.

                              Activity

                              Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

                              Metadata

                              Metadata

                              Assignees

                              No one assigned

                                Labels

                                No labels
                                No labels

                                Projects

                                No projects

                                  Milestone

                                  No milestone

                                  Relationships

                                  None yet

                                  Development

                                  No branches or pull requests

                                  Issue actions