WordPress Contract
SCS talks to WordPress through WP-CLI. Each site must declare its SSH host,
system user, and WordPress root in config/sites.csv.
Site configuration
site_id,prefix,domain,name,status,focus,nw_project,wp_root,wp_url,wp_user,ssh_host,notes,created
opshell,OPS,opshell.dev,Opshell,development,"VPS hosting, DevOps",,/home/wp_opshell_dev/sites/opshell.dev,http://opshell.dev,wp_opshell_dev,GC-SG-M8,,2026-10-17
SCS runs:
ssh GC-SG-M8 'cd /home/wp_opshell_dev/sites/opshell.dev && sudo -u wp_opshell_dev -- wp <command>'
Read-only inspection is the default. Writes are draft-only and require an explicit command.
Fields verified on opshell.dev
SEO Architecture
group_seo_architecture on posts:
| Field | Type | Values |
|---|---|---|
content_type | Checkbox | hub, pillar, cluster, supporting |
hub_parent | Post object | Page |
pillar_parent | Post object | Post |
cluster_parent | Post object | Post |
primary_keyword | Text | — |
semantic_tags | Text | Comma-separated |
Technical Review (legacy)
group_opshell_technical_review on posts:
| Field | Type |
|---|---|
opshell_technical_reviewer | User |
opshell_review_date | Date |
SCS Review Gate (pilot plugin)
group_wpw_review_gate on posts and pages:
| Field | Type |
|---|---|
wpw_review_status | Select |
wpw_reviewer | User |
wpw_review_date | Date (Ymd) |
wpw_review_scope | Checkbox |
wpw_review_checklist | Checkbox |
wpw_review_notes | Textarea |
Author profile
group_wpstrategist_author_bio on users: profile image, title, bio, years
experience, location, reviewed_on, quote, expertise, credentials, social links.
Taxonomies
content_format: Review, Benchmark, Case Study, Cheatsheet, Checklist, Comparison, FAQ, News, Reference, Runbook, Troubleshooting, Tutorial.webboulder_authority_topic: hierarchical authority topics.
Naming collision to avoid
ACF content_type means hub / pillar / cluster / supporting. The taxonomy
content_format means Review / Comparison / Cheatsheet / etc.
clusters.kc_type→ ACFcontent_typepublishing.wp_content_format→ taxonomycontent_format- article front matter
content_type→ the article format (writer-facing only)
The article front matter key content_type is not the ACF field. SCS never
reads front matter when building the publish payload; it uses clusters.kc_type
for ACF content_type. Do not assume the two values are interchangeable.
Mapping
| SCS | WordPress |
|---|---|
pid | post meta scs_pid |
| article path | post meta _scs_source_path |
kc_type | ACF content_type |
pillar_pid | ACF pillar_parent (post ID) |
parent_pid | ACF cluster_parent (post ID) |
keyword | ACF primary_keyword |
entity_coverage | ACF semantic_tags |
wp_content_format | content_format taxonomy |
wp_authority_topic | webboulder_authority_topic term |
wp_author_id | post author |
wp_post_id | post ID |
wp_link | permalink |
| QA | wpw_review_* |
Portability
The review-gate plugin is in:
integrations/wordpress/wpstrategist-review-gate/
Install it on another site with the same ACF Pro dependency. Keep the wpw_*
field names stable; they are the SCS contract. The plugin also mirrors reviewer
and date into the legacy opshell_* fields when present, on ACF save.
Do not assume another site has the same theme, taxonomies, or ACF field names.
Run scs wp inspect --workspace <ws> --site <site_id> and record the differences
before enabling the publish bridge.