1
00:00:00,000 --> 00:00:00,800
G'day everyone!

2
00:00:01,246 --> 00:00:05,766
Lachlan Reed here, joined by James Turner,
and this episode is brought to you by

3
00:00:05,833 --> 00:00:07,206
Jellypod AI.

4
00:00:07,466 --> 00:00:12,086
Now James, I was messing about in my
backyard shed last night,

5
00:00:12,106 --> 00:00:16,726
and I updated Claude Code to version
2.1.178.

6
00:00:16,918 --> 00:00:21,207
They've introduced something that
absolutely blew my mind -- [genuinely surprised] a

7
00:00:21,274 --> 00:00:27,047
brand new tool parameter matching syntax
that looks like `Tool(param:value)`.

8
00:00:28,000 --> 00:00:29,280
Oh, I saw that commit!

9
00:00:29,743 --> 00:00:34,561
It's essentially regex-level control but
specifically for your LLM's tool calls.

10
00:00:34,774 --> 00:00:38,881
So instead of just a blanket "yes" or "no"
to Claude running commands,

11
00:00:38,901 --> 00:00:44,241
you can write a rule like
`Agent(model:opus)` to explicitly block or intercept when

12
00:00:44,294 --> 00:00:46,881
it tries to spin up a high-cost Opus
subagent.

13
00:00:47,000 --> 00:00:47,800
Spot on!

14
00:00:48,324 --> 00:00:52,280
It stops those sneaky midnight runs where
you wake up to a three-hundred-dollar API

15
00:00:52,344 --> 00:00:56,040
bill because Claude decided to write a
novel using Opus.

16
00:00:56,180 --> 00:01:01,559
You just write `Agent(model:opus)` in your
configuration, set the permission to

17
00:01:01,560 --> 00:01:06,121
'deny' or 'ask', and it intercepts that
exact argument before the token even hits

18
00:01:06,141 --> 00:01:06,841
the network.

19
00:01:07,000 --> 00:01:09,320
That is incredibly powerful.

20
00:01:09,938 --> 00:01:13,488
And it's not just for saving cash on API
calls.

21
00:01:13,581 --> 00:01:15,728
Think about file system safety.

22
00:01:15,848 --> 00:01:21,088
You could write something like
`Bash(cmd:rm)` to catch any destructive terminal

23
00:01:21,132 --> 00:01:22,448
commands before they execute.

24
00:01:22,635 --> 00:01:25,248
It's directory-level scoping for security.

25
00:01:26,000 --> 00:01:27,160
Exactly.

26
00:01:27,890 --> 00:01:32,080
And speaking of directories, they've also
sorted out how nested skill collisions are

27
00:01:32,130 --> 00:01:32,640
handled.

28
00:01:32,880 --> 00:01:37,840
If you have multiple `.claude/skills`
folders -- say, one in your project root and

29
00:01:37,880 --> 00:01:43,120
another deep inside a nested subdirectory
-- Claude Code now resolves them using a

30
00:01:43,160 --> 00:01:45,280
"directory-closest" scope.

31
00:01:46,000 --> 00:01:50,640
Wait, so if I have a custom deployment
script defined as a skill in my root

32
00:01:50,688 --> 00:01:55,680
directory, but my frontend subfolder has
its own specialized version of that same

33
00:01:55,773 --> 00:01:57,040
skill...

34
00:01:57,080 --> 00:01:58,080
[questioning tone] how does it resolve?

35
00:01:59,000 --> 00:01:59,640
It's brilliant.

36
00:02:00,579 --> 00:02:05,566
If you're working inside the frontend
subdirectory, Claude will traverse upwards,

37
00:02:05,614 --> 00:02:09,886
find the frontend skill first, and execute
that one instead of the global root

38
00:02:09,939 --> 00:02:10,446
skill.

39
00:02:10,686 --> 00:02:14,606
It prevents your nested configurations
from stomping all over each other.

40
00:02:14,819 --> 00:02:18,926
No more namespace collisions when you're
jumping between monorepo packages.

41
00:02:19,000 --> 00:02:21,880
That's a massive quality-of-life win for
monorepos.

42
00:02:22,503 --> 00:02:26,610
It makes local skill development actually
viable without fearing you'll break global

43
00:02:26,690 --> 00:02:27,331
defaults.

44
00:02:27,490 --> 00:02:31,570
And speaking of quality-of-life, did you
notice the new visual indicator in the

45
00:02:31,614 --> 00:02:32,130
terminal?

46
00:02:33,000 --> 00:02:34,600
Oh, the purple shimmer!

47
00:02:35,373 --> 00:02:38,360
It's like a little digital magic show in
your console.

48
00:02:38,493 --> 00:02:43,480
Whenever a major workflow trigger gets
activated, the terminal output does this

49
00:02:43,526 --> 00:02:45,720
subtle purple shimmering transition.

50
00:02:45,880 --> 00:02:50,360
It's a nice little touch so you actually
know when Claude has handed over control to

51
00:02:50,400 --> 00:02:52,120
a specific background agent.

52
00:02:53,000 --> 00:02:53,560
It's clean.

53
00:02:54,383 --> 00:02:57,403
But they also made some practical
diagnostic updates.

54
00:02:57,563 --> 00:03:02,763
The `/doctor` command has been completely
overhauled to verify these new parameter

55
00:03:02,816 --> 00:03:03,803
matching rules.

56
00:03:03,990 --> 00:03:09,483
If you've got a borked configuration file,
`/doctor` will pinpoint exactly which

57
00:03:09,563 --> 00:03:13,403
`Tool(param:value)` string has a syntax
error.

58
00:03:14,000 --> 00:03:18,400
Which is handy, because knowing me, I'll
definitely put a colon where a semi-colon

59
00:03:18,423 --> 00:03:19,040
should be.

60
00:03:21,265 --> 00:03:24,240
And there's one more change that might
annoy some folks at first,

61
00:03:24,260 --> 00:03:29,280
but it makes complete sense: the `/bug`
command now forces you to provide a

62
00:03:29,333 --> 00:03:31,840
description *before* you can submit.

63
00:03:32,000 --> 00:03:32,960
Honestly?

64
00:03:33,056 --> 00:03:33,600
Good.

65
00:03:34,107 --> 00:03:38,320
No more empty bug reports with just a log
dump and zero context.

66
00:03:38,460 --> 00:03:40,800
You have to explain what went wrong first.

67
00:03:40,987 --> 00:03:46,320
It forces developers to give the team some
actual signal instead of just noise.

68
00:03:47,000 --> 00:03:48,000
Fair play.

69
00:03:48,568 --> 00:03:52,600
Well, that's version 2.1.178 for you.

70
00:03:52,653 --> 00:03:56,440
It's a massive leap forward for keeping
your AI agents on a tight,

71
00:03:56,504 --> 00:03:57,880
cost-effective leash.

72
00:03:58,024 --> 00:04:02,200
Give those new permission scopes a spin,
and we'll catch you in the next one!

73
00:04:03,000 --> 00:04:03,480
See ya!

