docs(skills): lead the clide skill description with the entry action (T-512)

FR-2: settled-reach's drifted copy of the skill had a sharper opening —
naming clide-on-PATH + CLIDE_SOCK and `clide capabilities` as the first
move — which de-forking back to canonical would have dropped. The
description is what an agent reads when deciding whether to invoke the
skill, so the entry action belongs up front. Frontmatter wording only.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-13 22:49:23 +02:00
co-authored by Claude Fable 5
parent 670915fbc9
commit 6f148b9910
5 changed files with 16 additions and 36 deletions
+6 -5
View File
@@ -1,11 +1,12 @@
--- ---
name: clide name: clide
description: > description: >
Use when you are running inside the clide IDE and want to observe or drive clide is the IDE hosting this session; it puts `clide` on your PATH and a
its live UI — panes, editor, files, git, readers, toasts, layout — through per-workspace socket in `CLIDE_SOCK`. Start with `clide capabilities` to
the `clide` CLI, or to find out what commands clide exposes. clide is the enumerate the live tool surface, then observe or drive the UI — panes,
IDE hosting this session. Triggers: "what can clide do", "drive the clide editor, files, git, readers, toasts, layout — via `clide <subsystem> <verb>`.
UI", "open this in clide", "show the user", "toast", or invoking /clide. Triggers: "what can clide do", "drive the clide UI", "open this in clide",
"show the user", "toast", or invoking /clide.
user-invocable: true user-invocable: true
allowed-tools: Bash allowed-tools: Bash
--- ---
@@ -108,3 +108,4 @@ CLI (D-6): one cmd id env.path → clide env path list|set|add|remove|clear|capt
.worktrees/ added to IgnoreSet.builtin() and the project-init gitignore scaffold. Tests: path_preset_test (pure fns + real worktree layout), env_path_commands_test (all verbs), agent_bootstrap prependDirs cases, PaneRegistry pathForSpawn PTY test, widget tests for the control incl. worktree key sharing + capture. make test (4048) + make test-a11y green.', NULL, '2026-07-13 15:39:31', '2026-07-13 15:39:31.309', '2026-07-13 15:39:31.309', NULL, '44007d87d28b52050716cd913009d341', 2) ON CONFLICT(hash) DO NOTHING; .worktrees/ added to IgnoreSet.builtin() and the project-init gitignore scaffold. Tests: path_preset_test (pure fns + real worktree layout), env_path_commands_test (all verbs), agent_bootstrap prependDirs cases, PaneRegistry pathForSpawn PTY test, widget tests for the control incl. worktree key sharing + capture. make test (4048) + make test-a11y green.', NULL, '2026-07-13 15:39:31', '2026-07-13 15:39:31.309', '2026-07-13 15:39:31.309', NULL, '44007d87d28b52050716cd913009d341', 2) ON CONFLICT(hash) DO NOTHING;
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FNR3DP0D48AZZ3NRA8JF3Q10', 'status', 'in_progress', 'done', NULL, '2026-07-13 16:48:56', '2026-07-13 16:48:56.833', '2026-07-13 16:48:56.833', NULL, 'd6c02324e60b8d412840b1ffd600a13f', 2) ON CONFLICT(hash) DO NOTHING; INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FNR3DP0D48AZZ3NRA8JF3Q10', 'status', 'in_progress', 'done', NULL, '2026-07-13 16:48:56', '2026-07-13 16:48:56.833', '2026-07-13 16:48:56.833', NULL, 'd6c02324e60b8d412840b1ffd600a13f', 2) ON CONFLICT(hash) DO NOTHING;
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FNTF7KE5Y497PQC7SCFGR1KC', 'status', 'backlog', 'done', NULL, '2026-07-13 20:49:17', '2026-07-13 20:49:17.282', '2026-07-13 20:49:17.282', NULL, 'd2d3b437c1063f835e5b34c0cd996f9d', 2) ON CONFLICT(hash) DO NOTHING;
+2
View File
@@ -97,3 +97,5 @@ Injection (prepend, dedup, next-spawn semantics): PTY panes via PaneRegistry.pat
CLI (D-6): one cmd id env.path → clide env path list|set|add|remove|clear|capture; Flutter-free handler lib/src/daemon/env_path_commands.dart over an injected PathPresetStore port (adapter in main.dart); mutations publish on envPathChannel; capture diffs loginShellPathOrNull() (new shell_env getter) vs process PATH. UI: Settings → Tools → Workspace PATH section, custom control (ordered list, add/remove/reorder, missing-dir warning, worktree note, capture suggestions) in builtin.tools-settings; en+nl catalogs. CLI (D-6): one cmd id env.path → clide env path list|set|add|remove|clear|capture; Flutter-free handler lib/src/daemon/env_path_commands.dart over an injected PathPresetStore port (adapter in main.dart); mutations publish on envPathChannel; capture diffs loginShellPathOrNull() (new shell_env getter) vs process PATH. UI: Settings → Tools → Workspace PATH section, custom control (ordered list, add/remove/reorder, missing-dir warning, worktree note, capture suggestions) in builtin.tools-settings; en+nl catalogs.
.worktrees/ added to IgnoreSet.builtin() and the project-init gitignore scaffold. Tests: path_preset_test (pure fns + real worktree layout), env_path_commands_test (all verbs), agent_bootstrap prependDirs cases, PaneRegistry pathForSpawn PTY test, widget tests for the control incl. worktree key sharing + capture. make test (4048) + make test-a11y green.', 'done', 'high', NULL, NULL, 'D-106', '2026-07-13 15:17:10.275', '2026-07-13 16:48:56.833', NULL, '09c6b262b3c0ecfd2f621d27f2cc5eb2', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash); .worktrees/ added to IgnoreSet.builtin() and the project-init gitignore scaffold. Tests: path_preset_test (pure fns + real worktree layout), env_path_commands_test (all verbs), agent_bootstrap prependDirs cases, PaneRegistry pathForSpawn PTY test, widget tests for the control incl. worktree key sharing + capture. make test (4048) + make test-a11y green.', 'done', 'high', NULL, NULL, 'D-106', '2026-07-13 15:17:10.275', '2026-07-13 16:48:56.833', NULL, '09c6b262b3c0ecfd2f621d27f2cc5eb2', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FNTF7KE5Y497PQC7SCFGR1KC', 'task', NULL, 'Lead the clide skill description with clide capabilities + env mechanics (FR-2)', NULL, 'backlog', 'low', NULL, NULL, NULL, '2026-07-13 20:48:23.409', '2026-07-13 20:48:23.409', NULL, '28edb12dfa1f2bf75d108f6cf9465ea5', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FNTF7KE5Y497PQC7SCFGR1KC', 'task', NULL, 'Lead the clide skill description with clide capabilities + env mechanics (FR-2)', NULL, 'done', 'low', NULL, NULL, NULL, '2026-07-13 20:48:23.409', '2026-07-13 20:49:17.282', NULL, 'b7eaec1d037d1c36cf54fac07b3b2dd4', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
+3
View File
@@ -41,6 +41,9 @@ heading, and (b) bumping `pubspec.yaml` `version:` in the same commit.
skills removed, repo-agnostic ones moved to user scope, and stale guidance in skills removed, repo-agnostic ones moved to user scope, and stale guidance in
the remaining five (paths, commands, icon API) brought back in line with the the remaining five (paths, commands, icon API) brought back in line with the
repo. repo.
- The `clide` skill description now leads with the hosting mechanics (`clide`
on PATH, `CLIDE_SOCK`) and `clide capabilities` as the entry action, so an
agent deciding whether to invoke it sees the first move up front (T-512).
### Fixed ### Fixed
+4 -31
View File
@@ -17,36 +17,9 @@ in the D-record.
--- ---
## FR-2 — Lead the `clide` skill `description` with `clide capabilities` ## FR-2 — Lead the `clide` skill `description` with `clide capabilities` *(accepted → T-512, 2026-07-13)*
- **Status:** proposed
- **Source:** settled-reach estate-cleanup session, 2026-07-13 — de-forking
the hand-copied `clide` skill back to canonical surfaced a description
improvement in the consumer's fork worth keeping.
- **Severity:** low; discoverability wording, not a functional gap.
### Problem
The canonical `.claude/skills/clide/SKILL.md` `description` names the
triggers but not the *first move*. settled-reach's drifted copy had a
sharper opening that named `clide capabilities` as the entry action and the
`clide`-on-PATH + `CLIDE_SOCK` mechanics inline. Syncing that copy back to
canonical (de-forking) drops the improvement unless it's adopted here. The
skill *body* already says "discover the surface first → `clide capabilities`",
but the `description` — what an agent reads when *deciding* whether to invoke
the skill — buries that lead.
### Proposal
Fold the fork's opening into the canonical `description` frontmatter:
> clide is the IDE hosting this session; it puts `clide` on your PATH and a
> per-workspace socket in `CLIDE_SOCK`. Start with `clide capabilities` to
> enumerate the live tool surface.
Applied: the canonical `.claude/skills/clide/SKILL.md` `description` now
leads with the hosting context (`clide` on PATH, `CLIDE_SOCK`) and
`clide capabilities` as the entry action, keeping the trigger list.
Pure frontmatter wording; no behavior change. Pure frontmatter wording; no behavior change.
---
*Logged from a settled-reach session (consuming the clide skill), not
authored in a clide session — review and triage/commit from clide.*