prometeu-studio/discussion/workflow/plans/PLN-0015-propagate-dec-0009-into-studio-specs.md
2026-03-31 08:01:53 +01:00

157 lines
5.2 KiB
Markdown

---
id: PLN-0015
ticket: studio-editor-document-vfs-boundary
title: Propagate DEC-0009 into Studio shell, editor, and VFS specs
status: done
created: 2026-03-31
completed: 2026-03-31
tags:
- studio
- vfs
- specs
- editor
- shell
---
## Briefing
Translate DEC-0009 into the normative Studio specification set before code migration starts, so the new `prometeu-vfs` boundary is explicit in shell, editor, and module-level documentation.
## Objective
Make the accepted `prometeu-vfs` project-document boundary normative in Studio specs without adding scope beyond the current read-only editor wave.
## Background
DEC-0009 locks the following architectural choices:
- Studio accesses project-document filesystem state through `prometeu-vfs`.
- `prometeu-vfs` is project-session owned rather than editor-focus owned.
- `prometeu-vfs` exposes structural project data, not visual tree state.
- the first migration wave carries only current `EditorWorkspace` capabilities;
- manual refresh remains in scope, while watchers and public event APIs remain out of scope.
The current spec set documents shell and editor behavior, but it does not yet define the `prometeu-vfs` boundary explicitly.
## Dependencies
- DEC-0009 accepted and normatively locked
## Scope
### Included
- add or update Studio normative text for the `prometeu-vfs` boundary
- propagate project-session ownership rules into the shell spec
- propagate structural tree, support-rule ownership, and `prometeu-vfs` document access rules into the Code Editor spec
- update the Studio specs index if a new Studio spec is introduced
### Excluded
- implementation code
- public event API exposure
- watcher-based refresh
- new editor capabilities beyond the current read-only wave
## Non-Goals
- redesign the shell
- define a public event catalog for `prometeu-vfs`
- generalize `prometeu-vfs` into a product-wide filesystem abstraction
## Execution Method
### Step 1 - Introduce a Normative `prometeu-vfs` Boundary Spec
**What:**
Create a dedicated Studio spec for the project-document boundary so DEC-0009 does not have to be split awkwardly across unrelated shell and editor documents.
**How:**
Add a new Studio spec that defines:
- `prometeu-vfs` module role
- project-session ownership
- filesystem-backed first-wave contract
- structural tree contract
- RPC-first public API baseline
- manual refresh rule
- non-goals for public events and watchers
**File(s):**
- `docs/specs/studio/6. Project Document VFS Specification.md`
### Step 2 - Propagate Session Ownership into the Shell Spec
**What:**
Update shell-level architecture rules so the shell explicitly owns project-session services that survive workspace focus changes.
**How:**
Amend the shell spec to state that workspace-local composition may consume project-session-owned services such as `prometeu-vfs`, while shell/workspace responsibility boundaries remain intact.
**File(s):**
- `docs/specs/studio/1. Studio Shell and Workspace Layout Specification.md`
### Step 3 - Propagate Editor-Local Boundary Rules
**What:**
Update the Code Editor spec so all project-tree and document access rules point to `prometeu-vfs` instead of direct filesystem readers inside the workspace.
**How:**
Amend the editor spec to state that:
- the navigator consumes a structural tree entity provided by `prometeu-vfs`
- the editor opens files through `prometeu-vfs`
- support and unsupported-file rules belong to `prometeu-vfs`
- visual tree state remains in Studio UI
- refresh remains manual
**File(s):**
- `docs/specs/studio/5. Code Editor Workspace Specification.md`
### Step 4 - Update the Studio Spec Index
**What:**
Keep the Studio spec corpus discoverable after adding the new boundary spec.
**How:**
Update the index/read-order document to include the new `prometeu-vfs` spec and place it in a reading order that preserves shell -> shared boundary -> workspace detail.
**File(s):**
- `docs/specs/studio/README.md`
## Test Requirements
### Unit Tests
- none
### Integration Tests
- none
### Manual Verification
- verify the new spec set contains no contradiction between shell ownership, `prometeu-vfs` ownership, and Code Editor ownership
- verify the new spec wording does not introduce watchers, public events, write semantics, or non-project content by implication
## Acceptance Criteria
- [ ] DEC-0009 is fully represented in the Studio spec corpus without reopening the agenda
- [ ] shell, `prometeu-vfs`, and editor responsibilities are separated unambiguously
- [ ] the spec set states that `prometeu-vfs` provides structural data only, not visual tree state
- [ ] the spec set states that the first wave remains limited to current editor capabilities
- [ ] the spec set states that refresh is manual and watchers remain out of scope
## Affected Artifacts
- `docs/specs/studio/1. Studio Shell and Workspace Layout Specification.md`
- `docs/specs/studio/5. Code Editor Workspace Specification.md`
- `docs/specs/studio/6. Project Document VFS Specification.md`
- `docs/specs/studio/README.md`
## Risks
- splitting the rules across too many documents could make the boundary harder to follow
- forcing all rules into the editor spec could bury project-session ownership in a workspace-local document
- imprecise wording here would leak directly into implementation scope