@forwardimpact/map 0.11.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 +67 -0
- package/bin/fit-map.js +287 -0
- package/examples/behaviours/_index.yaml +8 -0
- package/examples/behaviours/outcome_ownership.yaml +43 -0
- package/examples/behaviours/polymathic_knowledge.yaml +41 -0
- package/examples/behaviours/precise_communication.yaml +39 -0
- package/examples/behaviours/relentless_curiosity.yaml +37 -0
- package/examples/behaviours/systems_thinking.yaml +40 -0
- package/examples/capabilities/_index.yaml +8 -0
- package/examples/capabilities/business.yaml +205 -0
- package/examples/capabilities/delivery.yaml +1001 -0
- package/examples/capabilities/people.yaml +68 -0
- package/examples/capabilities/reliability.yaml +349 -0
- package/examples/capabilities/scale.yaml +1672 -0
- package/examples/copilot-setup-steps.yaml +25 -0
- package/examples/devcontainer.yaml +21 -0
- package/examples/disciplines/_index.yaml +6 -0
- package/examples/disciplines/data_engineering.yaml +68 -0
- package/examples/disciplines/engineering_management.yaml +61 -0
- package/examples/disciplines/software_engineering.yaml +68 -0
- package/examples/drivers.yaml +202 -0
- package/examples/framework.yaml +73 -0
- package/examples/levels.yaml +115 -0
- package/examples/questions/behaviours/outcome_ownership.yaml +228 -0
- package/examples/questions/behaviours/polymathic_knowledge.yaml +275 -0
- package/examples/questions/behaviours/precise_communication.yaml +248 -0
- package/examples/questions/behaviours/relentless_curiosity.yaml +248 -0
- package/examples/questions/behaviours/systems_thinking.yaml +238 -0
- package/examples/questions/capabilities/business.yaml +107 -0
- package/examples/questions/capabilities/delivery.yaml +101 -0
- package/examples/questions/capabilities/people.yaml +106 -0
- package/examples/questions/capabilities/reliability.yaml +105 -0
- package/examples/questions/capabilities/scale.yaml +104 -0
- package/examples/questions/skills/architecture_design.yaml +115 -0
- package/examples/questions/skills/cloud_platforms.yaml +105 -0
- package/examples/questions/skills/code_quality.yaml +162 -0
- package/examples/questions/skills/data_modeling.yaml +107 -0
- package/examples/questions/skills/devops.yaml +111 -0
- package/examples/questions/skills/full_stack_development.yaml +118 -0
- package/examples/questions/skills/sre_practices.yaml +113 -0
- package/examples/questions/skills/stakeholder_management.yaml +116 -0
- package/examples/questions/skills/team_collaboration.yaml +106 -0
- package/examples/questions/skills/technical_writing.yaml +110 -0
- package/examples/self-assessments.yaml +64 -0
- package/examples/stages.yaml +191 -0
- package/examples/tracks/_index.yaml +5 -0
- package/examples/tracks/platform.yaml +47 -0
- package/examples/tracks/sre.yaml +46 -0
- package/examples/vscode-settings.yaml +21 -0
- package/package.json +49 -0
- package/schema/json/behaviour-questions.schema.json +95 -0
- package/schema/json/behaviour.schema.json +73 -0
- package/schema/json/capability-questions.schema.json +95 -0
- package/schema/json/capability.schema.json +229 -0
- package/schema/json/defs.schema.json +132 -0
- package/schema/json/discipline.schema.json +123 -0
- package/schema/json/drivers.schema.json +48 -0
- package/schema/json/framework.schema.json +68 -0
- package/schema/json/levels.schema.json +121 -0
- package/schema/json/self-assessments.schema.json +52 -0
- package/schema/json/skill-questions.schema.json +83 -0
- package/schema/json/stages.schema.json +88 -0
- package/schema/json/track.schema.json +95 -0
- package/schema/rdf/behaviour-questions.ttl +128 -0
- package/schema/rdf/behaviour.ttl +130 -0
- package/schema/rdf/capability.ttl +466 -0
- package/schema/rdf/defs.ttl +396 -0
- package/schema/rdf/discipline.ttl +313 -0
- package/schema/rdf/drivers.ttl +84 -0
- package/schema/rdf/framework.ttl +166 -0
- package/schema/rdf/levels.ttl +357 -0
- package/schema/rdf/self-assessments.ttl +147 -0
- package/schema/rdf/skill-questions.ttl +155 -0
- package/schema/rdf/stages.ttl +166 -0
- package/schema/rdf/track.ttl +225 -0
- package/src/index-generator.js +65 -0
- package/src/index.js +44 -0
- package/src/levels.js +553 -0
- package/src/loader.js +608 -0
- package/src/modifiers.js +23 -0
- package/src/schema-validation.js +438 -0
- package/src/validation.js +2136 -0
|
@@ -0,0 +1,130 @@
|
|
|
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
|
+
# Behaviour Schema
|
|
9
|
+
# =============================================================================
|
|
10
|
+
# Mindset and way of working that underpins effective application of skills.
|
|
11
|
+
# =============================================================================
|
|
12
|
+
|
|
13
|
+
# -----------------------------------------------------------------------------
|
|
14
|
+
# Classes
|
|
15
|
+
# -----------------------------------------------------------------------------
|
|
16
|
+
|
|
17
|
+
fit:Behaviour a rdfs:Class ;
|
|
18
|
+
rdfs:label "Behaviour"@en ;
|
|
19
|
+
rdfs:comment "Mindset and way of working that underpins effective application of skills"@en .
|
|
20
|
+
|
|
21
|
+
fit:BehaviourHumanSection a rdfs:Class ;
|
|
22
|
+
rdfs:label "Behaviour Human Section"@en ;
|
|
23
|
+
rdfs:comment "Human-specific content for a behaviour"@en .
|
|
24
|
+
|
|
25
|
+
fit:BehaviourAgentSection a rdfs:Class ;
|
|
26
|
+
rdfs:label "Behaviour Agent Section"@en ;
|
|
27
|
+
rdfs:comment "Agent-specific content for a behaviour"@en .
|
|
28
|
+
|
|
29
|
+
# -----------------------------------------------------------------------------
|
|
30
|
+
# Properties
|
|
31
|
+
# -----------------------------------------------------------------------------
|
|
32
|
+
|
|
33
|
+
fit:maturityDescriptions a rdf:Property ;
|
|
34
|
+
rdfs:label "maturityDescriptions"@en ;
|
|
35
|
+
rdfs:comment "Description of expectations at each maturity level"@en ;
|
|
36
|
+
rdfs:range fit:MaturityDescriptions .
|
|
37
|
+
|
|
38
|
+
fit:workingStyle a rdf:Property ;
|
|
39
|
+
rdfs:label "workingStyle"@en ;
|
|
40
|
+
rdfs:comment "How the agent should apply this behaviour"@en ;
|
|
41
|
+
rdfs:domain fit:BehaviourAgentSection ;
|
|
42
|
+
rdfs:range xsd:string .
|
|
43
|
+
|
|
44
|
+
# =============================================================================
|
|
45
|
+
# SHACL SHAPES
|
|
46
|
+
# =============================================================================
|
|
47
|
+
|
|
48
|
+
# -----------------------------------------------------------------------------
|
|
49
|
+
# Behaviour Shape
|
|
50
|
+
# -----------------------------------------------------------------------------
|
|
51
|
+
|
|
52
|
+
fit:BehaviourShape a sh:NodeShape ;
|
|
53
|
+
sh:targetClass fit:Behaviour ;
|
|
54
|
+
sh:property [
|
|
55
|
+
sh:path fit:id ;
|
|
56
|
+
sh:datatype xsd:string ;
|
|
57
|
+
sh:pattern "^[a-z][a-z0-9_]*$" ;
|
|
58
|
+
sh:maxCount 1 ;
|
|
59
|
+
sh:name "id" ;
|
|
60
|
+
sh:description "Behaviour identifier (derived from filename)" ;
|
|
61
|
+
] ;
|
|
62
|
+
sh:property [
|
|
63
|
+
sh:path fit:name ;
|
|
64
|
+
sh:datatype xsd:string ;
|
|
65
|
+
sh:minCount 1 ;
|
|
66
|
+
sh:maxCount 1 ;
|
|
67
|
+
sh:name "name" ;
|
|
68
|
+
sh:description "Human-readable behaviour name" ;
|
|
69
|
+
] ;
|
|
70
|
+
sh:property [
|
|
71
|
+
sh:path fit:human ;
|
|
72
|
+
sh:node fit:BehaviourHumanSectionShape ;
|
|
73
|
+
sh:minCount 1 ;
|
|
74
|
+
sh:maxCount 1 ;
|
|
75
|
+
sh:name "human" ;
|
|
76
|
+
sh:description "Human-specific content" ;
|
|
77
|
+
] ;
|
|
78
|
+
sh:property [
|
|
79
|
+
sh:path fit:agent ;
|
|
80
|
+
sh:node fit:BehaviourAgentSectionShape ;
|
|
81
|
+
sh:maxCount 1 ;
|
|
82
|
+
sh:name "agent" ;
|
|
83
|
+
sh:description "Agent-specific content" ;
|
|
84
|
+
] .
|
|
85
|
+
|
|
86
|
+
# -----------------------------------------------------------------------------
|
|
87
|
+
# Behaviour Human Section Shape
|
|
88
|
+
# -----------------------------------------------------------------------------
|
|
89
|
+
|
|
90
|
+
fit:BehaviourHumanSectionShape a sh:NodeShape ;
|
|
91
|
+
sh:targetClass fit:BehaviourHumanSection ;
|
|
92
|
+
sh:property [
|
|
93
|
+
sh:path fit:description ;
|
|
94
|
+
sh:datatype xsd:string ;
|
|
95
|
+
sh:minCount 1 ;
|
|
96
|
+
sh:maxCount 1 ;
|
|
97
|
+
sh:name "description" ;
|
|
98
|
+
sh:description "Description of the behaviour" ;
|
|
99
|
+
] ;
|
|
100
|
+
sh:property [
|
|
101
|
+
sh:path fit:maturityDescriptions ;
|
|
102
|
+
sh:node fit:MaturityDescriptionsShape ;
|
|
103
|
+
sh:minCount 1 ;
|
|
104
|
+
sh:maxCount 1 ;
|
|
105
|
+
sh:name "maturityDescriptions" ;
|
|
106
|
+
sh:description "Description of expectations at each maturity level" ;
|
|
107
|
+
] .
|
|
108
|
+
|
|
109
|
+
# -----------------------------------------------------------------------------
|
|
110
|
+
# Behaviour Agent Section Shape
|
|
111
|
+
# -----------------------------------------------------------------------------
|
|
112
|
+
|
|
113
|
+
fit:BehaviourAgentSectionShape a sh:NodeShape ;
|
|
114
|
+
sh:targetClass fit:BehaviourAgentSection ;
|
|
115
|
+
sh:property [
|
|
116
|
+
sh:path fit:title ;
|
|
117
|
+
sh:datatype xsd:string ;
|
|
118
|
+
sh:minCount 1 ;
|
|
119
|
+
sh:maxCount 1 ;
|
|
120
|
+
sh:name "title" ;
|
|
121
|
+
sh:description "Short title for the behaviour's agent application" ;
|
|
122
|
+
] ;
|
|
123
|
+
sh:property [
|
|
124
|
+
sh:path fit:workingStyle ;
|
|
125
|
+
sh:datatype xsd:string ;
|
|
126
|
+
sh:minCount 1 ;
|
|
127
|
+
sh:maxCount 1 ;
|
|
128
|
+
sh:name "workingStyle" ;
|
|
129
|
+
sh:description "How the agent should apply this behaviour" ;
|
|
130
|
+
] .
|
|
@@ -0,0 +1,466 @@
|
|
|
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:proficiencyDescriptions a rdf:Property ;
|
|
76
|
+
rdfs:label "proficiencyDescriptions"@en ;
|
|
77
|
+
rdfs:comment "Description of expectations at each level"@en ;
|
|
78
|
+
rdfs:range fit:ProficiencyDescriptions .
|
|
79
|
+
|
|
80
|
+
fit:instructions a rdf:Property ;
|
|
81
|
+
rdfs:label "instructions"@en ;
|
|
82
|
+
rdfs:comment "Step-by-step workflow guidance for the main SKILL.md body"@en ;
|
|
83
|
+
rdfs:domain fit:Skill ;
|
|
84
|
+
rdfs:range xsd:string .
|
|
85
|
+
|
|
86
|
+
fit:installScript a rdf:Property ;
|
|
87
|
+
rdfs:label "installScript"@en ;
|
|
88
|
+
rdfs:comment "Shell commands for environment setup, exported to scripts/install.sh"@en ;
|
|
89
|
+
rdfs:domain fit:Skill ;
|
|
90
|
+
rdfs:range xsd:string .
|
|
91
|
+
|
|
92
|
+
fit:implementationReference a rdf:Property ;
|
|
93
|
+
rdfs:label "implementationReference"@en ;
|
|
94
|
+
rdfs:comment "Code examples and detailed reference material, exported to references/REFERENCE.md"@en ;
|
|
95
|
+
rdfs:domain fit:Skill ;
|
|
96
|
+
rdfs:range xsd:string .
|
|
97
|
+
|
|
98
|
+
fit:toolReferences a rdf:Property ;
|
|
99
|
+
rdfs:label "toolReferences"@en ;
|
|
100
|
+
rdfs:comment "Required tools for this skill"@en ;
|
|
101
|
+
rdfs:domain fit:Skill ;
|
|
102
|
+
rdfs:range fit:ToolReference .
|
|
103
|
+
|
|
104
|
+
# Tool Reference Properties
|
|
105
|
+
fit:toolName a rdf:Property ;
|
|
106
|
+
rdfs:label "toolName"@en ;
|
|
107
|
+
rdfs:comment "Name of the tool"@en ;
|
|
108
|
+
rdfs:domain fit:ToolReference ;
|
|
109
|
+
rdfs:range xsd:string .
|
|
110
|
+
|
|
111
|
+
fit:toolUrl a rdf:Property ;
|
|
112
|
+
rdfs:label "toolUrl"@en ;
|
|
113
|
+
rdfs:comment "URL to tool documentation"@en ;
|
|
114
|
+
rdfs:domain fit:ToolReference ;
|
|
115
|
+
rdfs:range xsd:anyURI .
|
|
116
|
+
|
|
117
|
+
fit:simpleIcon a rdf:Property ;
|
|
118
|
+
rdfs:label "simpleIcon"@en ;
|
|
119
|
+
rdfs:comment "Simple Icons slug for the tool icon"@en ;
|
|
120
|
+
rdfs:domain fit:ToolReference ;
|
|
121
|
+
rdfs:range xsd:string .
|
|
122
|
+
|
|
123
|
+
fit:toolDescription a rdf:Property ;
|
|
124
|
+
rdfs:label "toolDescription"@en ;
|
|
125
|
+
rdfs:comment "What this tool does"@en ;
|
|
126
|
+
rdfs:domain fit:ToolReference ;
|
|
127
|
+
rdfs:range xsd:string .
|
|
128
|
+
|
|
129
|
+
fit:toolUseWhen a rdf:Property ;
|
|
130
|
+
rdfs:label "toolUseWhen"@en ;
|
|
131
|
+
rdfs:comment "When to use this tool"@en ;
|
|
132
|
+
rdfs:domain fit:ToolReference ;
|
|
133
|
+
rdfs:range xsd:string .
|
|
134
|
+
|
|
135
|
+
# Skill Agent Section Properties
|
|
136
|
+
fit:useWhen a rdf:Property ;
|
|
137
|
+
rdfs:label "useWhen"@en ;
|
|
138
|
+
rdfs:comment "Triggering conditions - when agents should use this skill"@en ;
|
|
139
|
+
rdfs:domain fit:SkillAgentSection ;
|
|
140
|
+
rdfs:range xsd:string .
|
|
141
|
+
|
|
142
|
+
fit:stages a rdf:Property ;
|
|
143
|
+
rdfs:label "stages"@en ;
|
|
144
|
+
rdfs:comment "Stage-specific guidance for applying the skill"@en ;
|
|
145
|
+
rdfs:domain fit:SkillAgentSection .
|
|
146
|
+
|
|
147
|
+
fit:planStage a rdf:Property ;
|
|
148
|
+
rdfs:label "planStage"@en ;
|
|
149
|
+
rdfs:comment "Guidance for the plan stage"@en ;
|
|
150
|
+
rdfs:range fit:SkillStage .
|
|
151
|
+
|
|
152
|
+
fit:codeStage a rdf:Property ;
|
|
153
|
+
rdfs:label "codeStage"@en ;
|
|
154
|
+
rdfs:comment "Guidance for the code stage"@en ;
|
|
155
|
+
rdfs:range fit:SkillStage .
|
|
156
|
+
|
|
157
|
+
fit:reviewStage a rdf:Property ;
|
|
158
|
+
rdfs:label "reviewStage"@en ;
|
|
159
|
+
rdfs:comment "Guidance for the review stage"@en ;
|
|
160
|
+
rdfs:range fit:SkillStage .
|
|
161
|
+
|
|
162
|
+
# Skill Stage Properties
|
|
163
|
+
fit:focus a rdf:Property ;
|
|
164
|
+
rdfs:label "focus"@en ;
|
|
165
|
+
rdfs:comment "Primary focus for this stage"@en ;
|
|
166
|
+
rdfs:range xsd:string .
|
|
167
|
+
|
|
168
|
+
fit:readChecklist a rdf:Property ;
|
|
169
|
+
rdfs:label "readChecklist"@en ;
|
|
170
|
+
rdfs:comment "Read-Then-Do Checklist: steps to follow in order during this stage"@en ;
|
|
171
|
+
rdfs:range xsd:string .
|
|
172
|
+
|
|
173
|
+
fit:confirmChecklist a rdf:Property ;
|
|
174
|
+
rdfs:label "confirmChecklist"@en ;
|
|
175
|
+
rdfs:comment "Do-Then-Confirm Checklist: items to verify before moving to next stage"@en ;
|
|
176
|
+
rdfs:range xsd:string .
|
|
177
|
+
|
|
178
|
+
# =============================================================================
|
|
179
|
+
# SHACL SHAPES
|
|
180
|
+
# =============================================================================
|
|
181
|
+
|
|
182
|
+
# -----------------------------------------------------------------------------
|
|
183
|
+
# Capability Shape
|
|
184
|
+
# -----------------------------------------------------------------------------
|
|
185
|
+
|
|
186
|
+
fit:CapabilityShape a sh:NodeShape ;
|
|
187
|
+
sh:targetClass fit:Capability ;
|
|
188
|
+
sh:property [
|
|
189
|
+
sh:path fit:id ;
|
|
190
|
+
sh:datatype xsd:string ;
|
|
191
|
+
sh:pattern "^[a-z][a-z0-9_]*$" ;
|
|
192
|
+
sh:maxCount 1 ;
|
|
193
|
+
sh:name "id" ;
|
|
194
|
+
sh:description "Capability identifier (derived from filename if not specified)" ;
|
|
195
|
+
] ;
|
|
196
|
+
sh:property [
|
|
197
|
+
sh:path fit:name ;
|
|
198
|
+
sh:datatype xsd:string ;
|
|
199
|
+
sh:minCount 1 ;
|
|
200
|
+
sh:maxCount 1 ;
|
|
201
|
+
sh:name "name" ;
|
|
202
|
+
sh:description "Human-readable capability name" ;
|
|
203
|
+
] ;
|
|
204
|
+
sh:property [
|
|
205
|
+
sh:path fit:emojiIcon ;
|
|
206
|
+
sh:datatype xsd:string ;
|
|
207
|
+
sh:maxCount 1 ;
|
|
208
|
+
sh:name "emojiIcon" ;
|
|
209
|
+
sh:description "Emoji for visual representation" ;
|
|
210
|
+
] ;
|
|
211
|
+
sh:property [
|
|
212
|
+
sh:path fit:ordinalRank ;
|
|
213
|
+
sh:datatype xsd:integer ;
|
|
214
|
+
sh:minInclusive 1 ;
|
|
215
|
+
sh:maxCount 1 ;
|
|
216
|
+
sh:name "ordinalRank" ;
|
|
217
|
+
sh:description "Numeric rank for ordering capabilities (1 = first)" ;
|
|
218
|
+
] ;
|
|
219
|
+
sh:property [
|
|
220
|
+
sh:path fit:description ;
|
|
221
|
+
sh:datatype xsd:string ;
|
|
222
|
+
sh:maxCount 1 ;
|
|
223
|
+
sh:name "description" ;
|
|
224
|
+
sh:description "Description of the capability area" ;
|
|
225
|
+
] ;
|
|
226
|
+
sh:property [
|
|
227
|
+
sh:path fit:professionalResponsibilities ;
|
|
228
|
+
sh:node fit:ResponsibilitiesByLevelShape ;
|
|
229
|
+
sh:maxCount 1 ;
|
|
230
|
+
sh:name "professionalResponsibilities" ;
|
|
231
|
+
sh:description "Responsibilities for professional/IC track by level" ;
|
|
232
|
+
] ;
|
|
233
|
+
sh:property [
|
|
234
|
+
sh:path fit:managementResponsibilities ;
|
|
235
|
+
sh:node fit:ResponsibilitiesByLevelShape ;
|
|
236
|
+
sh:maxCount 1 ;
|
|
237
|
+
sh:name "managementResponsibilities" ;
|
|
238
|
+
sh:description "Responsibilities for management track by level" ;
|
|
239
|
+
] ;
|
|
240
|
+
sh:property [
|
|
241
|
+
sh:path fit:skills ;
|
|
242
|
+
sh:node fit:SkillShape ;
|
|
243
|
+
sh:name "skills" ;
|
|
244
|
+
sh:description "Skills within this capability" ;
|
|
245
|
+
] .
|
|
246
|
+
|
|
247
|
+
# -----------------------------------------------------------------------------
|
|
248
|
+
# Skill Shape
|
|
249
|
+
# -----------------------------------------------------------------------------
|
|
250
|
+
|
|
251
|
+
fit:SkillShape a sh:NodeShape ;
|
|
252
|
+
sh:targetClass fit:Skill ;
|
|
253
|
+
sh:property [
|
|
254
|
+
sh:path fit:id ;
|
|
255
|
+
sh:datatype xsd:string ;
|
|
256
|
+
sh:pattern "^[a-z][a-z0-9_]*$" ;
|
|
257
|
+
sh:minCount 1 ;
|
|
258
|
+
sh:maxCount 1 ;
|
|
259
|
+
sh:name "id" ;
|
|
260
|
+
sh:description "Unique skill identifier (snake_case)" ;
|
|
261
|
+
] ;
|
|
262
|
+
sh:property [
|
|
263
|
+
sh:path fit:name ;
|
|
264
|
+
sh:datatype xsd:string ;
|
|
265
|
+
sh:minCount 1 ;
|
|
266
|
+
sh:maxCount 1 ;
|
|
267
|
+
sh:name "name" ;
|
|
268
|
+
sh:description "Human-readable skill name" ;
|
|
269
|
+
] ;
|
|
270
|
+
sh:property [
|
|
271
|
+
sh:path fit:isHumanOnly ;
|
|
272
|
+
sh:datatype xsd:boolean ;
|
|
273
|
+
sh:maxCount 1 ;
|
|
274
|
+
sh:name "isHumanOnly" ;
|
|
275
|
+
sh:description "If true, this skill is excluded from agent profiles" ;
|
|
276
|
+
] ;
|
|
277
|
+
sh:property [
|
|
278
|
+
sh:path fit:human ;
|
|
279
|
+
sh:node fit:SkillHumanSectionShape ;
|
|
280
|
+
sh:minCount 1 ;
|
|
281
|
+
sh:maxCount 1 ;
|
|
282
|
+
sh:name "human" ;
|
|
283
|
+
sh:description "Human-specific content for the skill" ;
|
|
284
|
+
] ;
|
|
285
|
+
sh:property [
|
|
286
|
+
sh:path fit:agent ;
|
|
287
|
+
sh:node fit:SkillAgentSectionShape ;
|
|
288
|
+
sh:maxCount 1 ;
|
|
289
|
+
sh:name "agent" ;
|
|
290
|
+
sh:description "Agent-specific content for the skill" ;
|
|
291
|
+
] ;
|
|
292
|
+
sh:property [
|
|
293
|
+
sh:path fit:toolReferences ;
|
|
294
|
+
sh:node fit:ToolReferenceShape ;
|
|
295
|
+
sh:name "toolReferences" ;
|
|
296
|
+
sh:description "Required tools for this skill" ;
|
|
297
|
+
] ;
|
|
298
|
+
sh:property [
|
|
299
|
+
sh:path fit:instructions ;
|
|
300
|
+
sh:datatype xsd:string ;
|
|
301
|
+
sh:maxCount 1 ;
|
|
302
|
+
sh:name "instructions" ;
|
|
303
|
+
sh:description "Step-by-step workflow guidance for the main SKILL.md body" ;
|
|
304
|
+
] ;
|
|
305
|
+
sh:property [
|
|
306
|
+
sh:path fit:installScript ;
|
|
307
|
+
sh:datatype xsd:string ;
|
|
308
|
+
sh:maxCount 1 ;
|
|
309
|
+
sh:name "installScript" ;
|
|
310
|
+
sh:description "Shell commands for environment setup, exported to scripts/install.sh" ;
|
|
311
|
+
] ;
|
|
312
|
+
sh:property [
|
|
313
|
+
sh:path fit:implementationReference ;
|
|
314
|
+
sh:datatype xsd:string ;
|
|
315
|
+
sh:maxCount 1 ;
|
|
316
|
+
sh:name "implementationReference" ;
|
|
317
|
+
sh:description "Code examples and detailed reference material, exported to references/REFERENCE.md" ;
|
|
318
|
+
] .
|
|
319
|
+
|
|
320
|
+
# -----------------------------------------------------------------------------
|
|
321
|
+
# Tool Reference Shape
|
|
322
|
+
# -----------------------------------------------------------------------------
|
|
323
|
+
|
|
324
|
+
fit:ToolReferenceShape a sh:NodeShape ;
|
|
325
|
+
sh:targetClass fit:ToolReference ;
|
|
326
|
+
sh:property [
|
|
327
|
+
sh:path fit:toolName ;
|
|
328
|
+
sh:datatype xsd:string ;
|
|
329
|
+
sh:minCount 1 ;
|
|
330
|
+
sh:maxCount 1 ;
|
|
331
|
+
sh:name "name" ;
|
|
332
|
+
sh:description "Tool name" ;
|
|
333
|
+
] ;
|
|
334
|
+
sh:property [
|
|
335
|
+
sh:path fit:toolUrl ;
|
|
336
|
+
sh:datatype xsd:anyURI ;
|
|
337
|
+
sh:maxCount 1 ;
|
|
338
|
+
sh:name "url" ;
|
|
339
|
+
sh:description "Link to tool documentation" ;
|
|
340
|
+
] ;
|
|
341
|
+
sh:property [
|
|
342
|
+
sh:path fit:simpleIcon ;
|
|
343
|
+
sh:datatype xsd:string ;
|
|
344
|
+
sh:pattern "^[a-z0-9]+$" ;
|
|
345
|
+
sh:maxCount 1 ;
|
|
346
|
+
sh:name "simpleIcon" ;
|
|
347
|
+
sh:description "Simple Icons slug for the tool icon" ;
|
|
348
|
+
] ;
|
|
349
|
+
sh:property [
|
|
350
|
+
sh:path fit:toolDescription ;
|
|
351
|
+
sh:datatype xsd:string ;
|
|
352
|
+
sh:minCount 1 ;
|
|
353
|
+
sh:maxCount 1 ;
|
|
354
|
+
sh:name "description" ;
|
|
355
|
+
sh:description "What this tool does" ;
|
|
356
|
+
] ;
|
|
357
|
+
sh:property [
|
|
358
|
+
sh:path fit:toolUseWhen ;
|
|
359
|
+
sh:datatype xsd:string ;
|
|
360
|
+
sh:minCount 1 ;
|
|
361
|
+
sh:maxCount 1 ;
|
|
362
|
+
sh:name "useWhen" ;
|
|
363
|
+
sh:description "When to use this tool" ;
|
|
364
|
+
] .
|
|
365
|
+
|
|
366
|
+
# -----------------------------------------------------------------------------
|
|
367
|
+
# Skill Human Section Shape
|
|
368
|
+
# -----------------------------------------------------------------------------
|
|
369
|
+
|
|
370
|
+
fit:SkillHumanSectionShape a sh:NodeShape ;
|
|
371
|
+
sh:targetClass fit:SkillHumanSection ;
|
|
372
|
+
sh:property [
|
|
373
|
+
sh:path fit:description ;
|
|
374
|
+
sh:datatype xsd:string ;
|
|
375
|
+
sh:minCount 1 ;
|
|
376
|
+
sh:maxCount 1 ;
|
|
377
|
+
sh:name "description" ;
|
|
378
|
+
sh:description "Description of the skill" ;
|
|
379
|
+
] ;
|
|
380
|
+
sh:property [
|
|
381
|
+
sh:path fit:proficiencyDescriptions ;
|
|
382
|
+
sh:node fit:ProficiencyDescriptionsShape ;
|
|
383
|
+
sh:minCount 1 ;
|
|
384
|
+
sh:maxCount 1 ;
|
|
385
|
+
sh:name "proficiencyDescriptions" ;
|
|
386
|
+
sh:description "Description of expectations at each level" ;
|
|
387
|
+
] .
|
|
388
|
+
|
|
389
|
+
# -----------------------------------------------------------------------------
|
|
390
|
+
# Skill Agent Section Shape
|
|
391
|
+
# -----------------------------------------------------------------------------
|
|
392
|
+
|
|
393
|
+
fit:SkillAgentSectionShape a sh:NodeShape ;
|
|
394
|
+
sh:targetClass fit:SkillAgentSection ;
|
|
395
|
+
sh:property [
|
|
396
|
+
sh:path fit:name ;
|
|
397
|
+
sh:datatype xsd:string ;
|
|
398
|
+
sh:pattern "^[a-z][a-z0-9-]*$" ;
|
|
399
|
+
sh:minCount 1 ;
|
|
400
|
+
sh:maxCount 1 ;
|
|
401
|
+
sh:name "name" ;
|
|
402
|
+
sh:description "Agent skill name (kebab-case)" ;
|
|
403
|
+
] ;
|
|
404
|
+
sh:property [
|
|
405
|
+
sh:path fit:description ;
|
|
406
|
+
sh:datatype xsd:string ;
|
|
407
|
+
sh:minCount 1 ;
|
|
408
|
+
sh:maxCount 1 ;
|
|
409
|
+
sh:name "description" ;
|
|
410
|
+
sh:description "Brief description of what this skill provides" ;
|
|
411
|
+
] ;
|
|
412
|
+
sh:property [
|
|
413
|
+
sh:path fit:useWhen ;
|
|
414
|
+
sh:datatype xsd:string ;
|
|
415
|
+
sh:minCount 1 ;
|
|
416
|
+
sh:maxCount 1 ;
|
|
417
|
+
sh:name "useWhen" ;
|
|
418
|
+
sh:description "Triggering conditions - when agents should use this skill" ;
|
|
419
|
+
] ;
|
|
420
|
+
sh:property [
|
|
421
|
+
sh:path fit:planStage ;
|
|
422
|
+
sh:node fit:SkillStageShape ;
|
|
423
|
+
sh:maxCount 1 ;
|
|
424
|
+
sh:name "plan" ;
|
|
425
|
+
] ;
|
|
426
|
+
sh:property [
|
|
427
|
+
sh:path fit:codeStage ;
|
|
428
|
+
sh:node fit:SkillStageShape ;
|
|
429
|
+
sh:maxCount 1 ;
|
|
430
|
+
sh:name "code" ;
|
|
431
|
+
] ;
|
|
432
|
+
sh:property [
|
|
433
|
+
sh:path fit:reviewStage ;
|
|
434
|
+
sh:node fit:SkillStageShape ;
|
|
435
|
+
sh:maxCount 1 ;
|
|
436
|
+
sh:name "review" ;
|
|
437
|
+
] .
|
|
438
|
+
|
|
439
|
+
# -----------------------------------------------------------------------------
|
|
440
|
+
# Skill Stage Shape
|
|
441
|
+
# -----------------------------------------------------------------------------
|
|
442
|
+
|
|
443
|
+
fit:SkillStageShape a sh:NodeShape ;
|
|
444
|
+
sh:targetClass fit:SkillStage ;
|
|
445
|
+
sh:property [
|
|
446
|
+
sh:path fit:focus ;
|
|
447
|
+
sh:datatype xsd:string ;
|
|
448
|
+
sh:minCount 1 ;
|
|
449
|
+
sh:maxCount 1 ;
|
|
450
|
+
sh:name "focus" ;
|
|
451
|
+
sh:description "Primary focus for this stage" ;
|
|
452
|
+
] ;
|
|
453
|
+
sh:property [
|
|
454
|
+
sh:path fit:readChecklist ;
|
|
455
|
+
sh:datatype xsd:string ;
|
|
456
|
+
sh:minCount 1 ;
|
|
457
|
+
sh:name "readChecklist" ;
|
|
458
|
+
sh:description "Read-Then-Do Checklist: steps to follow in order during this stage" ;
|
|
459
|
+
] ;
|
|
460
|
+
sh:property [
|
|
461
|
+
sh:path fit:confirmChecklist ;
|
|
462
|
+
sh:datatype xsd:string ;
|
|
463
|
+
sh:minCount 1 ;
|
|
464
|
+
sh:name "confirmChecklist" ;
|
|
465
|
+
sh:description "Do-Then-Confirm Checklist: items to verify before moving to next stage" ;
|
|
466
|
+
] .
|