diff --git a/.claude/skills/clide/SKILL.md b/.claude/skills/clide/SKILL.md index 8de4b6fe..a17cc23a 100644 --- a/.claude/skills/clide/SKILL.md +++ b/.claude/skills/clide/SKILL.md @@ -1,11 +1,12 @@ --- name: clide description: > - Use when you are running inside the clide IDE and want to observe or drive - its live UI — panes, editor, files, git, readers, toasts, layout — through - the `clide` CLI, or to find out what commands clide exposes. clide is the - IDE hosting this session. Triggers: "what can clide do", "drive the clide - UI", "open this in clide", "show the user", "toast", or invoking /clide. + 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, then observe or drive the UI — panes, + editor, files, git, readers, toasts, layout — via `clide `. + Triggers: "what can clide do", "drive the clide UI", "open this in clide", + "show the user", "toast", or invoking /clide. user-invocable: true allowed-tools: Bash --- diff --git a/.pql/changelog/ticket_history/2026-07.sql b/.pql/changelog/ticket_history/2026-07.sql index b250a7fa..c1edee79 100644 --- a/.pql/changelog/ticket_history/2026-07.sql +++ b/.pql/changelog/ticket_history/2026-07.sql @@ -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; 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; diff --git a/.pql/changelog/tickets/2026-07.sql b/.pql/changelog/tickets/2026-07.sql index a6ae975b..adb6cd0f 100644 --- a/.pql/changelog/tickets/2026-07.sql +++ b/.pql/changelog/tickets/2026-07.sql @@ -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. .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); diff --git a/CHANGELOG.md b/CHANGELOG.md index ba713af0..d92f8441 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 the remaining five (paths, commands, icon API) brought back in line with the 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 diff --git a/feature-request.md b/feature-request.md index 31ac1680..ae481fc7 100644 --- a/feature-request.md +++ b/feature-request.md @@ -17,36 +17,9 @@ in the D-record. --- -## FR-2 — Lead the `clide` skill `description` with `clide capabilities` - -- **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. +## FR-2 — Lead the `clide` skill `description` with `clide capabilities` *(accepted → T-512, 2026-07-13)* +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. - ---- - -*Logged from a settled-reach session (consuming the clide skill), not -authored in a clide session — review and triage/commit from clide.*