WEBVTT

1
00:00:00.000 --> 00:00:03.657
A repeated procedure becomes
easier to reuse when its inputs,

2
00:00:03.738 --> 00:00:05.573
steps, and output are explicit.

3
00:00:05.956 --> 00:00:10.171
In this lesson, we will package the
source-checking workflow as a skill.

4
00:00:10.414 --> 00:00:14.420
The result is a focused directory
containing metadata, instructions,

5
00:00:14.455 --> 00:00:18.077
and a short supporting reference.
Start with the source discipline

6
00:00:18.123 --> 00:00:21.781
from Module Four and a preserved
checkpoint-three project.

7
00:00:22.106 --> 00:00:24.962
We will test runtime
behavior in the next lesson.

8
00:00:25.345 --> 00:00:28.491
First decide whether a skill
is the right form of reuse.

9
00:00:28.933 --> 00:00:31.150
A one-off question can stay a prompt.

10
00:00:31.475 --> 00:00:35.875
General project expectations
belong in AGENTS dot md.

11
00:00:36.317 --> 00:00:39.231
A deterministic transformation
may belong in a script.

12
00:00:39.614 --> 00:00:43.746
A skill is useful when a recurring
task needs judgment and a recognizable

13
00:00:43.793 --> 00:00:47.206
sequence, such as identifying
the exact hardware source,

14
00:00:47.450 --> 00:00:51.119
extracting relevant constraints,
and explaining missing information.

15
00:00:51.560 --> 00:00:54.126
Our task is datasheet-to-constraints.

16
00:00:54.451 --> 00:00:57.934
It should derive interface or
operating constraints for an identified

17
00:00:57.992 --> 00:01:01.568
board or component using
primary technical material.

18
00:01:02.009 --> 00:01:05.132
It should not become a universal
embedded-engineering assistant

19
00:01:05.307 --> 00:01:08.673
that activates for every code
edit and documentation change.

20
00:01:09.115 --> 00:01:14.130
A narrow purpose makes both the input
contract and the evaluation much clearer.

21
00:01:14.641 --> 00:01:17.161
Create the dot agents
folder at the project root,

22
00:01:17.370 --> 00:01:19.901
then skills, then
datasheet-to-constraints.

23
00:01:20.342 --> 00:01:23.128
CP03 does not yet supply this skill.

24
00:01:23.511 --> 00:01:27.075
Create the required
file named SKILL dot md.

25
00:01:27.354 --> 00:01:30.977
The shared Agent Skills specification
describes the package format.

26
00:01:31.360 --> 00:01:35.330
Codex has its own documented
discovery and invocation behavior.

27
00:01:35.656 --> 00:01:38.674
Keep those two ideas separate:
a package can be well

28
00:01:38.790 --> 00:01:42.122
formed while the current host has
not discovered or selected it.

29
00:01:42.447 --> 00:01:46.824
At the top of the file, YAML frontmatter
sits between delimiter lines.

30
00:01:47.149 --> 00:01:49.587
The required name should
match the directory,

31
00:01:49.738 --> 00:01:52.467
using the specification's
lowercase naming form.

32
00:01:52.745 --> 00:01:56.983
The description should say what task this
skill handles and when it is relevant.

33
00:01:57.308 --> 00:02:00.628
A phrase such as helps
with hardware is too broad.

34
00:02:00.907 --> 00:02:04.843
It does not tell the host whether a
README typo or a firmware timing review

35
00:02:04.889 --> 00:02:08.709
belongs here. Write the
description around the actual task:

36
00:02:09.150 --> 00:02:13.898
derive constraints for an exact board or
component from supplied primary documents.

37
00:02:14.340 --> 00:02:18.194
Include a short boundary for unrelated
prose and general coding work.

38
00:02:18.577 --> 00:02:23.059
Put the useful task words early.
The description is a selection aid,

39
00:02:23.338 --> 00:02:27.099
not a place for a long sales pitch
or every detail of the procedure.

40
00:02:27.482 --> 00:02:30.002
Below the metadata, define the inputs.

41
00:02:30.280 --> 00:02:33.787
We need the exact part or board
identity, the source material,

42
00:02:33.903 --> 00:02:37.908
and the question the user wants
answered. Preserve the document title,

43
00:02:38.025 --> 00:02:41.775
publisher, revision when
available, and relevant sections.

44
00:02:42.471 --> 00:02:46.929
If the revision is absent, the procedure
should say that it is not established.

45
00:02:47.533 --> 00:02:50.180
A required field must
not pressure the agent

46
00:02:50.250 --> 00:02:52.792
into inventing a value
just to fill a table.

47
00:02:53.233 --> 00:02:56.984
Now write the steps as actions an
engineer could perform manually.

48
00:02:57.367 --> 00:03:02.347
Confirm the identity. Separate chip-level
facts from board-level connections.

49
00:03:02.672 --> 00:03:05.691
Extract only the constraints
relevant to the request.

50
00:03:06.132 --> 00:03:07.955
Retain units and conditions.

51
00:03:08.280 --> 00:03:11.217
Attach a source location
to every supported claim.

52
00:03:11.728 --> 00:03:14.375
Label any inference and explain its basis.

53
00:03:14.816 --> 00:03:18.207
Mark unavailable or conflicting
information explicitly,

54
00:03:18.381 --> 00:03:20.471
then explain what it
means for the project.

55
00:03:20.854 --> 00:03:23.408
The output contract makes
the result reviewable.

56
00:03:23.849 --> 00:03:27.762
Use columns for claim, value and
unit, source section or link,

57
00:03:28.006 --> 00:03:31.291
confidence or missing information,
and design consequence.

58
00:03:31.802 --> 00:03:34.612
A reviewer should be able to
pick a row, open its source,

59
00:03:34.786 --> 00:03:37.201
and decide whether the
source supports the value.

60
00:03:37.898 --> 00:03:40.974
A beautifully formatted row
with an unsupported pin number

61
00:03:41.044 --> 00:03:44.283
is a failure, even when the
rest of the table is correct.

62
00:03:45.235 --> 00:03:46.849
Be careful with confidence.

63
00:03:47.128 --> 00:03:50.820
A numerical percentage can suggest
precision without evidence.

64
00:03:51.424 --> 00:03:55.545
Phrases such as explicitly documented,
inferred from named facts,

65
00:03:55.754 --> 00:03:59.214
or not established by the supplied
excerpt are more useful here.

66
00:03:59.539 --> 00:04:01.780
They explain the basis of the statement.

67
00:04:02.058 --> 00:04:04.531
An absent pin mapping
should remain absent,

68
00:04:04.682 --> 00:04:08.084
accompanied by the exact source
or variant needed to resolve it.

69
00:04:08.467 --> 00:04:14.028
Add a focused supporting reference under
references slash extraction-rules dot md.

70
00:04:14.469 --> 00:04:18.173
Checkpoint four supplies an
authored example for comparison.

71
00:04:18.498 --> 00:04:21.853
Your new reference should explain
identity, units, conditions,

72
00:04:21.934 --> 00:04:26.218
and missing-data handling. Link to it
relatively from the skill directory.

73
00:04:26.497 --> 00:04:29.202
Check that the file exists
and that the link works.

74
00:04:29.585 --> 00:04:32.754
A reference that cannot be found
is a defect in the package,

75
00:04:32.998 --> 00:04:37.352
not useful extra context. Keep
the reference small and relevant.

76
00:04:37.631 --> 00:04:40.765
Do not copy an entire
manufacturer manual into it.

77
00:04:41.090 --> 00:04:43.482
Link to primary material and preserve only

78
00:04:43.552 --> 00:04:46.489
content that the project
has rights to distribute.

79
00:04:46.814 --> 00:04:50.158
Do not add scripts merely to
make the skill look substantial.

80
00:04:50.436 --> 00:04:54.651
A deterministic helper can be valuable
later if a repeated check earns

81
00:04:54.709 --> 00:04:58.982
its maintenance cost, but the first
version can be instruction-only.

82
00:04:59.423 --> 00:05:02.639
Include one positive example
of uncertainty handling.

83
00:05:03.080 --> 00:05:08.212
If a source establishes the board family
but not its exact pin mapping, the output

84
00:05:08.270 --> 00:05:12.089
should mark the mapping unresolved and
identify the missing board reference.

85
00:05:12.693 --> 00:05:18.498
Also explain the failure case: inserting
a familiar ESP32 pin from memory.

86
00:05:18.939 --> 00:05:22.608
Even a lucky guess fails the evidence
rule because its claimed support

87
00:05:22.654 --> 00:05:26.555
does not exist. Review the
finished file in two passes.

88
00:05:26.938 --> 00:05:30.386
The first checks packaging:
filename, name match,

89
00:05:30.514 --> 00:05:33.637
YAML delimiters, description,
and relative reference.

90
00:05:34.020 --> 00:05:37.933
The second checks the procedure:
clear inputs, bounded steps,

91
00:05:38.049 --> 00:05:40.974
useful output, and honest
missing-data behavior.

92
00:05:41.358 --> 00:05:44.121
A format validator can
assist the first pass.

93
00:05:44.399 --> 00:05:47.267
It cannot decide whether a
manufacturer section supports

94
00:05:47.302 --> 00:05:50.727
a claim or whether the host selected
the skill at the right time.

95
00:05:51.168 --> 00:05:55.022
Your exercise is to create the
skill or improve one demonstrated

96
00:05:55.069 --> 00:05:58.319
weakness in a disposable
copy of the supplied version.

97
00:05:58.830 --> 00:06:03.625
Submit the file, focused reference,
and two anticipated failure cases.

98
00:06:04.066 --> 00:06:05.529
Preserve earlier work.

99
00:06:05.970 --> 00:06:10.278
Explain why each proposed step
belongs to this specific procedure

100
00:06:10.452 --> 00:06:13.947
and which output condition would
make the result unacceptable.

101
00:06:14.330 --> 00:06:18.811
If you cannot describe failure, narrow
the task before adding more instructions.

102
00:06:19.253 --> 00:06:24.500
In the next lesson, we will run relevant,
unrelated, and incomplete-input requests.

103
00:06:25.104 --> 00:06:30.073
That evaluation is what turns a plausible
package into a tested reusable procedure.

104
00:06:30.515 --> 00:06:34.822
For now, the useful outcome is a small
skill whose purpose and evidence contract

105
00:06:34.880 --> 00:06:38.932
can be understood without the old
conversation. The structure supports

106
00:06:39.025 --> 00:06:42.821
reuse while leaving the engineering
judgment visible for review.
