template

  1. Implement apply
  2. Watch
  3. Custom resolvers (.editorconfig, .gitignore, .gitattributes, etc.)

apply

  1. calculate the source and target directory
  2. gather ignored directories and files
  3. recursively copy each file for each file, copy, template, or use resolver on it