37 lines
1.9 KiB
Markdown
37 lines
1.9 KiB
Markdown
# Implementation Plan: The Micro-Loader (Boot Sequence Refactor)
|
|
|
|
## Objective
|
|
Consolidate and harden the kernel's skill-loading logic into a stateful "Micro-Loader." This improves boot reliability, provides clear error reporting for malformed skills, and centralizes all capability management within the `skills` module.
|
|
|
|
## Key Files & Context
|
|
- **Target:** `projects/org-agent/literate/skills.org` (Consolidating logic here).
|
|
- **Target:** `projects/org-agent/literate/core.org` (Moving `load-all-skills` out of here).
|
|
- **Mandate:** Syntax Pre-flight and Dependency Assertion.
|
|
|
|
## Implementation Steps
|
|
|
|
### 1. Define the Skill Catalog
|
|
- Introduce `*skill-catalog*` in `skills.lisp` to track metadata and load status for every skill file found in `SKILLS_DIR`.
|
|
- Statuses: `:discovered`, `:loading`, `:ready`, `:failed`.
|
|
|
|
### 2. Refactor `load-skill-from-org` (Harden)
|
|
- **Syntax Check:** Invoke `validate-lisp-syntax` before evaluation.
|
|
- **Dependency Check:** If `#+DEPENDS_ON` refers to a skill that failed or is missing, mark this skill as `:failed` immediately with a clear error.
|
|
- **Detailed Logging:** Record the specific reason for failure (syntax, timeout, runtime error) in the catalog.
|
|
|
|
### 3. Implement `initialize-all-skills` (The Orchestrator)
|
|
- Move the directory scanning and loop logic from `core.lisp` into `skills.lisp`.
|
|
- This function will:
|
|
1. Scan `SKILLS_DIR`.
|
|
2. Populate the catalog.
|
|
3. Run the topological sort.
|
|
4. Execute the load loop with timeouts.
|
|
5. Print a final "Boot Summary" report.
|
|
|
|
### 4. Simplify Kernel Boot
|
|
- Update `start-daemon` in `core.lisp` to call `(initialize-all-skills)` instead of the old `load-all-skills`.
|
|
|
|
## Phase E: Chaos (Verification)
|
|
- **Integrity Test:** Add a test that verifies `initialize-all-skills` correctly identifies a missing dependency and prevents the dependent skill from attempting to load.
|
|
- **Report Test:** Verify that the skill catalog correctly reflects the status of loaded vs. failed skills.
|