Skip to content

jon-the-dev/amazon-q-rule-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Amazon Q Rule Manager

CI/CD Deploy Frontend

A robust manager for Amazon Q Developer rules with global and workspace support.

PyPI version Python 3.12+ License: MIT

Overview

Amazon Q Rule Manager is a comprehensive tool for managing Amazon Q Developer rules across your development environment. It supports both global rules (available system-wide) and workspace-specific rules, with rich metadata, dependency management, and conflict resolution.

Features

  • Global Rule Management: Install and manage rules system-wide
  • Workspace Support: Manage rules per project/workspace
  • Rich Metadata: Detailed rule information including categories, tags, dependencies
  • Conflict Resolution: Automatic detection and handling of rule conflicts
  • Dependency Management: Ensure rule dependencies are satisfied
  • Search & Discovery: Find rules by category, tags, or search queries
  • Import/Export: Backup and share rule configurations
  • Modern CLI: Beautiful command-line interface with progress indicators
  • Backward Compatibility: Supports legacy command structure

Installation

From PyPI (Recommended)

pip install amazon-q-rule-manager

From Source

git clone https://github.com/zerodaysec/amazonq-rules.git
cd amazonq-rules
pip install -e .

Quick Start

1. Update Rule Catalog

# Update the rule catalog from remote source
amazon-q-rule-manager catalog update

2. Browse Available Rules

# List all available rules
amazon-q-rule-manager catalog list

# Filter by category
amazon-q-rule-manager catalog list --category python

# Search rules
amazon-q-rule-manager catalog list --search "aws lambda"

# Show detailed information about a rule
amazon-q-rule-manager catalog show aws

3. Install Rules Globally

# Install a rule globally (available to all projects)
amazon-q-rule-manager global-rules install python

# List globally installed rules
amazon-q-rule-manager global-rules list

# Uninstall a global rule
amazon-q-rule-manager global-rules uninstall python

4. Manage Workspaces

# Register a workspace
amazon-q-rule-manager workspace register /path/to/project --name my-project

# List registered workspaces
amazon-q-rule-manager workspace list

# Install rules to a workspace
amazon-q-rule-manager workspace install aws my-project
amazon-q-rule-manager workspace install terraform my-project

# List rules in a workspace
amazon-q-rule-manager workspace list-rules my-project

# Export workspace rules
amazon-q-rule-manager workspace export my-project /path/to/backup

# Import rules to workspace
amazon-q-rule-manager workspace import my-project /path/to/rules

Command Reference

Catalog Commands

  • catalog update [--force] - Update rule catalog from remote source
  • catalog list [--category CATEGORY] [--tag TAG] [--search QUERY] - List available rules
  • catalog show RULE_NAME - Show detailed rule information

Global Rules Commands

  • global-rules install RULE_NAME [--force] - Install rule globally
  • global-rules uninstall RULE_NAME - Uninstall global rule
  • global-rules list - List globally installed rules

Workspace Commands

  • workspace register PATH [--name NAME] - Register a workspace
  • workspace unregister NAME - Unregister a workspace
  • workspace list - List registered workspaces
  • workspace install RULE_NAME WORKSPACE_NAME [--force] - Install rule to workspace
  • workspace uninstall RULE_NAME WORKSPACE_NAME - Uninstall rule from workspace
  • workspace list-rules WORKSPACE_NAME - List workspace rules
  • workspace export WORKSPACE_NAME PATH - Export workspace rules
  • workspace import WORKSPACE_NAME PATH [--force] - Import rules to workspace

Rule Categories

The manager supports the following rule categories:

  • AWS: Guidelines for AWS resources, monitoring, and best practices
  • Python: Python development standards and coding practices
  • Terraform: Infrastructure as Code best practices and security
  • JavaScript/TypeScript: Frontend and Node.js development guidelines
  • React: React-specific development patterns and practices
  • Ruby: Ruby development standards and conventions
  • Serverless: Serverless framework and Lambda best practices

Available Rules

AWS Rules

  • aws: Guidelines for AWS resources including alarms, tagging, and default values
  • sls-framework: Serverless Framework development and deployment guidelines

Python Rules

  • python: Standards for Python development including version requirements and coding practices

Terraform Rules

  • terraform: Best practices for Terraform including version requirements and security principles

Frontend Rules

  • react: React development guidelines including component structure and best practices

Ruby Rules

  • ruby: Ruby development standards including style guide and best practices

Web Interface

The Amazon Q Rule Manager includes a modern React frontend for browsing the rules catalog online:

🌐 Live Demo: https://zerodaysec.github.io/amazonq-rules

Features

  • Matrix-inspired Design: Dark theme with neon green accents
  • Advanced Search: Search rules by name, description, tags, or category
  • Category Filtering: Filter by programming language or technology
  • Detailed Rule Pages: Comprehensive information about each rule
  • Responsive Design: Works on desktop, tablet, and mobile
  • Real-time Updates: Automatically synced with the latest catalog

Frontend Development

# Navigate to frontend directory
cd frontend

# Install dependencies
npm install

# Start development server
npm start

The frontend is automatically deployed to GitHub Pages when changes are pushed to the main branch.

Configuration

The tool stores configuration in platform-specific directories:

  • Linux: ~/.config/amazon-q-rule-manager/
  • macOS: ~/Library/Application Support/amazon-q-rule-manager/
  • Windows: %APPDATA%\amazon-q-rule-manager\

Environment Variables

  • AMAZONQ_RULES_URL: Override default remote catalog URL
  • AMAZONQ_RULES_SOURCE: Override default local source directory

Rule Structure

Rules are stored as Markdown files with rich metadata:

{
  "name": "python",
  "title": "Python Development Standards",
  "description": "Standards for Python development including version requirements and coding practices",
  "category": "python",
  "version": "1.1.0",
  "tags": ["python", "development", "standards"],
  "dependencies": [],
  "conflicts": [],
  "min_python_version": "3.12",
  "supported_languages": ["python"],
  "examples": [
    "Use threading for parallel operations",
    "Always use argparse for CLI tools"
  ]
}

Development

Setup Development Environment

git clone https://github.com/zerodaysec/amazonq-rules.git
cd amazonq-rules

# Complete development setup (installs deps, hooks, syncs data)
make setup-dev

# Or manually:
pip install -e ".[dev]"
make install-hooks
make sync-frontend

Development Workflow

The project includes automated syncing between the backend catalog and frontend:

  1. Automatic Sync: When you modify amazon_q_rule_manager/data/rules_catalog.json or any rule files in rules/, the pre-commit hook automatically syncs the data to frontend/public/

  2. Manual Sync: Run make sync-frontend to manually sync data

  3. Frontend Development:

    make dev-frontend  # Starts development server with latest data
  4. GitHub Actions: The frontend deployment only triggers when:

    • Frontend files change (frontend/**)
    • Catalog data changes (amazon_q_rule_manager/data/rules_catalog.json)
    • Rule files change (rules/*.md)

Available Make Commands

make help           # Show all available commands
make sync-frontend  # Sync catalog and rules to frontend
make install-hooks  # Install Git hooks
make dev-frontend   # Start frontend dev server
make build-frontend # Build frontend for production
make test          # Run Python tests
make lint          # Run linting
make format        # Format code
make clean         # Clean build artifacts

Run Tests

pytest
pytest --cov=amazon_q_rule_manager

Code Formatting

make format  # Format all code
# Or manually:
black amazon_q_rule_manager/
flake8 amazon_q_rule_manager/
mypy amazon_q_rule_manager/

Build Package

python -m build

Backward Compatibility

The tool maintains backward compatibility with the original script:

# Legacy commands (deprecated but supported)
amazon-q-rule-manager install python /path/to/project
amazon-q-rule-manager list /path/to/project

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests for new functionality
  5. Run the test suite
  6. Submit a pull request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

Changelog

Version 1.0.0

  • Initial release with global and workspace rule management
  • Rich metadata support with categories, tags, and dependencies
  • Modern CLI interface with progress indicators
  • Conflict resolution and dependency management
  • Import/export functionality
  • Backward compatibility with legacy commands

About

AmazonQ for Developer Rules

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published

Contributors 3

  •  
  •  
  •