-
Notifications
You must be signed in to change notification settings - Fork 84
Description
Track
Creative Apps (GitHub Copilot)
Project Name
Natural Language Compiler
GitHub Username
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
- search in marketplace for reqForge
- install extension
- create folder in local machine
- open folder
- click on wand icon
- 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, andProgressPort. 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
Country/Region
United States