# LuCLI Modules Repository

This repository serves as the central registry for LuCLI modules. It contains metadata about available modules that can be discovered and installed via `lucli modules search` and `lucli modules install` commands.

## Structure

- `modules.json` - Main registry file containing module metadata
- Future: Web interface for browsing modules

## Module Schema

Each module in the registry follows this schema:

```json
{
  "name": "module-name",
  "version": "1.0.0",
  "description": "Brief description of what the module does",
  "author": "Author name or organization",
  "tags": ["tag1", "tag2", "tag3"],
  "repository": {
    "type": "git",
    "url": "https://github.com/user/repo.git"
  },
  "created_at": "2025-01-01T00:00:00Z",
  "updated_at": "2025-01-01T00:00:00Z"
}
```

## Adding New Modules

To add a new module to the registry:

1. Create an issue using the "Add Module" template
2. Fill out the module information
3. Wait for review and approval
4. Once approved, the module will be added to `modules.json`

## Module Requirements

Modules must:
- Have a valid Git repository
- Include proper documentation
- Have a clear entry point specified in `main`

## Usage with LuCLI

Once this registry is integrated with LuCLI:

```bash
# Search for modules
lucli modules search "file utilities"

# Install a module
lucli modules install file-utils

# List installed modules
lucli modules list
```

## Validation

To validate the registry format:

```bash
# Check JSON syntax
jq . modules.json > /dev/null && echo "✅ Valid JSON" || echo "❌ Invalid JSON"

# Validate against schema (if jq supports it)
jq -s '.[0] as $schema | .[1] | . as $data | $schema' schema.json modules.json
```

## Future Enhancements

- Web interface for module browsing
- Module validation via LuCLI commands
- Download statistics
- Module ratings and reviews
- Automated publishing from GitHub releases
