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
{{ message }}
Repository navigation
Commit e01c2cc
Browse filesBrowse the repository at this point in the historyBrowse files
fix(scaffold): born-green mcp-servers, escaped output, single pin table
Born green (#102): --type mcp-server now generates a minimal TypeScript
MCP server (src/index.ts, src/server.ts with createServer(), a vitest
test, tsconfig.json) with real tsc/vitest scripts and SDK dependencies.
ci.yml and publish.yml use npm ci plus the npm cache once a lockfile is
committed and npm install before that, so the first push is green. New
born-green clause C7, and the Validate scaffold CI job installs, builds
and tests a generated server. Verified locally, including a stdio
tools/call round trip against the built dist/index.js.
Escaping (#103): JSON and Python templates use json_str / json_inner
filters, HTML templates autoescape, and generate_repo validates input
(no control characters; no quotes, backslashes, angle brackets or
backticks in names; length limits) before writing anything.
Runtimes and docs (#121): --mcp-server with --type mcp-server is rejected
instead of mixing a Python server into a TypeScript package. Deployed
service docs no longer describe publish.yml or npm publishing, and the
mcp-server docs describe the generated layout instead of a nonexistent
src/providers/ProviderManager.
Pins (#122): ACTION_PINS in generator.py is the one source for actions/*
majors (matching the meta-repo); rendered workflows are normalized to it
and a test keeps template literals in sync. Node matrix is [22, 24] and
engines >=22 (Node 20 is end of life).
Papercuts (#123): the registry duplicate check runs before rendering, so
a duplicate leaves no partial repo; negative counts are rejected; the
printed next step uses git commit -s with double quotes; package.json
whitespace fixed.
Docs (#104): every documented scaffold test command passes --no-register,
CLAUDE.md lists the real CLI flags and outputs and warns that
registration is on by default, the --help examples include the required
--description, and the dead index.html.j2 template is removed.
New registry entries default to the developer-tooling category.
Closes#102Closes#103Closes#104Closes#121Closes#122Closes#123
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
Copy file name to clipboardExpand all lines: .github/workflows/README.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,8 +27,8 @@ Third-party actions are pinned by full commit SHA, with the version tag in a com
27
27
First-party GitHub actions (`actions/`, `github/`) may use a major-version tag:
28
28
29
29
```yaml
30
-
- uses: actions/checkout@v6
31
-
- uses: actions/setup-python@v5
30
+
- uses: actions/checkout@v7
31
+
- uses: actions/setup-python@v6
32
32
```
33
33
34
34
Rationale: tags are mutable and can be retargeted to a malicious commit. SHAs are immutable. GitHub-owned actions are exempt because GitHub's own security model protects them.
**Registration is on by default:** without `--no-register`, the scaffold appends the new repo to `registry.json` and regenerates README, CLAUDE.md, and the docs site. Always pass `--no-register` for throwaway or test runs.
65
+
66
+
Templates in `scaffold/templates/` produce: GitHub Actions workflows, README.md, AGENTS.md, CLAUDE.md, CONTRIBUTING.md, CHANGELOG.md, CODE_OF_CONDUCT.md, SECURITY.md, ROADMAP.md, LICENSE, .cursorrules, .gitignore, .gitattributes, site.json, mcp-tools.json, and dependabot.yml. Cursor plugins also get `.cursor-plugin/plugin.json` (plus an optional Python `mcp-server/`); mcp-servers get `package.json`, a buildable TypeScript skeleton (`src/`, `tsconfig.json`, vitest test), and `docs/index.html`. Generated output must meet [`standards/born-green-contract.md`](standards/born-green-contract.md).
This produces `../Cloudflare-Developer-Tools/` with the full standards-compliant layout.
27
+
This produces `../cloudflare-developer-tools/` with the full standards-compliant layout, and (because registration is on by default) adds a schema-valid entry to `registry.json` and regenerates the README, CLAUDE.md, and docs site. Pass `--no-register` only for a throwaway trial run.
0 commit comments