Skip to content

[Planning][P2] Extract SkillLite Assistant to separate repository (P3–P5) #102

Description

@EXboys

Summary

SkillLite Assistant (crates/skilllite-assistant/) currently lives in the engine monorepo with hybrid integration: subprocess bridge for chat (good) plus in-process Rust path deps on skilllite-agent, skilllite-evolution, and skilllite-sandbox (blocks clean split).

The target architecture is documented in docs/en/ASSISTANT-SPLIT-ARCHITECTURE.md. P0 (docs) and P1 (engine --json CLI surface) are largely shipped. This issue tracks the remaining phases.

Goals

Goal Rationale
Independent release cadence Desktop installers (dmg/msi/AppImage) vs PyPI/CLI binaries
Clear product boundary Engine = sandbox + MCP + skilllite binary; Assistant = optional GUI
Single engine contract Assistant talks to a released skilllite binary only
No UX regression Streaming chat, evolution panel, Life Pulse, IDE layout preserved

Remaining phases

Phase Scope Exit criterion
P2 — Bridge thin Replace remaining in-process calls in evolution_ui/*, followup_*, desktop_services src-tauri/Cargo.toml drops skilllite-agent, skilllite-evolution, skilllite-sandbox
P3 — skilllite-client Extract protocol types + JSON schemas (no sandbox/agent code) Assistant depends on published crate; golden contract tests
P4 — Extract repo Move tree to skilllite-assistant repo; stub README in engine repo Two repos green CI
P5 — Policy Update deny.toml; revise D1 → D1′ in architecture docs Docs reflect implemented state

Integration model (must hold after split)

  • L1 skilllite agent-rpc — streaming chat, confirm/clarify
  • L2 skilllite … --json — evolution, runtime, skills list, followup
  • L3 Workspace files — prompts/transcript paths (read-only where possible)

Rule: No path = "../../skilllite-*" in Assistant's Cargo.toml at target state.

Acceptance criteria

  • P2: Assistant Cargo.toml has zero path deps on engine crates
  • P3: skilllite-client published with protocol types + fixture tests
  • P4: Separate repo with Tauri release CI + contract tests against pinned skilllite release artifact
  • P5: deny.toml and ENTRYPOINTS-AND-DOMAINS.md updated to D1′ policy
  • min_skilllite_version runtime check in Assistant installer/build

References

Non-goals

  • Replacing agent-rpc with terminal parsing of skilllite chat output
  • Embedding the full agent loop inside Tauri
  • Making Assistant a second engine entry with its own sandbox/evolution code paths

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions