Getting Started: Leadership

Getting Started: Leadership

This guide walks you through creating your first engineering framework. By the end you will have a minimal set of YAML definitions that validate and preview in the browser.

Prerequisites

  • Bun 1.0+

Install

Install the packages directly:

bun install @forwardimpact/map @forwardimpact/pathway

Or clone the monorepo:

git clone https://github.com/forwardimpact/monorepo.git
cd monorepo
bun install

Create your first framework

Framework definitions live in YAML files under a data/ directory. You need three files to get started: levels, a capability with at least one skill, and a discipline that references it.

Define levels

Create data/levels.yaml with your level definitions. Each level sets baseline expectations for skill proficiency and behaviour maturity.

- id: L1
  professionalTitle: Junior Engineer
  managementTitle: Junior Manager
  ordinalRank: 1
  baseSkillProficiencies:
    primary: foundational
    secondary: awareness
    broad: awareness
  baseBehaviourMaturity: emerging

- id: L2
  professionalTitle: Engineer
  managementTitle: Manager
  ordinalRank: 2
  baseSkillProficiencies:
    primary: working
    secondary: foundational
    broad: awareness
  baseBehaviourMaturity: developing

- id: L3
  professionalTitle: Senior Engineer
  managementTitle: Senior Manager
  ordinalRank: 3
  baseSkillProficiencies:
    primary: practitioner
    secondary: working
    broad: foundational
  baseBehaviourMaturity: practicing

Define a capability and skill

Create data/capabilities/delivery.yaml with one capability containing a skill. Each skill needs a human: section with a description and proficiency descriptions at all five levels.

name: Delivery
description: Ship working software reliably.
skills:
  - id: task_execution
    name: Task Execution
    human:
      description: Breaking down and completing engineering work
      proficiencyDescriptions:
        awareness: >
          Understands the team's delivery workflow and follows guidance
          to complete assigned tasks.
        foundational: >
          Breaks work into steps, estimates effort, and completes tasks
          with minimal guidance.
        working: >
          Independently plans and delivers work, adjusting approach when
          requirements change.
        practitioner: >
          Leads delivery across multiple workstreams, mentoring others
          on effective execution.
        expert: >
          Defines delivery practices that scale across the organization.

Define a discipline

Create data/disciplines/software_engineering.yaml referencing your capability skill.

specialization: Software Engineering
roleTitle: Software Engineer
coreSkills:
  - task_execution
validTracks:
  - null

Use null in validTracks to allow a trackless (generalist) configuration.

Validate

Run the validator to check your YAML files against the schema:

bunx fit-map validate

Fix any errors the validator reports before moving on.

Preview

Start the development server to see your framework in the browser:

bunx fit-pathway dev
# Open http://localhost:3000

Browse disciplines, levels, and skills to verify everything looks correct.

Next steps

  • Authoring frameworks -- full guide to defining all entity types: levels, disciplines, tracks, capabilities, skills, behaviours, stages, and drivers
  • YAML schema reference -- complete file format documentation