Thanks for taking the time to improve the Markifact plugin. This repo packages the agent, slash commands, skills, and per-client install scripts that ship to Claude Code, Claude Desktop, ChatGPT, Cursor, Codex, Gemini CLI, and Windsurf. The MCP server itself is hosted at https://api.markifact.com/mcp and is not part of this repo.
| Path | Purpose |
|---|---|
.claude-plugin/ |
Claude Code plugin manifest, marketplace catalog, icon |
agents/ |
Subagent definition (performance-marketer) |
commands/ |
User-facing slash commands |
skills/ |
Reference skills loaded by the agent |
shared/ |
Source-of-truth content compiled into per-client surfaces by scripts/sync-skills.sh |
plugins/ |
Per-client install scripts (Cursor, Codex, Windsurf) |
gemini/ |
Gemini CLI command surface |
docs/ |
Per-client install walkthroughs (linked from README + CONNECTING) |
server.json |
MCP Registry entry |
Top-level legal/security docs (PRIVACY.md, TERMS.md, SECURITY.md, SUPPORT.md, CONNECTING.md) are hand-maintained and not generated.
- Fork the repo and create a feature branch off
main. - Edit content in
shared/when changing skills or commands so every client surface stays in sync. - Run
./scripts/sync-skills.shto regenerate per-client files. - Run
./scripts/validate.shto verify JSON syntax, version match, andclaude plugin validate .. - If you bumped the plugin version, also update
CHANGELOG.mdand use./scripts/bump-version.shso all four manifests move together. - Open a pull request describing the user-visible change.
- No em or en dashes (
—or–). Use a hyphen or rephrase. Quick check:grep -nE '—|–' file.md. - Skill bodies are instructions FOR Claude, not documentation FOR the user. Use imperative voice.
- Commands describe explicit user actions. Skills describe domain knowledge.
- Keep the
displayNameanddescriptionfields inplugin.jsonandmarketplace.jsonconsistent.
Bugs and feature requests: https://github.com/markifact/markifact-mcp/issues
Security reports: see SECURITY.md.
Product questions: contact@markifact.com.