@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.
- package/bin/fit-schema.js +2 -2
- package/examples/capabilities/business.yaml +1 -1
- package/examples/capabilities/delivery.yaml +9 -7
- package/examples/capabilities/people.yaml +1 -1
- package/examples/capabilities/reliability.yaml +32 -11
- package/examples/capabilities/scale.yaml +1 -1
- package/examples/framework.yaml +1 -1
- package/examples/questions/behaviours/outcome_ownership.yaml +226 -49
- package/examples/questions/behaviours/polymathic_knowledge.yaml +273 -45
- package/examples/questions/behaviours/precise_communication.yaml +246 -52
- package/examples/questions/behaviours/relentless_curiosity.yaml +246 -48
- package/examples/questions/behaviours/systems_thinking.yaml +236 -50
- package/examples/questions/capabilities/business.yaml +107 -0
- package/examples/questions/capabilities/delivery.yaml +104 -0
- package/examples/questions/capabilities/people.yaml +104 -0
- package/examples/questions/capabilities/reliability.yaml +103 -0
- package/examples/questions/capabilities/scale.yaml +103 -0
- package/examples/questions/skills/architecture_design.yaml +102 -51
- package/examples/questions/skills/cloud_platforms.yaml +90 -44
- package/examples/questions/skills/code_quality.yaml +86 -45
- package/examples/questions/skills/data_modeling.yaml +93 -43
- package/examples/questions/skills/devops.yaml +91 -44
- package/examples/questions/skills/full_stack_development.yaml +93 -45
- package/examples/questions/skills/sre_practices.yaml +92 -41
- package/examples/questions/skills/stakeholder_management.yaml +97 -46
- package/examples/questions/skills/team_collaboration.yaml +87 -40
- package/examples/questions/skills/technical_writing.yaml +89 -40
- package/examples/stages.yaml +6 -0
- package/package.json +9 -9
- package/schema/json/behaviour-questions.schema.json +53 -26
- package/schema/json/capability-questions.schema.json +95 -0
- package/schema/json/capability.schema.json +3 -3
- package/schema/json/skill-questions.schema.json +34 -19
- package/schema/json/stages.schema.json +5 -1
- package/schema/rdf/behaviour-questions.ttl +39 -7
- package/schema/rdf/capability.ttl +5 -5
- package/schema/rdf/defs.ttl +3 -3
- package/schema/rdf/skill-questions.ttl +28 -1
- package/schema/rdf/stages.ttl +27 -3
- package/{lib → src}/levels.js +37 -80
- package/{lib → src}/loader.js +9 -5
- package/{lib → src}/modifiers.js +3 -3
- package/{lib → src}/validation.js +74 -37
- /package/{lib → src}/index-generator.js +0 -0
- /package/{lib → src}/index.js +0 -0
- /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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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
|
package/examples/stages.yaml
CHANGED
|
@@ -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
|
+
"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": "
|
|
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
|
-
"
|
|
24
|
+
"src/",
|
|
25
25
|
"schema/"
|
|
26
26
|
],
|
|
27
27
|
"exports": {
|
|
28
|
-
".": "./
|
|
29
|
-
"./loader": "./
|
|
30
|
-
"./validation": "./
|
|
31
|
-
"./schema-validation": "./
|
|
32
|
-
"./index-generator": "./
|
|
33
|
-
"./levels": "./
|
|
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": "
|
|
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
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
8
|
+
"professionalQuestions": {
|
|
9
|
+
"description": "Questions for professional/IC roles (e.g., engineers)",
|
|
10
|
+
"$ref": "#/$defs/maturityQuestions"
|
|
11
11
|
},
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
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":
|
|
43
|
-
"description": "The
|
|
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
|
|
48
|
-
"minItems":
|
|
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":
|
|
55
|
-
"
|
|
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
|
-
"
|
|
22
|
+
"ordinalRank": {
|
|
23
23
|
"type": "integer",
|
|
24
24
|
"minimum": 1,
|
|
25
|
-
"description": "
|
|
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": "
|
|
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
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
8
|
+
"professionalQuestions": {
|
|
9
|
+
"description": "Questions for professional/IC roles (e.g., engineers)",
|
|
10
|
+
"$ref": "#/$defs/levelQuestions"
|
|
11
11
|
},
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
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
|
-
#
|
|
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
|
|
60
|
+
sh:maxLength 300 ;
|
|
52
61
|
sh:minCount 1 ;
|
|
53
62
|
sh:maxCount 1 ;
|
|
54
63
|
sh:name "text" ;
|
|
55
|
-
sh:description "The
|
|
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
|
|
84
|
+
sh:minCount 2 ;
|
|
61
85
|
sh:maxCount 4 ;
|
|
62
86
|
sh:name "lookingFor" ;
|
|
63
|
-
sh:description "2-4
|
|
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
|
|
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 "
|
|
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:
|
|
200
|
+
sh:path fit:ordinalRank ;
|
|
201
201
|
sh:datatype xsd:integer ;
|
|
202
202
|
sh:minInclusive 1 ;
|
|
203
203
|
sh:maxCount 1 ;
|
|
204
|
-
sh:name "
|
|
205
|
-
sh:description "
|
|
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 "
|
|
291
|
+
sh:description "Required tools for this skill" ;
|
|
292
292
|
] .
|
|
293
293
|
|
|
294
294
|
# -----------------------------------------------------------------------------
|
package/schema/rdf/defs.ttl
CHANGED
|
@@ -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:
|
|
138
|
-
rdfs:label "
|
|
139
|
-
rdfs:comment "
|
|
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 ;
|