Skip to content

Commit aa2292f

Browse files
committed
feat: add polished skill display metadata
1 parent d65a8cb commit aa2292f

File tree

8 files changed

+49
-0
lines changed

8 files changed

+49
-0
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
interface:
2+
display_name: "Adversarial Review"
3+
short_description: "Run a skeptical review against the current diff or branch range"
4+
default_prompt: "Use $claude-adversarial-review to run a skeptical Claude review against the current diff or branch range and summarize the highest-risk findings."
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
interface:
2+
display_name: "Cancel"
3+
short_description: "Cancel a running Claude Companion job"
4+
default_prompt: "Use $claude-cancel to stop the specified Claude Companion job."
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
interface:
2+
display_name: "Delegate"
3+
short_description: "Delegate an implementation or investigation task to Claude Code"
4+
default_prompt: "Use $claude-rescue to delegate this task to Claude Code and report the result or background job status."
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
interface:
2+
display_name: "Result"
3+
short_description: "Show the stored output for a Claude Companion job"
4+
default_prompt: "Use $claude-result to show the stored output for the specified Claude Companion job."
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
interface:
2+
display_name: "Review"
3+
short_description: "Review the current worktree or a base diff with Claude"
4+
default_prompt: "Use $claude-review to review the current worktree or a chosen base diff with Claude and summarize actionable findings."
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
interface:
2+
display_name: "Setup"
3+
short_description: "Check Claude Companion readiness and review-gate status"
4+
default_prompt: "Use $claude-setup to check Claude Companion readiness and report any setup blockers."
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
interface:
2+
display_name: "Status"
3+
short_description: "Show Claude Companion jobs for the current workspace"
4+
default_prompt: "Use $claude-status to show Claude Companion jobs for the current workspace."

src/claude/plugin-contract.test.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@ describe('plugin install contract', () => {
231231
pluginName: 'claude-companion',
232232
forceRemoteSync: false,
233233
});
234+
const skills = await rpc.request('skills/list', { cwd: repoDir });
234235

235236
expect(listed.marketplaces).toEqual(
236237
expect.arrayContaining([
@@ -243,6 +244,26 @@ describe('plugin install contract', () => {
243244
expect(readFileSync(configPath, 'utf8')).toContain(
244245
'[plugins."claude-companion@claude-contract-marketplace"]',
245246
);
247+
expect(
248+
Object.fromEntries(
249+
skills.data[0].skills
250+
.filter((skill: { name: string }) =>
251+
skill.name.startsWith('claude-companion:'),
252+
)
253+
.map((skill: { name: string; interface?: { displayName?: string } }) => [
254+
skill.name,
255+
skill.interface?.displayName,
256+
]),
257+
),
258+
).toEqual({
259+
'claude-companion:claude-adversarial-review': 'Adversarial Review',
260+
'claude-companion:claude-cancel': 'Cancel',
261+
'claude-companion:claude-rescue': 'Delegate',
262+
'claude-companion:claude-result': 'Result',
263+
'claude-companion:claude-review': 'Review',
264+
'claude-companion:claude-setup': 'Setup',
265+
'claude-companion:claude-status': 'Status',
266+
});
246267
} finally {
247268
await closeWebSocket(ws);
248269
await stopServer(server);

0 commit comments

Comments
 (0)