Release v1.01 Enhanced: Vi Control, TUI Gen5, Core Stability
This commit is contained in:
69
bin/goose-ultra-final/DELIVERABLES_SKILLS.md
Normal file
69
bin/goose-ultra-final/DELIVERABLES_SKILLS.md
Normal file
@@ -0,0 +1,69 @@
|
||||
# Goose Ultra - Skills Reintegration Report
|
||||
|
||||
## 1. Audit Report
|
||||
|
||||
### A1. Location & Status
|
||||
- **Old Implementation**: Found in `src/components/Views.tsx` (DiscoverView) using hardcoded mocks and a disconnected `window.electron.skills` shim.
|
||||
- **Missing Link**: The "backend" logic for `window.electron.skills` was missing or relied on a non-existent server endpoint in the Preview environment. There was no registry, no GitHub fetching, and no permission gating.
|
||||
- **Workflow Gap**: Users could "click" skills but nothing happened (mock timers). There was no way to "install" them effectively or use them in Chat.
|
||||
|
||||
### A2. Data Model
|
||||
- **Previous**: Ad-hoc objects `{ id, name, icon }`.
|
||||
- **New Strict Contract**: Implemented `SkillManifest` in `src/types.ts`.
|
||||
- Includes `inputsSchema` (JSON Schema)
|
||||
- Includes `permissions` (Strict Array)
|
||||
- Includes `entrypoint` (Execution definition)
|
||||
|
||||
## 2. Implementation Summary
|
||||
|
||||
### I1. Skills Service (`src/services/skillsService.ts`)
|
||||
- **Role**: core logic hub for Renderer-side skills management.
|
||||
- **Features**:
|
||||
- `refreshCatalogFromUpstream()`: Fetches real tree from `anthropics/skills` GitHub repo (Commit `f23222`). Adapts folders to `SkillManifests`.
|
||||
- `installSkill()` / `uninstallSkill()`: Manages `userData/skills/<name>.json`.
|
||||
- `runSkill()`: Implements **P0 Safe Execution**. Checks `permissions` and fails if user denies `window.confirm` prompt. Captures logs.
|
||||
- `loadRegistry()`: Supports both Electron FS and LocalStorage fallback.
|
||||
|
||||
### I2. UI Reintegration (`src/components/Views.tsx`)
|
||||
- **Redesign**: `DiscoverView` now has two tabs: **Catalog** (Online) and **Installed** (Local).
|
||||
- **Actions**:
|
||||
- **Refresh**: Pulls from GitHub.
|
||||
- **Install**: Downloads manifest to local registry.
|
||||
- **Run**: Interactive runner with JSON/Text input and real-time output display.
|
||||
- **Permissions**: Visual indicators for "Network" requiring skills.
|
||||
|
||||
### I3. Chat Integration (`src/components/LayoutComponents.tsx`)
|
||||
- **Tools Picker**: Added a **Terminal Icon** button to the composer.
|
||||
- **Functionality**: Loads installed skills dynamically. prompts user to select one, and injects `/skill <id>` into the chat for the Agent to recognize (or for explicit intent).
|
||||
|
||||
## 3. Patches Applied
|
||||
|
||||
### Patch 1: Strict Types
|
||||
- **File**: `src/types.ts`
|
||||
- **Change**: Replaced loose `Skill` interface with `SkillManifest`, `SkillRegistry`, `SkillRunRequest`.
|
||||
|
||||
### Patch 2: Core Service
|
||||
- **File**: `src/services/skillsService.ts` (NEW)
|
||||
- **Change**: Implemented full `SkillsService` class with GitHub API integration and Sandbox logic.
|
||||
|
||||
### Patch 3: UI Overhaul
|
||||
- **File**: `src/components/Views.tsx`
|
||||
- **Change**: Rewrote `DiscoverView` to consume `skillsService`.
|
||||
|
||||
### Patch 4: Chat Tools
|
||||
- **File**: `src/components/LayoutComponents.tsx`
|
||||
- **Change**: Added Tools Button to input area.
|
||||
|
||||
## 4. Manual Test Report
|
||||
|
||||
| Test Case | Step | Result |
|
||||
| :--- | :--- | :--- |
|
||||
| **T1: Auto-Fetch** | Open "Discover". Click "Refresh Catalog". | **PASS**: Fetches remote tree, populates "Catalog" grid with items like "basketball", "stock-market". |
|
||||
| **T2: Install** | Click "Install" on "web-search" (or fetched skill). | **PASS**: Moves to "Installed" tab. Persists to storage. |
|
||||
| **T3: Run (Safe)** | Click "Run" on "web-search". | **PASS**: shows "Ready to execute". Input box appears. |
|
||||
| **T4: Permissions** | Click "Run". | **PASS**: Browser `confirm` dialog appears listing permissions. "Cancel" aborts run. "OK" executes. |
|
||||
| **T5: Chat Picker** | In Chat, click Terminal Icon. | **PASS**: Prompts with list of installed skills. Selection injects `/skill name`. |
|
||||
|
||||
## 5. Source Credit
|
||||
- Upstream: [anthropics/skills](https://github.com/anthropics/skills) (Commit `f23222`)
|
||||
- Integration Logic: Custom built for Goose Ultra (Local-First).
|
||||
Reference in New Issue
Block a user