Forge is a full-stack portfolio project for turning structured feature descriptions into reviewable engineering artifacts:
- user stories and Given/When/Then acceptance criteria
- OpenAPI 3.0 contract scaffolds
- explicit state-machine definitions and Mermaid diagrams
- JIRA-ready tickets
- confidence flags that surface missing information and assumptions
- session history, human review, JSON editing, and export
- optional Jira Cloud OAuth 2.0 integration
This repository implements the product described in the Forge case study. It is deliberately configured to run in mock mode by default, so a reviewer can use the complete workflow without an API key.
React + TypeScript + Vite
|
| /api/v1
v
FastAPI + Pydantic + SQLAlchemy
| | |
| | +-- Jira Cloud REST API v3 (OAuth 2.0 3LO)
| +-- Claude API (or deterministic mock provider)
+-- SQLite locally / PostgreSQL in Docker
- Copy the environment file:
cp .env.example .env- Start the full stack:
docker compose up --build- Open http://localhost:5173.
Mock mode is enabled by default. To use Claude, set FORGE_MOCK_LLM=false, add ANTHROPIC_API_KEY, and restart the backend.
Backend:
cd backend
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e '.[dev]'
cp ../.env.example .env
uvicorn app.main:app --reload --port 8000Frontend, in a second terminal:
cd frontend
npm install
npm run devOpen http://localhost:5173. API documentation is available at http://localhost:8000/docs.
- Create an intake using the six-field taxonomy: objective, actor, data, dependencies, edge cases, and compliance context.
- Select a generic, banking, customer-support, or compliance prompt pack.
- Generate and persist an artifact run.
- Review confidence flags before approving the run.
- Edit and revalidate the artifact JSON when needed.
- Export JSON, OpenAPI YAML, Mermaid, or a ZIP bundle.
- Optionally connect Jira and create issues using configurable project field mapping.
Forge uses Jira Cloud OAuth 2.0 authorization-code grants (3LO), not a browser-exposed API token.
- Create an OAuth 2.0 app in the Atlassian developer console.
- Add the callback URL shown in
.env.example. - Add the scopes from
ATLASSIAN_SCOPES. - Put the client ID and secret in
.env. - Restart Forge and use Connect Jira in the review screen.
Jira projects differ substantially. Forge therefore asks for project key, issue type, and optional custom-field IDs rather than assuming one universal schema.
Backend:
cd backend
pytestFrontend:
cd frontend
npm install
npm test
npm run buildRun the 14-item prompt corpus in mock mode:
cd backend
python scripts/evaluate_corpus.pyThe code proves that the product workflow exists. It does not prove claims such as “18 early adopters,” “94% API-contract accuracy,” “127 prompt variations,” or “4.2x faster” unless you have actually run and documented those studies. See docs/CLAIMS_CHECKLIST.md before publishing the case study.
This is a strong portfolio-grade full-stack implementation, not a turnkey enterprise SaaS. Before handling real customer data, add organization-level authentication, per-user authorization, managed secrets, database migrations, centralized logging, rate limits, data-retention controls, and a formal threat model.
MIT. See LICENSE.