Getting Started: Contributors
Set up the Forward Impact monorepo for development. This guide covers installation, data generation, and running the quality checks.
External users install products via npm (see Engineering Leaders or Engineers). This page is for contributors working on the monorepo itself.
Prerequisites
Clone and install
git clone https://github.com/forwardimpact/monorepo.git
cd monorepo
bun install
just quickstart
The quickstart target bootstraps environment files,
generates data, runs codegen, and processes resources.
Generate synthetic data
The monorepo includes a synthetic data pipeline for testing and development:
just synthetic
This uses cached prose from
data/synthetic/prose-cache.json and requires no LLM
access. It produces agent-aligned engineering standard definitions,
organizational documents, and activity data that the products
consume during development and testing.
Other generation modes:
just synthetic-update # Regenerate prose via LLM and update the cache
Run checks
Run formatting and linting, then unit tests, before committing:
bun run check
bun run test
bun run check runs format,
lint, jsdoc, invariants,
context, and wiki sequentially so failures
are easy to spot. bun run test runs unit tests (bun test) separately so test output does not bury check failures.
To auto-fix formatting and lint issues:
bun run check:fix
Understand the structure
products/ Products that turn the standard into tooling
libraries/ Shared libraries (libskill, libdoc, libbridge, etc.)
services/ gRPC microservices supervised by fit-rc
data/ Generated and standard data
config/ Service and tool configuration
specs/ Feature specifications and plans
websites/ Public site sources (websites/fit/, websites/kata/, …)
The products tree holds these
eight
products:
- gear
- guide
- kata
- landmark
- map
- outpost
- pathway
- summit
The services tree holds these gRPC microservices:
- bridge
- embedding
- ghbridge
- ghserver
- ghuser
- graph
- map
- mcp
- msbridge
- oauth
- oidc
- pathway
- tenancy
- trace
- vector
Products answer specific questions for specific users. Map defines what good engineering looks like. Pathway renders agent-aligned engineering standards. Outpost manages personal knowledge. Guide interprets artifacts. Summit models team capability. Landmark surfaces engineering-system signals from Map's activity layer. Kata orchestrates an autonomous agent team that ships and improves itself. Gear is a meta-package that re-exports all service and library CLIs as dependencies.
Libraries provide shared logic following OO+DI patterns — classes accept dependencies through constructors, factory functions wire real implementations, tests inject mocks directly.
Services are gRPC microservices supervised by
fit-rc. Start them with bunx fit-rc start.
Development workflow
- Create a branch from
main - Make your changes
-
Run
bun run checkandbun run test -
Run
just audit(npm audit + gitleaks secret scanning) - Commit and push
Commit messages follow conventional format:
type(scope): subject. Types include feat,
fix, refactor, docs,
test, chore, and spec. Scope
is the package name (e.g., map, libskill,
pathway). Add ! after scope for breaking
changes.