wordpress-agent-kit 0.3.2 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/blueprint/SKILL.md +418 -0
- package/.agents/skills/wordpress-router/SKILL.md +52 -0
- package/.agents/skills/wordpress-router/references/decision-tree.md +55 -0
- package/.agents/skills/wp-abilities-api/SKILL.md +108 -0
- package/.agents/skills/wp-abilities-api/references/delegate-helper-pattern.md +241 -0
- package/.agents/skills/wp-abilities-api/references/domain-vs-projection.md +113 -0
- package/.agents/skills/wp-abilities-api/references/error-code-vocabulary.md +123 -0
- package/.agents/skills/wp-abilities-api/references/grouping-heuristic.md +89 -0
- package/.agents/skills/wp-abilities-api/references/input-schema-gotchas.md +265 -0
- package/.agents/skills/wp-abilities-api/references/php-registration.md +94 -0
- package/.agents/skills/wp-abilities-api/references/plugin-family-patterns.md +233 -0
- package/.agents/skills/wp-abilities-api/references/rest-api.md +13 -0
- package/.agents/skills/wp-abilities-api/references/shared-core-service.md +184 -0
- package/.agents/skills/wp-abilities-audit/SKILL.md +199 -0
- package/.agents/skills/wp-abilities-audit/references/audit-schema.md +300 -0
- package/.agents/skills/wp-abilities-audit/references/capability-gate-tracing.md +197 -0
- package/.agents/skills/wp-abilities-audit/references/controller-enumeration.md +116 -0
- package/.agents/skills/wp-abilities-verify/SKILL.md +215 -0
- package/.agents/skills/wp-abilities-verify/references/annotation-correctness.md +154 -0
- package/.agents/skills/wp-abilities-verify/references/audit-schema-validation.md +131 -0
- package/.agents/skills/wp-abilities-verify/references/permission-roundtrip.md +190 -0
- package/.agents/skills/wp-abilities-verify/references/runtime-harness.md +462 -0
- package/.agents/skills/wp-abilities-verify/references/schema-lints.md +118 -0
- package/.agents/skills/wp-abilities-verify/references/static-enumeration.md +126 -0
- package/.agents/skills/wp-block-development/SKILL.md +175 -0
- package/.agents/skills/wp-block-development/references/attributes-and-serialization.md +22 -0
- package/.agents/skills/wp-block-development/references/block-json.md +49 -0
- package/.agents/skills/wp-block-development/references/creating-new-blocks.md +46 -0
- package/.agents/skills/wp-block-development/references/debugging.md +36 -0
- package/.agents/skills/wp-block-development/references/deprecations.md +24 -0
- package/.agents/skills/wp-block-development/references/dynamic-rendering.md +23 -0
- package/.agents/skills/wp-block-development/references/inner-blocks.md +25 -0
- package/.agents/skills/wp-block-development/references/registration.md +30 -0
- package/.agents/skills/wp-block-development/references/supports-and-wrappers.md +18 -0
- package/.agents/skills/wp-block-development/references/tooling-and-testing.md +21 -0
- package/.agents/skills/wp-block-development/scripts/list_blocks.mjs +121 -0
- package/.agents/skills/wp-block-themes/SKILL.md +117 -0
- package/.agents/skills/wp-block-themes/references/creating-new-block-theme.md +37 -0
- package/.agents/skills/wp-block-themes/references/debugging.md +24 -0
- package/.agents/skills/wp-block-themes/references/patterns.md +18 -0
- package/.agents/skills/wp-block-themes/references/style-variations.md +14 -0
- package/.agents/skills/wp-block-themes/references/templates-and-parts.md +16 -0
- package/.agents/skills/wp-block-themes/references/theme-json.md +59 -0
- package/.agents/skills/wp-block-themes/scripts/detect_block_themes.mjs +117 -0
- package/.agents/skills/wp-interactivity-api/SKILL.md +180 -0
- package/.agents/skills/wp-interactivity-api/references/debugging.md +29 -0
- package/.agents/skills/wp-interactivity-api/references/directives-quickref.md +30 -0
- package/.agents/skills/wp-interactivity-api/references/server-side-rendering.md +310 -0
- package/.agents/skills/wp-performance/SKILL.md +147 -0
- package/.agents/skills/wp-performance/references/autoload-options.md +24 -0
- package/.agents/skills/wp-performance/references/cron.md +20 -0
- package/.agents/skills/wp-performance/references/database.md +20 -0
- package/.agents/skills/wp-performance/references/http-api.md +15 -0
- package/.agents/skills/wp-performance/references/measurement.md +21 -0
- package/.agents/skills/wp-performance/references/object-cache.md +24 -0
- package/.agents/skills/wp-performance/references/query-monitor-headless.md +38 -0
- package/.agents/skills/wp-performance/references/server-timing.md +22 -0
- package/.agents/skills/wp-performance/references/wp-cli-doctor.md +24 -0
- package/.agents/skills/wp-performance/references/wp-cli-profile.md +32 -0
- package/.agents/skills/wp-performance/scripts/perf_inspect.mjs +128 -0
- package/.agents/skills/wp-phpstan/SKILL.md +98 -0
- package/.agents/skills/wp-phpstan/references/configuration.md +52 -0
- package/.agents/skills/wp-phpstan/references/third-party-classes.md +76 -0
- package/.agents/skills/wp-phpstan/references/wordpress-annotations.md +124 -0
- package/.agents/skills/wp-phpstan/scripts/phpstan_inspect.mjs +263 -0
- package/.agents/skills/wp-playground/SKILL.md +233 -0
- package/.agents/skills/wp-playground/references/blueprints.md +36 -0
- package/.agents/skills/wp-playground/references/cli-commands.md +39 -0
- package/.agents/skills/wp-playground/references/debugging.md +16 -0
- package/.agents/skills/wp-playground/references/e2e-playwright.md +115 -0
- package/.agents/skills/wp-plugin-development/SKILL.md +113 -0
- package/.agents/skills/wp-plugin-development/references/data-and-cron.md +19 -0
- package/.agents/skills/wp-plugin-development/references/debugging.md +19 -0
- package/.agents/skills/wp-plugin-development/references/lifecycle.md +33 -0
- package/.agents/skills/wp-plugin-development/references/security.md +29 -0
- package/.agents/skills/wp-plugin-development/references/settings-api.md +22 -0
- package/.agents/skills/wp-plugin-development/references/structure.md +16 -0
- package/.agents/skills/wp-plugin-development/scripts/detect_plugins.mjs +122 -0
- package/.agents/skills/wp-plugin-directory-guidelines/SKILL.md +133 -0
- package/.agents/skills/wp-plugin-directory-guidelines/references/gpl-compliance.md +217 -0
- package/.agents/skills/wp-plugin-directory-guidelines/references/guideline-review-checklist.md +592 -0
- package/.agents/skills/wp-plugin-directory-guidelines/references/naming-rules.md +121 -0
- package/.agents/skills/wp-project-triage/SKILL.md +39 -0
- package/.agents/skills/wp-project-triage/references/triage.schema.json +143 -0
- package/.agents/skills/wp-project-triage/scripts/detect_wp_project.mjs +610 -0
- package/.agents/skills/wp-rest-api/SKILL.md +115 -0
- package/.agents/skills/wp-rest-api/references/authentication.md +18 -0
- package/.agents/skills/wp-rest-api/references/custom-content-types.md +20 -0
- package/.agents/skills/wp-rest-api/references/discovery-and-params.md +20 -0
- package/.agents/skills/wp-rest-api/references/responses-and-fields.md +30 -0
- package/.agents/skills/wp-rest-api/references/routes-and-endpoints.md +36 -0
- package/.agents/skills/wp-rest-api/references/schema.md +22 -0
- package/.agents/skills/wp-wpcli-and-ops/SKILL.md +126 -0
- package/.agents/skills/wp-wpcli-and-ops/references/automation.md +30 -0
- package/.agents/skills/wp-wpcli-and-ops/references/cron-and-cache.md +23 -0
- package/.agents/skills/wp-wpcli-and-ops/references/debugging.md +17 -0
- package/.agents/skills/wp-wpcli-and-ops/references/multisite.md +22 -0
- package/.agents/skills/wp-wpcli-and-ops/references/packages-and-updates.md +22 -0
- package/.agents/skills/wp-wpcli-and-ops/references/safety.md +30 -0
- package/.agents/skills/wp-wpcli-and-ops/references/search-replace.md +40 -0
- package/.agents/skills/wp-wpcli-and-ops/scripts/wpcli_inspect.mjs +90 -0
- package/.agents/skills/wp-wpengine/SKILL.md +398 -0
- package/.agents/skills/wp-wpengine/references/ci-gate.md +469 -0
- package/.agents/skills/wp-wpengine/references/github-actions-deploy.md +736 -0
- package/.agents/skills/wp-wpengine/scripts/ci-gate.sh +118 -0
- package/.agents/skills/wp-wpengine/scripts/wpe-check.sh +89 -0
- package/.agents/skills/wp-wpengine/scripts/wpe-preflight.sh +104 -0
- package/.agents/skills/wpds/SKILL.md +59 -0
- package/.github/agents/wp-architect.agent.md +1 -2
- package/.github/copilot-instructions.md +1 -1
- package/.github/instructions/wordpress-workflow.instructions.md +3 -3
- package/.github/skills/wp-playground/SKILL.md +132 -1
- package/.github/skills/wp-playground/references/e2e-playwright.md +115 -0
- package/.github/skills/wp-wpengine/SKILL.md +127 -0
- package/AGENTS.md +22 -10
- package/AGENTS.template.md +20 -10
- package/README.md +93 -86
- package/dist/cli.js +5 -1
- package/dist/commands/clean-skills.js +64 -0
- package/dist/commands/setup.js +6 -2
- package/dist/commands/sync-skills.js +3 -0
- package/dist/lib/api.js +176 -4
- package/dist/lib/installer.js +166 -2
- package/extensions/wp-agent-kit/index.ts +185 -10
- package/package.json +10 -14
- package/skills-custom/wp-wpengine/SKILL.md +398 -0
- package/skills-custom/wp-wpengine/references/ci-gate.md +469 -0
- package/skills-custom/wp-wpengine/references/github-actions-deploy.md +736 -0
- package/skills-custom/wp-wpengine/scripts/ci-gate.sh +118 -0
- package/skills-custom/wp-wpengine/scripts/wpe-check.sh +89 -0
- package/skills-custom/wp-wpengine/scripts/wpe-preflight.sh +104 -0
- package/.github/workflows/ci.yml +0 -44
- package/.husky/pre-commit +0 -7
- package/CLI_REVIEW.md +0 -250
- package/biome.json +0 -39
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
## Plugin Naming Rules (Guideline 17 + Plugin Check Namer)
|
|
2
|
+
|
|
3
|
+
Sources: [Plugin Header Requirements](https://developer.wordpress.org/plugins/plugin-basics/header-requirements/#header-fields) · [Detailed Plugin Guidelines §17](https://developer.wordpress.org/plugins/wordpress-org/detailed-plugin-guidelines/) · Plugin Check `Plugin_Header_Fields_Check`, `Trademarks_Check`, and AI Namer prompts.
|
|
4
|
+
|
|
5
|
+
### Technical Name Requirements
|
|
6
|
+
|
|
7
|
+
| Rule | Details | Error Code |
|
|
8
|
+
|------|---------|------------|
|
|
9
|
+
| Must not use placeholder names | `"Plugin Name"` or `"My Basics Plugin"` are rejected | `plugin_header_invalid_plugin_name` |
|
|
10
|
+
| Minimum 5 alphanumeric characters | Name must contain at least 5 latin letters (a–Z) or digits | `plugin_header_unsupported_plugin_name` (new plugins only) |
|
|
11
|
+
| Name must exist in readme | `=== Plugin Name ===` header required and must be valid | `invalid_plugin_name` / `empty_plugin_name` |
|
|
12
|
+
| Name must match across files | Readme and plugin header name must match (case/entity-decoded) | `mismatched_plugin_name` (warning) |
|
|
13
|
+
|
|
14
|
+
**Slug rules:** lowercase, hyphens only, max 50 characters, derived from display name.
|
|
15
|
+
|
|
16
|
+
### Naming Quality Rules (AI Namer)
|
|
17
|
+
|
|
18
|
+
**1. No generic names**
|
|
19
|
+
Names must be specific enough to distinguish the plugin from ~60,000 others.
|
|
20
|
+
- Rejected: "Shipping", "Ecommerce Tracker", "SEO Plugin"
|
|
21
|
+
- Accepted: "ShipGlex Shipping", "Shipping Tracker for UPS"
|
|
22
|
+
- Exception: invented/original terms are allowed if placed at the **beginning** of the name
|
|
23
|
+
|
|
24
|
+
**2. Name must relate to plugin function**
|
|
25
|
+
The display name must correlate with what the plugin actually does. Exception: original invented terms.
|
|
26
|
+
|
|
27
|
+
**3. No keyword stuffing**
|
|
28
|
+
Unnaturally repeating keywords in the name for SEO purposes is not allowed.
|
|
29
|
+
|
|
30
|
+
**4. No names too similar to existing plugins**
|
|
31
|
+
Checked against the WordPress.org Plugin Directory. If similar, suggest a distinctive term (author name, brand, or crafted term) at the beginning.
|
|
32
|
+
|
|
33
|
+
**5. Trademark/project name usage rules**
|
|
34
|
+
Trademarks and project names are allowed **only** after connectors like `for`, `with`, `using`, or `and`:
|
|
35
|
+
- ✅ `"My Plugin for WooCommerce"` — trademark after "for", no affiliation implied
|
|
36
|
+
- ✅ `"Pricing Rates for WooCommerce"` — OK
|
|
37
|
+
- ❌ `"WooCommerce Pricing Rates"` — starts with trademark, implies affiliation
|
|
38
|
+
- ❌ `"Nicedev Paypal for WooCommerce"` — PayPal is not after a no-affiliation structure; correct form: `"Nicedev Payment Gateway with PayPal for WooCommerce"`
|
|
39
|
+
- ❌ `"PricingPress"` — portmanteau using `-Press` (WordPress trademark)
|
|
40
|
+
- Check for portmanteaus: names blending a trademark (e.g., `-Press`, `Woo-`) are not allowed
|
|
41
|
+
|
|
42
|
+
**6. Banned and discouraged terms**
|
|
43
|
+
|
|
44
|
+
Banned/discouraged terms cannot appear **anywhere** in the name — not even after `for`/`with`.
|
|
45
|
+
|
|
46
|
+
#### Banned Terms (hard block)
|
|
47
|
+
|
|
48
|
+
| Term | Reason |
|
|
49
|
+
|------|--------|
|
|
50
|
+
| Facebook, FB, fbook, Whatsapp, WA, Instagram, Insta, Gram, INS, Threads, Oculus | Meta legal request: no use in name, slug, or banners |
|
|
51
|
+
| WordPress, wordpess, wpress | WordPress trademark; redundant in the WP.org directory |
|
|
52
|
+
| WP (as standalone/redundant, e.g., "for WP") | Same as WordPress — redundant in context |
|
|
53
|
+
| Trustpilot | Direct request from trademark holder |
|
|
54
|
+
| Binance Pay | Direct request from trademark holder |
|
|
55
|
+
|
|
56
|
+
#### Discouraged Terms (must be removed)
|
|
57
|
+
|
|
58
|
+
| Term | Reason |
|
|
59
|
+
|------|--------|
|
|
60
|
+
| plugin (when redundant, e.g., "SEO Plugin") | Redundant; forbidden as first word |
|
|
61
|
+
| best, #1, First, Perfect, The most | Superlatives / unverifiable comparative claims |
|
|
62
|
+
| free (when redundant, e.g., "(free)") | All directory plugins are free — redundant |
|
|
63
|
+
| WP, W P (at beginning or end, referring to WordPress) | WordPress abbreviation — redundant |
|
|
64
|
+
| Gutenberg, gberg, guten, berg | Creates confusion; block editor is the current name |
|
|
65
|
+
|
|
66
|
+
### Trademark Slug List (static check — `Trademarks_Check`)
|
|
67
|
+
|
|
68
|
+
The following slugs are statically blocked. Terms ending in `-` cannot **begin** a slug; terms without `-` cannot appear **anywhere** in the slug. `woocommerce` (no dash) is allowed only as `for-woocommerce`, `with-woocommerce`, `using-woocommerce`, or `and-woocommerce`.
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
adobe-, adsense-, advanced-custom-fields-, adwords-, akismet-,
|
|
72
|
+
all-in-one-wp-migration, amazon-, android-, apple-, applenews-, applepay-,
|
|
73
|
+
aws-, azon-, bbpress-, bing-, booking-com, bootstrap-, buddypress-,
|
|
74
|
+
chatgpt-, chat-gpt-, cloudflare-, contact-form-7-, cpanel-, disqus-, divi-,
|
|
75
|
+
dropbox-, easy-digital-downloads-, elementor-, envato-,
|
|
76
|
+
fbook, facebook, fb-, fb-messenger, fedex-, feedburner, firefox-,
|
|
77
|
+
fontawesome-, font-awesome-, ganalytics-, gberg, github-, givewp-, google-,
|
|
78
|
+
googlebot-, googles-, gravity-form-, gravity-forms-, gravityforms-, gtmetrix-,
|
|
79
|
+
gutenberg, guten-, hubspot-, ig-, insta-, instagram, internet-explorer-,
|
|
80
|
+
ios-, jetpack-, macintosh-, macos-, mailchimp-, microsoft-,
|
|
81
|
+
ninja-forms-, oculus, onlyfans-, only-fans-, opera-, paddle-, paypal-,
|
|
82
|
+
pinterest-, plugin, skype-, stripe-, tiktok-, tik-tok-, trustpilot,
|
|
83
|
+
twitch-, twitter-, tweet, ups-, usps-, vvhatsapp, vvcommerce, vva-, vvoo,
|
|
84
|
+
wa-, webpush-vn, wh4tsapps, whatsapp, whats-app, watson, windows-,
|
|
85
|
+
wocommerce, woocom-, woocommerce, woocomerce, woo-commerce, woo-, wo-,
|
|
86
|
+
wordpress, wordpess, wpress, wp, wc, wp-mail-smtp-, yandex-, yahoo-,
|
|
87
|
+
yoast, youtube-, you-tube-
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**Portmanteaus also blocked:** any slug starting with `woo` (case-insensitive) — e.g., `woopress`, `wooland`.
|
|
91
|
+
|
|
92
|
+
### Naming Examples
|
|
93
|
+
|
|
94
|
+
| Plugin Name | Verdict | Reason |
|
|
95
|
+
|-------------|---------|--------|
|
|
96
|
+
| `Shipping` | ❌ | Too generic |
|
|
97
|
+
| `Ecommerce Tracker` | ❌ | Too generic, no context |
|
|
98
|
+
| `Shipping Tracker for UPS` | ✅ | Descriptive + context |
|
|
99
|
+
| `ShipGlex Shipping` | ✅ | Invented term at beginning |
|
|
100
|
+
| `WooCommerce Pricing Rates` | ❌ | Starts with trademark |
|
|
101
|
+
| `Pricing Rates for WooCommerce` | ✅ | Trademark after "for" |
|
|
102
|
+
| `PricingPress` | ❌ | `-Press` portmanteau |
|
|
103
|
+
| `PRT Text editor for WP` | ❌ | WP is banned/redundant; correct: `PRT Text editor` |
|
|
104
|
+
| `Nicedev Paypal for WooCommerce` | ❌ | PayPal not after no-affiliation structure |
|
|
105
|
+
| `Nicedev Payment Gateway with PayPal for WooCommerce` | ✅ | Correct structure |
|
|
106
|
+
| `Best SEO Plugin for WordPress` | ❌ | Superlative + banned terms |
|
|
107
|
+
| `My Free Slider` | ❌ | "free" is redundant/discouraged |
|
|
108
|
+
|
|
109
|
+
### Naming Review Checklist (pre-submission)
|
|
110
|
+
|
|
111
|
+
- [ ] Name is not a placeholder (`Plugin Name`, `My Basics Plugin`)
|
|
112
|
+
- [ ] Name has at least 5 alphanumeric characters
|
|
113
|
+
- [ ] Name matches between plugin header and readme
|
|
114
|
+
- [ ] Name is specific — not too generic for 60,000+ plugins
|
|
115
|
+
- [ ] Name relates to what the plugin actually does
|
|
116
|
+
- [ ] No keyword stuffing
|
|
117
|
+
- [ ] No banned terms anywhere (Meta brands, WordPress/WP redundant, Trustpilot, Binance Pay)
|
|
118
|
+
- [ ] No discouraged terms (Plugin, Best/#1, Free, Gutenberg, standalone WP)
|
|
119
|
+
- [ ] Trademarks/project names only appear after `for`/`with`/`using`/`and`
|
|
120
|
+
- [ ] No portmanteaus using WordPress or WooCommerce trademarks
|
|
121
|
+
- [ ] Slug is lowercase, hyphens only, max 50 chars, no blocked terms
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wp-project-triage
|
|
3
|
+
description: "Use when you need a deterministic inspection of a WordPress repository (plugin/theme/block theme/WP core/Gutenberg/full site) including tooling/tests/version hints, and a structured JSON report to guide workflows and guardrails."
|
|
4
|
+
license: GPL-2.0-or-later
|
|
5
|
+
compatibility: "Targets WordPress 6.9+ (PHP 7.2.24+). Filesystem-based agent with bash + node. Some workflows require WP-CLI."
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# WP Project Triage
|
|
9
|
+
|
|
10
|
+
## When to use
|
|
11
|
+
|
|
12
|
+
Use this skill to quickly understand what kind of WordPress repo you’re in and what commands/conventions to follow before making changes.
|
|
13
|
+
|
|
14
|
+
## Inputs required
|
|
15
|
+
|
|
16
|
+
- Repo root (current working directory).
|
|
17
|
+
|
|
18
|
+
## Procedure
|
|
19
|
+
|
|
20
|
+
1. Run the detector (prints JSON to stdout):
|
|
21
|
+
- `node skills/wp-project-triage/scripts/detect_wp_project.mjs`
|
|
22
|
+
2. If you need the exact output contract, read:
|
|
23
|
+
- `skills/wp-project-triage/references/triage.schema.json`
|
|
24
|
+
3. Use the report to select workflow guardrails:
|
|
25
|
+
- project kind(s)
|
|
26
|
+
- PHP/Node tooling present
|
|
27
|
+
- tests present
|
|
28
|
+
- version hints and sources
|
|
29
|
+
4. If the report is missing signals you need, update the detector rather than guessing.
|
|
30
|
+
|
|
31
|
+
## Verification
|
|
32
|
+
|
|
33
|
+
- The JSON should parse and include: `project.kind`, `signals`, and `tooling`.
|
|
34
|
+
- Re-run after changes that affect structure/tooling (adding `theme.json`, `block.json`, build config).
|
|
35
|
+
|
|
36
|
+
## Failure modes / debugging
|
|
37
|
+
|
|
38
|
+
- If it reports `unknown`, check whether the repo root is correct.
|
|
39
|
+
- If scanning is slow, add/extend ignore directories in the script.
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://agentskills.local/wp-project-triage/triage.schema.json",
|
|
4
|
+
"title": "WP Project Triage Report",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": ["tool", "project", "signals", "tooling"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"tool": {
|
|
9
|
+
"type": "object",
|
|
10
|
+
"required": ["name", "version"],
|
|
11
|
+
"properties": {
|
|
12
|
+
"name": { "type": "string", "const": "detect_wp_project" },
|
|
13
|
+
"version": { "type": "string" }
|
|
14
|
+
},
|
|
15
|
+
"additionalProperties": true
|
|
16
|
+
},
|
|
17
|
+
"project": {
|
|
18
|
+
"type": "object",
|
|
19
|
+
"required": ["kind"],
|
|
20
|
+
"properties": {
|
|
21
|
+
"kind": {
|
|
22
|
+
"type": "array",
|
|
23
|
+
"items": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"enum": [
|
|
26
|
+
"unknown",
|
|
27
|
+
"wp-plugin",
|
|
28
|
+
"wp-mu-plugin",
|
|
29
|
+
"wp-theme",
|
|
30
|
+
"wp-block-theme",
|
|
31
|
+
"wp-block-plugin",
|
|
32
|
+
"wp-site",
|
|
33
|
+
"wp-core",
|
|
34
|
+
"gutenberg"
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"primary": { "type": "string" },
|
|
39
|
+
"notes": { "type": "array", "items": { "type": "string" } }
|
|
40
|
+
},
|
|
41
|
+
"additionalProperties": true
|
|
42
|
+
},
|
|
43
|
+
"signals": {
|
|
44
|
+
"type": "object",
|
|
45
|
+
"required": ["paths"],
|
|
46
|
+
"properties": {
|
|
47
|
+
"paths": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"properties": {
|
|
50
|
+
"repoRoot": { "type": "string" },
|
|
51
|
+
"wpContent": { "type": "string" },
|
|
52
|
+
"pluginsDir": { "type": "string" },
|
|
53
|
+
"themesDir": { "type": "string" }
|
|
54
|
+
},
|
|
55
|
+
"additionalProperties": true
|
|
56
|
+
}
|
|
57
|
+
,
|
|
58
|
+
"usesInteractivityApi": { "type": "boolean" },
|
|
59
|
+
"usesAbilitiesApi": { "type": "boolean" },
|
|
60
|
+
"usesInnerBlocks": { "type": "boolean" },
|
|
61
|
+
"usesWpCli": { "type": "boolean" },
|
|
62
|
+
"performanceHints": { "type": "object", "additionalProperties": true },
|
|
63
|
+
"interactivityHints": { "type": "object", "additionalProperties": true },
|
|
64
|
+
"abilitiesHints": { "type": "object", "additionalProperties": true },
|
|
65
|
+
"innerBlocksHints": { "type": "object", "additionalProperties": true },
|
|
66
|
+
"wpCliHints": { "type": "object", "additionalProperties": true }
|
|
67
|
+
},
|
|
68
|
+
"additionalProperties": true
|
|
69
|
+
},
|
|
70
|
+
"tooling": {
|
|
71
|
+
"type": "object",
|
|
72
|
+
"required": ["php", "node", "tests"],
|
|
73
|
+
"properties": {
|
|
74
|
+
"php": {
|
|
75
|
+
"type": "object",
|
|
76
|
+
"properties": {
|
|
77
|
+
"hasComposerJson": { "type": "boolean" },
|
|
78
|
+
"hasVendorDir": { "type": "boolean" },
|
|
79
|
+
"phpunitXml": { "type": "array", "items": { "type": "string" } }
|
|
80
|
+
},
|
|
81
|
+
"additionalProperties": true
|
|
82
|
+
},
|
|
83
|
+
"node": {
|
|
84
|
+
"type": "object",
|
|
85
|
+
"properties": {
|
|
86
|
+
"hasPackageJson": { "type": "boolean" },
|
|
87
|
+
"packageManager": { "type": ["string", "null"], "enum": ["npm", "yarn", "pnpm", "bun", null] },
|
|
88
|
+
"usesWordpressScripts": { "type": "boolean" }
|
|
89
|
+
},
|
|
90
|
+
"additionalProperties": true
|
|
91
|
+
},
|
|
92
|
+
"tests": {
|
|
93
|
+
"type": "object",
|
|
94
|
+
"properties": {
|
|
95
|
+
"hasPhpUnit": { "type": "boolean" },
|
|
96
|
+
"hasWpEnv": { "type": "boolean" },
|
|
97
|
+
"hasPlaywright": { "type": "boolean" },
|
|
98
|
+
"hasJest": { "type": "boolean" }
|
|
99
|
+
},
|
|
100
|
+
"additionalProperties": true
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"additionalProperties": true
|
|
104
|
+
},
|
|
105
|
+
"versions": {
|
|
106
|
+
"type": "object",
|
|
107
|
+
"properties": {
|
|
108
|
+
"wordpress": {
|
|
109
|
+
"type": "object",
|
|
110
|
+
"properties": {
|
|
111
|
+
"core": {
|
|
112
|
+
"type": "object",
|
|
113
|
+
"properties": {
|
|
114
|
+
"value": { "type": ["string", "null"] },
|
|
115
|
+
"source": { "type": ["string", "null"] }
|
|
116
|
+
},
|
|
117
|
+
"additionalProperties": true
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"additionalProperties": true
|
|
121
|
+
},
|
|
122
|
+
"gutenberg": {
|
|
123
|
+
"type": "object",
|
|
124
|
+
"properties": {
|
|
125
|
+
"value": { "type": ["string", "null"] },
|
|
126
|
+
"source": { "type": ["string", "null"] }
|
|
127
|
+
},
|
|
128
|
+
"additionalProperties": true
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"additionalProperties": true
|
|
132
|
+
},
|
|
133
|
+
"recommendations": {
|
|
134
|
+
"type": "object",
|
|
135
|
+
"properties": {
|
|
136
|
+
"commands": { "type": "array", "items": { "type": "string" } },
|
|
137
|
+
"notes": { "type": "array", "items": { "type": "string" } }
|
|
138
|
+
},
|
|
139
|
+
"additionalProperties": true
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
"additionalProperties": true
|
|
143
|
+
}
|