PLATE core library, gh extension entrypoint, and MCP server for GitHub project methodology automation
Project description
plate_core
plate_core is the shared library powering the PLATE platform tooling. It is designed to be deployed in three forms:
| Surface | Target User | How to Install |
|---|---|---|
gh plate extension |
Humans and scripts — terminal PLATE health checks | gh extension install akasper/gh-plate |
plate-mcp MCP server |
AI agents — first-class tool calls via /mcp in supported CLIs |
pip install plate-core then plate-mcp (or python -m plate_core.mcp_server) |
| CLI agent plugin (e.g. Copilot CLI, Grok Build, other standards-compliant CLIs) | Interactive sessions — /agent plate + MCP wiring (see grok-build epic for CLI-agnostic details) |
pip install plate-core then copilot plugin marketplace add akasper/plate and copilot plugin install plate-core@plate-marketplace |
All surfaces are backed by the same plate_core library, ensuring consistent behavior regardless of how you access PLATE platform features.
Licensing
This project is licensed under a source-available model (MIT base + Commons Clause License Condition v1.0). Free for non-commercial/personal/internal use and modification. Commercial use, resale, or SaaS offerings require a separate license. See the LICENSE file for the full text.
What It Does
plate_core surfaces the live state of a PLATE project by querying the GitHub API and applying PLATE methodology rules:
- Health check — label coverage, branch protection status, open Epic count
- Epic status — per-epic child issue summary via
gh plate epic status - Feature detection — optional PLATE capability detection (Playwright E2E, plugin setup, etc.) via
gh plate features - Bootstrap planning — new-project setup planning/apply baseline via
gh plate bootstrap - Baseline agents and skills — discoverable catalog via
gh plate agentsandgh plate skills - PR feedback babysitting — local monitoring/trigger flow via
gh plate pr babysit <number> - E2E Playwright tooling — scaffolding, recording, and validation tools via MCP
- MCP tools —
plate_health,plate_epic_status,plate_features,plate_bootstrap,plate_plan_epic,plate_pr_babysit,plate_resolve_review_thread,plate_agents,plate_agent,plate_skills,plate_skill,init_playwright,record_e2e_gif,validate_e2e_testsreturn structured payloads - CLI agent plugin — installable agent surface (
/agent plateor equivalent) with bundled MCP server configuration (CLI-agnostic per grok-build epic)
Quick Start
As a Python package (for plate-mcp + library use)
pip install plate-core
plate-mcp # stdio MCP server for agents
python -c "import plate_core; print(plate_core.__version__)"
As a gh extension (v1 baseline)
gh extension install akasper/gh-plate
gh plate health # PLATE health check for the current repo
gh plate health --repo akasper/plate --json
gh plate epic status --repo akasper/plate --json
gh plate features --repo akasper/plate --json
gh plate agents list --json
gh plate agents show research-agent --json
gh plate skills list --json
gh plate skills show crud-projects --json
gh plate bootstrap --repo akasper/plate --json # dry-run plan
gh plate bootstrap --repo akasper/plate --apply # apply supported steps
gh plate pr babysit 112 --repo akasper/plate --json
The gh plate extension is published from a dedicated thin repository (akasper/gh-plate) to satisfy GitHub CLI's requirement that extension repository names start with gh-. The complete implementation, the plate-core Python package on PyPI, the MCP server entrypoint, the plugin assets, and all source live in this repository (akasper/plate). Users and scripts install the extension with gh extension install akasper/gh-plate.
As an MCP server (v1 baseline; works in Copilot CLI, Grok Build, and other compatible agents)
# In a supported CLI agent session (e.g. Copilot CLI):
/mcp connect /absolute/path/to/plate/plate-mcp
# Then call tools: plate_health, plate_epic_status, plate_features, plate_bootstrap, plate_plan_epic, plate_pr_babysit, plate_resolve_review_thread, plate_agents, plate_agent, plate_skills, plate_skill
As a CLI agent plugin (Copilot CLI, Grok Build, and other standards-compliant CLIs)
# Install the runtime prerequisite first so the plugin's MCP command is available.
pip install plate-core
# Register this repository as a marketplace, then install the plugin from it.
copilot plugin marketplace add akasper/plate
copilot plugin install plate-core@plate-marketplace
# Grok Build (TUI / CLI):
grok plugin marketplace add akasper/plate
grok plugin install plate-core@plate-marketplace --trust
# Then enable the plugin, reload the TUI (`r` in Plugins), and verify:
# grok inspect # expect plate-core skills, plate agent, and plate-core (stdio) MCP
# Or reinstall from a local checkout during development:
# grok plugin install /absolute/path/to/plate/.plugin --trust
# In a new session with your CLI agent, invoke the plate agent (see your agent's docs for the exact command, e.g. /agent plate)
For local development or direct-source installation, these equivalent commands also work (adjust for your CLI):
copilot plugin install /absolute/path/to/plate
# or
copilot plugin install akasper/plate:plugin
# Grok equivalent: grok plugin install /absolute/path/to/plate --trust
The marketplace flow is the supported public install path. The plugin still expects the plate-mcp command to be available on PATH, which is why pip install plate-core remains a prerequisite until publication/runtime provisioning is further automated. There is no separate GitHub-run submission process for Copilot CLI or Grok Build marketplaces: this repository itself becomes the marketplace once the manifest is merged to the default branch and you treat that path as the supported public install channel.
Marketplace release checklist
Before cutting the release that includes this marketplace path:
- Confirm
.github/plugin/marketplace.json(Copilot) and.grok-plugin/marketplace.json(Grok) still point at the intended plugin source (.plugin/for the committed payload used by generator + e2e). - If baseline catalog skills changed, run
python3 scripts/generate-plugin-skills.py(and commit) soplugin/SKILLS.md,plugin/skills/*/SKILL.md, and the mirrored.plugin/copies stay in sync; thenpython3 scripts/generate-plugin-skills.py --check. - Re-run
python3 scripts/generate-grok-plugin-index.py(and commit) ifplugin/agents/,plugin/skills/,.mcp.json, or manifest keys changed; thenpython3 scripts/generate-grok-plugin-index.py --check. - Verify the runtime prerequisite is available with
pip install plate-core. - Smoke-test the pre-launch install flows (Copilot + generator for Grok):
copilot plugin marketplace add akasper/plate copilot plugin install plate-core@plate-marketplace python3 scripts/generate-plugin-skills.py --check python3 scripts/generate-grok-plugin-index.py --check
- Verify first-class media + adoption proof in packaging: release notes include ## Media Evidence with videos/GIFs (labeled "explanatory for new Feature, generated from automated test run via record_e2e_gif"), and
gh plate release statussurfaces github_release_* state (exists/is_latest/url) for cut/finalize/packaging verification under #654. - Complete the human-owned publication tasks tracked in #380 and #381.
- Fold the finished Epic into the active release issue (#376) and cut the release through the normal PLATE release ceremony.
See the grok-build epic for full CLI-agnostic details and verification that no vendor-specific language remains in the plugin files. (This release also closes the Grok marketplace discovery gap reported in #570.)
Playwright E2E Testing
plate_core includes tools for scaffolding, validating, and managing Playwright E2E tests:
MCP Tools
-
init_playwright— Initialize Playwright E2E setup in a repository# Copy config, test specs, and recording scripts from plate's template payload @copilot init-playwright repo_path="/path/to/repo"
-
validate_e2e_tests— Verify Playwright setup and detect missing configuration@copilot validate-e2e-tests repo_path="/path/to/repo"
-
record_e2e_gif— Record and generate demo GIF from a Playwright E2E test@copilot record-e2e-gif repo_path="/path/to/repo" test_name="feature-name" quality="medium"
CLI Feature Detection
Check if a repo has Playwright E2E setup:
gh plate features --repo owner/repo
Output example:
Repo: akasper/plate_template
Autonomous Mode.................... ✅ ENABLED
Platform Monitor Workflow.......... ⏹️ NOT CONFIGURED
Copilot Plugin (.plugin)........... ✅ ENABLED
Copilot Plugin (plugin)............ ✅ ENABLED
MCP Manifest (.plugin)............. ✅ ENABLED
MCP Manifest (plugin).............. ✅ ENABLED
Per-feature change files........... ✅ ENABLED
Release notes..................... ✅ ENABLED
Baseline Agents Catalog........... ✅ ENABLED
Playwright E2E Testing............. ✅ ENABLED
Runtime layout (v1 baseline)
plate/
├── .plugin/ # root plugin discovery manifest + agent + MCP config
├── .github/plugin/ # Copilot CLI marketplace manifest
├── plugin/ # plugin source surface (mirrors .plugin metadata)
├── src/plate_core/
│ ├── github_client.py # gh api wrapper
│ ├── health.py # shared health logic
│ ├── cli.py # shared CLI command handlers
│ ├── features.py # feature detection (local and remote)
│ ├── agent_guidance.py # agent prompting strategies
│ ├── baseline_catalog.py # baseline agent/skill catalog loader
│ ├── mcp/tools.py # Playwright E2E MCP tools
│ ├── mcp_server.py # MCP stdio server (health, epic, catalog, e2e tools)
│ └── data/
│ └── baseline_catalog.yml
├── gh-plate # gh extension entrypoint
└── plate-mcp # MCP server entrypoint
Contributing
This repository follows the PLATE methodology. See AGENTS.md for agent operating rules and the full PLATE workflow.
Keeping Your Fork Current
If your repository started from an older plate_template release and has local process customizations, avoid full-file replacement during upgrades.
Use this sync flow:
- Fetch upstream template updates (
git fetch upstream) and review diffs forAGENTS.md,.agentic/skills.yml,.agentic/releases/, and workflows in.github/workflows/that containPLATES-COREmarkers. - Import only upstream-owned
PLATES-COREsections into your customized files. - Preserve local sections outside those markers.
- Open an atomic PR with the correct PR type label and issue linkage (
Closes #Nwhen applicable). - Update per-feature change files in
.agentic/releases/with imported behavior and evidence. - Run required checks before merge.
This keeps downstream repos aligned with new core PLATE behavior without erasing project-specific policy.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file plate_core-0.7.2.tar.gz.
File metadata
- Download URL: plate_core-0.7.2.tar.gz
- Upload date:
- Size: 37.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
05dd9bdd6bb3cea7192d85591a893ed3c5639b60c16270122b888a9608cc3393
|
|
| MD5 |
47839d6c5678ef22f7be6e8e9d712558
|
|
| BLAKE2b-256 |
7534f6bc1589f0460763f5a3f8665c69f88fdf8f8d87f176bb76d174e241bf99
|
File details
Details for the file plate_core-0.7.2-py3-none-any.whl.
File metadata
- Download URL: plate_core-0.7.2-py3-none-any.whl
- Upload date:
- Size: 37.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b3841f31122ea6ccaa6fbb065c65b8b226c54647626fdfc8798a160cc11c189
|
|
| MD5 |
6f0491d60ad94a25f736739b0ae852ce
|
|
| BLAKE2b-256 |
3d7f5ca51ad7a84178551e835d667444368a3a1d97627a4e90745de518004dc3
|