Skip to content

Commit 063e150

Browse files
authored
docs: clarify core vs optional workflows and add MCP-server variations to ci-cd.md (#61)
* docs: clarify core vs optional workflows and add MCP-server variations to ci-cd.md Signed-off-by: fOuttaMyPaint <154358121+TMHSDigital@users.noreply.github.com> * docs: clarify validate.yml not required for mcp-server in ci-cd.md The MCP-server Variations section opened with "follow the same core requirement as cursor-plugin repos," implying validate.yml was required. It is not. All validate.yml checks assume plugin.json; mcp-server repos have no plugin.json. Rewrites the section to state the three required workflows explicitly (drift-check.yml, stale.yml, publish.yml) and explains why validate.yml is absent. Also updates the doc intro to distinguish cursor-plugin (four required) from mcp-server (three required). This brings the prose into exact agreement with the machine-readable config in standards/drift-checker.config.json. Signed-off-by: fOuttaMyPaint <tmhospitalitystrategies@gmail.com> Signed-off-by: fOuttaMyPaint <154358121+TMHSDigital@users.noreply.github.com> --------- Signed-off-by: fOuttaMyPaint <154358121+TMHSDigital@users.noreply.github.com> Signed-off-by: fOuttaMyPaint <tmhospitalitystrategies@gmail.com>
1 parent 063ae7a commit 063e150

1 file changed

Lines changed: 21 additions & 37 deletions

File tree

standards/ci-cd.md

Lines changed: 21 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# CI/CD Standards
22

3-
Every developer tool repository must have these four core GitHub Actions workflows. Optional workflows are documented at the end.
3+
Cursor-plugin repositories must have the four core GitHub Actions workflows listed below. MCP-server repositories require a different set of three; see MCP-server Variations. Optional workflows are documented at the end.
44

55
## Core Workflows
66

@@ -55,49 +55,22 @@ Automatic version bump, tagging, and GitHub Release creation.
5555
- `permissions: contents: write`
5656
- `fetch-depth: 0` on checkout for full git history
5757

58-
### 3. `pages.yml`
58+
### 3. `drift-check.yml`
5959

60-
**Triggers:** `push` to `main` (paths: `docs/**`, `assets/**`), `workflow_dispatch`
60+
**Triggers:** `push` to `main`, `pull_request` to `main`, `workflow_dispatch`
6161

62-
Deploys the `docs/` directory to GitHub Pages.
62+
Runs the ecosystem drift checker against the repo's own agent files to detect version-signal drift and missing or broken required references.
6363

64-
**Static HTML approach (default):**
64+
**Required configuration:**
6565

6666
```yaml
67-
steps:
68-
- uses: actions/checkout@v4
69-
- name: Copy assets into docs
70-
run: cp -r assets docs/assets
71-
- uses: actions/configure-pages@v5
72-
- uses: actions/upload-pages-artifact@v4
73-
with:
74-
path: docs
75-
- uses: actions/deploy-pages@v5
67+
- uses: TMHSDigital/Developer-Tools-Directory/.github/actions/drift-check@v1.9
68+
with:
69+
mode: self
70+
format: gh-summary
7671
```
7772
78-
**MkDocs approach (for repos with extensive docs):**
79-
80-
```yaml
81-
steps:
82-
- uses: actions/checkout@v4
83-
- uses: actions/setup-python@v5
84-
with:
85-
python-version: "3.12"
86-
- run: pip install mkdocs-material
87-
- run: mkdocs build --strict
88-
- uses: actions/upload-pages-artifact@v3
89-
with:
90-
path: site/
91-
- uses: actions/deploy-pages@v4
92-
```
93-
94-
**Required permissions:**
95-
96-
```yaml
97-
permissions:
98-
pages: write
99-
id-token: write
100-
```
73+
`mode: self` checks only the calling repo's checkout; no cross-repo token is needed. Findings at `info` severity are advisory. Findings at `error` or `warn` severity indicate real drift that should be addressed.
10174

10275
### 4. `stale.yml`
10376

@@ -109,12 +82,23 @@ Marks issues and PRs as stale after inactivity and closes them after further ina
10982

11083
| Workflow | Purpose | When to include |
11184
| --- | --- | --- |
85+
| `pages.yml` | GitHub Pages deployment | Repos with a `docs/` site; generated by scaffold by default |
86+
| `label-sync.yml` | Auto-label PRs by changed file paths | Any repo; generated by scaffold but not required |
11287
| `codeql.yml` | Security scanning via GitHub CodeQL | Repos with substantial code (MCP servers, TypeScript packages) |
11388
| `dependency-review.yml` | PR dependency audit | Repos with external dependencies |
11489
| `release-drafter.yml` | Draft release notes automatically | Repos with frequent PRs |
11590
| `ci.yml` | Extended test/lint/build pipeline | Repos with complex test suites |
11691
| Domain-specific update | Auto-fetch external data (e.g., native DBs, API schemas) | Repos that consume external data |
11792

93+
## MCP-server Variations
94+
95+
MCP-server repos require three workflows: `drift-check.yml`, `stale.yml`, and `publish.yml`. This is a different set from cursor-plugin repos, not a superset or subset.
96+
97+
- **`validate.yml` is not required**. Every check in `validate.yml` (`plugin.json` validity, manifest fields, skill and rule file existence) assumes a `plugin.json`. MCP-server repos have no `plugin.json`, so `validate.yml` does not apply. CI validation is still expected; use `ci.yml` or an equivalent workflow suited to the server's runtime.
98+
- **`publish.yml` replaces `release.yml`**. MCP servers release via npm publish (OIDC provenance recommended; see [versioning.md](versioning.md)). A conventional-commit `release.yml` that reads `plugin.json` does not apply.
99+
- **`pages.yml` is optional**. Include it if the repo has a `docs/` site; omit it otherwise.
100+
- **`drift-check.yml` and `stale.yml` are required**, same as cursor-plugin repos.
101+
118102
## Workflow Naming
119103

120104
- Use lowercase with hyphens: `validate.yml`, `release.yml`, `pages.yml`

0 commit comments

Comments
 (0)