Requirements Document#
Table of Contents#
[TOC]
Introduction & Scope#
Project Overview#
-
Project Description and Purpose: opnDossier is a CLI tool designed to convert OPNsense firewall configuration files (config.xml) into human-readable Markdown documentation. It provides operators with clear visibility into their firewall configurations for documentation, auditing, and troubleshooting purposes.
-
Project Goals and Objectives:
- Enable offline-first configuration analysis and documentation
- Provide operator-focused design for security professionals
- Support airgapped environments with zero external dependencies
- Generate structured, readable documentation from XML configurations
- Maintain security-first approach with no telemetry or external communication
-
Target Audience and Stakeholders:
- Network security operators and administrators
- Security auditors and compliance teams
- DevOps engineers managing OPNsense firewalls
- Documentation teams requiring configuration visibility
-
Project Boundaries and Limitations:
- Architecture supports multiple device types; currently only OPNsense is supported (others planned)
- No real-time configuration monitoring or management
- No integration with live firewall systems
- Offline-only operation with no external API dependencies
Scope Definition#
-
In-scope Features and Functionality:
- XML configuration file parsing and validation
- Markdown conversion with syntax highlighting
- Terminal display with colored output
- File export to markdown format
- Configuration management via YAML files and environment variables
- Cross-platform CLI interface
- Offline operation without external dependencies
-
Out-of-scope Items:
- Real-time firewall configuration management
- Network connectivity or external API calls
- GUI or web interface development
- Configuration backup or restore functionality
- Telemetry or analytics collection
-
Planned/Future:
- Support for additional device types (pfSense, Cisco ASA, etc.) is planned; the
parser.Factoryis extensible but not yet populated for other platforms
- Support for additional device types (pfSense, Cisco ASA, etc.) is planned; the
-
Success Criteria and Acceptance Criteria:
- Successfully parse valid OPNsense config.xml files
- Generate readable markdown documentation
- Operate completely offline without errors
- Maintain >80% test coverage
- Pass all linting and quality checks
- Support cross-platform compilation and distribution
-
Timeline and Milestones:
- Core XML parsing and markdown conversion (Phase 1)
- CLI interface and configuration management (Phase 2)
- Testing, documentation, and release preparation (Phase 3)
- Distribution and package management support (Phase 4)
Context and Background#
-
Business Context and Justification:
- OPNsense firewalls are widely used in enterprise environments
- Configuration documentation is critical for security compliance
- Manual documentation is error-prone and time-consuming
- Offline tools are essential for airgapped security environments
-
Previous Work and Dependencies:
- Built on Go ecosystem and Charm libraries
- Leverages existing OPNsense configuration format
- Follows established CLI development patterns
- Integrates with existing documentation workflows
-
Assumptions and Constraints:
- Assumes valid OPNsense config.xml file format
- Requires Go 1.21+ runtime environment
- Assumes local file system access for input/output
- Constrained to offline operation only
-
Risk Assessment Overview:
- Low risk: Well-established technology stack
- Medium risk: XML parsing complexity and edge cases
- Low risk: Security concerns (offline operation)
- Medium risk: Cross-platform compatibility challenges
Functional Requirements#
Core Features#
-
Primary Functionality Requirements:
- F001: Parse OPNsense XML configuration files using Go's encoding/xml package
- F002: Convert XML configurations to structured Markdown format with hierarchy preservation (comprehensive, summary), using the templates in
internal/templates(selectable via CLI flag) - F003: Display processed configurations with syntax highlighting in terminal using Charm Lipgloss (selectable via CLI flag)
- F004: Export processed configurations to markdown files on disk with user-specified paths, as markdown or JSON or YAML (selectable via CLI flag), without special formatting for the terminal
- F005: Support offline operation without external dependencies or network connectivity
- F006: Generate human-readable documentation from XML configuration data (selectable via CLI flag)
- F007: Accept OPNsense config.xml files as input through command-line arguments
- F008: Validate XML structure and provide meaningful error messages for malformed files
- F009: Support multiple themes (light, dark, custom) for terminal display (selectable via CLI flag)
- F010: Support multiple output formats (markdown, json, yaml) for file export (selectable via CLI flag)
- F011: Support multiple output styles (comprehensive, summary) for markdown generation (selectable via CLI flag)
- F012: Support multiple output styles (comprehensive, summary) for terminal display (selectable via CLI flag)
- F013: Support multiple output styles (comprehensive, summary) for file export (selectable via CLI flag)
- F014: Analyze the XML configuration and provide a report of the configuration, containing common security and performance issues, if any are found
- F015: Export files must be valid and parseable by standard tools and libraries (markdown linters, JSON parsers, YAML parsers)
- F016: Support audit report generation in two modes: blue (defensive analysis with findings and recommendations) and red (attack surface enumeration with optional blackhat commentary). Note: standard mode was removed — the
convertcommand covers neutral documentation. - F017: Generate Markdown reports using Go text/template files from
internal/templates/reports/with user-extensible sections for interfaces, firewall rules, NAT rules, DHCP, certificates, VPN config, static routes, and high availability - F018: Red team mode must highlight WAN-exposed services, weak NAT rules, admin portals, attack surfaces, and provide pivot data (hostnames, static leases, service ports) with optional blackhat commentary
- F019: Blue team mode must include audit findings (insecure SNMP, allow-all rules, expired certs), structured configuration tables, and actionable recommendations with severity ratings
- F020:
Standard mode must produce detailed neutral configuration documentation including system metadata, rule counts, interfaces, certificates, DHCP, routes, and high availabilityRemoved — neutral documentation is handled by theconvertcommand. - F021: Use consistent audit finding structure with Title, Severity, Description, Recommendation, Tags (Red mode adds AttackSurface, ExploitNotes)
- F022: Support plugin-based compliance architecture with standardized interfaces, dynamic registration, lifecycle management, metadata tracking, configuration support, dependency management, and statistics reporting for both internal and external plugins
- F023: Support convert mode that processes OPNsense XML configuration files and exports to JSON, YAML, or Markdown files on disk (with error handling, overwrite protection, and smart file naming)
- F024: Support display mode that converts XML configurations to Markdown and renders in terminal with syntax highlighting using Charm Lipgloss (supporting themes from F009 and output styles from F012)
- F025: Support audit mode that runs the compliance audit engine using plugin architecture (F022) and template-driven reporting (F017) with both modes defined in F016 (
blue,red) and structured findings (F021) - F026: Support programmatic markdown generation system that creates structured markdown output using Go code rather than templates, providing better performance, maintainability, consistency, testability, and separation of concerns while maintaining backward compatibility with existing template functionality
-
User Stories and Use Cases:
- Primary Workflow: User obtains OPNsense config.xml file → runs
opnDossier convert config.xml→ system parses XML, converts to markdown, displays in terminal → user optionally exports to file - Configuration Workflow: User creates YAML config file with preferred settings → sets environment variables for sensitive options → runs commands with config automatically applied → overrides with CLI flags as needed
- Error Recovery Workflow: System detects invalid XML → provides specific error message with line/column information → user corrects input file → re-runs command successfully
- Plugin Compliance Workflow: User selects compliance plugins → system loads and validates plugins → runs compliance checks against configuration → generates comprehensive compliance report with findings and recommendations
- Primary Workflow: User obtains OPNsense config.xml file → runs
-
Feature Priority Matrix:
- High Priority: XML parsing, markdown conversion, CLI interface, offline operation, plugin architecture
- Medium Priority: Configuration management, file export, error handling, compliance plugins
- Low Priority: Advanced formatting options, template customization, external plugin support
-
Performance Requirements:
- Individual tests must complete in <100ms
- CLI startup time should be quick for operator efficiency
- Memory-efficient streaming XML processing for large files
- Concurrent processing using goroutines and channels for I/O operations
User Interface Requirements#
-
User Experience Specifications:
- Intuitive command-line interface using Cobra framework
- Comprehensive help documentation for all commands
- Usage examples and common workflow guidance
- Verbose and quiet output modes
- Progress indicators for long-running operations
- Human-friendly file size and processing time information
-
Accessibility Requirements:
- Support for both light and dark terminal themes
- Consistent output formatting across different terminal environments
- Clear, actionable error messages for all failure scenarios
- Tab completion for command-line options where supported
-
Mobile and Responsive Design Needs: N/A (CLI-only application)
-
Browser Compatibility: N/A (CLI-only application)
Data Requirements#
-
Data Models and Structures:
- OPNsense XML configuration schema representation
- Markdown output format specification
- Configuration hierarchy preservation
- Metadata structures (version, timestamp, generation info)
-
Data Validation Rules:
- XML structure validation against OPNsense schema
- Input file existence and readability checks
- Output directory creation and write permissions
- Configuration file format validation (YAML)
-
Data Persistence Requirements:
- Temporary processing of XML files in memory
- Markdown file output to user-specified locations
- Configuration file persistence for user preferences
- No database or persistent storage required
-
Data Migration Needs: N/A (no existing data to migrate)
Integration Requirements#
-
External System Integrations: None required (offline operation)
-
API Requirements and Specifications: None required (offline operation)
-
Third-party Service Dependencies: None required (offline operation)
-
Authentication and Authorization: None required (local file processing only)
Technical Specifications#
Technology Stack#
Language/Runtime Versions#
- Go: 1.21.6+ (toolchain: go1.21.7, system: go1.25.7)
- Python: 3.11+ (development: 3.13.5 for documentation)
Core Libraries and Frameworks#
- CLI Framework:
github.com/spf13/cobrav1.8.0 - Configuration Management:
spf13/viperfor configuration parsing - CLI Enhancement:
charmbracelet/fangfor enhanced CLI experience with styled help, errors, and automatic features - Terminal Styling:
charmbracelet/lipglossfor colored output - Markdown Rendering:
charmbracelet/glamourfor terminal markdown display - Standard Library:
encoding/xml,encoding/jsonfor data processing - Structured Logging:
charmbracelet/logv1.0.0 for consistent logging
Build Tools and Dependency Management#
- Go Modules:
go.modandgo.sumfor dependency management - Task Runner:
just(Justfile) for development tasks - Release Management: GoReleaser v2 for cross-platform builds
- Pre-commit Hooks:
pre-commitv5.0.0 for code quality automation
Testing Frameworks#
- Unit Testing: Go's built-in
testingpackage - Test Organization: Table-driven tests with
t.Run()subtests - Coverage Analysis:
go test -coverwith >80% coverage target - Benchmarking:
go test -benchfor performance testing - Race Detection:
go test -racefor concurrency testing - Integration Tests: Build tags (
//go:build integration)
Code Quality and Linting#
- Formatter:
gofmtandgofumptfor code formatting - Linter:
golangci-lintwith comprehensive rule set - Static Analysis:
go vetfor code analysis - Import Management:
goimportsfor import organization - Security Scanning:
gosecvia golangci-lint
CI/CD Expectations#
Automated Quality Checks#
- Pre-commit Hooks: Automated on every commit
- File format validation (JSON, YAML, XML)
- Markdown formatting with
mdformat - Line ending normalization
- Large file detection
- Commit Message Validation:
commitlintfor conventional commits - Continuous Integration: GitHub Actions (implied by GoReleaser config)
Build and Release Pipeline#
- Multi-platform Builds: Linux, macOS, Windows (amd64, arm64)
- Package Formats: tar.gz, zip, deb, rpm, apk, archlinux
- Code Signing: macOS notarization support
- SBOM Generation: Software Bill of Materials for security
- Automated Changelogs: Conventional commit-based
Development Workflow Commands#
just install # Install dependencies and tools
just dev # Run development server
just format # Run formatting fixes
just lint # Run linting and code checks
just test # Run test suite
just check # Run pre-commit checks
just ci-check # Run CI-equivalent checks
just build # Build application
Performance Constraints#
CLI Performance Requirements#
- Test Performance: Individual tests <100ms
- Startup Time: CLI should start quickly for operator efficiency
- Memory Efficiency: Streaming XML processing for large files
- Concurrent Processing: Goroutines and channels for I/O operations
Resource Utilization#
- Zero External Dependencies: Offline-first architecture
- Local Processing: All operations work without internet
- Portable Binaries: Static compilation with CGO_ENABLED=0
- Cross-platform Support: Native binaries for major platforms
Security Requirements#
Code Security#
- No Hardcoded Secrets: Environment variables for sensitive data
- Input Validation: Comprehensive validation for XML parsing
- Secure Defaults: Security-first configuration
- Static Security Analysis:
gosecintegration
Operational Security#
- Airgap Compatibility: Full functionality in isolated environments
- No Telemetry: No external data transmission
- Portable Data Exchange: Secure data bundle import/export
- Error Message Safety: No sensitive information exposure
Dependency Security#
- Minimal Dependencies: Reduced attack surface
- Dependency Scanning: Automated vulnerability detection
- Supply Chain Security: Go module checksums and verification
- SBOM Generation: Dependency transparency
Infrastructure Requirements#
Development Environment#
- Go Toolchain: 1.21.6+ with module support
- Python Environment: 3.11+ for documentation (MkDocs)
- Documentation: MkDocs Material for project documentation
- Version Control: Git with conventional commit workflow
Deployment Architecture#
- Distribution: GitHub Releases with multi-platform binaries
- Package Managers: Support for system package managers
- Container Support: Minimal binary suitable for containers
- Configuration Management: Environment variables and config files
Monitoring and Observability#
- Structured Logging:
charmbracelet/logfor consistent logging - Error Handling: Comprehensive error wrapping with context
- Performance Profiling:
go tool pprofintegration capability - Health Checks: CLI self-validation commands
System Architecture#
High-Level Architecture#
-
System Overview and Components:
- Input Layer: XML file parsing and validation
- Processing Layer: Configuration conversion and transformation
- Plugin Layer: Compliance plugin management and execution
- Output Layer: Markdown generation and terminal display
- Configuration Layer: Settings management and user preferences
- CLI Layer: Command interface and user interaction
-
Architecture Patterns and Principles:
- Operator-focused Design: Prioritizes security professional workflows
- Offline-first Architecture: All functionality works without internet
- Framework-first Development: Leverages established Go patterns
- Clean Separation of Concerns: Modular, testable components
- Dependency Injection: Loose coupling between components
-
Component Interaction Diagrams:
- XML Parser → parser.Factory → CommonDevice → Plugin Manager / Compliance Plugins / Markdown Generator → Display Engine
- Configuration Manager → All Components (dependency injection)
- CLI Interface → All Components (command orchestration)
- Plugin Registry → Plugin Manager → Compliance Engine (plugin lifecycle management)
-
Data Flow Architecture:
- Input: OPNsense config.xml → Validation → Parsing → Processing → Output: Markdown/Display
Detailed Design#
-
Module Specifications:
- cmd/: CLI command definitions and entry points
- internal/: Private application logic and business rules
- pkg/: Public packages for potential reuse
- docs/: Documentation and user guides
-
Interface Definitions:
- XML Parser Interface:
ParseXML(data []byte) (*Config, error) - Markdown Generator Interface:
GenerateMarkdown(config *Config) (string, error) - Display Interface:
RenderMarkdown(markdown string) error - Configuration Interface:
LoadConfig() (*Settings, error) - Compliance Plugin Interface:
CompliancePluginwith methods for plugin lifecycle and compliance checking (RunChecks(*common.CommonDevice)) - Plugin Registry Interface:
PluginRegistryfor plugin registration and management - Plugin Manager Interface:
PluginManagerfor high-level plugin operations
- XML Parser Interface:
-
Database Schema Design: N/A (no database required)
-
API Design and Documentation: N/A (CLI-only application)
Scalability and Performance#
-
Load Balancing Strategies: N/A (single-user CLI application)
-
Caching Mechanisms:
- In-memory caching of parsed configurations during processing
- Configuration file caching for user preferences
-
Database Optimization: N/A (no database required)
-
Performance Monitoring:
- Built-in performance profiling with
go tool pprof - Benchmark testing for critical code paths
- Memory usage monitoring for large file processing
- Built-in performance profiling with
Deployment Architecture#
-
Environment Specifications:
- Development: Go 1.21+ with development tools
- Build: GoReleaser environment with cross-compilation
- Runtime: Any environment with Go 1.21+ runtime
-
Containerization Strategy:
- Minimal container images based on scratch or alpine
- Single binary deployment with no runtime dependencies
- Multi-stage builds for optimal image size
-
CI/CD Pipeline Design:
- GitHub Actions for automated testing and building
- GoReleaser for release management and distribution
- Pre-commit hooks for code quality enforcement
-
Configuration Management:
- Environment variables with
OPNDOSSIER_prefix - YAML configuration files for persistent settings
- Command-line flags for runtime overrides
- Precedence Order: CLI flags > Environment variables > Config file > Defaults
- Environment variables with
Development Standards & Coding Conventions#
Code Quality Standards#
-
Coding Style Guidelines:
- Follow Google Go Style Guide
- Use
gofmtandgofumptfor code formatting - camelCase for private functions/variables
- PascalCase for exported functions/types
- Tab indentation (Go standard)
-
Code Review Processes:
- All changes require pull request review
- Automated quality checks must pass
- Manual review for architectural decisions
- Security review for configuration handling
-
Static Analysis Tools:
golangci-lintwith comprehensive rule setgo vetfor code analysisgosecfor security scanninggoimportsfor import organization
-
Documentation Standards:
- Package documentation for all exported packages
- Function documentation for public APIs
- Example usage in documentation
- README with clear installation and usage instructions
Version Control#
-
Branching Strategy:
mainbranch for stable releases- Feature branches for development
- Release branches for version management
-
Commit Message Conventions:
- Conventional Commits format:
<type>(<scope>): <description> - Types: feat, fix, docs, style, refactor, perf, test, build, ci, chore
- Scope required for all commits
- Imperative mood, no period, ≤72 characters
- Conventional Commits format:
-
Pull Request Workflow:
- Automated quality checks on every PR
- Manual review for code changes
- Squash merge for feature branches
- Conventional commit validation
-
Release Management:
- Semantic versioning with GoReleaser
- Automated changelog generation
- Multi-platform binary distribution
- Package manager integration
Testing Standards#
-
Unit Testing Requirements:
-
80% test coverage target
- Table-driven tests for multiple scenarios
- Mock interfaces for external dependencies
- Benchmark tests for performance-critical code
-
-
Integration Testing Approach:
- Build tags for integration tests (
//go:build integration) - End-to-end workflow testing
- Configuration file testing
- Cross-platform compatibility testing
- Build tags for integration tests (
-
End-to-end Testing Strategy:
- Full CLI workflow testing
- File input/output testing
- Error handling validation
- Performance testing with large files
-
Test Coverage Targets:
- Minimum 80% code coverage
- 100% coverage for critical paths
- Coverage reporting in CI/CD
- Coverage trend monitoring
Quality Assurance#
-
Code Quality Metrics:
- Cyclomatic complexity limits
- Function length guidelines
- Comment density requirements
- Technical debt tracking
-
Automated Quality Checks:
- Pre-commit hooks for all commits
- CI/CD pipeline validation
- Automated security scanning
- Performance regression testing
-
Manual Testing Procedures:
- Cross-platform testing
- Large file processing validation
- Error scenario testing
- User experience validation
-
Bug Tracking and Resolution:
- GitHub Issues for bug tracking
- Bug template with reproduction steps
- Root cause analysis for critical bugs
- Regression testing for fixes
Implementation Guidelines & Best Practices#
Development Workflow#
-
Agile Methodology Adoption:
- Iterative development with regular releases
- User story-driven development
- Continuous integration and deployment
- Regular retrospectives and process improvement
-
Sprint Planning and Execution:
- Feature-based sprint planning
- Definition of done criteria
- Daily progress tracking
- Sprint review and demo
-
Daily Standup Procedures:
- Progress updates and blockers
- Cross-team coordination
- Issue escalation procedures
- Knowledge sharing
-
Retrospective Processes:
- Regular sprint retrospectives
- Process improvement identification
- Action item tracking
- Team velocity monitoring
Project Management#
-
Task Tracking and Management:
- GitHub Issues for task tracking
- Milestone-based project planning
- Priority-based task ordering
- Progress tracking and reporting
-
Communication Protocols:
- GitHub Discussions for technical discussions
- Issue templates for standardized communication
- Release notes for user communication
- Documentation updates for changes
-
Documentation Requirements:
- README with clear project overview
- Installation and usage instructions
- API documentation for public packages
- Contributing guidelines for developers
-
Knowledge Sharing Practices:
- Code review knowledge transfer
- Architecture decision records
- Best practices documentation
- Team training and onboarding
Deployment Practices#
-
Continuous Integration Setup:
- GitHub Actions for automated testing
- Multi-platform build validation
- Quality gate enforcement
- Automated release preparation
-
Deployment Automation:
- GoReleaser for automated releases
- Multi-platform binary distribution
- Package manager integration
- Release note generation
-
Environment Management:
- Development environment setup
- Build environment configuration
- Runtime environment requirements
- Configuration management
-
Rollback Procedures:
- Version tagging for releases
- Binary artifact preservation
- Quick rollback mechanisms
- User notification procedures
Monitoring and Maintenance#
-
Application Monitoring:
- Performance profiling capabilities
- Error tracking and logging
- Usage analytics (local only)
- Health check endpoints
-
Error Tracking and Alerting:
- Structured error logging
- Error categorization and prioritization
- User feedback collection
- Issue resolution tracking
-
Performance Optimization:
- Regular performance benchmarking
- Memory usage optimization
- CPU utilization monitoring
- Bottleneck identification and resolution
-
Regular Maintenance Schedules:
- Dependency updates and security patches
- Code quality improvements
- Documentation updates
- Performance optimizations
Compliance with Cursor Rules & AI Agent Protocols#
Cursor Rules Integration#
-
.cursor/rules/*.mdcFile Compliance:- Core concepts and development patterns
- Go organization and structure guidelines
- Testing standards and best practices
- Documentation requirements and standards
-
AGENTS.mdandGEMINI.mdAdherence:- AI agent configuration and protocols
- Development workflow automation
- Code quality enforcement
- Security and safety guidelines
-
AI Coding Assistant Configuration:
- Context-aware development assistance
- Automated code review and suggestions
- Best practice enforcement
- Documentation generation
-
Framework-first Principle Implementation:
- Established Go patterns and conventions
- Proven library and tool selection
- Community best practices adoption
- Maintainable and scalable architecture
AI Agent Best Practices#
-
Structured Data Models:
- Well-defined configuration structures
- Type-safe data handling
- Validation and error handling
- Clear data flow patterns
-
Non-destructive Update Patterns:
- Immutable data structures where possible
- Safe configuration updates
- Backup and recovery mechanisms
- Version compatibility management
-
Operator-centric Design Principles:
- Security professional workflow optimization
- Clear and actionable output
- Efficient command-line interface
- Offline operation capability
-
Offline-first/Airgap Support:
- Zero external dependencies
- Local processing capabilities
- Secure data handling
- Isolated environment operation
Development Tool Integration#
-
Go Dependency Management:
- Go modules for dependency tracking
- Version pinning for stability
- Security scanning integration
- Dependency update automation
-
justTask Runner Configuration:- Standardized development commands
- Build and test automation
- Quality check integration
- Release preparation workflows
-
golangci-lintFormatting and Linting:- Automated code formatting
- Style consistency enforcement
- Quality gate integration
- Pre-commit hook configuration
-
Conventional Commit Standards:
- Automated commit message validation
- Changelog generation
- Version management integration
- Release automation support
Technology Stack Compliance#
-
Go CLI Implementation:
- Cobra framework integration
- Command structure and organization
- Help system and documentation
- Error handling and user feedback
-
Testing Framework Integration (Go test):
- Unit test organization
- Integration test setup
- Benchmark testing
- Coverage analysis and reporting
Glossary & References#
Technical Terminology#
-
Project-specific Terms and Definitions:
- opnDossier: CLI tool for OPNsense configuration documentation
- OPNsense: Open-source firewall and routing platform
- config.xml: OPNsense configuration file format
- Airgap: Isolated network environment without internet connectivity
- Operator-focused: Design philosophy prioritizing security professional workflows
-
Industry Standard Terminology:
- CLI: Command Line Interface
- XML: Extensible Markup Language
- Markdown: Lightweight markup language
- YAML: YAML Ain't Markup Language
- SBOM: Software Bill of Materials
-
Acronym Definitions:
- CI/CD: Continuous Integration/Continuous Deployment
- API: Application Programming Interface
- GUI: Graphical User Interface
- DevOps: Development and Operations
- QA: Quality Assurance
-
Technology Stack Glossary:
- Go: Programming language and runtime
- Cobra: CLI framework for Go
- Charm: Terminal UI library collection
- GoReleaser: Release automation tool
- MkDocs: Documentation site generator
External References#
-
Framework Documentation Links:
-
Industry Standards and Specifications:
-
Third-party Service Documentation:
-
Regulatory Compliance References:
- Software Bill of Materials (SBOM) standards
- Open source license compliance
- Security best practices
- Accessibility guidelines
Internal References#
-
Related Project Documentation:
README.md: Project overview and quick startAGENTS.md: Development standards and AI agent protocolsdocs/development/architecture.md: System architecture documentationdocs/development/standards.md: Coding standards and practices
-
Architecture Decision Records:
- Technology stack selection rationale
- Framework choice justifications
- Security design decisions
- Performance optimization strategies
-
Design Documents:
- System architecture diagrams
- Data flow specifications
- Interface definitions
- Component interaction models
-
Meeting Notes and Decisions:
- Project planning discussions
- Technical decision records
- Stakeholder feedback
- Implementation priorities
Standards and Guidelines#
-
Coding Standards References:
- Google Go Style Guide
- Effective Go documentation
- Go Code Review Comments
- Project-specific conventions
-
Security Compliance Frameworks:
- OWASP security guidelines
- Secure coding practices
- Input validation standards
- Error handling security
-
Accessibility Guidelines:
- Terminal accessibility considerations
- Color contrast requirements
- Keyboard navigation support
- Screen reader compatibility
-
Performance Benchmarking Standards:
- Go benchmarking best practices
- Performance testing methodologies
- Memory profiling techniques
- Optimization strategies
Document Metadata#
| Field | Value |
|---|---|
| Document Version | 2.2 |
| Created Date | 2025-07-23 |
| Last Modified | 2026-02-20 |
| Author(s) | unclesp1d3r unclesp1d3r@evilbitlabs.io |
| Reviewers | unclesp1d3r unclesp1d3r@evilbitlabs.io |
| Approval Status | Approved |
| Change Summary | Updated scope to reflect multi-device architecture; removed single-platform constraint from scope |
This requirements document serves as the foundation for project development and should be updated regularly to reflect changes in scope, requirements, or technical decisions.