Skip to content

Project: Natural Language Compiler - users only worry about requirements and design, AI maintains the code #123

@jnPiyush

Description

@jnPiyush

Track

Creative Apps (GitHub Copilot)

Project Name

Natural Language Compiler

GitHub Username

@jnPiyush

Repository URL

https://github.com/jnPiyush/NLPCompiler

Project Description

What problem are we solving?
Today, software requirements and source code exist as disconnected artifacts. Requirements are written in natural language documents (Word, Confluence, Notion, Markdown), while code lives in Git repositories. When requirements change -- which happens constantly -- there is no automated way to detect what changed, determine which code is affected, and generate or modify code accordingly. This leads to requirement-code drift, stale documentation, and massive manual effort to keep systems aligned with intent.

No tool today maintains a bidirectional traceability map between requirements and code at the granular level

The vision of "users only worry about requirements and design, AI maintains the code" requires a fundamentally new approach: treating requirements as the source of truth that compiles down to code, much like how source code compiles to binaries.

Business Goals
Reduce requirement-to-code translation time by 70%: Automated code generation from structured requirements
Eliminate requirement-code drift: 100% traceability between active requirements and code modules
Accelerate change propagation by 10x: Detect requirement delta and auto-generate code patches

Demo Video or Screenshots

https://github.com/jnPiyush/NLPCompiler/blob/master/Screenshot%202026-03-01%20230049.png

Primary Programming Language

Python

Key Technologies Used

Technology Stack

Layer Technology Why
Language Python 3.11+ Team expertise, LLM ecosystem, Tree-sitter bindings
Agent Framework LangGraph State persistence, checkpointing, conditional edges, human-in-the-loop
LLM Abstraction LiteLLM Unified API across OpenAI/Anthropic/Google/Ollama
AST Parsing Tree-sitter (py-tree-sitter) Multi-language AST for Python + TypeScript; function-level chunking
Vector Store FAISS (faiss-cpu) Local, file-persisted, no server dependency; portable for CLI
Embeddings text-embedding-3-small / all-MiniLM-L6-v2 Cloud primary / local fallback for offline mode
CLI Typer Modern Python CLI with auto-help; simpler than Click
Requirement Store YAML in Git Human-readable, diffable, version-controlled natively
Version Control GitPython Programmatic Git operations (branch, commit, diff, push)
Security Custom guardrails Prompt injection detection, DLP secret redaction
Testing pytest + coverage.py Standard Python test stack; 80%+ coverage target

Submission Type

Individual

Team Members

No response

Submission Requirements

  • My project meets the track-specific challenge requirements
  • My repository includes a comprehensive README.md with setup instructions
  • My code does not contain hardcoded API keys or secrets
  • I have included demo materials (video or screenshots)
  • My project is my own work with proper attribution for any third-party code
  • I agree to the Code of Conduct
  • I have read and agree to the Disclaimer
  • My submission does NOT contain any confidential, proprietary, or sensitive information
  • I confirm I have the rights to submit this content and grant the necessary licenses

Quick Setup Summary

  1. search in marketplace for reqForge
  2. install extension
  3. create folder in local machine
  4. open folder
  5. click on wand icon
  6. in the side bar ui click on initialize

Technical Highlights

ReqForge: NLP Requirements Compiler – Technical Overview

Core Concept

ReqForge is an NLP Requirements Compiler that treats natural language requirements as the source of truth. It "compiles" these requirements into structured, version-controlled artifacts with bidirectional traceability to the code. Think of it like a traditional compiler: requirements are the source code and the application code is the binary output. This approach ensures that the original requirements remain the single source of truth while the implementation stays in sync with those requirements.

Hexagonal Architecture (Ports & Adapters)

ReqForge is built on a hexagonal architecture, using Ports and Adapters to decouple core logic from interface and infrastructure concerns. Key aspects include:

  • Port Protocols: Three primary port protocols – PresenterPort, InteractionPort, and ProgressPort. These define interfaces for different concerns (e.g., presenting output, handling user interactions, reporting progress).
  • Adapter Implementations: Each port has four concrete adapter implementations:
    • CLI/Rich: Command-line interface using Typer (for CLI framework) and Rich (for rich text output).
    • VS Code/JSON-RPC: Visual Studio Code extension communicating via JSON-RPC 2.0 over standard I/O.
    • MCP/stdio: Model Context Protocol over standard I/O, used for AI assistant integration (e.g., with Claude, Copilot, Cursor).
    • Test/Null: A testing or no-op adapter used for unit tests or to disable certain functionality.
  • Use Cases: 17 use case classes encapsulate the application’s core behaviors. These use cases are completely interface-agnostic – they depend only on the ports – and each returns a typed Result DTO (Data Transfer Object). This means no matter which interface is used (CLI, VS Code, etc.), the underlying use cases produce consistent, structured results.
  • Domain Services: 11 domain services provide the business logic and rules of the system. They are defined against Python Protocol interfaces (PEP 544), not concrete classes. This makes them easy to swap out or mock (for different environments or testing) and ensures the core logic is fully unit-testable.

This architecture allows ReqForge to be highly modular and testable. Adapters can be added or changed without modifying core logic, and services can be substituted or updated with minimal impact on the overall system.

Key Differentiators vs. Existing Tools

vs. ReqForge Advantage
GPT-Engineer, Cursor, Copilot Persistent, structured requirements that survive across sessions – not one-shot prompts
Jira, Confluence Bidirectional traceability to code with automated drift detection
Aider, SWE-Agent Pluggable harness – can delegate to Aider/Copilot while maintaining the requirements layer

Challenges & Learnings

  • VsCode extension with UI
  • Bi-directional sync b/w requirement and code
  • Managing requirement drift, especially due to bug fixes

Contact Information

piyushj@microsoft.com

Country/Region

United States

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions