Skip to content

Project context freshness checker for AI projects. Ensures docs stay current with code changes.

License

Notifications You must be signed in to change notification settings

driule/ai-contextor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

21 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ai-contextor

Keep your AI documentation fresh and in sync with code changes.

npm version npm downloads License: MIT GitHub stars

πŸ“¦ npm package: ai-contextor
⭐ Star us on GitHub: driule/ai-contextor
πŸ’ Support this project: GitHub Sponsors

Check documentation freshness for AI assistant projects. Automatically detects when documentation needs updates after code changes. Non-intrusive, git-aware, and highly configurable.


πŸš€ Quick Start

Step 1: Installation

Install as a development dependency:

npm install --save-dev ai-contextor

Or use it directly with npx (no installation needed):

npx ai-contextor

Step 2: Initialize Documentation

Generate initial documentation structure for your project:

npx contextor init

This command will:

  • πŸ” Analyze your project structure
  • πŸ“Š Detect project type (frontend, backend, fullstack, library, etc.)
  • πŸ› οΈ Identify frameworks and technologies
  • πŸ“„ Create .ai/INIT.md with project context for AI assistants

Example output:

πŸ” Analyzing project structure...

βœ… Documentation initialized!

πŸ“„ Created: .ai/INIT.md

πŸ“Š Project Type: frontend
πŸ› οΈ  Frameworks: React, Next.js
πŸ’» Languages: TypeScript, JavaScript, CSS

πŸ’‘ Review and customize .ai/INIT.md as needed.

Step 3: Configure (Optional)

Create .contextor.config.js in your project root to customize behavior:

module.exports = {
  // Documentation directory
  docsDir: ".ai",
  
  // Source directories to monitor
  sourceDirs: ["src"],
  
  // Mapping: source files β†’ documentation files
  mappings: {
    "src/app.ts": [".ai/architecture/system-overview.md"],
    "src/services/**/*.ts": [".ai/architecture/components.md"],
  },
  
  // Cache file location (default: .ai/docs-check-cache.json)
  cacheFile: ".ai/docs-check-cache.json",
  
  // Check settings
  check: {
    lastUpdated: true,  // Check "Last Updated" dates
    version: true,       // Check version numbers
    links: true,         // Check broken links
    structure: true,     // Check required sections
  },
};

Step 4: Check Documentation

Run the checker to verify documentation freshness:

# Basic check
npx contextor

# Force check (ignore cache)
npx contextor --force

# Quiet mode (minimal output)
npx contextor --quiet

Step 5: Development Task Workflow (Optional)

Use the task system for managing development documentation:

# 1. Create a new task
npx contextor task:new "Add user authentication"

# 2. Develop and document in .ai/dev/task-0/ folder
#    - Edit requirements.md
#    - Add notes to notes.md
#    - Document implementation in implementation.md

# 3. Generate documentation drafts
npx contextor 0

# 4. AI assistant reviews and improves drafts
#    - Review .ai/dev/task-0/doc-integration-*.md files
#    - Follow instructions in DOC-INTEGRATION.md

# 5. Integrate improved documentation
npx contextor 0 --integrate

# 6. Commit documentation updates
git add .ai/
git commit -m "Update documentation for user authentication"

πŸ“– Features

  • βœ… Smart Project Analysis - Automatically detects project type and tech stack
  • βœ… Documentation Initialization - Generates .ai/INIT.md with project context
  • βœ… Development Task System - Manage temporary task documentation with integration workflow
  • βœ… Freshness Checking - Detects outdated documentation
  • βœ… Git Integration - Only checks when code changes
  • βœ… Link Validation - Checks for broken internal links
  • βœ… Structure Validation - Ensures required sections exist
  • βœ… Smart Caching - Avoids redundant checks
  • βœ… Safe Defaults - Won't overwrite existing documentation unless forced
  • βœ… Configurable - Works with any project structure

πŸ“ Usage Guide

Initializing Documentation

The init command analyzes your project and creates a comprehensive INIT.md file:

npx contextor init

What it does:

  • Scans project structure (directories, files, dependencies)
  • Detects project type (frontend/backend/fullstack/library/monorepo)
  • Identifies frameworks (React, Vue, Express, NestJS, etc.)
  • Detects build tools (Webpack, Vite, etc.)
  • Identifies test frameworks (Jest, Vitest, Cypress, etc.)
  • Generates .ai/INIT.md with:
    • Project overview and type
    • Technology stack
    • Project structure explanation
    • Development workflow
    • Documentation guidelines
    • AI assistant instructions

Checking Documentation Freshness

Run the checker to ensure documentation stays up-to-date:

# Standard check
npx contextor

# Force check (bypass cache)
npx contextor --force
npx contextor -f

# Quiet mode
npx contextor --quiet
npx contextor -q

What it checks:

  • Whether source files were modified after documentation
  • Missing "Last Updated" dates
  • Broken internal links
  • Required documentation sections
  • Documentation structure compliance

Development Task Management

Manage temporary development documentation with the task system:

1. Create a new task:

npx contextor task:new "Add user authentication"

This creates .ai/dev/task-0/ with:

  • README.md - Task overview and status
  • requirements.md - Detailed requirements template
  • notes.md - Development notes template
  • implementation.md - Implementation details template

2. Generate documentation drafts:

# After committing code changes
npx contextor 0

This generates:

  • doc-integration-*.md - Draft documentation files
  • DOC-INTEGRATION.md - Instructions for AI assistant

3. Integrate improved drafts:

# After AI assistant improves drafts
npx contextor 0 --integrate

This integrates the improved drafts into main documentation (.ai/ directory).

Task workflow:

  1. Create task β†’ Develop β†’ Document in task folder
  2. Commit code β†’ Generate drafts
  3. AI assistant improves drafts
  4. Integrate β†’ Commit documentation

Configuration

Copy .contextor.config.js.example to .contextor.config.js and customize:

cp .contextor.config.js.example .contextor.config.js

Key configuration options:

  • docsDir - Documentation directory (default: .ai)
  • sourceDirs - Directories to monitor for changes
  • mappings - Map source files to documentation files
  • cacheFile - Cache file location
  • check.* - Enable/disable specific checks

🎯 Common Workflows

New Project Setup

# 1. Install
npm install --save-dev ai-contextor

# 2. Initialize documentation
npx contextor init

# 3. Review and customize .ai/INIT.md

# 4. Add to package.json scripts
# "scripts": {
#   "docs:check": "contextor"
# }

# 5. Run checks
npm run docs:check

Existing Project

# 1. Initialize documentation
npx contextor init

# 2. Configure mappings in .contextor.config.js
# 3. Create documentation files in .ai/ directory
# 4. Run checks regularly
npx contextor

CI/CD Integration

Add to your CI pipeline:

# GitHub Actions example
- name: Check documentation freshness
  run: npx contextor

πŸ“ Project Structure

After initialization, your project will have:

your-project/
β”œβ”€β”€ .ai/
β”‚   β”œβ”€β”€ INIT.md                      # Generated project context
β”‚   β”œβ”€β”€ README.md                    # Documentation framework overview
β”‚   β”œβ”€β”€ architecture/                # Architecture documentation
β”‚   β”œβ”€β”€ api/                         # API documentation
β”‚   β”œβ”€β”€ examples/                    # Usage examples
β”‚   β”œβ”€β”€ dev/                         # Development tasks (gitignored)
β”‚   β”‚   β”œβ”€β”€ README.md                # Task system documentation
β”‚   β”‚   └── task-N/                  # Individual task directories
β”‚   └── docs-check-cache.json        # Cache file (gitignored)
β”œβ”€β”€ .contextor.config.js             # Configuration (optional)
└── ...

Note: The .ai/dev/ directory is gitignored and contains temporary task documentation.


πŸ”§ CLI Commands

Core Commands

Command Description
npx contextor Check documentation freshness (default)
npx contextor init Initialize documentation structure
npx contextor init --force Initialize and overwrite existing INIT.md
npx contextor task:new "description" Create a new development task directory
npx contextor <task-list> Generate documentation drafts for tasks
npx contextor <task-list> --integrate Integrate improved drafts into main docs
npx contextor --help Show help message
npx contextor --version Show version number

Options

Option Description
--force, -f Force mode (overwrite INIT.md or ignore cache)
--quiet, -q Quiet mode (minimal output)

Examples

# Initialize documentation
npx contextor init

# Initialize and overwrite existing INIT.md
npx contextor init --force

# Create a new task
npx contextor task:new "Add user authentication"

# Generate drafts for task-0
npx contextor 0
# or
npx contextor task-0

# Generate drafts for multiple tasks
npx contextor 0,1,2
# or
npx contextor task-0,task-1,task-2

# Integrate improved drafts
npx contextor 0 --integrate

# Check documentation freshness
npx contextor

# Force check (ignore cache)
npx contextor --force

# Quiet mode
npx contextor --quiet

πŸ“š Documentation Structure

Documentation files in .ai/ directory should follow this structure:

# Document Title

**Last Updated**: YYYY-MM-DD
**Version**: 1.0.0

## Overview
Brief description...

## Details
Main content...

## πŸ”— Related Documentation
- [Link to related doc](./other-doc.md)

🀝 Contributing

Contributions welcome! Please read our Contributing Guidelines first.

Ways to contribute:

  • πŸ› Report bugs
  • πŸ’‘ Suggest new features
  • πŸ“ Improve documentation
  • πŸ”§ Submit pull requests
  • ⭐ Star the repository

πŸ’ Support & Sponsorship

This project is open source and free to use. If you find it helpful, please consider:

  • ⭐ Starring the repository on GitHub
  • πŸ› Reporting bugs and issues
  • πŸ’¬ Sharing with your team and community
  • πŸ’ Sponsoring the project to support continued development

GitHub Sponsors

Support this project through GitHub Sponsors. Your sponsorship helps:

  • πŸš€ Maintain and improve the project
  • πŸ› Fix bugs faster
  • ✨ Add new features
  • πŸ“š Create better documentation

Sponsorship Tiers:

  • πŸ€– Assistant ($5/month) - Thank you! Your name in README supporters list
  • πŸš€ Navigator ($15/month) - Priority support + your name in README
  • ⚑ Architect ($50/month) - All above + feature requests priority
  • 🌟 Context Master ($200/month) - All above + custom features consultation

Note: GitHub Sponsors is free - GitHub doesn't take any fees for personal accounts!

Other Ways to Support

  • πŸ’Ό Hire me for consulting or custom development
  • πŸ“§ Contact: GitHub Profile

πŸ“„ License

MIT Β© Andrius


πŸ“¦ Version

Current version: 0.5.4

Status: 🚧 Beta - Ready for use, but still in active development

What's New in v0.5.0

  • ✨ Safe init behavior - INIT.md is now skipped if exists (prevents overwriting custom docs)
  • ✨ --force flag - Allows overwriting INIT.md when needed
  • πŸ”§ Refactored generator - Improved code maintainability and extensibility
  • πŸ“š Task system - Complete development task workflow with draft generation and integration

Roadmap

  • Unit tests and test coverage
  • CI/CD pipeline
  • TypeScript definitions
  • More project type templates
  • Enhanced error messages

About

Project context freshness checker for AI projects. Ensures docs stay current with code changes.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project