name: customize-templates context: fork description: Manage custom template overrides for vault skills model: opus
/customize-templates
Manage custom template overrides for vault skills. Copies default templates to Templates/Custom/ where they can be modified without touching the original.
Usage
/customize-templates # List all templates and override status
/customize-templates <skill-name> # Copy default template to Custom/ for editing
/customize-templates reset <skill-name> # Remove custom template (revert to default)
/customize-templates diff <skill-name> # Show differences between custom and default
Examples
/customize-templates # Show which skills have templates and which are overridden
/customize-templates adr # Copy Templates/ADR.md to Templates/Custom/adr-template.md
/customize-templates meeting # Copy Templates/Meeting.md to Templates/Custom/meeting-template.md
/customize-templates diff adr # Show what changed in the custom ADR template
/customize-templates reset meeting # Delete custom meeting template, revert to default
Skill-to-Template Mapping
| Skill | Default Template | Custom Override Path |
|---|---|---|
/adr |
Templates/ADR.md |
Templates/Custom/adr-template.md |
/meeting |
Templates/Meeting.md |
Templates/Custom/meeting-template.md |
/daily |
Templates/Daily.md |
Templates/Custom/daily-template.md |
/task |
Templates/Task.md |
Templates/Custom/task-template.md |
/person |
Templates/Person.md |
Templates/Custom/person-template.md |
/system |
Templates/System.md |
Templates/Custom/system-template.md |
/email |
Templates/Email.md |
Templates/Custom/email-template.md |
/incubator |
Templates/Incubator.md |
Templates/Custom/incubator-template.md |
/project |
Templates/Project.md |
Templates/Custom/project-template.md |
/trip |
Templates/Trip.md |
Templates/Custom/trip-template.md |
/dataasset |
Templates/DataAsset.md |
Templates/Custom/dataasset-template.md |
/book |
Templates/Book.md |
Templates/Custom/book-template.md |
Instructions
List Mode: /customize-templates
When invoked without arguments, show the override status of all templates.
- Read the skill-to-template mapping table above
- For each entry, check whether the custom override file exists at
Templates/Custom/<skill>-template.md - Display a status table:
| Skill | Default Template | Custom Override | Status |
|-------|-----------------|----------------|--------|
| adr | Templates/ADR.md | Templates/Custom/adr-template.md | default |
| meeting | Templates/Meeting.md | Templates/Custom/meeting-template.md | customised |
| daily | Templates/Daily.md | Templates/Custom/daily-template.md | default |
Use customised when the custom file exists, default when it does not.
- Summarise: "X of Y templates have custom overrides. Use
/customize-templates <skill>to create an override."
Customise Mode: /customize-templates <skill-name>
Copy a default template to the custom override location.
- Look up
<skill-name>in the mapping table - If not found, report the error and list valid skill names
- Check if a custom override already exists at
Templates/Custom/<skill>-template.md- If it exists, inform the user: "Custom template already exists at
Templates/Custom/<skill>-template.md. Edit it directly, or use/customize-templates reset <skill>to start fresh." - Stop
- If it exists, inform the user: "Custom template already exists at
- Read the default template from
Templates/<Type>.md - Copy it to
Templates/Custom/<skill>-template.md - Confirm to the user:
Copied default template to: Templates/Custom/<skill>-template.md
You can now edit this file to customise the template.
The original at Templates/<Type>.md remains unchanged.
Skills that support template loading will check for custom
templates first. See the "Template Loading" section below
for the pattern other skills should follow.
Reset Mode: /customize-templates reset <skill-name>
Remove a custom template to revert to the default.
- Look up
<skill-name>in the mapping table - Check if
Templates/Custom/<skill>-template.mdexists- If it does not exist, inform the user: "No custom template found for
<skill>. Already using the default." - Stop
- If it does not exist, inform the user: "No custom template found for
- Confirm with the user: "Remove custom template at
Templates/Custom/<skill>-template.md? This will revert to the default template. (Y/n)" - If confirmed, delete the file
- Confirm: "Removed custom template.
/<skill>will now use the default atTemplates/<Type>.md."
Diff Mode: /customize-templates diff <skill-name>
Show differences between the custom and default templates.
- Look up
<skill-name>in the mapping table - Check if
Templates/Custom/<skill>-template.mdexists- If it does not exist, inform the user: "No custom template for
<skill>. Nothing to diff." - Stop
- If it does not exist, inform the user: "No custom template for
- Run a diff between the two files:
diff -u "Templates/<Type>.md" "Templates/Custom/<skill>-template.md" - Display the diff output to the user
- If the files are identical, report: "Custom template is identical to the default. No changes detected."
Template Loading
This is the pattern that other skills should adopt to support custom templates.
When a skill creates a new note from a template, it should check for a custom override first:
- Check for custom template at
Templates/Custom/{skill-name}-template.md - If found, use it instead of the default template in
Templates/ - If not found, use the default template
Example Implementation (for skill authors)
In a skill's SKILL.md instructions, add before the template-reading step:
Check for a custom template override:
- If `Templates/Custom/<skill>-template.md` exists, read and use that template
- Otherwise, use the default `Templates/<Type>.md`
Skills are not required to adopt this pattern immediately. It is opt-in and backwards-compatible -- skills that do not check for custom templates will continue to work with their defaults.
Notes
- Custom templates live in
Templates/Custom/which is tracked by git, so overrides are version-controlled - The naming convention
<skill>-template.mdavoids conflicts with the default templates - Obsidian's Templater plugin will also pick up templates from
Templates/Custom/if the folder is configured - Only the templates listed in the mapping table above are supported; other templates in
Templates/can be edited directly