diff --git a/instructions/r2/core/skills/init-workspace-context/SKILL.md b/instructions/r2/core/skills/init-workspace-context/SKILL.md
index afe7468..df271f6 100644
--- a/instructions/r2/core/skills/init-workspace-context/SKILL.md
+++ b/instructions/r2/core/skills/init-workspace-context/SKILL.md
@@ -18,16 +18,21 @@ Initialization must behave differently for fresh, existing, or plugin workspaces
- Rosetta prep steps completed
-- Three modes: install (no files per `bootstrap_rosetta_files`), upgrade (some files per `bootstrap_rosetta_files` exist), plugin (LLM context contains "Rosetta plugin is already active")
+- Three modes: install (no files per `bootstrap_rosetta_files`), upgrade (some files per `bootstrap_rosetta_files` exist), plugin (LLM context contains "RUNNING AS A PLUGIN")
+- Two plugin types: full (core@rosetta or grid@rosetta — all instructions bundled, no shells needed), lightweight (rosetta@rosetta — bootstrap + MCP only, shells required)
-1. Check LLM context for "Rosetta plugin is already active" — if found, set mode = plugin
+1. Check LLM context for "RUNNING AS A PLUGIN" — if found, set mode = plugin
2. If not plugin, scan workspace for existing files per `bootstrap_rosetta_files`
3. Any found → mode = upgrade; none → mode = install
-4. Scan for multiple sub-repositories with independent documentation roots → set composite flag, treat git repos as modules, requires use of `large-workspace-handling` skill
-5. Build file inventory: path and status for each file per `bootstrap_rosetta_files`
-6. Return: mode (install|upgrade|plugin), plugin_active, composite, existing_files list
+4. If mode = plugin, detect plugin_type:
+ - Context contains "core@rosetta" or "grid@rosetta" → plugin_type = full
+ - Context contains "rosetta@rosetta" → plugin_type = lightweight
+ - Neither found → plugin_type = unknown
+5. Scan for multiple sub-repositories with independent documentation roots → set composite flag, treat git repos as modules, requires use of `large-workspace-handling` skill
+6. Build file inventory: path and status for each file per `bootstrap_rosetta_files`
+7. Return: mode (install|upgrade|plugin), plugin_active, plugin_type (full|lightweight|unknown|null), composite, existing_files list
diff --git a/instructions/r2/core/workflows/init-workspace-flow-context.md b/instructions/r2/core/workflows/init-workspace-flow-context.md
index 2d6480e..7408644 100644
--- a/instructions/r2/core/workflows/init-workspace-flow-context.md
+++ b/instructions/r2/core/workflows/init-workspace-flow-context.md
@@ -14,7 +14,7 @@ Determines workspace state before any changes occur. Without accurate mode detec
- Phase 1 of 8 in init-workspace-flow
- Input: filesystem, LLM context (bootstrap markers)
-- Output: state.mode, state.plugin_active, state.composite, state.existing_files
+- Output: state.mode, state.plugin_active, state.plugin_type, state.composite, state.existing_files
- Prerequisite: state file created by workflow orchestrator (empty template)
@@ -45,10 +45,11 @@ Determines workspace state before any changes occur. Without accurate mode detec
- State file contains non-empty `mode` field
- `composite` flag is explicitly set (not left blank)
- Every file per `bootstrap_rosetta_files` has a status entry in the inventory
+- If mode = plugin: `plugin_type` is set to full, lightweight, or unknown (never null)
-- Plugin mode is a context-sentence check, not filesystem detection
+- Plugin mode is a context-sentence check for "RUNNING AS A PLUGIN", not filesystem detection
- Do not assume install if state file is fresh — files may exist on disk
- Composite requires sub-repository docs, not just multiple directories
diff --git a/instructions/r2/core/workflows/init-workspace-flow-shells.md b/instructions/r2/core/workflows/init-workspace-flow-shells.md
index c0d2bec..03caa51 100644
--- a/instructions/r2/core/workflows/init-workspace-flow-shells.md
+++ b/instructions/r2/core/workflows/init-workspace-flow-shells.md
@@ -13,7 +13,7 @@ Generates shell config files so subsequent sessions can load context and invoke
- Phase 2 of 8 in init-workspace-flow
-- Input: state.mode, state.plugin_active
+- Input: state.mode, state.plugin_active, state.plugin_type
- Output: shell configs, bootstrap rule, load-context shell
- Prerequisite: Phase 1 complete, state.mode set
@@ -26,7 +26,10 @@ Generates shell config files so subsequent sessions can load context and invoke
1. Read `agents/init-workspace-flow-state.md`
-2. If `state.plugin_active == true`: mark Phase 2 skipped, proceed to Phase 3
+2. If `state.plugin_active == true`:
+ - If `state.plugin_type == full`: mark Phase 2 skipped (full plugin ships all instructions, no shells needed), proceed to Phase 3
+ - If `state.plugin_type == lightweight`: continue to step 2.2 (shells required for lightweight plugin to function)
+ - If `state.plugin_type == unknown`: halt — orchestrator must resolve via HITL before Phase 2 can proceed
3. If upgrade mode: check which shells already exist
@@ -45,7 +48,9 @@ Generates shell config files so subsequent sessions can load context and invoke
-- Plugin mode: phase marked skipped, no shell files modified
+- Full plugin mode: phase marked skipped, no shell files modified
+- Lightweight plugin mode: shell generation executed, all expected shell files exist on disk
+- Unknown plugin mode: phase halted, HITL question issued, no files written until resolved
- Install mode: all expected shell files exist on disk
- Upgrade mode: only missing shells created, existing preserved
- Bootstrap rule file exists with ACQUIRE instruction for load-context
diff --git a/instructions/r2/core/workflows/init-workspace-flow.md b/instructions/r2/core/workflows/init-workspace-flow.md
index 9e73cba..a2211ee 100644
--- a/instructions/r2/core/workflows/init-workspace-flow.md
+++ b/instructions/r2/core/workflows/init-workspace-flow.md
@@ -26,9 +26,17 @@ Validation: State file tracks every phase with file inventory; verification conf
- IF state.file_count >= 50 (set by Phase 3): pass "ACQUIRE `large-workspace-handling/SKILL.md` FROM KB" to Phase 5, 6, 8 subagents.
- Before Phase 1: create `agents/init-workspace-flow-state.md`.
- Conditional phases:
- - If you have already in context "RUNNING AS A PLUGIN": MUST NOT EXECUTE "shells" phase 2 AND "rules" phase 4
+ - If you have already in context "RUNNING AS A PLUGIN":
+ - If plugin_type = full (core@rosetta or grid@rosetta): MUST NOT EXECUTE "shells" phase 2 AND "rules" phase 4
+ - If plugin_type = lightweight (rosetta@rosetta): MUST EXECUTE "shells" phase 2, MUST NOT EXECUTE "rules" phase 4
+ - If plugin_type = unknown: MUST ASK USER before Phase 2 using the HITL question below, then apply the matched branch above
- Else if user explicitly requested to HAVE ALL RULES LOCALLY: MUST NOT EXECUTE "shells" phase 2, BUT MUST EXECUTE "rules" phase 4
- Else MUST EXECUTE "shells" phase 2, BUT MUST NOT EXECUTE "rules" phase 4
+- HITL question when plugin_type = unknown:
+ "Rosetta detected that you're running with a plugin, but couldn't determine which type. This affects whether shell files need to be created.
+ - **Full plugin** (`core@rosetta` or `grid@rosetta`): ships all built-in skills, agents, and workflows — shell files are NOT needed.
+ - **Lightweight plugin** (`rosetta@rosetta`): includes only the bootstrap rule and MCP connection — shell files ARE required to enable skills, agents, and workflows in your IDE.
+ Which plugin did you install? If you followed the standard Rosetta installation (lightweight, recommended), the suggested answer is **lightweight plugin** (`rosetta@rosetta`) — shell files will be created."
- If user says to initialize rules, subagents, agents, workflows, commands it still means to execute "shells" phase 2.
- Upgrade from R1 to R2 is exactly the same process as define here, but you already have some files available, which you can reuse.
- Additionally tell subagents: "If you want to use shell commands, prefer to combine individual shell commands into single **simple** shell script in `agents/TEMP` and execute it, but already available tools ALWAYS take precedence."