@forwardimpact/schema 0.3.0 → 0.6.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.
Files changed (46) hide show
  1. package/bin/fit-schema.js +2 -2
  2. package/examples/capabilities/business.yaml +1 -1
  3. package/examples/capabilities/delivery.yaml +9 -7
  4. package/examples/capabilities/people.yaml +1 -1
  5. package/examples/capabilities/reliability.yaml +32 -11
  6. package/examples/capabilities/scale.yaml +1 -1
  7. package/examples/framework.yaml +1 -1
  8. package/examples/questions/behaviours/outcome_ownership.yaml +226 -49
  9. package/examples/questions/behaviours/polymathic_knowledge.yaml +273 -45
  10. package/examples/questions/behaviours/precise_communication.yaml +246 -52
  11. package/examples/questions/behaviours/relentless_curiosity.yaml +246 -48
  12. package/examples/questions/behaviours/systems_thinking.yaml +236 -50
  13. package/examples/questions/capabilities/business.yaml +107 -0
  14. package/examples/questions/capabilities/delivery.yaml +104 -0
  15. package/examples/questions/capabilities/people.yaml +104 -0
  16. package/examples/questions/capabilities/reliability.yaml +103 -0
  17. package/examples/questions/capabilities/scale.yaml +103 -0
  18. package/examples/questions/skills/architecture_design.yaml +102 -51
  19. package/examples/questions/skills/cloud_platforms.yaml +90 -44
  20. package/examples/questions/skills/code_quality.yaml +86 -45
  21. package/examples/questions/skills/data_modeling.yaml +93 -43
  22. package/examples/questions/skills/devops.yaml +91 -44
  23. package/examples/questions/skills/full_stack_development.yaml +93 -45
  24. package/examples/questions/skills/sre_practices.yaml +92 -41
  25. package/examples/questions/skills/stakeholder_management.yaml +97 -46
  26. package/examples/questions/skills/team_collaboration.yaml +87 -40
  27. package/examples/questions/skills/technical_writing.yaml +89 -40
  28. package/examples/stages.yaml +6 -0
  29. package/package.json +9 -9
  30. package/schema/json/behaviour-questions.schema.json +53 -26
  31. package/schema/json/capability-questions.schema.json +95 -0
  32. package/schema/json/capability.schema.json +3 -3
  33. package/schema/json/skill-questions.schema.json +34 -19
  34. package/schema/json/stages.schema.json +5 -1
  35. package/schema/rdf/behaviour-questions.ttl +39 -7
  36. package/schema/rdf/capability.ttl +5 -5
  37. package/schema/rdf/defs.ttl +3 -3
  38. package/schema/rdf/skill-questions.ttl +28 -1
  39. package/schema/rdf/stages.ttl +27 -3
  40. package/{lib → src}/levels.js +37 -80
  41. package/{lib → src}/loader.js +9 -5
  42. package/{lib → src}/modifiers.js +3 -3
  43. package/{lib → src}/validation.js +74 -37
  44. /package/{lib → src}/index-generator.js +0 -0
  45. /package/{lib → src}/index.js +0 -0
  46. /package/{lib → src}/schema-validation.js +0 -0
@@ -1,42 +1,91 @@
1
1
  # yaml-language-server: $schema=https://www.forwardimpact.team/schema/json/skill-questions.schema.json
2
2
 
3
- awareness:
4
- - id: tw_aware_1
5
- text: How do you approach documenting your code and work?
6
- lookingFor:
7
- - Basic documentation habits
8
- - Understanding of documentation importance
9
- expectedDurationMinutes: 5
10
- foundational:
11
- - id: tw_found_1
12
- text: What makes a good README file? Walk me through what you'd include.
13
- lookingFor:
14
- - README best practices
15
- - Reader-centric documentation
16
- expectedDurationMinutes: 5
17
- working:
18
- - id: tw_work_1
19
- text:
20
- How do you write technical specifications that enable others to implement
21
- features?
22
- followUps:
23
- - How detailed do you go?
24
- lookingFor:
25
- - Spec writing skills
26
- - Communication of technical requirements
27
- expectedDurationMinutes: 8
28
- practitioner:
29
- - id: tw_pract_1
30
- text:
31
- How do you establish documentation standards and practices in your team?
32
- lookingFor:
33
- - Documentation leadership
34
- - Spec-driven development advocacy
35
- expectedDurationMinutes: 8
36
- expert:
37
- - id: tw_expert_1
38
- text: How do you create organizational documentation culture and systems?
39
- lookingFor:
40
- - Enterprise documentation strategy
41
- - Knowledge management systems
42
- expectedDurationMinutes: 10
3
+ professionalQuestions:
4
+ awareness:
5
+ - id: tw_pro_aware_1
6
+ text: How do you approach documenting your code and work?
7
+ lookingFor:
8
+ - Basic documentation habits
9
+ - Understanding of documentation importance
10
+ expectedDurationMinutes: 5
11
+ foundational:
12
+ - id: tw_pro_found_1
13
+ text: What makes a good README file? Walk me through what you'd include.
14
+ lookingFor:
15
+ - README best practices
16
+ - Reader-centric documentation
17
+ expectedDurationMinutes: 5
18
+ working:
19
+ - id: tw_pro_work_1
20
+ text:
21
+ How do you write technical specifications that enable others to
22
+ implement features?
23
+ followUps:
24
+ - How detailed do you go?
25
+ lookingFor:
26
+ - Spec writing skills
27
+ - Communication of technical requirements
28
+ expectedDurationMinutes: 8
29
+ practitioner:
30
+ - id: tw_pro_pract_1
31
+ text:
32
+ How do you establish documentation standards and practices in your team?
33
+ lookingFor:
34
+ - Documentation leadership
35
+ - Spec-driven development advocacy
36
+ expectedDurationMinutes: 8
37
+ expert:
38
+ - id: tw_pro_expert_1
39
+ text: How do you create organizational documentation culture and systems?
40
+ lookingFor:
41
+ - Enterprise documentation strategy
42
+ - Knowledge management systems
43
+ expectedDurationMinutes: 10
44
+
45
+ managementQuestions:
46
+ awareness:
47
+ - id: tw_mgmt_aware_1
48
+ text: How do you ensure your team documents their work appropriately?
49
+ lookingFor:
50
+ - Basic documentation expectations
51
+ - Team documentation awareness
52
+ expectedDurationMinutes: 5
53
+ foundational:
54
+ - id: tw_mgmt_found_1
55
+ text:
56
+ How do you set documentation expectations and standards for your team?
57
+ followUps:
58
+ - How do you handle resistance to documentation?
59
+ lookingFor:
60
+ - Documentation standard setting
61
+ - Team buy-in practices
62
+ expectedDurationMinutes: 5
63
+ working:
64
+ - id: tw_mgmt_work_1
65
+ text:
66
+ How do you balance documentation effort with delivery speed in your
67
+ team?
68
+ followUps:
69
+ - What is the minimum documentation you require?
70
+ lookingFor:
71
+ - Documentation vs velocity trade-offs
72
+ - Pragmatic documentation approach
73
+ expectedDurationMinutes: 8
74
+ practitioner:
75
+ - id: tw_mgmt_pract_1
76
+ text: How do you build a documentation culture within your team?
77
+ followUps:
78
+ - How do you keep documentation current?
79
+ lookingFor:
80
+ - Documentation culture development
81
+ - Knowledge management practices
82
+ expectedDurationMinutes: 8
83
+ expert:
84
+ - id: tw_mgmt_expert_1
85
+ text:
86
+ How do you drive documentation practices and knowledge sharing across
87
+ multiple teams?
88
+ lookingFor:
89
+ - Cross-team documentation leadership
90
+ - Organizational knowledge strategy
91
+ expectedDurationMinutes: 10
@@ -3,6 +3,7 @@
3
3
  - id: specify
4
4
  name: Specify
5
5
  emojiIcon: "🎯"
6
+ summary: Defines requirements, user stories, and acceptance criteria
6
7
  description:
7
8
  Your primary task is to define WHAT users need and WHY, not how to build it.
8
9
  Gather requirements, write user stories, and define acceptance criteria.
@@ -30,6 +31,7 @@
30
31
  - id: plan
31
32
  name: Plan
32
33
  emojiIcon: "📐"
34
+ summary: Designs architecture, makes technology choices, and defines contracts
33
35
  description:
34
36
  Your primary task is to define HOW to build the solution. Make technology
35
37
  choices, design architecture, define contracts and data models.
@@ -60,6 +62,7 @@
60
62
  - id: code
61
63
  name: Code
62
64
  emojiIcon: "💻"
65
+ summary: Implements solutions, writes tests, and iterates to completion
63
66
  description:
64
67
  Your primary task is to implement the solution. Write code, write tests, and
65
68
  iterate until the implementation is complete.
@@ -83,6 +86,8 @@
83
86
  - id: review
84
87
  name: Review
85
88
  emojiIcon: "🔍"
89
+ summary:
90
+ Verifies implementation, tests acceptance criteria, and documents findings
86
91
  description:
87
92
  Your primary task is to verify the implementation works correctly. Run the
88
93
  application, test against acceptance criteria, document findings.
@@ -116,6 +121,7 @@
116
121
  - id: deploy
117
122
  name: Deploy
118
123
  emojiIcon: "🚀"
124
+ summary: Ships changes to production and monitors deployment workflows
119
125
  description:
120
126
  Your primary task is to ship the changes to production. Push code, monitor
121
127
  CI/CD workflows, and verify successful deployment.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forwardimpact/schema",
3
- "version": "0.3.0",
3
+ "version": "0.6.0",
4
4
  "description": "Schema definitions and data loading for skills, behaviours, and role frameworks",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -10,7 +10,7 @@
10
10
  },
11
11
  "homepage": "https://www.forwardimpact.team/schema",
12
12
  "type": "module",
13
- "main": "lib/index.js",
13
+ "main": "src/index.js",
14
14
  "bin": {
15
15
  "fit-schema": "./bin/fit-schema.js"
16
16
  },
@@ -21,16 +21,16 @@
21
21
  "files": [
22
22
  "bin/",
23
23
  "examples/",
24
- "lib/",
24
+ "src/",
25
25
  "schema/"
26
26
  ],
27
27
  "exports": {
28
- ".": "./lib/index.js",
29
- "./loader": "./lib/loader.js",
30
- "./validation": "./lib/validation.js",
31
- "./schema-validation": "./lib/schema-validation.js",
32
- "./index-generator": "./lib/index-generator.js",
33
- "./levels": "./lib/levels.js",
28
+ ".": "./src/index.js",
29
+ "./loader": "./src/loader.js",
30
+ "./validation": "./src/validation.js",
31
+ "./schema-validation": "./src/schema-validation.js",
32
+ "./index-generator": "./src/index-generator.js",
33
+ "./levels": "./src/levels.js",
34
34
  "./examples/*": "./examples/*",
35
35
  "./schema/json/*": "./schema/json/*",
36
36
  "./schema/rdf/*": "./schema/rdf/*"
@@ -2,35 +2,50 @@
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
3
  "$id": "https://www.forwardimpact.team/schema/json/behaviour-questions.schema.json",
4
4
  "title": "Behaviour Interview Questions",
5
- "description": "Interview questions for a behaviour, organized by maturity level",
5
+ "description": "Stakeholder simulation interview questions for a behaviour, organized by role type (professional/management) and maturity level. Each question presents a realistic stakeholder scenario to assess behavioural maturity.",
6
6
  "type": "object",
7
7
  "properties": {
8
- "emerging": {
9
- "type": "array",
10
- "items": { "$ref": "#/$defs/question" }
8
+ "professionalQuestions": {
9
+ "description": "Questions for professional/IC roles (e.g., engineers)",
10
+ "$ref": "#/$defs/maturityQuestions"
11
11
  },
12
- "developing": {
13
- "type": "array",
14
- "items": { "$ref": "#/$defs/question" }
15
- },
16
- "practicing": {
17
- "type": "array",
18
- "items": { "$ref": "#/$defs/question" }
19
- },
20
- "role_modeling": {
21
- "type": "array",
22
- "items": { "$ref": "#/$defs/question" }
23
- },
24
- "exemplifying": {
25
- "type": "array",
26
- "items": { "$ref": "#/$defs/question" }
12
+ "managementQuestions": {
13
+ "description": "Questions for management roles (e.g., engineering managers, product managers)",
14
+ "$ref": "#/$defs/maturityQuestions"
27
15
  }
28
16
  },
29
17
  "additionalProperties": false,
30
18
  "$defs": {
19
+ "maturityQuestions": {
20
+ "type": "object",
21
+ "description": "Questions organized by behaviour maturity level",
22
+ "properties": {
23
+ "emerging": {
24
+ "type": "array",
25
+ "items": { "$ref": "#/$defs/question" }
26
+ },
27
+ "developing": {
28
+ "type": "array",
29
+ "items": { "$ref": "#/$defs/question" }
30
+ },
31
+ "practicing": {
32
+ "type": "array",
33
+ "items": { "$ref": "#/$defs/question" }
34
+ },
35
+ "role_modeling": {
36
+ "type": "array",
37
+ "items": { "$ref": "#/$defs/question" }
38
+ },
39
+ "exemplifying": {
40
+ "type": "array",
41
+ "items": { "$ref": "#/$defs/question" }
42
+ }
43
+ },
44
+ "additionalProperties": false
45
+ },
31
46
  "question": {
32
47
  "type": "object",
33
- "required": ["id", "text", "lookingFor"],
48
+ "required": ["id", "text", "lookingFor", "simulationPrompts"],
34
49
  "properties": {
35
50
  "id": {
36
51
  "type": "string",
@@ -39,20 +54,32 @@
39
54
  },
40
55
  "text": {
41
56
  "type": "string",
42
- "maxLength": 150,
43
- "description": "The question text (second person, under 150 characters)"
57
+ "maxLength": 300,
58
+ "description": "The stakeholder scenario (second person, sets up a realistic situation)"
59
+ },
60
+ "context": {
61
+ "type": "string",
62
+ "description": "Additional context to set up the simulation scenario"
63
+ },
64
+ "simulationPrompts": {
65
+ "type": "array",
66
+ "description": "3-5 guiding prompts to steer the simulation and probe the candidate's behaviour",
67
+ "minItems": 2,
68
+ "maxItems": 5,
69
+ "items": { "type": "string" }
44
70
  },
45
71
  "lookingFor": {
46
72
  "type": "array",
47
- "description": "2-4 bullet points of good answer indicators",
48
- "minItems": 1,
73
+ "description": "2-4 indicators of strong behavioural response",
74
+ "minItems": 2,
49
75
  "maxItems": 4,
50
76
  "items": { "type": "string" }
51
77
  },
52
78
  "expectedDurationMinutes": {
53
79
  "type": "integer",
54
- "minimum": 1,
55
- "description": "Expected duration in minutes (default: 5 for emerging/developing, 8-10 for higher)"
80
+ "minimum": 10,
81
+ "default": 20,
82
+ "description": "Expected duration in minutes (default: 20 for stakeholder simulation)"
56
83
  },
57
84
  "followUps": {
58
85
  "type": "array",
@@ -0,0 +1,95 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://www.forwardimpact.team/schema/json/capability-questions.schema.json",
4
+ "title": "Capability Decomposition Questions",
5
+ "description": "Decomposition interview questions for a capability, organized by role type (professional/management) and level. Inspired by Palantir's decomposition interview technique.",
6
+ "type": "object",
7
+ "properties": {
8
+ "professionalQuestions": {
9
+ "description": "Questions for professional/IC roles (e.g., engineers)",
10
+ "$ref": "#/$defs/levelQuestions"
11
+ },
12
+ "managementQuestions": {
13
+ "description": "Questions for management roles (e.g., engineering managers, product managers)",
14
+ "$ref": "#/$defs/levelQuestions"
15
+ }
16
+ },
17
+ "additionalProperties": false,
18
+ "$defs": {
19
+ "levelQuestions": {
20
+ "type": "object",
21
+ "description": "Questions organized by capability level",
22
+ "properties": {
23
+ "awareness": {
24
+ "type": "array",
25
+ "items": { "$ref": "#/$defs/question" }
26
+ },
27
+ "foundational": {
28
+ "type": "array",
29
+ "items": { "$ref": "#/$defs/question" }
30
+ },
31
+ "working": {
32
+ "type": "array",
33
+ "items": { "$ref": "#/$defs/question" }
34
+ },
35
+ "practitioner": {
36
+ "type": "array",
37
+ "items": { "$ref": "#/$defs/question" }
38
+ },
39
+ "expert": {
40
+ "type": "array",
41
+ "items": { "$ref": "#/$defs/question" }
42
+ }
43
+ },
44
+ "additionalProperties": false
45
+ },
46
+ "question": {
47
+ "type": "object",
48
+ "required": ["id", "text", "lookingFor", "decompositionPrompts"],
49
+ "properties": {
50
+ "id": {
51
+ "type": "string",
52
+ "pattern": "^[a-z][a-z0-9_]*$",
53
+ "description": "Unique question identifier (format: {capability_abbrev}_{level_abbrev}_{number})"
54
+ },
55
+ "text": {
56
+ "type": "string",
57
+ "maxLength": 200,
58
+ "description": "The problem statement or scenario (second person, open-ended)"
59
+ },
60
+ "context": {
61
+ "type": "string",
62
+ "description": "Optional additional context to set up the scenario"
63
+ },
64
+ "decompositionPrompts": {
65
+ "type": "array",
66
+ "description": "3-5 guiding questions to help the candidate structure their thinking",
67
+ "minItems": 2,
68
+ "maxItems": 5,
69
+ "items": { "type": "string" }
70
+ },
71
+ "lookingFor": {
72
+ "type": "array",
73
+ "description": "2-4 indicators of a strong decomposition approach",
74
+ "minItems": 2,
75
+ "maxItems": 4,
76
+ "items": { "type": "string" }
77
+ },
78
+ "expectedDurationMinutes": {
79
+ "type": "integer",
80
+ "minimum": 5,
81
+ "default": 15,
82
+ "description": "Expected duration in minutes (default: 15 for decomposition)"
83
+ },
84
+ "followUps": {
85
+ "type": "array",
86
+ "description": "1-3 probing questions for deeper exploration",
87
+ "minItems": 1,
88
+ "maxItems": 3,
89
+ "items": { "type": "string" }
90
+ }
91
+ },
92
+ "additionalProperties": false
93
+ }
94
+ }
95
+ }
@@ -19,10 +19,10 @@
19
19
  "type": "string",
20
20
  "description": "Emoji for visual representation"
21
21
  },
22
- "displayOrder": {
22
+ "ordinalRank": {
23
23
  "type": "integer",
24
24
  "minimum": 1,
25
- "description": "Order for display in UI"
25
+ "description": "Numeric rank for ordering capabilities (1 = first)"
26
26
  },
27
27
  "description": {
28
28
  "type": "string",
@@ -95,7 +95,7 @@
95
95
  },
96
96
  "toolReferences": {
97
97
  "type": "array",
98
- "description": "Recommended tools for this skill",
98
+ "description": "Required tools for this skill",
99
99
  "items": { "$ref": "#/$defs/toolReference" }
100
100
  }
101
101
  },
@@ -2,32 +2,47 @@
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
3
  "$id": "https://www.forwardimpact.team/schema/json/skill-questions.schema.json",
4
4
  "title": "Skill Interview Questions",
5
- "description": "Interview questions for a skill, organized by level",
5
+ "description": "Interview questions for a skill, organized by role type (professional/management) and level",
6
6
  "type": "object",
7
7
  "properties": {
8
- "awareness": {
9
- "type": "array",
10
- "items": { "$ref": "#/$defs/question" }
8
+ "professionalQuestions": {
9
+ "description": "Questions for professional/IC roles (e.g., engineers)",
10
+ "$ref": "#/$defs/levelQuestions"
11
11
  },
12
- "foundational": {
13
- "type": "array",
14
- "items": { "$ref": "#/$defs/question" }
15
- },
16
- "working": {
17
- "type": "array",
18
- "items": { "$ref": "#/$defs/question" }
19
- },
20
- "practitioner": {
21
- "type": "array",
22
- "items": { "$ref": "#/$defs/question" }
23
- },
24
- "expert": {
25
- "type": "array",
26
- "items": { "$ref": "#/$defs/question" }
12
+ "managementQuestions": {
13
+ "description": "Questions for management roles (e.g., engineering managers, product managers)",
14
+ "$ref": "#/$defs/levelQuestions"
27
15
  }
28
16
  },
29
17
  "additionalProperties": false,
30
18
  "$defs": {
19
+ "levelQuestions": {
20
+ "type": "object",
21
+ "description": "Questions organized by skill level",
22
+ "properties": {
23
+ "awareness": {
24
+ "type": "array",
25
+ "items": { "$ref": "#/$defs/question" }
26
+ },
27
+ "foundational": {
28
+ "type": "array",
29
+ "items": { "$ref": "#/$defs/question" }
30
+ },
31
+ "working": {
32
+ "type": "array",
33
+ "items": { "$ref": "#/$defs/question" }
34
+ },
35
+ "practitioner": {
36
+ "type": "array",
37
+ "items": { "$ref": "#/$defs/question" }
38
+ },
39
+ "expert": {
40
+ "type": "array",
41
+ "items": { "$ref": "#/$defs/question" }
42
+ }
43
+ },
44
+ "additionalProperties": false
45
+ },
31
46
  "question": {
32
47
  "type": "object",
33
48
  "required": ["id", "text", "lookingFor"],
@@ -27,7 +27,11 @@
27
27
  },
28
28
  "description": {
29
29
  "type": "string",
30
- "description": "Description of the stage's purpose"
30
+ "description": "Description of the stage's purpose (second-person, for agent body)"
31
+ },
32
+ "summary": {
33
+ "type": "string",
34
+ "description": "Third-person summary for metadata, listings, and sub-agent descriptions"
31
35
  },
32
36
  "handoffs": {
33
37
  "type": "array",
@@ -7,7 +7,10 @@
7
7
  # =============================================================================
8
8
  # Behaviour Questions Schema
9
9
  # =============================================================================
10
- # Interview questions for assessing behaviours.
10
+ # Stakeholder simulation interview questions for assessing behaviours,
11
+ # organized by role type (professional/management) and maturity level.
12
+ # Each question presents a realistic stakeholder scenario with simulation
13
+ # prompts to guide the interview panel.
11
14
  # =============================================================================
12
15
 
13
16
  # -----------------------------------------------------------------------------
@@ -26,6 +29,12 @@ fit:atMaturity a rdf:Property ;
26
29
  rdfs:domain fit:Question ;
27
30
  rdfs:range fit:BehaviourMaturity .
28
31
 
32
+ fit:simulationPrompts a rdf:Property ;
33
+ rdfs:label "simulationPrompts"@en ;
34
+ rdfs:comment "Guiding prompts to steer the stakeholder simulation and probe the candidate's behaviour"@en ;
35
+ rdfs:domain fit:Question ;
36
+ rdfs:range xsd:string .
37
+
29
38
  # =============================================================================
30
39
  # SHACL SHAPES
31
40
  # =============================================================================
@@ -48,27 +57,42 @@ fit:BehaviourQuestionShape a sh:NodeShape ;
48
57
  sh:property [
49
58
  sh:path fit:text ;
50
59
  sh:datatype xsd:string ;
51
- sh:maxLength 150 ;
60
+ sh:maxLength 300 ;
52
61
  sh:minCount 1 ;
53
62
  sh:maxCount 1 ;
54
63
  sh:name "text" ;
55
- sh:description "The question text (under 150 characters)" ;
64
+ sh:description "The stakeholder scenario (under 300 characters)" ;
65
+ ] ;
66
+ sh:property [
67
+ sh:path fit:context ;
68
+ sh:datatype xsd:string ;
69
+ sh:maxCount 1 ;
70
+ sh:name "context" ;
71
+ sh:description "Additional context to set up the simulation scenario" ;
72
+ ] ;
73
+ sh:property [
74
+ sh:path fit:simulationPrompts ;
75
+ sh:datatype xsd:string ;
76
+ sh:minCount 2 ;
77
+ sh:maxCount 5 ;
78
+ sh:name "simulationPrompts" ;
79
+ sh:description "3-5 guiding prompts to steer the simulation" ;
56
80
  ] ;
57
81
  sh:property [
58
82
  sh:path fit:lookingFor ;
59
83
  sh:datatype xsd:string ;
60
- sh:minCount 1 ;
84
+ sh:minCount 2 ;
61
85
  sh:maxCount 4 ;
62
86
  sh:name "lookingFor" ;
63
- sh:description "2-4 bullet points of good answer indicators" ;
87
+ sh:description "2-4 indicators of strong behavioural response" ;
64
88
  ] ;
65
89
  sh:property [
66
90
  sh:path fit:expectedDurationMinutes ;
67
91
  sh:datatype xsd:integer ;
68
- sh:minInclusive 1 ;
92
+ sh:minInclusive 10 ;
69
93
  sh:maxCount 1 ;
70
94
  sh:name "expectedDurationMinutes" ;
71
- sh:description "Expected duration in minutes" ;
95
+ sh:description "Expected duration in minutes (default: 20)" ;
72
96
  ] ;
73
97
  sh:property [
74
98
  sh:path fit:followUps ;
@@ -93,4 +117,12 @@ fit:BehaviourQuestionShape a sh:NodeShape ;
93
117
  sh:maxCount 1 ;
94
118
  sh:name "atMaturity" ;
95
119
  sh:description "The behaviour maturity this question is for" ;
120
+ ] ;
121
+ sh:property [
122
+ sh:path fit:forRoleType ;
123
+ sh:in ( fit:professional fit:management ) ;
124
+ sh:minCount 1 ;
125
+ sh:maxCount 1 ;
126
+ sh:name "forRoleType" ;
127
+ sh:description "The role type this question is for" ;
96
128
  ] .
@@ -85,7 +85,7 @@ fit:implementationReference a rdf:Property ;
85
85
 
86
86
  fit:toolReferences a rdf:Property ;
87
87
  rdfs:label "toolReferences"@en ;
88
- rdfs:comment "Recommended tools for this skill"@en ;
88
+ rdfs:comment "Required tools for this skill"@en ;
89
89
  rdfs:domain fit:Skill ;
90
90
  rdfs:range fit:ToolReference .
91
91
 
@@ -197,12 +197,12 @@ fit:CapabilityShape a sh:NodeShape ;
197
197
  sh:description "Emoji for visual representation" ;
198
198
  ] ;
199
199
  sh:property [
200
- sh:path fit:displayOrder ;
200
+ sh:path fit:ordinalRank ;
201
201
  sh:datatype xsd:integer ;
202
202
  sh:minInclusive 1 ;
203
203
  sh:maxCount 1 ;
204
- sh:name "displayOrder" ;
205
- sh:description "Order for display in UI" ;
204
+ sh:name "ordinalRank" ;
205
+ sh:description "Numeric rank for ordering capabilities (1 = first)" ;
206
206
  ] ;
207
207
  sh:property [
208
208
  sh:path fit:description ;
@@ -288,7 +288,7 @@ fit:SkillShape a sh:NodeShape ;
288
288
  sh:path fit:toolReferences ;
289
289
  sh:node fit:ToolReferenceShape ;
290
290
  sh:name "toolReferences" ;
291
- sh:description "Recommended tools for this skill" ;
291
+ sh:description "Required tools for this skill" ;
292
292
  ] .
293
293
 
294
294
  # -----------------------------------------------------------------------------
@@ -134,9 +134,9 @@ fit:emojiIcon a rdf:Property ;
134
134
  rdfs:comment "Emoji for visual representation"@en ;
135
135
  rdfs:range xsd:string .
136
136
 
137
- fit:displayOrder a rdf:Property ;
138
- rdfs:label "displayOrder"@en ;
139
- rdfs:comment "Order for display in UI"@en ;
137
+ fit:ordinalRank a rdf:Property ;
138
+ rdfs:label "ordinalRank"@en ;
139
+ rdfs:comment "Numeric rank for ordering (1 = first)"@en ;
140
140
  rdfs:range xsd:integer .
141
141
 
142
142
  fit:ordinal a rdf:Property ;