openspec/initiatives/context-store-and-initiatives/roadmap.md
Status: historical beta roadmap snapshot.
This roadmap preserves the implementation queue that existed while the context-store and workspace model was being explored. It is not the active roadmap for current simplification work.
For current direction, start with:
openspec/work/simplify-context-and-workspace-model/goal.mdopenspec/work/simplify-context-and-workspace-model/roadmap.mdThe historical product decision underneath this roadmap was:
Context stores sync truth.
Collections shape truth.
Initiatives coordinate work.
Workspaces open local views.
Changes implement repo-owned slices.
At the time, the manual beta pass pulled first-run friction forward. This was the historical working order before investing in deeper schema or lifecycle machinery:
Escalation UX, team-sharing hardening, and initiative-hosted target-bound changes remain important, but they should wait until the first-run path feels boring in the good way.
Before workspaces become public/stable, run Item 19 as a late beta cleanup pass so beta compatibility code is reviewed intentionally instead of treated as a permanent contract.
Goal: make the workspace-to-initiative pivot explicit so future workspace work does not keep implementing the older "workspace owns the plan" model.
Ship:
Done when:
Locked disposition:
Fresh-agent historical reading rule:
openspec/work/simplify-context-and-workspace-model/goal.md and
openspec/work/simplify-context-and-workspace-model/roadmap.md for current
product authority.openspec/initiatives/context-store-and-initiatives/direction.md as
historical beta direction, not as the current product authority.openspec/changes/workspace-reimplementation-roadmap/HISTORICAL_DIRECTION.md and
openspec/changes/workspace-reimplementation-roadmap/ as historical reference
material for preserved local-view behavior and POC lessons.workspace-apply-repo-slice or
workspace-verify-and-archive as the next implementation slice unless a later
initiative-linked repo-change design explicitly reactivates them.Goal: keep workspaces useful without making them the source of truth.
Ship:
workspace update refreshes local agent guidance and does not
modify linked repos.Done when:
Goal: create the generic local context-store foundation that can later hold initiatives and other shared context collections. Sync/watch behavior remains a future hardening slice.
Ship:
Done when:
Goal: let product-specific content systems live inside a context store without hardcoding every future concept into the store layer.
Ship:
Done when:
initiatives/ collection while staying
generic enough for future collections like decisions, API catalogs, or
playbooks.Goal: give coordinated work a durable, shared, agent-consumable home.
Ship:
initiatives/<id>/
initiative.yaml
requirements.md
design.md
decisions.md
questions.md
tasks.md
Done when:
Goal: make shared initiative storage usable before repo handoff or workspace opening depends on it.
Ship:
context-store setup <id> for creating a local Git-backed store folder with
portable store metadata and local registration.context-store register <path> for registering an existing clone or folder,
defaulting the store id from the repo or folder name.context-store list and context-store doctor for local visibility and
non-mutating diagnostics.initiative list defaulting to all registered stores, with --store as a
filter and --store-path as an escape hatch.Done when:
Goal: let an agent resolve the initiative the user named and read canonical initiative context from the source of truth.
Ship:
initiative show <id> that searches registered stores by default.Done when:
Goal: split shared coordination from repo-owned implementation plans cleanly.
Discussion points to confirm before implementation:
--initiative <id> search registered stores by default, or should it
require --store when more than one store is registered?Ship:
new change <id> --initiative <store>/<initiative>.initiative.md snapshot by default; agents read canonical
initiative files live from the context store.Done when:
Decision: do not add openspec initiative resolve, now or later.
Rationale:
initiative show already resolves canonical shared initiative context..openspec.yaml metadata.Do not ship:
openspec initiative resolve <id>Done when:
Status: candidate work item, not locked into the numbered roadmap yet.
Question to confirm:
Goal: give agents and users a small "what now?" command after initiative discovery from the current repo or workspace, without turning it into a dashboard or progress/status surface.
Possible shape:
openspec initiative next billing-launch --json
Possible JSON answer:
{
"initiative": "billing-launch",
"next_action": "create_repo_change",
"reason": "initiative found, no linked local change exists for this repo",
"suggested_command": "openspec new change add-billing-api --initiative billing-launch"
}
Discussion points to confirm before implementation:
initiative next the right command name, or should this guidance belong
inside workspace initiative opening or repo-local status?Done when, if accepted:
show, workspace state, and repo-local
change metadata.Goal: connect durable initiative context to this runtime's local working view after initiative show and repo-change linkage exist.
Locked direction:
Product decision status:
Command UX decision:
openspec workspace open --initiative <initiative>.<store>/<initiative> and <initiative> --store <store>.openspec workspace open <workspace-name> --initiative <initiative>
when the user wants to choose the local workspace identity explicitly.<initiative> is provided, proceed when exactly one registered
context store has that initiative id.openspec initiative list; do not silently open a fuzzy match.Open target decision:
Local view record decision:
workspace.yaml file.Workspace storage decision:
getGlobalDataDir()/workspaces/<workspace-name>/.workspace.yaml at the workspace root.AGENTS.md, opener workspace files, and tool-specific skills at the
workspace root.Runtime identity decision:
getGlobalDataDir() as the cross-platform runtime-local boundary.workspace.yaml.<runtime-id> path segment in Item
10.Prepare/JSON decision:
workspace open --json as a machine-facing receipt for the same open
operation.--prepare-only for Item 10.Codex Desktop decision:
workspace open --json output.Edit-boundary decision:
Ship:
workspace open support for generating opener-specific runtime files and
opening initiative context plus locally resolved linked repos/folders.workspace open --json output that
explain the current initiative, opened roots, skipped roots, local paths, and
advisory edit boundaries.Done when:
Status: proposed immediate beta-learning item.
Goal: manually run what exists and use the friction to update initiative notes before designing more surface area.
Ship:
Done when:
Goal: make context-store setup and cleanup feel like a normal local workflow, without adding sync, remote, or governance automation.
Work item:
work-items/12-context-store-first-run-and-cleanup-ux/
Ship:
context-store setup for terminal users.--init-git.Done when:
Status: deferred as an implementation item.
Goal, if revisited: define an agent handoff receipt model that reports what exists, where it lives, and which affordances are available without prescribing one linear next step.
Work item:
work-items/13-agent-handoff-output-and-delivery-polish/
Ship:
Do not ship fixed "Next for your agent" guidance yet. The current shape assumes that users and agents move through the beta flow linearly, but real agentic workflows may inspect, branch, skip steps, or start from existing context.
Preserve for future exploration:
created_paths are a small standalone receipt
improvement rather than part of a broader handoff model.Status: proposed immediate beta-learning item.
Goal: make the beta docs reflect the intended division of labor:
Users make local choices.
Agents run OpenSpec work commands.
Ship:
Done when:
Goal: let context stores behave like OpenSpec roots for shared planning config and schemas, while keeping implementation changes repo-owned by default.
Work item:
work-items/15-context-store-project-roots-and-schema-led-initiatives/
Product decision to confirm:
openspec/config.yaml and openspec/schemas/ like a
repo after openspec init.initiative create should create a sparse shell and let reviewed initiative
artifacts grow through schema-led status/instructions.Ship:
initiative.yaml plus a short brief.md, with no
TBD placeholders and no default tasks.md.openspec new change does not accidentally create executable
repo-local changes inside a context store just because the store has an
openspec/ directory.Done when:
Goal: let users start locally and upgrade only when coordination is actually needed.
Work item:
work-items/16-add-escalation-ux/
Ship:
This appears to span multiple owned areas.
OpenSpec can upgrade it into a coordinated initiative and carry the current
planning context forward.
Done when:
Goal: make initiatives practical for teams without turning setup into an admin ceremony.
Work item:
work-items/17-harden-team-shared-coordination/
Ship:
Clone the context store.
Run openspec workspace doctor.
Open the initiative with your agent.
Done when:
Goal: decide whether shared initiative artifacts can graduate into executable OpenSpec changes only after they are bound to a target repo or spec root, without blurring initiative coordination, repo ownership, and workspace local-view boundaries.
Work item:
work-items/18-explore-initiative-hosted-target-bound-change-artifacts/
Discussion points to confirm before exploration:
Ship:
openspec/changes/ assumptions.Done when:
Goal: decide which workspace beta compatibility behavior should survive into the public workspace contract, and remove or migrate the rest while workspaces are still unpublished.
Work item:
work-items/19-review-workspace-beta-compatibility-before-public-release/
Why this is late:
Ship:
codex to codex-cli aliases, generated .gitignore
cleanup, and empty compatibility shims.Done when:
These are important, but should wait until the initiative model has real usage:
Pending discussion: revisit handoff receipts after the beta guide and sparse initiative model clarify what context agents actually need.