@forwardimpact/schema 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +58 -0
- package/bin/fit-schema.js +48 -21
- package/examples/behaviours/outcome_ownership.yaml +1 -1
- package/examples/behaviours/polymathic_knowledge.yaml +1 -1
- package/examples/behaviours/precise_communication.yaml +1 -1
- package/examples/behaviours/relentless_curiosity.yaml +1 -1
- package/examples/behaviours/systems_thinking.yaml +1 -1
- package/examples/capabilities/business.yaml +1 -1
- package/examples/capabilities/delivery.yaml +1 -1
- package/examples/capabilities/people.yaml +1 -1
- package/examples/capabilities/reliability.yaml +1 -1
- package/examples/capabilities/scale.yaml +1 -1
- package/examples/disciplines/data_engineering.yaml +1 -1
- package/examples/disciplines/engineering_management.yaml +1 -1
- package/examples/disciplines/software_engineering.yaml +1 -1
- package/examples/drivers.yaml +1 -1
- package/examples/framework.yaml +1 -1
- package/examples/grades.yaml +1 -1
- package/examples/questions/behaviours/outcome_ownership.yaml +1 -1
- package/examples/questions/behaviours/polymathic_knowledge.yaml +1 -1
- package/examples/questions/behaviours/precise_communication.yaml +1 -1
- package/examples/questions/behaviours/relentless_curiosity.yaml +1 -1
- package/examples/questions/behaviours/systems_thinking.yaml +1 -1
- package/examples/questions/skills/architecture_design.yaml +1 -1
- package/examples/questions/skills/cloud_platforms.yaml +1 -1
- package/examples/questions/skills/code_quality.yaml +1 -1
- package/examples/questions/skills/data_modeling.yaml +1 -1
- package/examples/questions/skills/devops.yaml +1 -1
- package/examples/questions/skills/full_stack_development.yaml +1 -1
- package/examples/questions/skills/sre_practices.yaml +1 -1
- package/examples/questions/skills/stakeholder_management.yaml +1 -1
- package/examples/questions/skills/team_collaboration.yaml +1 -1
- package/examples/questions/skills/technical_writing.yaml +1 -1
- package/examples/self-assessments.yaml +1 -1
- package/examples/stages.yaml +1 -1
- package/examples/tracks/platform.yaml +1 -1
- package/examples/tracks/sre.yaml +1 -1
- package/lib/schema-validation.js +1 -1
- package/package.json +5 -5
- package/schema/json/behaviour-questions.schema.json +1 -1
- package/schema/json/behaviour.schema.json +1 -1
- package/schema/json/capability.schema.json +1 -1
- package/schema/json/defs.schema.json +1 -1
- package/schema/json/discipline.schema.json +1 -1
- package/schema/json/drivers.schema.json +1 -1
- package/schema/json/framework.schema.json +1 -1
- package/schema/json/grades.schema.json +1 -1
- package/schema/json/self-assessments.schema.json +1 -1
- package/schema/json/skill-questions.schema.json +1 -1
- package/schema/json/stages.schema.json +1 -1
- package/schema/json/track.schema.json +1 -1
- package/schema/rdf/behaviour-questions.ttl +96 -0
- package/schema/rdf/behaviour.ttl +130 -0
- package/schema/rdf/capability.ttl +440 -0
- package/schema/rdf/defs.ttl +396 -0
- package/schema/rdf/discipline.ttl +336 -0
- package/schema/rdf/drivers.ttl +84 -0
- package/schema/rdf/framework.ttl +128 -0
- package/schema/rdf/grades.ttl +357 -0
- package/schema/rdf/self-assessments.ttl +147 -0
- package/schema/rdf/skill-questions.ttl +128 -0
- package/schema/rdf/stages.ttl +142 -0
- package/schema/rdf/track.ttl +231 -0
- package/schema/json/index.schema.json +0 -18
- package/schema/rdf/pathway.ttl +0 -2362
|
@@ -0,0 +1,440 @@
|
|
|
1
|
+
@prefix fit: <https://www.forwardimpact.team/schema/rdf/> .
|
|
2
|
+
@prefix sh: <http://www.w3.org/ns/shacl#> .
|
|
3
|
+
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
|
4
|
+
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
|
5
|
+
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
|
6
|
+
|
|
7
|
+
# =============================================================================
|
|
8
|
+
# Capability Schema
|
|
9
|
+
# =============================================================================
|
|
10
|
+
# Capability area that groups related skills with responsibilities and checklists.
|
|
11
|
+
# =============================================================================
|
|
12
|
+
|
|
13
|
+
# -----------------------------------------------------------------------------
|
|
14
|
+
# Classes
|
|
15
|
+
# -----------------------------------------------------------------------------
|
|
16
|
+
|
|
17
|
+
fit:Capability a rdfs:Class ;
|
|
18
|
+
rdfs:label "Capability"@en ;
|
|
19
|
+
rdfs:comment "Capability area that groups related skills with responsibilities and checklists"@en .
|
|
20
|
+
|
|
21
|
+
fit:Skill a rdfs:Class ;
|
|
22
|
+
rdfs:label "Skill"@en ;
|
|
23
|
+
rdfs:comment "Technical or professional capability that can be measured across proficiency levels"@en .
|
|
24
|
+
|
|
25
|
+
fit:SkillHumanSection a rdfs:Class ;
|
|
26
|
+
rdfs:label "Skill Human Section"@en ;
|
|
27
|
+
rdfs:comment "Human-specific content for a skill"@en .
|
|
28
|
+
|
|
29
|
+
fit:SkillAgentSection a rdfs:Class ;
|
|
30
|
+
rdfs:label "Skill Agent Section"@en ;
|
|
31
|
+
rdfs:comment "Agent-specific content for a skill"@en .
|
|
32
|
+
|
|
33
|
+
fit:SkillStage a rdfs:Class ;
|
|
34
|
+
rdfs:label "Skill Stage"@en ;
|
|
35
|
+
rdfs:comment "Stage-specific guidance for applying a skill"@en .
|
|
36
|
+
|
|
37
|
+
fit:ToolReference a rdfs:Class ;
|
|
38
|
+
rdfs:label "Tool Reference"@en ;
|
|
39
|
+
rdfs:comment "Reference to an external tool with usage guidance"@en .
|
|
40
|
+
|
|
41
|
+
# -----------------------------------------------------------------------------
|
|
42
|
+
# Properties
|
|
43
|
+
# -----------------------------------------------------------------------------
|
|
44
|
+
|
|
45
|
+
fit:professionalResponsibilities a rdf:Property ;
|
|
46
|
+
rdfs:label "professionalResponsibilities"@en ;
|
|
47
|
+
rdfs:comment "Responsibilities for professional/IC track by level"@en ;
|
|
48
|
+
rdfs:domain fit:Capability ;
|
|
49
|
+
rdfs:range fit:ResponsibilitiesByLevel .
|
|
50
|
+
|
|
51
|
+
fit:managementResponsibilities a rdf:Property ;
|
|
52
|
+
rdfs:label "managementResponsibilities"@en ;
|
|
53
|
+
rdfs:comment "Responsibilities for management track by level"@en ;
|
|
54
|
+
rdfs:domain fit:Capability ;
|
|
55
|
+
rdfs:range fit:ResponsibilitiesByLevel .
|
|
56
|
+
|
|
57
|
+
fit:skills a rdf:Property ;
|
|
58
|
+
rdfs:label "skills"@en ;
|
|
59
|
+
rdfs:comment "Skills within this capability"@en ;
|
|
60
|
+
rdfs:domain fit:Capability ;
|
|
61
|
+
rdfs:range fit:Skill .
|
|
62
|
+
|
|
63
|
+
fit:capability a rdf:Property ;
|
|
64
|
+
rdfs:label "capability"@en ;
|
|
65
|
+
rdfs:comment "The capability this skill belongs to"@en ;
|
|
66
|
+
rdfs:domain fit:Skill ;
|
|
67
|
+
rdfs:range fit:Capability .
|
|
68
|
+
|
|
69
|
+
fit:isHumanOnly a rdf:Property ;
|
|
70
|
+
rdfs:label "isHumanOnly"@en ;
|
|
71
|
+
rdfs:comment "If true, this skill is excluded from agent profiles"@en ;
|
|
72
|
+
rdfs:domain fit:Skill ;
|
|
73
|
+
rdfs:range xsd:boolean .
|
|
74
|
+
|
|
75
|
+
fit:levelDescriptions a rdf:Property ;
|
|
76
|
+
rdfs:label "levelDescriptions"@en ;
|
|
77
|
+
rdfs:comment "Description of expectations at each level"@en ;
|
|
78
|
+
rdfs:range fit:LevelDescriptions .
|
|
79
|
+
|
|
80
|
+
fit:implementationReference a rdf:Property ;
|
|
81
|
+
rdfs:label "implementationReference"@en ;
|
|
82
|
+
rdfs:comment "Implementation patterns and code examples in markdown format"@en ;
|
|
83
|
+
rdfs:domain fit:Skill ;
|
|
84
|
+
rdfs:range xsd:string .
|
|
85
|
+
|
|
86
|
+
fit:toolReferences a rdf:Property ;
|
|
87
|
+
rdfs:label "toolReferences"@en ;
|
|
88
|
+
rdfs:comment "Recommended tools for this skill"@en ;
|
|
89
|
+
rdfs:domain fit:Skill ;
|
|
90
|
+
rdfs:range fit:ToolReference .
|
|
91
|
+
|
|
92
|
+
# Tool Reference Properties
|
|
93
|
+
fit:toolName a rdf:Property ;
|
|
94
|
+
rdfs:label "toolName"@en ;
|
|
95
|
+
rdfs:comment "Name of the tool"@en ;
|
|
96
|
+
rdfs:domain fit:ToolReference ;
|
|
97
|
+
rdfs:range xsd:string .
|
|
98
|
+
|
|
99
|
+
fit:toolUrl a rdf:Property ;
|
|
100
|
+
rdfs:label "toolUrl"@en ;
|
|
101
|
+
rdfs:comment "URL to tool documentation"@en ;
|
|
102
|
+
rdfs:domain fit:ToolReference ;
|
|
103
|
+
rdfs:range xsd:anyURI .
|
|
104
|
+
|
|
105
|
+
fit:simpleIcon a rdf:Property ;
|
|
106
|
+
rdfs:label "simpleIcon"@en ;
|
|
107
|
+
rdfs:comment "Simple Icons slug for the tool icon"@en ;
|
|
108
|
+
rdfs:domain fit:ToolReference ;
|
|
109
|
+
rdfs:range xsd:string .
|
|
110
|
+
|
|
111
|
+
fit:toolDescription a rdf:Property ;
|
|
112
|
+
rdfs:label "toolDescription"@en ;
|
|
113
|
+
rdfs:comment "What this tool does"@en ;
|
|
114
|
+
rdfs:domain fit:ToolReference ;
|
|
115
|
+
rdfs:range xsd:string .
|
|
116
|
+
|
|
117
|
+
fit:toolUseWhen a rdf:Property ;
|
|
118
|
+
rdfs:label "toolUseWhen"@en ;
|
|
119
|
+
rdfs:comment "When to use this tool"@en ;
|
|
120
|
+
rdfs:domain fit:ToolReference ;
|
|
121
|
+
rdfs:range xsd:string .
|
|
122
|
+
|
|
123
|
+
# Skill Agent Section Properties
|
|
124
|
+
fit:useWhen a rdf:Property ;
|
|
125
|
+
rdfs:label "useWhen"@en ;
|
|
126
|
+
rdfs:comment "Triggering conditions - when agents should use this skill"@en ;
|
|
127
|
+
rdfs:domain fit:SkillAgentSection ;
|
|
128
|
+
rdfs:range xsd:string .
|
|
129
|
+
|
|
130
|
+
fit:stages a rdf:Property ;
|
|
131
|
+
rdfs:label "stages"@en ;
|
|
132
|
+
rdfs:comment "Stage-specific guidance for applying the skill"@en ;
|
|
133
|
+
rdfs:domain fit:SkillAgentSection .
|
|
134
|
+
|
|
135
|
+
fit:planStage a rdf:Property ;
|
|
136
|
+
rdfs:label "planStage"@en ;
|
|
137
|
+
rdfs:comment "Guidance for the plan stage"@en ;
|
|
138
|
+
rdfs:range fit:SkillStage .
|
|
139
|
+
|
|
140
|
+
fit:codeStage a rdf:Property ;
|
|
141
|
+
rdfs:label "codeStage"@en ;
|
|
142
|
+
rdfs:comment "Guidance for the code stage"@en ;
|
|
143
|
+
rdfs:range fit:SkillStage .
|
|
144
|
+
|
|
145
|
+
fit:reviewStage a rdf:Property ;
|
|
146
|
+
rdfs:label "reviewStage"@en ;
|
|
147
|
+
rdfs:comment "Guidance for the review stage"@en ;
|
|
148
|
+
rdfs:range fit:SkillStage .
|
|
149
|
+
|
|
150
|
+
# Skill Stage Properties
|
|
151
|
+
fit:focus a rdf:Property ;
|
|
152
|
+
rdfs:label "focus"@en ;
|
|
153
|
+
rdfs:comment "Primary focus for this stage"@en ;
|
|
154
|
+
rdfs:range xsd:string .
|
|
155
|
+
|
|
156
|
+
fit:activities a rdf:Property ;
|
|
157
|
+
rdfs:label "activities"@en ;
|
|
158
|
+
rdfs:comment "Key activities to perform in this stage"@en ;
|
|
159
|
+
rdfs:range xsd:string .
|
|
160
|
+
|
|
161
|
+
fit:ready a rdf:Property ;
|
|
162
|
+
rdfs:label "ready"@en ;
|
|
163
|
+
rdfs:comment "Criteria that indicate readiness to move to next stage"@en ;
|
|
164
|
+
rdfs:range xsd:string .
|
|
165
|
+
|
|
166
|
+
# =============================================================================
|
|
167
|
+
# SHACL SHAPES
|
|
168
|
+
# =============================================================================
|
|
169
|
+
|
|
170
|
+
# -----------------------------------------------------------------------------
|
|
171
|
+
# Capability Shape
|
|
172
|
+
# -----------------------------------------------------------------------------
|
|
173
|
+
|
|
174
|
+
fit:CapabilityShape a sh:NodeShape ;
|
|
175
|
+
sh:targetClass fit:Capability ;
|
|
176
|
+
sh:property [
|
|
177
|
+
sh:path fit:id ;
|
|
178
|
+
sh:datatype xsd:string ;
|
|
179
|
+
sh:pattern "^[a-z][a-z0-9_]*$" ;
|
|
180
|
+
sh:maxCount 1 ;
|
|
181
|
+
sh:name "id" ;
|
|
182
|
+
sh:description "Capability identifier (derived from filename if not specified)" ;
|
|
183
|
+
] ;
|
|
184
|
+
sh:property [
|
|
185
|
+
sh:path fit:name ;
|
|
186
|
+
sh:datatype xsd:string ;
|
|
187
|
+
sh:minCount 1 ;
|
|
188
|
+
sh:maxCount 1 ;
|
|
189
|
+
sh:name "name" ;
|
|
190
|
+
sh:description "Human-readable capability name" ;
|
|
191
|
+
] ;
|
|
192
|
+
sh:property [
|
|
193
|
+
sh:path fit:emojiIcon ;
|
|
194
|
+
sh:datatype xsd:string ;
|
|
195
|
+
sh:maxCount 1 ;
|
|
196
|
+
sh:name "emojiIcon" ;
|
|
197
|
+
sh:description "Emoji for visual representation" ;
|
|
198
|
+
] ;
|
|
199
|
+
sh:property [
|
|
200
|
+
sh:path fit:displayOrder ;
|
|
201
|
+
sh:datatype xsd:integer ;
|
|
202
|
+
sh:minInclusive 1 ;
|
|
203
|
+
sh:maxCount 1 ;
|
|
204
|
+
sh:name "displayOrder" ;
|
|
205
|
+
sh:description "Order for display in UI" ;
|
|
206
|
+
] ;
|
|
207
|
+
sh:property [
|
|
208
|
+
sh:path fit:description ;
|
|
209
|
+
sh:datatype xsd:string ;
|
|
210
|
+
sh:maxCount 1 ;
|
|
211
|
+
sh:name "description" ;
|
|
212
|
+
sh:description "Description of the capability area" ;
|
|
213
|
+
] ;
|
|
214
|
+
sh:property [
|
|
215
|
+
sh:path fit:professionalResponsibilities ;
|
|
216
|
+
sh:node fit:ResponsibilitiesByLevelShape ;
|
|
217
|
+
sh:maxCount 1 ;
|
|
218
|
+
sh:name "professionalResponsibilities" ;
|
|
219
|
+
sh:description "Responsibilities for professional/IC track by level" ;
|
|
220
|
+
] ;
|
|
221
|
+
sh:property [
|
|
222
|
+
sh:path fit:managementResponsibilities ;
|
|
223
|
+
sh:node fit:ResponsibilitiesByLevelShape ;
|
|
224
|
+
sh:maxCount 1 ;
|
|
225
|
+
sh:name "managementResponsibilities" ;
|
|
226
|
+
sh:description "Responsibilities for management track by level" ;
|
|
227
|
+
] ;
|
|
228
|
+
sh:property [
|
|
229
|
+
sh:path fit:skills ;
|
|
230
|
+
sh:node fit:SkillShape ;
|
|
231
|
+
sh:name "skills" ;
|
|
232
|
+
sh:description "Skills within this capability" ;
|
|
233
|
+
] .
|
|
234
|
+
|
|
235
|
+
# -----------------------------------------------------------------------------
|
|
236
|
+
# Skill Shape
|
|
237
|
+
# -----------------------------------------------------------------------------
|
|
238
|
+
|
|
239
|
+
fit:SkillShape a sh:NodeShape ;
|
|
240
|
+
sh:targetClass fit:Skill ;
|
|
241
|
+
sh:property [
|
|
242
|
+
sh:path fit:id ;
|
|
243
|
+
sh:datatype xsd:string ;
|
|
244
|
+
sh:pattern "^[a-z][a-z0-9_]*$" ;
|
|
245
|
+
sh:minCount 1 ;
|
|
246
|
+
sh:maxCount 1 ;
|
|
247
|
+
sh:name "id" ;
|
|
248
|
+
sh:description "Unique skill identifier (snake_case)" ;
|
|
249
|
+
] ;
|
|
250
|
+
sh:property [
|
|
251
|
+
sh:path fit:name ;
|
|
252
|
+
sh:datatype xsd:string ;
|
|
253
|
+
sh:minCount 1 ;
|
|
254
|
+
sh:maxCount 1 ;
|
|
255
|
+
sh:name "name" ;
|
|
256
|
+
sh:description "Human-readable skill name" ;
|
|
257
|
+
] ;
|
|
258
|
+
sh:property [
|
|
259
|
+
sh:path fit:isHumanOnly ;
|
|
260
|
+
sh:datatype xsd:boolean ;
|
|
261
|
+
sh:maxCount 1 ;
|
|
262
|
+
sh:name "isHumanOnly" ;
|
|
263
|
+
sh:description "If true, this skill is excluded from agent profiles" ;
|
|
264
|
+
] ;
|
|
265
|
+
sh:property [
|
|
266
|
+
sh:path fit:human ;
|
|
267
|
+
sh:node fit:SkillHumanSectionShape ;
|
|
268
|
+
sh:minCount 1 ;
|
|
269
|
+
sh:maxCount 1 ;
|
|
270
|
+
sh:name "human" ;
|
|
271
|
+
sh:description "Human-specific content for the skill" ;
|
|
272
|
+
] ;
|
|
273
|
+
sh:property [
|
|
274
|
+
sh:path fit:agent ;
|
|
275
|
+
sh:node fit:SkillAgentSectionShape ;
|
|
276
|
+
sh:maxCount 1 ;
|
|
277
|
+
sh:name "agent" ;
|
|
278
|
+
sh:description "Agent-specific content for the skill" ;
|
|
279
|
+
] ;
|
|
280
|
+
sh:property [
|
|
281
|
+
sh:path fit:implementationReference ;
|
|
282
|
+
sh:datatype xsd:string ;
|
|
283
|
+
sh:maxCount 1 ;
|
|
284
|
+
sh:name "implementationReference" ;
|
|
285
|
+
sh:description "Implementation patterns and code examples in markdown format" ;
|
|
286
|
+
] ;
|
|
287
|
+
sh:property [
|
|
288
|
+
sh:path fit:toolReferences ;
|
|
289
|
+
sh:node fit:ToolReferenceShape ;
|
|
290
|
+
sh:name "toolReferences" ;
|
|
291
|
+
sh:description "Recommended tools for this skill" ;
|
|
292
|
+
] .
|
|
293
|
+
|
|
294
|
+
# -----------------------------------------------------------------------------
|
|
295
|
+
# Tool Reference Shape
|
|
296
|
+
# -----------------------------------------------------------------------------
|
|
297
|
+
|
|
298
|
+
fit:ToolReferenceShape a sh:NodeShape ;
|
|
299
|
+
sh:targetClass fit:ToolReference ;
|
|
300
|
+
sh:property [
|
|
301
|
+
sh:path fit:toolName ;
|
|
302
|
+
sh:datatype xsd:string ;
|
|
303
|
+
sh:minCount 1 ;
|
|
304
|
+
sh:maxCount 1 ;
|
|
305
|
+
sh:name "name" ;
|
|
306
|
+
sh:description "Tool name" ;
|
|
307
|
+
] ;
|
|
308
|
+
sh:property [
|
|
309
|
+
sh:path fit:toolUrl ;
|
|
310
|
+
sh:datatype xsd:anyURI ;
|
|
311
|
+
sh:maxCount 1 ;
|
|
312
|
+
sh:name "url" ;
|
|
313
|
+
sh:description "Link to tool documentation" ;
|
|
314
|
+
] ;
|
|
315
|
+
sh:property [
|
|
316
|
+
sh:path fit:simpleIcon ;
|
|
317
|
+
sh:datatype xsd:string ;
|
|
318
|
+
sh:pattern "^[a-z0-9]+$" ;
|
|
319
|
+
sh:maxCount 1 ;
|
|
320
|
+
sh:name "simpleIcon" ;
|
|
321
|
+
sh:description "Simple Icons slug for the tool icon" ;
|
|
322
|
+
] ;
|
|
323
|
+
sh:property [
|
|
324
|
+
sh:path fit:toolDescription ;
|
|
325
|
+
sh:datatype xsd:string ;
|
|
326
|
+
sh:minCount 1 ;
|
|
327
|
+
sh:maxCount 1 ;
|
|
328
|
+
sh:name "description" ;
|
|
329
|
+
sh:description "What this tool does" ;
|
|
330
|
+
] ;
|
|
331
|
+
sh:property [
|
|
332
|
+
sh:path fit:toolUseWhen ;
|
|
333
|
+
sh:datatype xsd:string ;
|
|
334
|
+
sh:minCount 1 ;
|
|
335
|
+
sh:maxCount 1 ;
|
|
336
|
+
sh:name "useWhen" ;
|
|
337
|
+
sh:description "When to use this tool" ;
|
|
338
|
+
] .
|
|
339
|
+
|
|
340
|
+
# -----------------------------------------------------------------------------
|
|
341
|
+
# Skill Human Section Shape
|
|
342
|
+
# -----------------------------------------------------------------------------
|
|
343
|
+
|
|
344
|
+
fit:SkillHumanSectionShape a sh:NodeShape ;
|
|
345
|
+
sh:targetClass fit:SkillHumanSection ;
|
|
346
|
+
sh:property [
|
|
347
|
+
sh:path fit:description ;
|
|
348
|
+
sh:datatype xsd:string ;
|
|
349
|
+
sh:minCount 1 ;
|
|
350
|
+
sh:maxCount 1 ;
|
|
351
|
+
sh:name "description" ;
|
|
352
|
+
sh:description "Description of the skill" ;
|
|
353
|
+
] ;
|
|
354
|
+
sh:property [
|
|
355
|
+
sh:path fit:levelDescriptions ;
|
|
356
|
+
sh:node fit:LevelDescriptionsShape ;
|
|
357
|
+
sh:minCount 1 ;
|
|
358
|
+
sh:maxCount 1 ;
|
|
359
|
+
sh:name "levelDescriptions" ;
|
|
360
|
+
sh:description "Description of expectations at each level" ;
|
|
361
|
+
] .
|
|
362
|
+
|
|
363
|
+
# -----------------------------------------------------------------------------
|
|
364
|
+
# Skill Agent Section Shape
|
|
365
|
+
# -----------------------------------------------------------------------------
|
|
366
|
+
|
|
367
|
+
fit:SkillAgentSectionShape a sh:NodeShape ;
|
|
368
|
+
sh:targetClass fit:SkillAgentSection ;
|
|
369
|
+
sh:property [
|
|
370
|
+
sh:path fit:name ;
|
|
371
|
+
sh:datatype xsd:string ;
|
|
372
|
+
sh:pattern "^[a-z][a-z0-9-]*$" ;
|
|
373
|
+
sh:minCount 1 ;
|
|
374
|
+
sh:maxCount 1 ;
|
|
375
|
+
sh:name "name" ;
|
|
376
|
+
sh:description "Agent skill name (kebab-case)" ;
|
|
377
|
+
] ;
|
|
378
|
+
sh:property [
|
|
379
|
+
sh:path fit:description ;
|
|
380
|
+
sh:datatype xsd:string ;
|
|
381
|
+
sh:minCount 1 ;
|
|
382
|
+
sh:maxCount 1 ;
|
|
383
|
+
sh:name "description" ;
|
|
384
|
+
sh:description "Brief description of what this skill provides" ;
|
|
385
|
+
] ;
|
|
386
|
+
sh:property [
|
|
387
|
+
sh:path fit:useWhen ;
|
|
388
|
+
sh:datatype xsd:string ;
|
|
389
|
+
sh:minCount 1 ;
|
|
390
|
+
sh:maxCount 1 ;
|
|
391
|
+
sh:name "useWhen" ;
|
|
392
|
+
sh:description "Triggering conditions - when agents should use this skill" ;
|
|
393
|
+
] ;
|
|
394
|
+
sh:property [
|
|
395
|
+
sh:path fit:planStage ;
|
|
396
|
+
sh:node fit:SkillStageShape ;
|
|
397
|
+
sh:maxCount 1 ;
|
|
398
|
+
sh:name "plan" ;
|
|
399
|
+
] ;
|
|
400
|
+
sh:property [
|
|
401
|
+
sh:path fit:codeStage ;
|
|
402
|
+
sh:node fit:SkillStageShape ;
|
|
403
|
+
sh:maxCount 1 ;
|
|
404
|
+
sh:name "code" ;
|
|
405
|
+
] ;
|
|
406
|
+
sh:property [
|
|
407
|
+
sh:path fit:reviewStage ;
|
|
408
|
+
sh:node fit:SkillStageShape ;
|
|
409
|
+
sh:maxCount 1 ;
|
|
410
|
+
sh:name "review" ;
|
|
411
|
+
] .
|
|
412
|
+
|
|
413
|
+
# -----------------------------------------------------------------------------
|
|
414
|
+
# Skill Stage Shape
|
|
415
|
+
# -----------------------------------------------------------------------------
|
|
416
|
+
|
|
417
|
+
fit:SkillStageShape a sh:NodeShape ;
|
|
418
|
+
sh:targetClass fit:SkillStage ;
|
|
419
|
+
sh:property [
|
|
420
|
+
sh:path fit:focus ;
|
|
421
|
+
sh:datatype xsd:string ;
|
|
422
|
+
sh:minCount 1 ;
|
|
423
|
+
sh:maxCount 1 ;
|
|
424
|
+
sh:name "focus" ;
|
|
425
|
+
sh:description "Primary focus for this stage" ;
|
|
426
|
+
] ;
|
|
427
|
+
sh:property [
|
|
428
|
+
sh:path fit:activities ;
|
|
429
|
+
sh:datatype xsd:string ;
|
|
430
|
+
sh:minCount 1 ;
|
|
431
|
+
sh:name "activities" ;
|
|
432
|
+
sh:description "Key activities to perform in this stage" ;
|
|
433
|
+
] ;
|
|
434
|
+
sh:property [
|
|
435
|
+
sh:path fit:ready ;
|
|
436
|
+
sh:datatype xsd:string ;
|
|
437
|
+
sh:minCount 1 ;
|
|
438
|
+
sh:name "ready" ;
|
|
439
|
+
sh:description "Criteria that indicate readiness to move to next stage" ;
|
|
440
|
+
] .
|