Repository navigation
[RFC] application/optimization-plan — create and edit an app-owned plan of evidence-backed improvements #15
Replies: 2 comments
|
@dylanjhunt Thanks for the detailed RFC. Good news - we're working on making Answers to your three questions below: 1. Is Yes, and we'd rather have the general type than the narrower one. We looked at broader Both 2. For
{
"$schema": "https://extensions.shopifycdn.com/shopifycloud/schemas/v1/intent.json",
"value": {
"type": "string",
"description": "The ID of the optimization plan to edit.",
"mapTo": "param",
"fieldName": "id"
},
"inputSchema": {
"$ref": "https://extensions.shopifycdn.com/shopifycloud/schemas/v1/application/optimization-plan.json",
"type": "object",
"properties": {}
}
}One gotcha if you use the 3. Bounded items/decisions, or plan identity only? Identity only, at least to begin with. We're going to scope the published |
|
@dylanjhunt We'd love to see what you build with it with AgentReady! |
Uh oh!
There was an error while loading. Please reload this page.
What type are you proposing?
application/optimization-plan, supportingcreateandedit. The immediate AgentReady use isedit;createis proposed for ecosystem completeness but AgentReady would not register it until starting a new plan is separately designed. If this is too broad,application/setup-planis a possible narrower fallback.What do merchants ask Sidekick to do?
Merchants have app-owned plans containing evidence-backed improvements and ask Sidekick to review or change the approval state of those proposals, for example:
The intent opens an app-owned review UI. Proposed changes remain locally staged until a separate explicit merchant confirmation. Saving decisions does not apply or publish the underlying changes.
What apps would register it?
Apps that own merchant-reviewable plans for store readiness, accessibility, SEO, catalog quality, conversion optimization, merchandising, content quality, performance, or operational setup could plausibly register this type. The schema should describe the merchant-facing plan, not AgentReady's internal run or proposal tables.
What fields might it need?
Provisional artifact shape for Shopify review:
{ "id": "app-owned stable plan identifier used for edit", "title": "merchant-visible plan title", "status": "draft | in_review | approved | partially_approved | completed | superseded", "summary": "short merchant-visible summary", "items": [ { "id": "stable item identifier", "title": "merchant-visible improvement", "description": "bounded explanation and evidence summary", "decision": "unresolved | approved | declined" } ] }All fields should remain optional in an app action input schema; no
requiredarray should be declared. The final field names, identifier/value mapping,$ref, andadditionalPropertiesbehavior should follow Shopify's published convention. In particular, if Sidekick's canonical edit contract supplies the selected resource through top-level intentvalue, apps should consume that value rather than inventing a parallelinputSchema.planId.Concurrency revisions, Store IDs, access tokens, internal database IDs, and apply/publish instructions do not belong in the model-facing schema. The extension loads authoritative revisions from its authenticated app state and attaches them only on explicit merchant confirmation.
What existing type is close?
None of the current types describes a cross-domain, app-owned plan of proposed improvements.
application/campaignandapplication/adare marketing artifacts;application/faq,application/review, andapplication/ticketdescribe different merchant objects.application/setup-planwould cover onboarding/setup checklists but may be too narrow for ongoing evidence-backed optimization work.Safety and interaction boundary
The intent is a navigation/render contract, not a webhook or autonomous mutation. The merchant reviews staged decisions and clicks a separate Save decisions control. Saving approval state does not apply, publish, bill, alter a theme, or claim public verification. Apps must authenticate the Store, authorize the exact app-owned plan, reload on concurrency conflict, and preserve truthful staged/saved/applied/verified distinctions.
Questions for Shopify
application/optimization-planappropriately general across the ecosystem, or would Shopify preferapplication/setup-planor another existing/planned type?edit, should the selected app-owned plan identifier arrive through the canonical top-level intentvalue, anidinside the published schema, or both?All reactions