fix: scaffold emits type-correct workflow set and derives stale literals#74
Merged
Merged
Conversation
mcp-server repos no longer get the cursor-plugin-specific validate.yml and release.yml. Per standards/ci-cd.md, validate.yml's checks all assume a plugin.json and publish.yml replaces release.yml, so the emitted set now matches standards/drift-checker.config.json exactly (drift-check, stale, publish) plus the optional-for-both pages and label-sync. Also derive the LICENSE copyright year from the current UTC year instead of a hardcoded 2026, make plugin.json keywords type-aware (drop the stock "mcp" keyword unless the repo has an MCP server), add PyYAML to the CI test environment so the YAML-validating tests stop silently importorskip-ing, and add a born-green integration test that renders each type and asserts detected type, empty drift, current markers/pins, README counts, and the exact workflow set. Bumps VERSION 1.16.2 -> 1.16.3. Signed-off-by: fOuttaMyPaint <154358121+TMHSDigital@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.OpenSSF Scorecard
Scanned Files
|
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Review-and-improve pass on the tool-scaffolding subsystem. Ships the clear-cut defects found in the Phase-2 audit and adds a durable born-green guard.
mcp-serverrepos were emitting the cursor-plugin-specificvalidate.ymlandrelease.yml. Perstandards/ci-cd.md, validate's checks all assume aplugin.jsonandpublish.ymlreplacesrelease.yml. The renderer now emits exactly the per-type required set fromstandards/drift-checker.config.json(drift-check,stale,publish) plus the optional-for-bothpagesandlabel-sync. Orphanedvalidate.mcp.yml.j2/release.mcp.yml.j2templates deleted.2026; the CI assertion derives the year too (SSOT, Probe F)."mcp"keyword is only emitted when the repo actually has an MCP server (the smell that forced the Blender manual override).PyYAMLadded torequirements-test.txtsotest_release_doc_sync.pyandtest_composite_action_shape.pystopimportorskip-ing and actually run in CI.tests/test_scaffold_born_green.pyrenders each supported type and asserts: correct_detect_repo_type, empty drift findings, current standards markers, derived action pins, consistent README counts, and the exact emitted workflow set. This turns "born wrong" into a CI failure.Bumps
VERSION1.16.2 -> 1.16.3 (validate's version-bump-check requires it forfix:).registry.jsonuntouched.Audit findings (Phase 2)
validate.yml+release.yml(fixed). Required non-workflow files for mcp-server (publish.yml,package.json,docs/index.html) all present.1.10.0; pins@v1.16/@v1.test_snapshot_remoteintegration test stays skipped (needs a real token/network) - intentional.Flagged for your decision (not implemented)
registry.jsonentry; a repo can be born outside the catalog (the Blender gap). Registry-sync is a separate manual step (registry.json->scripts/sync_from_registry.py). Whether to auto-register or add a scaffold reminder/checklist is a design call.create-tool.pyand the Developer-Tools-MCPcreateToolpath (out of scope for edits) - the two generators can diverge with no shared source.Test plan
pytest tests/(224 passed, 1 skipped integration)pytest tests/test_scaffold_born_green.py -v(12 passed)python -m py_compile scaffold/create-tool.pypython scripts/sync_from_registry.py --checkmcp-serverworkflow set verified{drift-check, label-sync, pages, publish, stale}