@forwardimpact/schema 0.1.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 (65) hide show
  1. package/bin/fit-schema.js +260 -0
  2. package/examples/behaviours/_index.yaml +8 -0
  3. package/examples/behaviours/outcome_ownership.yaml +43 -0
  4. package/examples/behaviours/polymathic_knowledge.yaml +41 -0
  5. package/examples/behaviours/precise_communication.yaml +39 -0
  6. package/examples/behaviours/relentless_curiosity.yaml +37 -0
  7. package/examples/behaviours/systems_thinking.yaml +40 -0
  8. package/examples/capabilities/_index.yaml +8 -0
  9. package/examples/capabilities/business.yaml +189 -0
  10. package/examples/capabilities/delivery.yaml +305 -0
  11. package/examples/capabilities/people.yaml +68 -0
  12. package/examples/capabilities/reliability.yaml +414 -0
  13. package/examples/capabilities/scale.yaml +378 -0
  14. package/examples/copilot-setup-steps.yaml +25 -0
  15. package/examples/devcontainer.yaml +21 -0
  16. package/examples/disciplines/_index.yaml +6 -0
  17. package/examples/disciplines/data_engineering.yaml +78 -0
  18. package/examples/disciplines/engineering_management.yaml +63 -0
  19. package/examples/disciplines/software_engineering.yaml +78 -0
  20. package/examples/drivers.yaml +202 -0
  21. package/examples/framework.yaml +69 -0
  22. package/examples/grades.yaml +115 -0
  23. package/examples/questions/behaviours/outcome_ownership.yaml +51 -0
  24. package/examples/questions/behaviours/polymathic_knowledge.yaml +47 -0
  25. package/examples/questions/behaviours/precise_communication.yaml +54 -0
  26. package/examples/questions/behaviours/relentless_curiosity.yaml +50 -0
  27. package/examples/questions/behaviours/systems_thinking.yaml +52 -0
  28. package/examples/questions/skills/architecture_design.yaml +53 -0
  29. package/examples/questions/skills/cloud_platforms.yaml +47 -0
  30. package/examples/questions/skills/code_quality.yaml +48 -0
  31. package/examples/questions/skills/data_modeling.yaml +45 -0
  32. package/examples/questions/skills/devops.yaml +46 -0
  33. package/examples/questions/skills/full_stack_development.yaml +47 -0
  34. package/examples/questions/skills/sre_practices.yaml +43 -0
  35. package/examples/questions/skills/stakeholder_management.yaml +48 -0
  36. package/examples/questions/skills/team_collaboration.yaml +42 -0
  37. package/examples/questions/skills/technical_writing.yaml +42 -0
  38. package/examples/self-assessments.yaml +64 -0
  39. package/examples/stages.yaml +139 -0
  40. package/examples/tracks/_index.yaml +5 -0
  41. package/examples/tracks/platform.yaml +49 -0
  42. package/examples/tracks/sre.yaml +48 -0
  43. package/examples/vscode-settings.yaml +21 -0
  44. package/lib/index-generator.js +65 -0
  45. package/lib/index.js +44 -0
  46. package/lib/levels.js +601 -0
  47. package/lib/loader.js +599 -0
  48. package/lib/modifiers.js +23 -0
  49. package/lib/schema-validation.js +438 -0
  50. package/lib/validation.js +2130 -0
  51. package/package.json +49 -0
  52. package/schema/json/behaviour-questions.schema.json +68 -0
  53. package/schema/json/behaviour.schema.json +73 -0
  54. package/schema/json/capability.schema.json +220 -0
  55. package/schema/json/defs.schema.json +132 -0
  56. package/schema/json/discipline.schema.json +132 -0
  57. package/schema/json/drivers.schema.json +48 -0
  58. package/schema/json/framework.schema.json +55 -0
  59. package/schema/json/grades.schema.json +121 -0
  60. package/schema/json/index.schema.json +18 -0
  61. package/schema/json/self-assessments.schema.json +52 -0
  62. package/schema/json/skill-questions.schema.json +68 -0
  63. package/schema/json/stages.schema.json +84 -0
  64. package/schema/json/track.schema.json +100 -0
  65. package/schema/rdf/pathway.ttl +2362 -0
@@ -0,0 +1,305 @@
1
+ # yaml-language-server: $schema=https://schema.forwardimpact.team/json/capability.schema.json
2
+
3
+ name: Delivery
4
+ emojiIcon: 🚀
5
+ displayOrder: 1
6
+ description: |
7
+ Building and shipping solutions that solve real problems.
8
+ Encompasses full-stack development, data integration, problem discovery,
9
+ and rapid prototyping.
10
+ professionalResponsibilities:
11
+ awareness:
12
+ Complete assigned implementation tasks within established patterns with
13
+ guidance from senior engineers
14
+ foundational:
15
+ Deliver small features end-to-end with minimal guidance, understanding how
16
+ your code fits the broader system
17
+ working:
18
+ Own feature delivery from design through deployment, making sound technical
19
+ trade-offs to ship value on time
20
+ practitioner:
21
+ Lead technical delivery of complex projects across multiple teams, unblock
22
+ others through hands-on contributions, and ensure engineering quality
23
+ expert:
24
+ Drive delivery of the most critical technical initiatives, establish
25
+ engineering delivery practices across the business unit, and be the
26
+ technical authority on high-stakes projects
27
+ managementResponsibilities:
28
+ awareness:
29
+ Track team progress and communicate status to stakeholders with guidance
30
+ foundational:
31
+ Coordinate team delivery by managing dependencies, removing blockers, and
32
+ keeping stakeholders informed
33
+ working:
34
+ Own team delivery outcomes—balance scope, staffing, and timeline; make
35
+ resourcing decisions to meet commitments
36
+ practitioner:
37
+ Drive delivery excellence across multiple teams, establish delivery metrics
38
+ and practices for your area, hold teams accountable, and escalate cross-team
39
+ risks
40
+ expert:
41
+ Shape delivery culture across the business unit, lead strategic delivery
42
+ transformations, and represent delivery commitments at executive level
43
+ skills:
44
+ - id: architecture_design
45
+ name: Architecture & Design
46
+ human:
47
+ description:
48
+ Ability to design software systems that are scalable, maintainable, and
49
+ fit for purpose. In the AI era, this includes designing systems that
50
+ effectively leverage AI capabilities while maintaining human oversight.
51
+ levelDescriptions:
52
+ awareness:
53
+ You understand basic architectural concepts (separation of concerns,
54
+ modularity, coupling) and can read architecture diagrams. You follow
55
+ established patterns with guidance.
56
+ foundational:
57
+ You explain and apply common patterns (MVC, microservices,
58
+ event-driven) to familiar problems. You contribute to design
59
+ discussions and identify when existing patterns don't fit.
60
+ working:
61
+ You design components and services independently for moderate
62
+ complexity. You make appropriate trade-off decisions, document design
63
+ rationale, and consider AI integration points in your designs.
64
+ practitioner:
65
+ You design complex multi-component systems end-to-end, evaluate
66
+ architectural options for large initiatives across teams, guide
67
+ technical decisions for your area, and mentor engineers on
68
+ architecture. You balance elegance with delivery needs.
69
+ expert:
70
+ You define architecture standards and patterns across the business
71
+ unit. You innovate on approaches to large-scale challenges, shape
72
+ AI-integrated system design, and are recognized externally as an
73
+ architecture authority.
74
+ agent:
75
+ name: architecture-design
76
+ description:
77
+ Guide for designing software systems and making architectural decisions.
78
+ useWhen: |
79
+ Asked to design a system, evaluate architecture options, or make
80
+ structural decisions about code organization.
81
+ stages:
82
+ specify:
83
+ focus: |
84
+ Define system requirements and constraints before design.
85
+ Clarify functional and non-functional requirements.
86
+ activities:
87
+ - Document functional requirements and use cases
88
+ - Identify non-functional requirements (scale, latency,
89
+ availability)
90
+ - Document system constraints and integration points
91
+ - Identify stakeholders and their concerns
92
+ - Mark ambiguities with [NEEDS CLARIFICATION]
93
+ ready:
94
+ - Functional requirements are documented
95
+ - Non-functional requirements are specified
96
+ - Constraints are identified
97
+ - Stakeholder concerns are understood
98
+ plan:
99
+ focus: Understanding requirements and designing solutions
100
+ activities:
101
+ - Gather context about existing systems and constraints
102
+ - Clarify non-functional requirements (scale, latency, availability)
103
+ - Identify key decisions that are hard to change later
104
+ - Evaluate trade-offs between architectural options
105
+ - Document approach with rationale
106
+ ready:
107
+ - Requirements are clearly understood
108
+ - Key decisions are documented with rationale
109
+ - Trade-offs are explicit
110
+ - Dependencies are identified
111
+ code:
112
+ focus: Implementing architecture faithfully while adapting to reality
113
+ activities:
114
+ - Verify implementation aligns with design decisions
115
+ - Implement interfaces and boundaries before internals
116
+ - Document any deviations from design with rationale
117
+ - Keep architecture documentation in sync with implementation
118
+ ready:
119
+ - Implementation matches documented design
120
+ - Deviations documented with rationale
121
+ - Failure modes are considered and handled
122
+ - Security implications are reviewed
123
+ review:
124
+ focus: Verifying architecture implementation and documentation
125
+ activities:
126
+ - Compare implementation to design documentation
127
+ - Verify all decisions were followed or documented
128
+ - Assess maintainability and extensibility
129
+ - Ensure architecture enables future changes
130
+ ready:
131
+ - Design docs reflect actual implementation
132
+ - Architecture decisions validated in practice
133
+ - Scalability requirements addressed
134
+ deploy:
135
+ focus: |
136
+ Deploy architecture and verify it performs as designed
137
+ in production environment.
138
+ activities:
139
+ - Deploy system components to production
140
+ - Verify architectural boundaries work under load
141
+ - Monitor performance against requirements
142
+ - Document any operational learnings
143
+ ready:
144
+ - System deployed successfully
145
+ - Performance meets requirements
146
+ - Monitoring confirms design assumptions
147
+ - Operational procedures are documented
148
+ implementationReference: |
149
+ ## Common Patterns
150
+
151
+ ### Service Architecture
152
+ - **Microservices**: Independent deployment, clear boundaries
153
+ - **Monolith**: Simpler deployment, easier refactoring
154
+ - **Modular monolith**: Boundaries within single deployment
155
+
156
+ ### Data Patterns
157
+ - **Event sourcing**: Full audit trail, complex queries
158
+ - **CQRS**: Separate read and write models
159
+ - **Repository pattern**: Abstract data access
160
+
161
+ ### Communication Patterns
162
+ - **REST**: Synchronous, request-response
163
+ - **Event-driven**: Asynchronous, loose coupling
164
+ - **gRPC**: Efficient, strongly typed
165
+ - id: full_stack_development
166
+ name: Full-Stack Development
167
+ human:
168
+ description:
169
+ Building complete solutions across frontend, APIs, databases, and
170
+ infrastructure without dependencies on specialists. JavaScript and
171
+ Python are our primary languages, with CloudFormation and Terraform for
172
+ infrastructure. Essential for rapid delivery and embedded engineering
173
+ work.
174
+ levelDescriptions:
175
+ awareness:
176
+ You understand how frontend, backend, and database layers work
177
+ together. You can make changes in one layer with guidance and
178
+ understand the impact on other layers.
179
+ foundational:
180
+ You build simple features across frontend and backend using JavaScript
181
+ or Python. You understand how layers connect through APIs and can
182
+ debug across the stack.
183
+ working:
184
+ You deliver complete features end-to-end independently—frontend,
185
+ backend, database, and infrastructure (CloudFormation/Terraform). You
186
+ make pragmatic technology choices and deploy what you build.
187
+ practitioner:
188
+ You build complete applications rapidly across any technology stack
189
+ for teams in your area. You select the right tools for each problem,
190
+ balance technical debt with delivery speed, and mentor engineers on
191
+ full-stack development.
192
+ expert:
193
+ You work comfortably in any language and rapidly acquire new skills as
194
+ needed. You deliver production solutions in days not months, shape
195
+ full-stack practices across the business unit, and exemplify
196
+ polymathic engineering.
197
+ agent:
198
+ name: full-stack-development
199
+ description:
200
+ Guide for building complete solutions across the full technology stack.
201
+ useWhen: |
202
+ Implementing features spanning frontend, backend, database, and
203
+ infrastructure layers.
204
+ stages:
205
+ specify:
206
+ focus: |
207
+ Define full-stack feature requirements and acceptance criteria.
208
+ Clarify user needs and system integration points.
209
+ activities:
210
+ - Identify user stories and acceptance criteria
211
+ - Document expected user interactions
212
+ - Clarify integration requirements with existing systems
213
+ - Define non-functional requirements (performance, security)
214
+ - Mark ambiguities with [NEEDS CLARIFICATION]
215
+ ready:
216
+ - User stories are documented
217
+ - Acceptance criteria are defined
218
+ - Integration points are identified
219
+ - Non-functional requirements are clear
220
+ plan:
221
+ focus: Designing the complete solution across layers
222
+ activities:
223
+ - Define the API contract between frontend and backend
224
+ - Design database schema to support the feature
225
+ - Plan infrastructure requirements
226
+ - Identify cross-layer dependencies
227
+ ready:
228
+ - API contract is defined
229
+ - Database schema is designed
230
+ - Infrastructure needs identified
231
+ - Layer boundaries are clear
232
+ code:
233
+ focus: Building vertically across all layers
234
+ activities:
235
+ - Implement backend API endpoints
236
+ - Build frontend components and integrate with API
237
+ - Set up database migrations and queries
238
+ - Configure infrastructure as code
239
+ - Test across layer boundaries
240
+ ready:
241
+ - Frontend connects to backend correctly
242
+ - Database schema supports the feature
243
+ - Error handling spans all layers
244
+ - Feature works end-to-end
245
+ review:
246
+ focus: Verifying integration across the stack
247
+ activities:
248
+ - Test complete user flows end-to-end
249
+ - Verify error handling at each layer
250
+ - Check deployment pipeline works
251
+ - Validate monitoring and logging
252
+ ready:
253
+ - End-to-end tests pass
254
+ - Deployment is automated
255
+ - Cross-layer errors are handled gracefully
256
+ deploy:
257
+ focus: |
258
+ Deploy full-stack feature to production and verify end-to-end
259
+ functionality in live environment.
260
+ activities:
261
+ - Deploy backend services
262
+ - Deploy frontend changes
263
+ - Run database migrations
264
+ - Verify feature works in production
265
+ - Monitor for errors and performance issues
266
+ ready:
267
+ - All components deployed successfully
268
+ - Feature works end-to-end in production
269
+ - No errors in monitoring
270
+ - Performance meets requirements
271
+ toolReferences:
272
+ - name: Terraform
273
+ url: https://developer.hashicorp.com/terraform/docs
274
+ simpleIcon: terraform
275
+ description: Infrastructure as code tool
276
+ useWhen: Provisioning and managing cloud infrastructure
277
+ - name: CloudFormation
278
+ url: https://docs.aws.amazon.com/cloudformation/
279
+ description: AWS infrastructure as code service
280
+ useWhen: Managing AWS infrastructure as code
281
+ - name: Docker
282
+ url: https://docs.docker.com/
283
+ simpleIcon: docker
284
+ description: Container platform
285
+ useWhen: Containerizing applications or managing container environments
286
+ implementationReference: |
287
+ ## Technology Stack
288
+
289
+ ### Primary Languages
290
+ - **JavaScript/TypeScript**: Frontend and Node.js backend
291
+ - **Python**: Backend APIs and data processing
292
+
293
+ ### Infrastructure
294
+ - **Terraform**: Cloud infrastructure as code
295
+ - **CloudFormation**: AWS-specific infrastructure
296
+ - **Docker**: Containerization
297
+
298
+ ## Layer Responsibilities
299
+
300
+ | Layer | Responsibilities |
301
+ |-------|-----------------|
302
+ | Frontend | UI/UX, client validation, API integration |
303
+ | Backend | Business logic, auth, external services |
304
+ | Database | Persistence, queries, migrations |
305
+ | Infrastructure | Deployment, scaling, monitoring |
@@ -0,0 +1,68 @@
1
+ # yaml-language-server: $schema=https://schema.forwardimpact.team/json/capability.schema.json
2
+
3
+ name: People
4
+ emojiIcon: 👥
5
+ displayOrder: 6
6
+ description: |
7
+ Growing individuals and building effective teams.
8
+ Includes mentoring, coaching, hiring, performance management,
9
+ and creating inclusive environments.
10
+ professionalResponsibilities:
11
+ awareness:
12
+ Contribute positively to team dynamics, be open to feedback, and learn
13
+ actively from colleagues
14
+ foundational:
15
+ Support teammates through pair programming, knowledge sharing, and
16
+ constructive code reviews
17
+ working:
18
+ Mentor junior engineers on technical topics, contribute to hiring through
19
+ interviews, and actively build team knowledge
20
+ practitioner:
21
+ Coach multiple engineers on career growth, lead hiring for technical roles
22
+ across your area, and shape team technical culture
23
+ expert:
24
+ Develop technical leaders, shape engineering talent strategy across the
25
+ business unit, and build high-performing engineering teams
26
+ managementResponsibilities:
27
+ awareness:
28
+ Build positive relationships with team members and seek feedback on your
29
+ leadership
30
+ foundational:
31
+ Conduct effective 1:1s, provide regular feedback, support individual
32
+ development, and recognize contributions
33
+ working:
34
+ Manage team performance, own hiring decisions, create inclusive team
35
+ environments, and handle difficult conversations
36
+ practitioner:
37
+ Develop and retain talent across teams, build leadership pipelines for your
38
+ area, make promotion decisions, and shape team culture
39
+ expert:
40
+ Develop senior leaders, shape talent strategy across the business unit,
41
+ build high-performing teams, and own succession planning
42
+ skills:
43
+ - id: team_collaboration
44
+ name: Team Collaboration
45
+ isHumanOnly: true
46
+ human:
47
+ description: Working effectively with others to achieve shared goals
48
+ levelDescriptions:
49
+ awareness:
50
+ You participate constructively in team activities, communicate
51
+ clearly, and ask for help when stuck. You are reliable and follow
52
+ through on commitments.
53
+ foundational:
54
+ You collaborate effectively on shared work, support teammates
55
+ proactively, share knowledge freely, and give and receive feedback
56
+ constructively.
57
+ working:
58
+ You facilitate collaboration across the team, resolve minor conflicts
59
+ before they escalate, enable others to succeed, and contribute
60
+ positively to team dynamics and morale.
61
+ practitioner:
62
+ You build high-performing teams across your area, navigate complex
63
+ interpersonal dynamics, foster psychological safety, and create
64
+ environments where diverse perspectives are valued and heard.
65
+ expert:
66
+ You create collaborative culture across the business unit. You
67
+ transform dysfunctional team dynamics, are recognized for building
68
+ exceptional teams, and mentor others on collaboration excellence.