This commit is contained in:
@@ -0,0 +1,60 @@
|
|||||||
|
name: Build release ZIP
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- "v*.*.*"
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Check out repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set up PHP
|
||||||
|
uses: shivammathur/setup-php@v2
|
||||||
|
with:
|
||||||
|
php-version: "8.2"
|
||||||
|
coverage: none
|
||||||
|
|
||||||
|
- name: Lint plugin
|
||||||
|
run: php -l codex-blog-abilities.php
|
||||||
|
|
||||||
|
- name: Build ZIP
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
PLUGIN_SLUG="codex-blog-abilities"
|
||||||
|
VERSION="${GITHUB_REF_NAME:-manual}"
|
||||||
|
ZIP_NAME="${PLUGIN_SLUG}-${VERSION}.zip"
|
||||||
|
|
||||||
|
rm -rf build
|
||||||
|
mkdir -p "build/${PLUGIN_SLUG}"
|
||||||
|
|
||||||
|
rsync -a \
|
||||||
|
--exclude ".git" \
|
||||||
|
--exclude ".github" \
|
||||||
|
--exclude "build" \
|
||||||
|
--exclude "*.zip" \
|
||||||
|
./ "build/${PLUGIN_SLUG}/"
|
||||||
|
|
||||||
|
cd build
|
||||||
|
zip -r "${ZIP_NAME}" "${PLUGIN_SLUG}"
|
||||||
|
|
||||||
|
- name: Upload ZIP artifact
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: codex-blog-abilities-zip
|
||||||
|
path: build/codex-blog-abilities-*.zip
|
||||||
|
|
||||||
|
- name: Create GitHub Release
|
||||||
|
if: github.ref_type == 'tag'
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ github.token }}
|
||||||
|
run: gh release create "${GITHUB_REF_NAME}" build/codex-blog-abilities-"${GITHUB_REF_NAME}".zip --generate-notes
|
||||||
@@ -24,6 +24,14 @@ The plugin registers public MCP abilities under the `codex-blog/` namespace:
|
|||||||
- `create-post`
|
- `create-post`
|
||||||
- `update-post`
|
- `update-post`
|
||||||
- `delete-post`
|
- `delete-post`
|
||||||
|
- `schedule-post`
|
||||||
|
- `upload-media-from-url`
|
||||||
|
- `set-featured-image`
|
||||||
|
- `set-featured-image-from-url`
|
||||||
|
- `remove-featured-image`
|
||||||
|
- `get-seo-meta`
|
||||||
|
- `update-seo-meta`
|
||||||
|
- `audit-post-seo`
|
||||||
- `list-terms`
|
- `list-terms`
|
||||||
- `create-term`
|
- `create-term`
|
||||||
- `update-term`
|
- `update-term`
|
||||||
@@ -47,6 +55,11 @@ For example, post edits require `edit_post`, plugin management requires
|
|||||||
The option update ability is intentionally restricted to a small allowlist of
|
The option update ability is intentionally restricted to a small allowlist of
|
||||||
common site settings. It does not expose arbitrary `update_option()` access.
|
common site settings. It does not expose arbitrary `update_option()` access.
|
||||||
|
|
||||||
|
SEO metadata updates use All in One SEO's runtime API when it is available and
|
||||||
|
also write known post-meta fallbacks for compatibility. The SEO audit is
|
||||||
|
deterministic: it checks content and metadata structure but does not generate
|
||||||
|
ranking claims.
|
||||||
|
|
||||||
Deactivation of `mcp-adapter` and this plugin is blocked by default so an MCP
|
Deactivation of `mcp-adapter` and this plugin is blocked by default so an MCP
|
||||||
client does not accidentally remove its own control plane.
|
client does not accidentally remove its own control plane.
|
||||||
|
|
||||||
@@ -72,6 +85,17 @@ Run a PHP syntax check before deploying:
|
|||||||
php -l codex-blog-abilities.php
|
php -l codex-blog-abilities.php
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Releases
|
||||||
|
|
||||||
|
Push a semantic version tag to build an installable ZIP through GitHub Actions:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git tag v0.2.0
|
||||||
|
git push origin main v0.2.0
|
||||||
|
```
|
||||||
|
|
||||||
|
The release artifact is named `codex-blog-abilities-<tag>.zip`.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
GPL-2.0-or-later.
|
GPL-2.0-or-later.
|
||||||
|
|||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
# Roadmap
|
||||||
|
|
||||||
|
This plugin is meant to become the narrow, trusted control layer for managing a
|
||||||
|
modern WordPress blog through MCP.
|
||||||
|
|
||||||
|
## 0.2.x: Publishing Essentials
|
||||||
|
|
||||||
|
- Featured image workflows from existing media and remote image URLs.
|
||||||
|
- Scheduled publishing for posts, pages, and custom post types.
|
||||||
|
- SEO metadata read/write support with All in One SEO compatibility.
|
||||||
|
- Deterministic SEO audits for drafts and published posts.
|
||||||
|
- GitHub Actions release ZIPs.
|
||||||
|
|
||||||
|
## 0.3.x: Editorial Workflows
|
||||||
|
|
||||||
|
- Draft review summaries with before/after diffs.
|
||||||
|
- Bulk post operations with dry-run support.
|
||||||
|
- Safer taxonomy workflows for category/tag cleanup.
|
||||||
|
- Redirect suggestions when slugs change.
|
||||||
|
- Media replacement and alt-text audit helpers.
|
||||||
|
|
||||||
|
## 0.4.x: Site Health And Performance
|
||||||
|
|
||||||
|
- Cache inspection helpers for common WordPress/Nginx/Cloudflare setups.
|
||||||
|
- Attachment size and responsive image diagnostics.
|
||||||
|
- Plugin inventory with update, risk, and redundancy signals.
|
||||||
|
- Read-only performance snapshots for key pages.
|
||||||
|
|
||||||
|
## Later
|
||||||
|
|
||||||
|
- Optional structured data helpers for articles, recipes, and FAQs.
|
||||||
|
- Editorial calendar resources for MCP clients.
|
||||||
|
- Backup/export preflight checks before destructive operations.
|
||||||
|
- Fine-grained capability profiles for different MCP clients.
|
||||||
+963
-10
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user