You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(scaffold): correct mcp-server template set and release/publish chain [skip version]
mcp-server borns were inheriting cursor-plugin doc/meta boilerplate and a
broken release/publish setup. Fix at the generator source:
- Type-aware doc templates (CLAUDE, AGENTS, CONTRIBUTING, ROADMAP, site.json,
CHANGELOG, .cursorrules, .gitignore): mcp-server output now describes a
TypeScript MCP server (src/ layout, provider adapters, tool registration,
mcp-tools.json sync, stdio, npx install) with no skills/rules/.mdc/
.cursor-plugin/plugin.json/validate.yml/marketplace language.
- Emit ci.yml (build+test on Node 20/22) and a corrected release.yml for
mcp-server; the new release.mcp.yml.j2 auto-bumps from conventional commits
(npm version keeps package.json + lockfile in sync), updates the README
badge, commits with [skip version], and creates the release with a
PAT-or-fallback token so publish.yml's release event actually fires.
- publish.yml.j2: add workflow_dispatch and an already-published guard so a
re-dispatch is idempotent.
- build_registry_entry language is now type-aware (TypeScript for mcp-server).
- Born-green test asserts the new mcp-server emit set (ci.yml, release.yml)
as emitted-but-not-drift-required, so siblings without them do not go red.
No STANDARDS_VERSION or VERSION change (scaffolding is decoupled by design).
Signed-off-by: fOuttaMyPaint <tmhospitalitystrategies@gmail.com>
Copy file name to clipboardExpand all lines: scaffold/templates/AGENTS.md.j2
+56-10Lines changed: 56 additions & 10 deletions
Original file line number
Diff line number
Diff line change
@@ -21,7 +21,12 @@ This is a Cursor IDE plugin for {{ name | replace(' Developer Tools', '') | repl
21
21
This is an MCP server. It contains:
22
22
23
23
- **`src/`** -- TypeScript source code
24
+
- **`src/providers/`** -- provider adapters implementing the `Provider` interface, wired into `ProviderManager`
25
+
- **`src/tools/`** -- the registered MCP tools (stdio transport only)
24
26
- **`package.json`** -- npm package manifest (version source of truth)
27
+
- **`mcp-tools.json`** -- enumerates the MCP tools this server exposes
28
+
- **`docs/`** -- documentation and GitHub Pages site
29
+
- **`CHANGELOG.md`** -- release history
25
30
{%endif%}
26
31
27
32
## Branching and commit model
@@ -35,10 +40,10 @@ This is an MCP server. It contains:
35
40
36
41
## CI/CD workflows
37
42
43
+
{%iftype == 'cursor-plugin'%}
38
44
### `validate.yml` (runs on PR and push to main)
39
45
40
46
Checks:
41
-
{%iftype == 'cursor-plugin'%}
42
47
- JSON validity for plugin.json{%ifhas_mcp%}, mcp.json{%endif%}
43
48
44
49
- Plugin manifest required fields, kebab-case name, skill/rule file existence
@@ -47,20 +52,11 @@ Checks:
47
52
{%ifhas_mcp%}
48
53
- Python syntax for MCP server modules
49
54
{%endif%}
50
-
{%else%}
51
-
- TypeScript compilation
52
-
- Lint checks
53
-
- Test suite
54
-
{%endif%}
55
55
56
56
### `release.yml` (runs on push to main, ignores docs/md changes)
57
57
58
58
Automatic flow:
59
-
{%iftype == 'cursor-plugin'%}
60
59
1. Reads current version from `plugin.json`
61
-
{%else%}
62
-
1. Reads current version from `package.json`
63
-
{%endif%}
64
60
2. Determines bump type from conventional commit messages since last tag
65
61
3. Computes new semver version
66
62
4. Updates version files and README badge
@@ -73,6 +69,37 @@ Builds and deploys the documentation site on push to main.
73
69
### `stale.yml`
74
70
75
71
Marks issues/PRs as stale after 30 days of inactivity.
72
+
{%else%}
73
+
### `ci.yml` (runs on PR and push to main)
74
+
75
+
Builds and runs the test suite on Node 20 and 22:
76
+
- TypeScript build (`npm run build`)
77
+
- Test suite (`npm test`, vitest, offline)
78
+
79
+
### `release.yml` (runs on push to main)
80
+
81
+
Conventional-commit auto-bump: determines the bump type from commit messages since the last tag, updates `package.json`, creates a git tag and GitHub Release.
82
+
83
+
### `publish.yml` (runs on release published or workflow_dispatch)
84
+
85
+
Publishes the package to npm.
86
+
87
+
### `drift-check.yml`
88
+
89
+
Checks this repo against the ecosystem standards for drift.
90
+
91
+
### `pages.yml` (deploys docs/ to GitHub Pages)
92
+
93
+
Builds and deploys the documentation site on push to main.
94
+
95
+
### `stale.yml`
96
+
97
+
Marks issues/PRs as stale after 30 days of inactivity.
98
+
99
+
### `label-sync.yml`
100
+
101
+
Keeps repository labels in sync.
102
+
{%endif%}
76
103
77
104
## Version management
78
105
@@ -86,9 +113,15 @@ Marks issues/PRs as stale after 30 days of inactivity.
86
113
87
114
## Code conventions
88
115
116
+
{%iftype == 'cursor-plugin'%}
89
117
- No hardcoded credentials -- CI scans for password/token/api_key patterns.
90
118
- Skills must have YAML frontmatter starting with `---`.
91
119
- Rules use `.mdc` extension with frontmatter.
120
+
{%else%}
121
+
- No hardcoded credentials -- CI scans for password/token/api_key patterns.
122
+
- Conventional commits; never hand-edit the version.
123
+
- Keep `mcp-tools.json` in sync with the tools registered in `src/tools/`.
124
+
{%endif%}
92
125
93
126
## Adding content
94
127
@@ -105,6 +138,19 @@ Marks issues/PRs as stale after 30 days of inactivity.
105
138
1. Create `rules/<name>.mdc` with frontmatter (`description`, `globs`, `alwaysApply`)
106
139
2. Add the path to `plugin.json` under `"rules"`
107
140
3. Use `feat:` commit prefix
141
+
{%else%}
142
+
### New provider adapter
143
+
144
+
1. Implement the `Provider` interface in `src/providers/`
0 commit comments