plugins/plugin-development/skills/update-from-starter-template/SKILL.md
Update Mattermost plugin repositories with common files from mattermost-plugin-starter-template and fix all linter issues. Use when syncing build tooling, updating golangci-lint config, or fixing linter errors in a Mattermost plugin.
npx skillsauth add mattermost/mattermost-ai-marketplace update-from-starter-templateInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Update this Mattermost plugin repository with common build/config files from the mattermost-plugin-starter-template and fix all linter issues.
git checkout master (or main)git pullgit switch -c update-from-starter-templateFetch and compare these files from mattermost/mattermost-plugin-starter-template (master branch):
Build files:
build/manifest/*.gobuild/pluginctl/*.gobuild/setup.mkMakefileConfig files:
.editorconfig.gitattributes.github/workflows/ci.yml.gitignore.golangci.yml.nvmrcgo.mod (for Go version only)server/.gitignoreWhen updating:
go.mod if the starter template uses a newer version (compare the go directive). Also update the Go version in .github/workflows/ci.yml to match. After updating, run go mod tidy to update go.sumgithub.com/mattermost/mattermost-govet in their Makefile to check for license headers. Do NOT remove that linter. If it reports missing license headers, add them to the affected source files.make check-style to identify issuesgo install mvdan.cc/gofumpt@latestgofumpt -w server/ to auto-fix formattingmake test to verify all tests passmake check-style to confirm 0 issuesAsk the user if they want to update all direct Go dependencies. If yes:
go get -u ./... to update all direct dependenciesgo mod tidy to clean up go.summake test to verify all tests still passmake check-style to confirm 0 issuesUpdate common files from starter template and fix linter issues
Mock files have linter errors:
go generate ./...tools
Analyze a GitHub pull request for risk level and generate concrete QA recommendations. Accepts a PR URL or "owner/repo#number" reference. Uses `gh` CLI to fetch the diff and metadata, computes blast radius, scores six risk dimensions, and returns a structured JSON risk assessment. Use when the user invokes /qa-analysis:qa-analysis with a GitHub PR URL or reference, or asks for a PR risk assessment, QA recommendations, or "what should I test?" for a given pull request.
tools
Add an MCP (Model Context Protocol) server to a Mattermost plugin so the Agents plugin can call its tools. Use when implementing cross-plugin MCP, exposing AI tools from a Mattermost plugin to the Agents plugin, or wiring up the `pluginmcp` helper from mattermost-plugin-agents.
tools
Create a new Mattermost plugin from the starter template in the current directory. Use when creating a new plugin from scratch, scaffolding a Mattermost plugin, or bootstrapping a plugin project.
development
Orchestrates test-driven fixes for Mattermost security tickets (Jira/Atlassian) with a Staff Security Engineer mindset: failing secure-behavior tests first, then implementation, then security review and edge-case loops, then opening a non-draft PR that follows `.github/PULL_REQUEST_TEMPLATE.md` when present, with a vague public description (no exploit detail). Use when the user invokes /security-fix:security-fix with a mattermost.atlassian.net browse URL, MM-* security work, backend permission or authorization bugs, or asks for this security TDD workflow.