schema_version: "1.0"

preset:
  # CUSTOMIZE: Change 'my-preset' to your preset ID (lowercase, hyphen-separated)
  id: "my-preset"

  # CUSTOMIZE: Human-readable name for your preset
  name: "My Preset"

  # CUSTOMIZE: Update version when releasing (semantic versioning: X.Y.Z)
  version: "1.0.0"

  # CUSTOMIZE: Brief description (under 200 characters)
  description: "Brief description of what your preset provides"

  # CUSTOMIZE: Your name or organization name
  author: "Your Name"

  # CUSTOMIZE: GitHub repository URL (create before publishing)
  repository: "https://github.com/your-org/spec-kit-preset-my-preset"

  # REVIEW: License (MIT is recommended for open source)
  license: "MIT"

# Requirements for this preset
requires:
  # CUSTOMIZE: Minimum spec-kit version required
  speckit_version: ">=0.1.0"

# Templates provided by this preset
provides:
  templates:
    # CUSTOMIZE: Define your template overrides
    # Templates are document scaffolds (spec-template.md, plan-template.md, etc.)
    #
    # Strategy options (optional, defaults to "replace"):
    #   replace  - Fully replaces the lower-priority template (default)
    #   prepend  - Places this content BEFORE the lower-priority template
    #   append   - Places this content AFTER the lower-priority template
    #   wrap     - Uses {CORE_TEMPLATE} placeholder (templates/commands) or
    #              $CORE_SCRIPT placeholder (scripts), replaced with lower-priority content
    #
    # Note: Scripts only support "replace" and "wrap" strategies.
    - type: "template"
      name: "spec-template"
      file: "templates/spec-template.md"
      description: "Custom feature specification template"
      replaces: "spec-template"  # Which core template this overrides (optional)

    # ADD MORE TEMPLATES: Copy this block for each template
    # - type: "template"
    #   name: "plan-template"
    #   file: "templates/plan-template.md"
    #   description: "Custom plan template"
    #   replaces: "plan-template"

    # COMPOSITION EXAMPLES:
    # The `file` field points to the content file (can differ from the
    # convention path `templates/<name>.md`). The `name` field identifies
    # which template to compose with in the priority stack.
    #
    # Append additional sections to an existing template:
    # - type: "template"
    #   name: "spec-template"
    #   file: "templates/spec-addendum.md"
    #   description: "Add compliance section to spec template"
    #   strategy: "append"
    #
    # Wrap a command with preamble/sign-off:
    # - type: "command"
    #   name: "speckit.specify"
    #   file: "commands/specify-wrapper.md"
    #   description: "Wrap specify command with compliance checks"
    #   strategy: "wrap"
    #   # In the wrapper file, use {CORE_TEMPLATE} where the original content goes

    # OVERRIDE EXTENSION TEMPLATES:
    # Presets sit above extensions in the resolution stack, so you can
    # override templates provided by any installed extension.
    # For example, if the "myext" extension provides a spec-template,
    # the preset's version above will take priority automatically.

    # Override a template provided by the "myext" extension:
    - type: "template"
      name: "myext-template"
      file: "templates/myext-template.md"
      description: "Override myext's report template"
      replaces: "myext-template"

    # Command overrides (AI agent workflow prompts)
    # Presets can override both core and extension commands.
    # Commands are automatically registered into all detected agent
    # directories (.claude/commands/, .gemini/commands/, etc.)

    # Override a core command:
    - type: "command"
      name: "speckit.specify"
      file: "commands/speckit.specify.md"
      description: "Custom specification command"
      replaces: "speckit.specify"

    # Override an extension command (e.g. from the "myext" extension):
    - type: "command"
      name: "speckit.myext.myextcmd"
      file: "commands/speckit.myext.myextcmd.md"
      description: "Override myext's myextcmd command with custom workflow"
      replaces: "speckit.myext.myextcmd"

    # Script templates (reserved for future use)
    # - type: "script"
    #   name: "create-new-feature"
    #   file: "scripts/bash/create-new-feature.sh"
    #   description: "Custom feature creation script"
    #   replaces: "create-new-feature"

# CUSTOMIZE: Add relevant tags (2-5 recommended)
# Used for discovery in catalog
tags:
  - "example"
  - "preset"
