Skip to content

Commit 9fbe4ed

Browse files
authored
fix(scaffold): mcp-server docs match tag-only release; npm dependabot with held majors [skip version] (#79)
Future mcp-server borns were inheriting the abandoned conventional-commit auto-bump language and shipped without an npm dependabot config. Align the template with the tag-only model that actually ships: - AGENTS.md.j2 (branching + code-conventions), CONTRIBUTING.md.j2, and cursorrules.j2 mcp-server branches: 'CI auto-bumps / never edit the version' -> 'bump the version in your PR; CI tags and publishes it'. cursor-plugin branches keep their auto-bump wording (release-doc-sync still auto-bumps). - dependabot.yml.j2: mcp-server repos now get an npm ecosystem with the same held-major ignores baked in (zod semver-major, typescript semver-major, @types/node >=23) so a fresh born does not spawn that backlog on day one. The mcp-server template emits no src/ skeleton, so there is no hardcoded server-version literal to fix in the template (that fix applied to the already-born local-ai-mcp). No STANDARDS_VERSION/VERSION change. Signed-off-by: fOuttaMyPaint <tmhospitalitystrategies@gmail.com>
1 parent c8defd6 commit 9fbe4ed

4 files changed

Lines changed: 29 additions & 3 deletions

File tree

scaffold/templates/AGENTS.md.j2

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,17 @@ This is an MCP server. It contains:
3232
## Branching and commit model
3333

3434
- **Single branch**: `main` only. No develop/release branches.
35+
{% if type == 'cursor-plugin' %}
3536
- **Conventional commits** are required. The release workflow parses them:
3637
- `feat:` or `feat(scope):` -- triggers a **minor** version bump
3738
- `feat!:` or `BREAKING CHANGE` -- triggers a **major** version bump
3839
- Everything else (`fix:`, `chore:`, `docs:`, etc.) -- triggers a **patch** bump
40+
{% else %}
41+
- **Conventional commits** are required. Use them to decide your version bump, then apply it in your PR (`npm version <patch|minor|major> --no-git-tag-version`); `release.yml` tags and publishes that version on merge, and CI never writes to `main`:
42+
- `feat:` or `feat(scope):` -- bump the **minor** version
43+
- `feat!:` or a `BREAKING CHANGE` trailer -- bump the **major** version
44+
- everything else (`fix:`, `chore:`, `docs:`, etc.) -- bump the **patch** version
45+
{% endif %}
3946
- Commit messages should be concise and describe the "why", not the "what".
4047

4148
## CI/CD workflows
@@ -121,7 +128,7 @@ Keeps repository labels in sync.
121128
- Rules use `.mdc` extension with frontmatter.
122129
{% else %}
123130
- No hardcoded credentials -- CI scans for password/token/api_key patterns.
124-
- Conventional commits; never hand-edit the version.
131+
- Conventional commits; bump the version deliberately in your PR (CI tags and publishes it).
125132
- Keep `mcp-tools.json` in sync with the tools registered in `src/tools/`.
126133
{% endif %}
127134

scaffold/templates/CONTRIBUTING.md.j2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ Use [Conventional Commits](https://www.conventionalcommits.org/):
5757
- Add it to `mcp-tools.json`
5858
- Add vitest tests
5959

60-
Never hand-edit the version; CI auto-bumps `package.json`.
60+
Bump the version in `package.json` in your PR (e.g. `npm version <patch|minor|major> --no-git-tag-version`); CI tags and publishes it on merge.
6161

6262
## Pull Request Process
6363

scaffold/templates/cursorrules.j2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ This is a {{ type }} repository for {{ name | replace(' Developer Tools', '') |
2626
- Rules need frontmatter: description, globs, alwaysApply
2727
{% else %}
2828
- Use conventional commits (feat:, fix:, chore:, docs:)
29-
- Never manually edit the version -- CI auto-bumps package.json
29+
- Bump the version in package.json in your PR; CI tags and publishes it
3030
- Keep mcp-tools.json in sync with the registered tools
3131
- Provider adapters live in src/providers/; tools live in src/tools/
3232
{% endif %}

scaffold/templates/dependabot.yml.j2

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,25 @@ updates:
44
directory: "/"
55
schedule:
66
interval: "weekly"
7+
{% if type == 'mcp-server' %}
8+
- package-ecosystem: "npm"
9+
directory: "/"
10+
schedule:
11+
interval: "weekly"
12+
ignore:
13+
# zod 3 -> 4 is a deliberate, manual upgrade: the MCP SDK turns these
14+
# schemas into each tool's inputSchema JSON, so a major bump can change
15+
# the emitted schema without failing the test suite.
16+
- dependency-name: "zod"
17+
update-types: ["version-update:semver-major"]
18+
# Hold the TypeScript 5.x line; 6.x is a transitional major.
19+
- dependency-name: "typescript"
20+
update-types: ["version-update:semver-major"]
21+
# engines is >=20 and CI runs Node 20/22; do not pull @types/node ahead
22+
# of the supported runtimes.
23+
- dependency-name: "@types/node"
24+
versions: [">=23"]
25+
{% endif %}
726
{% if has_mcp %}
827
- package-ecosystem: "pip"
928
directory: "/mcp-server"

0 commit comments

Comments
 (0)