pub fn load_rules(
workspace: Option<&Path>,
chat_root: Option<&Path>,
) -> Vec<PlanningRule>Expand description
Load planning rules.
Resolution:
- Global
~/.skilllite/chat/prompts/rules.json(seed + evolved) — always loaded - Workspace
.skilllite/planning_rules.json(per-project skill rules) — merged on top - Compiled-in seed data (fallback when no global file)
Merge semantics:
- Workspace rule with same ID as an immutable (
mutable=false) global rule → skipped - Workspace rule with same ID as a mutable global rule → overrides it
- Workspace rule with a new ID → appended