openspec/initiatives/context-store-and-initiatives/work-items/18-explore-initiative-hosted-target-bound-change-artifacts/plan.md
Not started. Added as a future exploratory work item. Framing updated from generic "configurable change homes" to the sharper question of when shared initiative artifacts can become executable, target-bound OpenSpec changes.
Start from ../../direction.md, especially the current boundary:
Context stores sync truth.
Collections shape truth.
Initiatives coordinate work.
Workspaces open local views.
Changes implement repo-owned slices.
The current initiative direction assumes OpenSpec changes usually live in the local repo that owns implementation. That keeps validation, archive, and spec sync close to the code that will change.
Some coordinated work may need a shared home before the owning repo is obvious. A team may want initiative-hosted planning artifacts, and later may want some of those artifacts to become implementation-ready plans for a specific repo or spec root.
This is not just a storage preference. A shared artifact is planning-only until it has an explicit portable target binding and lifecycle rules for validate, apply, archive, spec sync, and conflict handling.
Decide whether OpenSpec should support initiative-hosted artifacts that can graduate into executable changes only after they are bound to an implementation target.
Repo-local changes remain the default executable implementation artifact. Item 18 should decide if, when, and how a context-store-hosted artifact can safely be treated as a change.
The answer should preserve three boundaries:
Initiative artifact
-> planning-only by default
-> may become target-bound later
Repo-local change
-> home: repo/openspec/changes/<id>/
-> target: implicit current repo/spec root
-> lifecycle: validate/apply/archive/spec sync are repo-local
Initiative-hosted target-bound change
-> home: context-store/initiatives/<initiative>/changes/<id>/
-> target: explicit repo/spec root identity
-> lifecycle: unsupported until target resolution is designed
Agent output
-> reports the work target
-> reports where the artifact lives
-> reports the implementation target, if any
-> reports allowed edit roots for this machine
Keep "change home" as internal resolver language. User-facing and agent-facing output should prefer clearer phrases like "plan lives in repo-local OpenSpec", "plan lives with the initiative", and "editable target".
new change <id> --initiative ... creates or links
a repo-local change only.--home initiative, or can initiative/store policy choose that behavior?openspec new change report work target, artifact home,
implementation target, initiative link, action context, and next commands in
JSON?openspec/changes/, current
working directory, or repo-local edit assumptions?Any future command that creates, reads, or resolves this work should make the agent's next move explicit:
{
"workTarget": {
"kind": "repo-change | initiative-work-item | initiative-hosted-change",
"id": "add-billing-api",
"root": "/absolute/path/reported/by/cli"
},
"initiativeLink": {
"store": "platform",
"id": "billing-launch"
},
"implementationTarget": {
"kind": "repo",
"id": "billing-api",
"specRoot": "openspec"
},
"actionContext": {
"mode": "implementation-ready | planning-only | target-selection-required | unsupported",
"sourceOfTruth": "repo | context-store | workspace-local",
"allowedEditRoots": [],
"constraints": [
"Use CLI-reported paths.",
"Do not infer editable repos from the current working directory."
]
},
"nextCommands": {}
}
If allowedEditRoots is empty, the agent should not edit implementation files.
If target selection is required, the command should return options or next
commands instead of creating an ambiguous implementation plan.
Do not implement initiative-hosted executable changes until OpenSpec has one target-resolution model that can cover: