Ops CLI + MCP server for AnvilWiki fork sites: metrics, SEO insights, PR-gated publishing.
Five tools with complete schemas and descriptions. Naming follows verb_noun pattern (doctor, metrics, audit, insights, submit_pr). Descriptions are detailed (100-250 chars) and explain prerequisites and use cases. All parameters have types and descriptions. However, output schemas are not documented in the visible code, only input schemas are defined. Error handling is present but generic. Tool composition is sound: each has one responsibility, and outputs should chain (site parameter is consistent). Missing: explicit output schema documentation, per-item error details for batch operations, and idempotent/destructive hints.
Run the template maintenance checks (refresh-audit, check-i18n, check-content, check-links) and return one markdown report. check-links audits dist/ — run a build first for full link coverage.
Health check for AnvilWiki site ops: wrangler.toml site config, gh CLI, GSC service account, CF Web Analytics token. Run this FIRST in any ops session before other anvil-ops tools.
Data-driven SEO action list from GSC + Cloudflare metrics plus stale-codes detection and an experimental AI Overviews page probe: low-CTR rewrites, rank 5-15 deepening, zero-impression checks, traffic-mix analysis, stale codes pages. Metrics degrade gracefully if credentials are unset (run doctor first).
Pull site traffic metrics: Google Search Console (clicks/impressions/CTR/position by page and query) + Cloudflare Web Analytics (visits by page) + AI referrals by host (chatgpt.com, perplexity.ai, ...). Requires .env credentials; run doctor first if unset.
Publish workflow changes: validates (check-content + check-i18n + build), then creates branch ops/submit-*, commits, pushes, and opens a PR via gh. REQUIRES uncommitted changes in the worktree, gh CLI, and an origin remote. Never pushes main. Validation failure = nothing committed.
Output schemas not documented. Tool descriptions explain what is returned (markdown report, metrics object, PR link) but JSON Schema for response structure is not visible in code. LLMs cannot plan downstream operations without knowing response fields.
submit_pr is a destructive tool (WRITE risk) but lacks confirmation/dry-run pattern. No idempotentHint or destructiveHint annotation visible. Agents should confirm before pushing branches and opening PRs.
Error handling returns generic OpsError text ('Error: {message}\nFix: {fix}') but does not categorize errors as retryable, user-fixable, or fatal. Agents cannot determine whether to retry, ask the user, or abort.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 2026-07-28+ | v2 |
metrics and insights accept 'days' parameter (1-365) but do not document what happens if credentials are missing. Description says 'metrics degrade gracefully' but does not specify which fields are omitted or what partial results look like.
submit_pr requires uncommitted changes, gh CLI, and origin remote but does not validate these preconditions before attempting the operation. Validation failure should be caught early with a clear error, not mid-operation.