You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**Theme:** Add a first-class AI governance layer — context control, editorial review queues, and inside-admin AI assistants — on top of the existing MCP/Abilities foundation.
410
406
411
-
• For Saltus, that translates less like “Drupal AI” and more like a WordPress-
412
-
native AI governance layer for CPT-driven plugins.
407
+
Saltus already has model-defined CPTs, REST routes, MCP/Abilities tools, capability checks, audit logging, rate limits, health checks, and per-model `mcp_tools`/`show_in_mcp` gates. Phase 6 adds the higher-level product layer.
413
408
414
-
Saltus already has the foundation: model-defined CPTs, REST routes, MCP/
415
-
Abilities tools, capability checks, audit logging, rate limits, health checks,
416
-
and per-model mcp_tools / show_in_mcp gates. The missing higher-level product
417
-
layer would be this:
418
-
419
-
Context Control Center
420
-
421
-
A Saltus model/config area where a plugin defines:
422
-
423
-
- brand voice
424
-
- field-level writing rules
425
-
- audience profiles
426
-
- taxonomy/content standards
427
-
- allowed statuses
428
-
- forbidden actions
429
-
- required review rules
430
-
- per-CPT AI instructions
431
-
432
-
In Saltus terms, this could live as model config, for example:
433
-
434
-
'options' => [
435
-
'show_in_rest' => true,
436
-
'mcp_tools' => true,
437
-
],
438
-
'config' => [
439
-
'ai_context' => [
440
-
'brand_voice' => 'Clear, practical, expert, no hype.',
441
-
'audiences' => ['developers', 'site editors'],
442
-
'rules' => [
443
-
'never_publish_directly' => true,
444
-
'require_human_review' => true,
445
-
'preserve_technical_accuracy' => true,
446
-
],
447
-
],
448
-
]
449
-
450
-
Then MCP tools like create_post, update_post, update_settings, and
451
-
update_meta_fields would receive this context before executing or expose it
452
-
through a new tool like saltus/get-context.
453
-
454
-
Inside AI
455
-
456
-
This would mean AI operating from inside WordPress admin.
457
-
458
-
Examples:
409
+
---
459
410
460
-
- AI buttons beside metabox fields
461
-
- “Improve title”
462
-
- “Summarize this CPT entry”
463
-
- “Generate excerpt from meta”
464
-
- “Validate against brand rules”
465
-
- “Suggest taxonomy terms”
466
-
- “Prepare draft update”
411
+
#### 6A — Context Control Center
467
412
468
-
The key point: inside AI would still use Saltus models and WordPress
469
-
permissions. It should not bypass CPT config, field schemas, validation, or
470
-
post status rules.
413
+
**Goal:** A Saltus model config area where a plugin defines AI governance rules that MCP tools receive before executing.
471
414
472
-
Outside AI
415
+
**Config shape:**
416
+
```yaml
417
+
config:
418
+
ai_context:
419
+
brand_voice: 'Clear, practical, expert, no hype.'
420
+
audiences: ['developers', 'site editors']
421
+
field_rules:
422
+
post_content:
423
+
- 'Maintain technical accuracy'
424
+
- 'Never include affiliate links'
425
+
allowed_statuses: ['draft', 'pending']
426
+
forbidden_actions: ['delete', 'publish']
427
+
require_human_review: true
428
+
```
473
429
474
-
This maps directly to Saltus MCP/Abilities.
430
+
| Item | Status |
431
+
|------|--------|
432
+
|`ai_context` config schema definition and validation | ○ Pending |
433
+
|`AiContextProvider` service — parses and serves ai_context per model | ○ Pending |
| PHPUnit tests for context validation and injection | ○ Pending |
475
438
476
-
External agents such as Codex, Claude Desktop, Cursor, or custom automation
477
-
clients connect to WordPress and call:
439
+
**Exit criteria:** Models with `config.ai_context` expose a `saltus/get-context` MCP tool. Mutating MCP tools receive context rules and can reject operations that violate them.
478
440
479
-
- saltus/list-models
480
-
- saltus/get-model
481
-
- saltus/list-posts
482
-
- saltus/get-post
483
-
- saltus/create-post
484
-
- saltus/update-post
485
-
- saltus/update-settings
486
-
- saltus/get-meta-fields
441
+
---
487
442
488
-
Saltus already has this architectural direction. The next step would be adding
489
-
stronger editorial governance around mutating tools.
443
+
#### 6B — Editorial Review Queue
490
444
491
-
Editorial Review
445
+
**Theme:** Agent-proposed changes go through a human approval workflow instead of publishing directly.
492
446
493
-
Right now, agent writes can be permission-gated and audited. To match the idea
494
-
you quoted, Saltus would need an approval layer:
447
+
**Flow:**
448
+
```
449
+
AI write -> draft/pending/revision -> human approval -> publish
450
+
```
495
451
496
-
- agent proposes a change
497
-
- Saltus stores it as a draft, revision, or pending change record
498
-
- human editor reviews diff
499
-
- editor approves, rejects, or edits
500
-
- only approved changes are published
501
-
- audit log records the full chain
452
+
| Item | Status |
453
+
|------|--------|
454
+
|`AiChangeProposal` service — stores agent writes as pending change records | ○ Pending |
| Audit log integration — full chain from proposal to approval/rejection | ○ Pending |
458
+
| Default all mutating MCP tools to draft/pending (configurable) | ○ Pending |
459
+
| PHPUnit tests for proposal lifecycle | ○ Pending |
502
460
503
-
Practically, mutating MCP tools should default to:
461
+
**Exit criteria:** Mutating MCP tools create pending change records by default. A review admin screen lists proposals with diff view. Approved proposals are published; rejected ones are discarded. Audit log records the full chain.
504
462
505
-
AI write -> draft/pending/revision -> human approval -> publish
463
+
---
506
464
507
-
Not:
465
+
#### 6C — Inside-Admin AI Assistants
508
466
509
-
AI write -> publish
467
+
**Theme:**AI operates from inside WordPress admin — buttons beside metabox fields, inline suggestions, and validation.
510
468
511
-
Best Saltus framing
469
+
| Item | Status |
470
+
|------|--------|
471
+
|`AiAssistantProvider` service — registers meta box assistants per model | ○ Pending |
472
+
| Admin JS entry point (`assets/Feature/AiAssistant/editor.js`) | ○ Pending |
**Exit criteria:** Models with `config.ai_context` show AI assistant buttons in the admin. Clicking "Improve title" or "Summarize" calls a REST endpoint and updates the field. Brand rule validation highlights content that violates configured rules.
514
480
515
-
> Saltus can become the governance layer for AI-operated WordPress content
516
-
> models: models define the content structure, context rules define how AI
517
-
> should behave, MCP/Abilities expose controlled operations to external
518
-
> agents, and WordPress revisions, statuses, capabilities, and audit logs keep
519
-
> every change reviewable.
481
+
---
520
482
521
-
The big opportunity is that Saltus already owns the model definition. That
522
-
means it can give AI agents structured knowledge of each CPT, its fields,
523
-
allowed operations, and editorial policy without every plugin author
524
-
rebuilding that machinery.
483
+
**Exit criteria (Phase 6 overall):** AI governance is configurable per model via `ai_context`. Mutating MCP tools respect context rules and default to review-queue creation. Inside-admin assistants are operational for configured models. All features are tested.
0 commit comments