1
+ # Template Synchronization Configuration
2
+ # Defines which files should be synced from template to derived repositories
3
+
4
+ template_version : " 2.0.0"
5
+
6
+ # Files to sync (preserving project customizations)
7
+ sync_files :
8
+ # Configuration files - merge intelligently
9
+ - path : " tsconfig.json"
10
+ action : " merge"
11
+ preserve_fields : ["name", "description", "version"]
12
+
13
+ - path : " biome.json"
14
+ action : " replace"
15
+
16
+ - path : " vitest.config.ts"
17
+ action : " replace"
18
+
19
+ - path : " .editorconfig"
20
+ action : " replace"
21
+
22
+ - path : " .gitignore"
23
+ action : " merge"
24
+
25
+ - path : " .yarnrc.yml"
26
+ action : " replace"
27
+
28
+ # Shared utilities and patterns
29
+ - path : " shared/utils/fetch.ts"
30
+ action : " sync_shared_utils"
31
+ target : " src/utils/fetch.ts"
32
+
33
+ - path : " shared/patterns/mcp-server-base.ts"
34
+ action : " copy_if_missing"
35
+ target : " src/utils/mcp-server-base.ts"
36
+
37
+ # Shared dependencies
38
+ - path : " shared/dependencies/core.json"
39
+ action : " sync_dependencies"
40
+ category : " core"
41
+
42
+ - path : " shared/dependencies/optional.json"
43
+ action : " detect_and_suggest"
44
+ category : " optional"
45
+
46
+ # Package.json - merge selectively
47
+ - path : " package.json"
48
+ action : " merge"
49
+ preserve_fields :
50
+ - " name"
51
+ - " version"
52
+ - " description"
53
+ - " author"
54
+ - " repository"
55
+ - " dependencies"
56
+ - " main"
57
+ - " bin"
58
+ sync_fields :
59
+ - " devDependencies"
60
+ - " scripts.test"
61
+ - " scripts.test:watch"
62
+ - " scripts.test:ci"
63
+ - " scripts.lint"
64
+ - " scripts.lint:fix"
65
+ - " scripts.format"
66
+ - " scripts.build"
67
+ - " scripts.prepare"
68
+
69
+ # GitHub workflows - replace with project-specific substitutions
70
+ - path : " .github/workflows/ci.yml"
71
+ action : " replace"
72
+
73
+ - path : " .github/workflows/semantic-release.yml"
74
+ action : " template"
75
+ substitutions :
76
+ - pattern : " mcp-template"
77
+ replacement : " {{project_name}}"
78
+ - pattern : " @mearman/mcp-template"
79
+ replacement : " @mearman/{{project_name}}"
80
+
81
+ # Husky and commit hooks
82
+ - path : " .husky/"
83
+ action : " replace"
84
+
85
+ - path : " commitlint.config.js"
86
+ action : " replace"
87
+
88
+ # Template source files (for new projects)
89
+ - path : " src/tools/example.ts"
90
+ action : " copy_if_missing"
91
+
92
+ - path : " src/tools/example.test.ts"
93
+ action : " copy_if_missing"
94
+
95
+ - path : " src/utils/validation.ts"
96
+ action : " merge_utils"
97
+
98
+ - path : " src/utils/validation.test.ts"
99
+ action : " merge_utils"
100
+
101
+ # Files to never sync (project-specific)
102
+ ignore_files :
103
+ - " README.md"
104
+ - " CHANGELOG.md"
105
+ - " LICENSE"
106
+ - " package-lock.json"
107
+ - " yarn.lock"
108
+ - " src/index.ts"
109
+ - " src/index.test.ts"
110
+ - " src/cli.ts"
111
+ - " src/cli.test.ts"
112
+ - " src/tools/*" # Except example files
113
+ - " .template-sync-config.yml"
114
+
115
+ # Repository discovery settings
116
+ repo_discovery :
117
+ organization : " Mearman"
118
+ topic : " mcp-server"
119
+ template_marker : " .template-marker"
120
+
121
+ # Sync behavior
122
+ sync_behavior :
123
+ create_pull_request : true
124
+ auto_merge : false
125
+ pr_title : " chore: sync template updates (v{{template_version}})"
126
+ pr_body : |
127
+ ## Template Sync
128
+
129
+ This PR synchronizes updates from the mcp-template repository.
130
+
131
+ **Template Version:** {{template_version}}
132
+ **Files Updated:** {{updated_files}}
133
+
134
+ ### Changes
135
+ {{change_summary}}
136
+
137
+ ### Review Notes
138
+ - Configuration files have been updated
139
+ - Project-specific customizations are preserved
140
+ - Please review changes before merging
141
+
142
+ ---
143
+ *This PR was automatically created by the template sync workflow*
144
+
145
+ # Conflict resolution
146
+ conflict_resolution :
147
+ strategy : " create_pr_with_conflicts"
148
+ notify_on_conflicts : true
149
+ conflict_markers : true
0 commit comments