Skip to content

Commit 3520afe

Browse files
committed
fix(devin): give the 11 Devin tools real display names
Every Devin tool had its id as its `name` (`list_session_messages`), so the generated docs rendered `### list_session_messages` where every other integration renders a human name. It was the only integration doing this -- 11 of 4427 tools. Names take the service prefix, matching the majority convention (3200 of 4416 names start with their service). Also points the ship skill at check:audits instead of hand-listing the audits. That copy had drifted five behind package.json: cron-parity, import-specifiers, sql-date-binding, trigger-block-cycle and native-typecheck were all missing, so shipping never ran them. It was the third copy of that list; there is now one.
1 parent 21a80bd commit 3520afe

16 files changed

Lines changed: 34 additions & 77 deletions

.agents/skills/ship/SKILL.md

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -65,21 +65,10 @@ When the user runs `/ship`:
6565
echo "❌ block registry audit failed — do not ship"
6666
exit 1
6767
}
68-
rm -f /tmp/ship-audit-results
69-
for s in check:boundaries check:api-validation:strict check:desktop-bridge check:desktop-ipc \
70-
check:utils check:zustand-v5 \
71-
check:react-query check:client-boundary check:bare-icons check:icon-paths \
72-
check:realtime-prune check:tool-registry-boundary check:tool-request-boundary \
73-
tool-metadata:check \
74-
integration-catalog:check skills:check agent-stream-docs:check; do
75-
( bun run "$s" >"/tmp/ship-audit-${s//:/-}.log" 2>&1; echo "$? $s" >>/tmp/ship-audit-results ) &
76-
done
77-
wait
78-
# any non-zero line is a failing audit — read its /tmp/ship-audit-<name>.log and fix before shipping.
79-
# `exit 1` on failure preserves the original sequential checks' semantics (their non-zero exit is
80-
# what an agent gates on); never use `grep … && echo ❌ || echo ✅` here — it always exits 0.
81-
if grep -vE '^0 ' /tmp/ship-audit-results; then echo "❌ audit(s) failed — do not ship"; exit 1; fi
82-
echo "✅ all audits passed"
68+
# Runs every audit CI runs, concurrently, and replays the output of any that fail.
69+
# Do not hand-list the audits here: the list is derived in scripts/run-audits.ts, and the
70+
# copy that used to live in this file had already drifted five audits behind package.json.
71+
bun run check:audits || { echo "❌ audit(s) failed — do not ship"; exit 1; }
8372
```
8473
If Phase A regenerated a file, its matching `:check` in Phase B now passes trivially — that parity is the point. Do not ship with any generator or audit failing; fix the cause (never silence it) and re-run. `check:migrations` and `type-check` are covered by steps 5 and CI respectively and are not repeated here.
8574
7. **Stage and commit** the changes with the generated message — including any files Phase A regenerated in step 6

.claude/commands/ship.md

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -64,21 +64,10 @@ When the user runs `/ship`:
6464
echo "❌ block registry audit failed — do not ship"
6565
exit 1
6666
}
67-
rm -f /tmp/ship-audit-results
68-
for s in check:boundaries check:api-validation:strict check:desktop-bridge check:desktop-ipc \
69-
check:utils check:zustand-v5 \
70-
check:react-query check:client-boundary check:bare-icons check:icon-paths \
71-
check:realtime-prune check:tool-registry-boundary check:tool-request-boundary \
72-
tool-metadata:check \
73-
integration-catalog:check skills:check agent-stream-docs:check; do
74-
( bun run "$s" >"/tmp/ship-audit-${s//:/-}.log" 2>&1; echo "$? $s" >>/tmp/ship-audit-results ) &
75-
done
76-
wait
77-
# any non-zero line is a failing audit — read its /tmp/ship-audit-<name>.log and fix before shipping.
78-
# `exit 1` on failure preserves the original sequential checks' semantics (their non-zero exit is
79-
# what an agent gates on); never use `grep … && echo ❌ || echo ✅` here — it always exits 0.
80-
if grep -vE '^0 ' /tmp/ship-audit-results; then echo "❌ audit(s) failed — do not ship"; exit 1; fi
81-
echo "✅ all audits passed"
67+
# Runs every audit CI runs, concurrently, and replays the output of any that fail.
68+
# Do not hand-list the audits here: the list is derived in scripts/run-audits.ts, and the
69+
# copy that used to live in this file had already drifted five audits behind package.json.
70+
bun run check:audits || { echo "❌ audit(s) failed — do not ship"; exit 1; }
8271
```
8372
If Phase A regenerated a file, its matching `:check` in Phase B now passes trivially — that parity is the point. Do not ship with any generator or audit failing; fix the cause (never silence it) and re-run. `check:migrations` and `type-check` are covered by steps 5 and CI respectively and are not repeated here.
8473
7. **Stage and commit** the changes with the generated message — including any files Phase A regenerated in step 6

.cursor/commands/ship.md

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -59,21 +59,10 @@ When the user runs `/ship`:
5959
echo "❌ block registry audit failed — do not ship"
6060
exit 1
6161
}
62-
rm -f /tmp/ship-audit-results
63-
for s in check:boundaries check:api-validation:strict check:desktop-bridge check:desktop-ipc \
64-
check:utils check:zustand-v5 \
65-
check:react-query check:client-boundary check:bare-icons check:icon-paths \
66-
check:realtime-prune check:tool-registry-boundary check:tool-request-boundary \
67-
tool-metadata:check \
68-
integration-catalog:check skills:check agent-stream-docs:check; do
69-
( bun run "$s" >"/tmp/ship-audit-${s//:/-}.log" 2>&1; echo "$? $s" >>/tmp/ship-audit-results ) &
70-
done
71-
wait
72-
# any non-zero line is a failing audit — read its /tmp/ship-audit-<name>.log and fix before shipping.
73-
# `exit 1` on failure preserves the original sequential checks' semantics (their non-zero exit is
74-
# what an agent gates on); never use `grep … && echo ❌ || echo ✅` here — it always exits 0.
75-
if grep -vE '^0 ' /tmp/ship-audit-results; then echo "❌ audit(s) failed — do not ship"; exit 1; fi
76-
echo "✅ all audits passed"
62+
# Runs every audit CI runs, concurrently, and replays the output of any that fail.
63+
# Do not hand-list the audits here: the list is derived in scripts/run-audits.ts, and the
64+
# copy that used to live in this file had already drifted five audits behind package.json.
65+
bun run check:audits || { echo "❌ audit(s) failed — do not ship"; exit 1; }
7766
```
7867
If Phase A regenerated a file, its matching `:check` in Phase B now passes trivially — that parity is the point. Do not ship with any generator or audit failing; fix the cause (never silence it) and re-run. `check:migrations` and `type-check` are covered by steps 5 and CI respectively and are not repeated here.
7968
7. **Stage and commit** the changes with the generated message — including any files Phase A regenerated in step 6

apps/sim/tools/devin/append_session_tags.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export const devinAppendSessionTagsTool: ToolConfig<
77
DevinSessionTagsResponse
88
> = {
99
id: 'devin_append_session_tags',
10-
name: 'append_session_tags',
10+
name: 'Devin Append Session Tags',
1111
description: 'Add tags to a Devin session without removing existing tags (max 50 tags total).',
1212
version: '1.0.0',
1313

apps/sim/tools/devin/archive_session.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export const devinArchiveSessionTool: ToolConfig<
77
DevinArchiveSessionResponse
88
> = {
99
id: 'devin_archive_session',
10-
name: 'archive_session',
10+
name: 'Devin Archive Session',
1111
description:
1212
'Archive a Devin session. Archived sessions can still be viewed but cannot be modified or resumed.',
1313
version: '1.0.0',

apps/sim/tools/devin/create_session.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export const devinCreateSessionTool: ToolConfig<
88
DevinCreateSessionResponse
99
> = {
1010
id: 'devin_create_session',
11-
name: 'create_session',
11+
name: 'Devin Create Session',
1212
description:
1313
'Create a new Devin session with a prompt. Devin will autonomously work on the task described in the prompt.',
1414
version: '1.0.0',

apps/sim/tools/devin/get_session.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { DEVIN_SESSION_OUTPUT_PROPERTIES } from './types'
44

55
export const devinGetSessionTool: ToolConfig<DevinGetSessionParams, DevinGetSessionResponse> = {
66
id: 'devin_get_session',
7-
name: 'get_session',
7+
name: 'Devin Get Session',
88
description:
99
'Retrieve details of an existing Devin session including status, tags, pull requests, and structured output.',
1010
version: '1.0.0',

apps/sim/tools/devin/get_session_tags.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export const devinGetSessionTagsTool: ToolConfig<
66
DevinSessionTagsResponse
77
> = {
88
id: 'devin_get_session_tags',
9-
name: 'get_session_tags',
9+
name: 'Devin Get Session Tags',
1010
description: 'Retrieve the tags currently applied to a Devin session.',
1111
version: '1.0.0',
1212

apps/sim/tools/devin/list_session_attachments.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export const devinListSessionAttachmentsTool: ToolConfig<
1010
DevinListSessionAttachmentsResponse
1111
> = {
1212
id: 'devin_list_session_attachments',
13-
name: 'list_session_attachments',
13+
name: 'Devin List Session Attachments',
1414
description: 'List the files uploaded to or produced by a Devin session.',
1515
version: '1.0.0',
1616

apps/sim/tools/devin/list_session_messages.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export const devinListSessionMessagesTool: ToolConfig<
77
DevinListSessionMessagesResponse
88
> = {
99
id: 'devin_list_session_messages',
10-
name: 'list_session_messages',
10+
name: 'Devin List Session Messages',
1111
description:
1212
'List the messages exchanged in a Devin session, including messages from both the user and Devin.',
1313
version: '1.0.0',

0 commit comments

Comments
 (0)