{"slug": "how-i-published-my-first-wordpress-org-plugin-with-cursor-git-and-ai", "title": "How I published my first WordPress.org plugin with Cursor, Git, and AI", "summary": "Matt Hummel published his first WordPress.org plugin, TOCguide, a Gutenberg table-of-contents block with an optional reading guide, now live at version 1.6.3. He used Cursor (including cloud agents on the repo), Grok Bot for site and content work, and Git with GitHub Actions CI to compress weeks of PHPCS passes, readme tweaks, and packaging into hours. \"The agent drafts. I decide what merges,\" he wrote, noting that rules, reviews, and CI keep AI-assisted output from lowering the bar.", "body_md": "Today I published my first plugin on [WordPress.org](https://wordpress.org/plugins/tocguide/): **TOCguide**. It is a Gutenberg Table of Contents block with an optional Reading Guide. No accounts, no tracking, no outside APIs. The listing is live at version 1.6.3.\n\nThis is a slightly shorter Dev.to version of a longer write-up on my site. The full notes are here: [How I published my first WordPress.org plugin with Cursor, Git, and AI](https://matthummel.com/first-wordpress-org-plugin-tocguide-ai/).\n\nI am a dad of twins. I also have a full-time job and a freelance WordPress side gig. Evenings and weekends are short. Shipping a Plugin Directory product the old way — every PHPCS pass, every readme tweak, every packaging step — would have sat on a list for years.\n\nI used AI tools on purpose: **Cursor** (including cloud agents on the repo), **Grok Bot** for site and content work around matthummel.com, and normal **Git + GitHub Actions** so the machine checks stayed honest. I am not saying AI replaces judgment. I am saying it compressed weeks of typing and rework into hours I actually had.\n\nPeople are right to be careful with AI. Used poorly, it invents APIs, ships insecure PHP, and fights the WordPress.org guidelines. Used with rules, reviews, and CI, it can raise daily output without lowering the bar. Feedback and pushback are welcome in the comments.\n\nTOCguide is a single-purpose block plugin. Display name **TOCguide**. Slug, folder, text domain, shortcode, and CSS prefix are all `tocguide`. That one identity mattered for WordPress.org guideline 17 and for long-term support.\n\n`[tocguide]` shortcode, accessible `<nav>`\n**Cursor rules and cloud agents.** Under `.cursor/rules/` I keep always-on rules for block coding, brand typography, and the WordPress.org Plugin Directory FAQ plus the 18 guidelines. A `CLAUDE.md` file states the product intent in plain language. Cloud agents handled large slices as pull requests. I still read every PR. The agent drafts. I decide what merges.\n\n**Git and GitHub Actions.** CI on push and pull request runs lint, build, PHP lint, and PHPCS. Tags like `v1.6.2` fire a Release workflow that builds the plugin zip with `@wordpress/scripts` `plugin-zip` and attaches it to a GitHub Release. That zip is what goes through SVN to the directory after review.\n\n**Block architecture.** TOCguide is a dynamic block: `block.json` (apiVersion 3), `save.js` returns null, and `src/render.php` prints the nav. Heading maps live in `TOCguide_Headings` so render stays thin.\n\n**Where Grok Bot fits.** Cursor owns the plugin code. Grok Bot owns a different lane for me: site drafts, Rank Math, media, and turning repo facts into readable posts. Same person reviewing both. Different tools for code vs. site content.\n\nWhat helped:\n\nIf you build plugins with AI, or you refuse to, leave a comment. What worked, what broke review, what you would never trust an agent with.\n\n— Matt Hummel", "url": "https://wpnews.pro/news/how-i-published-my-first-wordpress-org-plugin-with-cursor-git-and-ai", "canonical_source": "https://dev.to/matthummeldev/how-i-published-my-first-wordpressorg-plugin-with-cursor-git-and-ai-118j", "published_at": "2026-09-24 01:23:01+00:00", "updated_at": "2026-09-24 01:56:30.034740+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "ai-agents"], "entities": ["Matt Hummel", "TOCguide", "WordPress.org", "Cursor", "Grok Bot", "GitHub Actions", "Git", "Gutenberg"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/how-i-published-my-first-wordpress-org-plugin-with-cursor-git-and-ai", "markdown": "https://wpnews.pro/news/how-i-published-my-first-wordpress-org-plugin-with-cursor-git-and-ai.md", "text": "https://wpnews.pro/news/how-i-published-my-first-wordpress-org-plugin-with-cursor-git-and-ai.txt", "jsonld": "https://wpnews.pro/news/how-i-published-my-first-wordpress-org-plugin-with-cursor-git-and-ai.jsonld"}}