Thanks for your interest in contributing! TowerForge is an AI-powered telecom construction toolkit — contributions that improve accuracy, add carrier standards, or expand the equipment catalog are especially welcome.
- Node.js 20+
- npm
git clone https://github.com/optimizedwf/towerforge.git
cd towerforge
npm installnpm run build # Compile TypeScript
npm run lint # Type-check without emittingsdk/src/
├── tools/ # Public API functions (7 tools)
├── engine/ # Structured output builders
├── profiles/ # Carrier + OEM profiles
├── schemas/ # Zod schemas + material index
├── data/ # Data loaders (CSV, PDF, XLSX)
├── validation/ # BOM rules, part number enforcement
├── compiler/ # Structured → markdown
└── utils/ # Tags, hashing, normalization
- TypeScript: Strict mode enabled. All public APIs have Zod validation.
- Imports: Named exports preferred. No default exports for tools/engines.
- Tool functions: Every tool must have Zod-validated input and output types.
- Tests: All new tools need acceptance tests. Existing tests must pass.
- Add profile data to
sdk/src/profiles/carrierProfiles.ts - Add standards reference to
docs/carrier-standards.md - Update prompt in
skills/telecom-construction/prompt.ts - Add acceptance test in
sdk/tests/acceptance/profiles.test.ts
Add entries to both:
sdk/src/schemas/materialIndex.ts— SDK-level catalogskills/telecom-construction/tools.ts— AI skill tool catalog
Include: part number, description, manufacturer, and category.
npm test # All tests
npm run test:acceptance # Acceptance testsTests use ts-jest. Keep tests focused on tool behavior and validation rules.
- Fork the repo and create a feature branch
- Write or update tests for your changes
- Ensure
npm run lintandnpm testpass - Update CHANGELOG.md under
[Unreleased] - Submit a PR with a clear description of what changed and why
Use the bug report template. Include:
- TowerForge version
- Node.js version
- Steps to reproduce
- Expected vs actual behavior
Open a discussion or email adam@adamn.info.