io.github.aryanduntley/aifp
Database-driven FP enforcement and project management for AI-maintained codebases
★ 0MITdatabases
Install
Config snippet generator goes here (5 client tabs)
README
# AIFP: AI Functional Procedural Programming
[](https://pypi.org/project/aifp/)
> **A language-agnostic programming paradigm designed for AI-generated and AI-maintained codebases**
---
## Table of Contents
- [What is AIFP?](#what-is-aifp)
- [Core Principles](#core-principles)
- [Architecture Overview](#architecture-overview)
- [Database Architecture](#database-architecture)
- [How It Works](#how-it-works)
- [Getting Started](#getting-started)
- [Directives System](#directives-system)
- [Project Lifecycle](#project-lifecycle)
- [Example Workflow](#example-workflow)
- [Documentation](#documentation)
- [Development](#development)
- [Design Philosophy](#design-philosophy)
- [Features](#features)
- [Usage Examples](#usage-examples)
- [Privacy Policy](#privacy-policy)
- [Support](#support)
- [License](#license)
---
## What is AIFP?
**AIFP (AI Functional Procedural)** is a programming paradigm that combines:
- **Pure functional programming** principles (referential transparency, immutability, composability)
- **Procedural execution** patterns (explicit sequencing, no hidden state)
- **Database-driven project management** (persistent state, instant context retrieval)
- **Directive-based AI guidance** (deterministic workflows, automated compliance)
### Two Ways to Use AIFP
**Use Case 1: Regular Software Development**
- Build applications (web apps, libraries, CLI tools, etc.)
- AIFP enforces FP compliance and manages your project
- You write code, AI assists with FP standards and project tracking
- Example: Building a web server, calculator library, data processor
**Use Case 2: Custom Directive Automation**
- Define automation rules (home automation, cloud management, workflows)
- **AIFP generates and manages the automation codebase for you**
- You write directive definitions (YAML/JSON/TXT), AI generates the implementation
- The project's code IS the automation code generated from your directives
- Example: Smart home control system, AWS infrastructure manager, workflow automator
**Key Principle**: One AIFP instance per project directory. You would NOT mix a web app with home automation directives. Run separate instances for separate purposes.
### Why AIFP?
Traditional programming paradigms were designed for humans. AIFP is optimized for **AI-human collaboration**:
| Challenge | Traditional Approach | AIFP Solution |
|-----------|---------------------|---------------|
| **Context Loss** | AI forgets between sessions | Database-driven persistent state |
| **OOP Complexity** | Classes, inheritance, polymorphism | Pure functions, explicit data structures |
| **Infinite Development** | Projects never "complete" | Finite completion paths with milestones |
| **Code Reasoning** | Parse source code repeatedly | Pre-indexed functions, dependencies, interactions |
| **Inconsistent Standards** | Style guides, linters, reviews | Immutable directives enforcing compliance |
---
## Core Principles
### 1. Functional-Procedural Hybrid
```python
# ✅ AIFP-Compliant
def calculate_total(items: List[Item]) -> float:
"""Pure function: deterministic, no side effects"""
return reduce(lambda acc, item: acc + item.price, items, 0.0)
# ❌ Not AIFP-Compliant
class Calculator:
def __init__(self):
self.total = 0 # Hidden state
def add_item(self, item):
self.total += item.price # Mutation
```
### 2. Database-Indexed Logic
Every function, file, and dependency is tracked in SQLite. AI accesses this data through helper tools — not raw SQL:
```
AI calls: get_functions_by_file(file_id)
→ Returns: all functions in that file with name, purpose, parameters, returns
```
No source code reparsing required. Instant context retrieval across sessions.
### 3. AI-Readable Code
- **Flat structure**: No deep inheritance hierarchies
- **Explicit dependencies**: All parameters passed explicitly
- **Pure functions**: Same inputs → same outputs
- **Metadata annotations**: Machine-readable function headers
### 4. Finite Completion Paths
```
Project: MatrixCalculator
├── Completion Path (3 stages)
│ ├── 1. Setup (completed)
│ ├── 2. Core Development (in progress)
│ │ ├── Milestone: Matrix Operations
│ │ │ ├── Task: Implement multiply
│ │ │ ├── Task: Implement transpose
│ │ │ └── Task: Add validation
│ │ └── Milestone: Vector Operations
│ └── 3. Finalization (pending)
```
### 5. Language-Agnostic
AIFP works with Python, JavaScript, TypeScript, Rust, Go, and more. FP directives adapt to language-specific syntax while maintaining universal standards.
---
## Architecture Overview
```
┌─────────────────────────────────────────────────────┐
│ AI Assistant (Claude, GPT-4, etc.) │
│ - Receives natural language commands │
│ - Follows directives (FP baseline + project mgmt) │
│ - Calls MCP tools to read/write databases │
│ - Generates FP-compliant code │
└──────────────