Skip to main content

MAID LSP

Language Server Protocol implementation for MAID (Manifest-driven AI Development) methodology validation.

Overview

MAID LSP provides real-time validation of MAID manifests in code editors and IDEs, including:

  • VS Code (via extension)
  • JetBrains IDEs (via plugin)
  • Claude Code (native LSP support)
  • Any LSP-compatible editor

Features

  • Real-time Diagnostics: Instant validation feedback as you edit manifests
  • Code Actions: Quick fixes for common validation errors (add missing fields, create referenced files)
  • Hover Information: Detailed artifact information on hover (functions, classes, attributes)
  • Push Diagnostics: Server pushes validation results on document changes with 100ms debouncing

Installation

Prerequisites

  • Python 3.10+
  • maid-runner >= 0.8.0
  • uv (package manager)

From Source

# Clone the repository
git clone https://github.com/mamertofabian/maid-lsp.git
cd maid-lsp

# Install dependencies
uv sync --all-extras

# Run the server
uv run maid-lsp --stdio

Usage

Running the Server

# Start in stdio mode (default)
maid-lsp --stdio

# Or via make
make run

# Check version
maid-lsp --version

Editor Integration

The server communicates via stdio and validates files matching *.manifest.json.

VS Code / Cursor: Install the vscode-maid extension from the marketplace.

Architecture

See the docs/ directory for detailed architecture documentation:

Three-Layer Design

┌─────────────────────────────────────────────────────────┐
│                    Protocol Layer                        │
│                   (maid_lsp/server.py)                  │
│                    pygls + LSP handlers                  │
└─────────────────────────────────────────────────────────┘
                           │
┌─────────────────────────────────────────────────────────┐
│                  Capabilities Layer                      │
│              (maid_lsp/capabilities/)                   │
│         diagnostics.py │ code_actions.py │ hover.py     │
└─────────────────────────────────────────────────────────┘
                           │
┌─────────────────────────────────────────────────────────┐
│                  Validation Layer                        │
│               (maid_lsp/validation/)                    │
│           runner.py │ parser.py │ models.py             │
└─────────────────────────────────────────────────────────┘

Key design decision: The server wraps maid-runner CLI via subprocess rather than importing modules directly. This keeps validation logic separate and uses CLI output as a stable API contract.

Project Structure

maid-lsp/
├── maid_lsp/
│   ├── __init__.py           # Package init with version
│   ├── __main__.py           # CLI entry point
│   ├── server.py             # Main LSP server
│   ├── capabilities/         # LSP capability handlers
│   │   ├── diagnostics.py    # Diagnostic publishing
│   │   ├── code_actions.py   # Quick fix actions
│   │   └── hover.py          # Hover information
│   ├── validation/           # maid-runner integration
│   │   ├── models.py         # Data models
│   │   ├── runner.py         # CLI wrapper
│   │   └── parser.py         # Result to diagnostic conversion
│   └── utils/
│       └── debounce.py       # Async debouncer
├── tests/                    # Behavioral tests
├── docs/                     # Architecture documentation
└── manifests/                # MAID manifests (dogfooding)

Diagnostic Codes

Code Severity Description
MAID-001 Error Schema validation errors
MAID-002 Error Missing required fields
MAID-003 Error File reference errors
MAID-004 Error Artifact validation errors
MAID-005 Error Behavioral validation errors
MAID-006 Error Implementation validation errors
MAID-007 Error Manifest chain errors
MAID-008 Warning Coherence validation warnings

Development

Commands

# Install dependencies
uv sync --all-extras

# Run all quality checks (lint + type-check + test)
make all

# Individual commands
make lint           # Run ruff linter
make lint-fix       # Auto-fix linting issues
make type-check     # Run mypy type checker
make test           # Run pytest
make test-cov       # Run tests with coverage report
make format         # Format code with black
make format-check   # Check formatting without changes

# Run a single test
uv run pytest tests/test_task_002_debounce.py -v

MAID Methodology

This project uses the MAID methodology for all implementation. Each feature was developed following the MAID workflow with manifests in the manifests/ directory.

Task Component Status
task-001 Package initialization Complete
task-002 Async debouncer Complete
task-003 Validation models Complete
task-004 MaidRunner CLI wrapper Complete
task-005 Validation parser Complete
task-006 Diagnostics handler Complete
task-007 Code actions handler Complete
task-008 Hover handler Complete
task-009 Main server Complete
task-010 CLI entry point Complete

Related Projects

License

MIT License - see LICENSE for details.

Acknowledgments

Metadata

Release files for maid-lsp 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for maid-lsp 0.2.0
File Size Uploaded Provenance
maid_lsp-0.2.0.tar.gz 73.9 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for maid-lsp 0.2.0
File Interpreter ABI Platform
maid_lsp-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 103.9 kB

Release files / maid_lsp-0.2.0.tar.gz

Download URL maid_lsp-0.2.0.tar.gz
Size 73.9 kB
Tags Source
SHA-256 checksum
How to use checksums
b213bbaf3e5399dea2e7903728051d707a730b80379bb826b35bfa7c107eeec6
BLAKE2b-256 checksum
How to use checksums
f18f97cc2a4fb7f5a277e62e4e9107cbddbac90e4acbab843e2f95a0e2a33655
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 26, 2026.

Transparency log

Release files / maid_lsp-0.2.0-py3-none-any.whl

Download URL maid_lsp-0.2.0-py3-none-any.whl
Size 30.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3b7c5a16968bdc58c379b2b9e557961888da97cff8777674ea4d7b95d19fb338
BLAKE2b-256 checksum
How to use checksums
285f2e43c4ba20026d8f15b6cbdb2e915b14af693440f5aea6930a86906278bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 26, 2026.

Transparency log

Security for maid-lsp 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for maid_lsp-0.2.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 26, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page