diff --git a/IMPLEMENTATION_SUMMARY.md b/IMPLEMENTATION_SUMMARY.md deleted file mode 100644 index ab666f00..00000000 --- a/IMPLEMENTATION_SUMMARY.md +++ /dev/null @@ -1,291 +0,0 @@ -# Implementation Summary: Performance & Scaling Enhancements - -This document summarizes the implementation of four critical issues related to performance monitoring, budgeting, and automatic scaling for the TeachLink contract system. - -## Issues Implemented - -### ✅ Issue #317: Implement Performance Budgets - -**Status:** COMPLETE - -**Implementation:** -- Created [`performance_budgets.toml`](performance_budgets.toml) - comprehensive configuration file defining: - - **Gas Budgets**: Maximum gas consumption for 30+ critical operations - - **Size Budgets**: WASM binary limits (300KB max, 250KB target), storage entry sizes - - **Time Budgets**: Execution time limits for tests, builds, and deployments - - **Regression Thresholds**: Warning (3-10%) and critical (5-20%) increase limits - - **Enforcement Rules**: Different strictness levels for local, CI/CD, and production - -- Created [`scripts/enforce_budgets.sh`](scripts/enforce_budgets.sh) - automated enforcement script: - - Checks WASM size against budgets - - Validates gas usage from benchmark output - - Generates compliance reports with pass/warning/critical status - - Supports `--warn-only` and `--verbose` modes - -- Updated [`.github/workflows/regression.yml`](.github/workflows/regression.yml): - - Added budget enforcement step to CI/CD pipeline - - Runs on every push and pull request - - Fails build on critical budget violations - -**Key Features:** -- Prevents performance regressions before they reach production -- Provides early warning when approaching budget limits -- Enforces budgets at multiple levels (local, CI, production) -- Configurable thresholds per operation type - ---- - -### ✅ Issue #321: Add Performance Monitoring Dashboards - -**Status:** COMPLETE - -**Implementation:** -- Created [`indexer/observability/grafana/dashboards/teachlink-performance-monitoring.json`](indexer/observability/grafana/dashboards/teachlink-performance-monitoring.json): - - **KPIs Panel**: Real-time stats for gas usage, budget utilization, violations - - **Gas Trends**: Time-series graphs showing gas usage by operation - - **Consensus Metrics**: Active validators, consensus time percentiles (p50, p95) - - **Bridge Flow**: Proposal creation, execution, and expiry rates - - **Budget Compliance**: Table showing budget utilization % by operation - - **Alerts Panel**: Critical and warning violation counts with trends - -- Created [`indexer/observability/prometheus/alerting-rules-performance.yml`](indexer/observability/prometheus/alerting-rules-performance.yml): - - **16 Alerting Rules** covering: - - Gas budget violations (warning at 80%, critical at 95%) - - WASM size limits - - Consensus latency thresholds - - Validator count minimums - - Bridge proposal health - - Performance regression detection (5% increase over 24h) - - Transaction throughput monitoring - - Storage growth rate tracking - - Error rate monitoring - - - **6 Recording Rules** for dashboard efficiency: - - Budget utilization percentages - - Gas usage trends - - Consensus performance percentiles - -**Key Features:** -- Real-time visibility into contract performance -- Proactive alerting before budgets are exceeded -- Trend analysis for capacity planning -- Runbook URLs for each alert to guide troubleshooting - ---- - -### ✅ Issue #322: Implement Automatic Scaling for High-Load Scenarios - -**Status:** COMPLETE - -**Implementation:** -- Created [`contracts/teachlink/src/auto_scaling.rs`](contracts/teachlink/src/auto_scaling.rs) - comprehensive auto-scaling module: - - **Dynamic Batch Sizing:** - - Adjusts proposal batch sizes based on current load level - - Linear interpolation between min (1) and max (10) batch sizes - - Four load levels: Low (<50%), Medium (50-75%), High (75-90%), Critical (>90%) - - **Load Shedding:** - - Gracefully degrades non-critical operations under extreme load - - Priority-based shedding (0-50: critical, 51-100: high, 101-200: normal, 201-255: low) - - Configurable shedding thresholds - - Protects critical bridge and consensus operations - - **Priority Queuing:** - - Queues non-critical operations during high load - - Ensures critical operations are processed immediately - - Dynamic queue depth based on load level - - **Resource Allocation:** - - Adjusts gas budgets per operation based on priority and load - - Critical operations get 120% allocation, low priority gets 60% - - Emergency scaling mode for extreme scenarios - -- Updated [`contracts/teachlink/src/types.rs`](contracts/teachlink/src/types.rs): - - Added `LoadLevel` enum (Low, Medium, High, Critical) - - Added `ScalingPolicy` struct for configuration - - Added `ScalingMetrics` struct for runtime tracking - -- Updated [`contracts/teachlink/src/storage.rs`](contracts/teachlink/src/storage.rs): - - Added storage keys: `SCALING_CONFIG`, `LOAD_METRICS`, `LOAD_LEVEL` - -- Updated [`contracts/teachlink/src/lib.rs`](contracts/teachlink/src/lib.rs): - - Added 9 public API functions for auto-scaling control - - Admin functions: `initialize_auto_scaling`, `trigger_emergency_scaling`, `reset_auto_scaling` - - Query functions: `get_load_level`, `get_optimal_batch_size` - - Decision functions: `should_shed_operation`, `should_queue_operation`, `allocate_gas_budget` - -**Key Features:** -- Automatically adapts to changing load conditions -- Protects system stability under extreme load -- Priority-based resource allocation ensures critical operations succeed -- Emergency mode prevents system collapse - ---- - -### ✅ Issue #324: Add Property-Based Tests for Bridge Consensus Validation - -**Status:** COMPLETE - -**Implementation:** -- Enhanced [`contracts/teachlink/tests/property_based_tests.rs`](contracts/teachlink/tests/property_based_tests.rs) with 9 new comprehensive test functions: - - **Byzantine Fault Tolerance Tests:** - - `test_bridge_consensus_byzantine_fault_tolerance`: Verifies system tolerates up to f=(n-1)/3 faulty validators - - `test_bridge_consensus_quorum_intersection`: Validates any two quorums must intersect (safety property) - - **Threshold Validation:** - - `test_bridge_consensus_threshold_monotonicity`: Ensures adding validators never decreases threshold - - `test_bridge_proposal_vote_threshold_validation`: Validates consensus logic (votes >= threshold) - - **Stake Invariants:** - - `test_bridge_validator_stake_invariants`: Verifies total stake = sum of individual stakes - - Tests minimum stake requirements and overflow prevention - - **Edge Cases:** - - `test_bridge_consensus_edge_cases`: Tests minimum viable validator sets (1-4 validators) - - Validates n = 3f + 1 formula for f = 1..10 - - Confirms Byzantine validators cannot reach threshold alone - - **Operational Properties:** - - `test_bridge_validator_rotation_properties`: Ensures rotation maintains minimum validators - - `test_bridge_proposal_expiry_invariants`: Validates expired proposals cannot execute - - `test_bridge_consensus_reputation_bounds`: Verifies reputation scores stay in [0, 100] - -**Test Coverage:** -- **850+ test cases** generated via proptest -- Covers validator counts from 1 to 10,000 -- Tests stake ranges from 100M to 1B -- Validates all BFT safety and liveness properties -- Edge case coverage for minimum and maximum configurations - -**Key Features:** -- Mathematical proof of BFT correctness through exhaustive property testing -- Catches edge cases that traditional testing would miss -- Ensures consensus algorithm maintains invariants under all conditions -- Provides confidence in Byzantine fault tolerance guarantees - ---- - -## Integration & Testing - -### How to Use - -**1. Run Budget Enforcement:** -```bash -# Check current performance against budgets -./scripts/enforce_budgets.sh --verbose - -# Warning-only mode (doesn't fail on violations) -./scripts/enforce_budgets.sh --warn-only -``` - -**2. View Monitoring Dashboards:** -```bash -# Start observability stack -cd indexer -docker-compose up -d - -# Access Grafana at http://localhost:3000 -# Navigate to "TeachLink Contract Performance Monitoring" dashboard -``` - -**3. Test Auto-Scaling:** -```bash -# Run auto-scaling unit tests -cargo test -p teachlink-contract auto_scaling --features testutils - -# Test property-based consensus tests -cargo test --test property_based_tests --features testutils --release -``` - -**4. CI/CD Integration:** -All checks run automatically on: -- Every push to main branch -- Every pull request -- Scheduled nightly builds - -### Performance Budgets Summary - -| Category | Budget | Enforcement | -|----------|--------|-------------| -| WASM Size | 300 KB max, 250 KB target | CI/CD + Deployment | -| Gas (Initialize) | 500,000 instructions | CI/CD + Monitoring | -| Gas (Bridge Proposal) | 300,000 instructions | CI/CD + Monitoring | -| Gas (Consensus) | 450,000 instructions | CI/CD + Monitoring | -| Test Execution | 180 seconds total | CI/CD | -| Build Time | 120 seconds | CI/CD | - -### Auto-Scaling Configuration - -| Parameter | Default | Description | -|-----------|---------|-------------| -| Max Batch Size | 10 | Operations per batch under low load | -| Min Batch Size | 1 | Operations per batch under critical load | -| Gas Budget per Batch | 5,000,000 | 50% of Stellar's 10M limit | -| Load Shedding Threshold | 75% | Start shedding above this load | -| Priority Queue | Enabled | Queue non-critical ops under load | - ---- - -## Benefits - -### For Developers -- **Early Detection**: Catch performance regressions before merge -- **Clear Budgets**: Know exactly what performance targets to hit -- **Automated Enforcement**: No manual performance review needed -- **Comprehensive Testing**: Property tests catch edge cases automatically - -### For Operations -- **Real-time Visibility**: Dashboards show system health at a glance -- **Proactive Alerting**: Get notified before budgets are exceeded -- **Automatic Scaling**: System adapts to load without manual intervention -- **Graceful Degradation**: Load shedding prevents system collapse - -### For Users -- **Reliable Performance**: Consistent response times under normal load -- **High Availability**: System stays online even under extreme load -- **Data Integrity**: BFT consensus ensures correct bridge operations -- **Trust**: Mathematical guarantees of Byzantine fault tolerance - ---- - -## Future Enhancements - -1. **Machine Learning-Based Scaling**: Use historical data to predict load patterns -2. **Cross-Chain Performance Monitoring**: Extend dashboards to monitor connected chains -3. **Automated Budget Tuning**: Adjust budgets based on usage patterns -4. **Chaos Engineering**: Test auto-scaling under simulated failure conditions -5. **Performance SLA Tracking**: Monitor and report on performance SLA compliance - ---- - -## Files Changed/Created - -### New Files (7) -1. `performance_budgets.toml` - Performance budget configuration -2. `scripts/enforce_budgets.sh` - Budget enforcement script -3. `indexer/observability/grafana/dashboards/teachlink-performance-monitoring.json` - Grafana dashboard -4. `indexer/observability/prometheus/alerting-rules-performance.yml` - Prometheus alerts -5. `contracts/teachlink/src/auto_scaling.rs` - Auto-scaling module -6. `IMPLEMENTATION_SUMMARY.md` - This document - -### Modified Files (5) -1. `.github/workflows/regression.yml` - Added budget enforcement step -2. `contracts/teachlink/src/types.rs` - Added auto-scaling types -3. `contracts/teachlink/src/storage.rs` - Added auto-scaling storage keys -4. `contracts/teachlink/src/lib.rs` - Added auto-scaling public API -5. `contracts/teachlink/tests/property_based_tests.rs` - Added 9 new property tests - ---- - -## Conclusion - -All four issues have been successfully implemented with comprehensive testing, monitoring, and automation. The TeachLink contract system now has: - -✅ **Defined performance budgets** with automated enforcement -✅ **Real-time monitoring dashboards** with proactive alerting -✅ **Automatic scaling** to handle high-load scenarios gracefully -✅ **Property-based tests** proving Byzantine fault tolerance - -These enhancements ensure the system maintains high performance, reliability, and security under all operating conditions. diff --git a/INDEXER_SUMMARY.md b/INDEXER_SUMMARY.md deleted file mode 100644 index 19862338..00000000 --- a/INDEXER_SUMMARY.md +++ /dev/null @@ -1,341 +0,0 @@ -# TeachLink Indexer - Implementation Summary - -## Overview - -A production-ready, real-time blockchain indexer built with NestJS and Horizon API for monitoring TeachLink Soroban smart contracts on Stellar. - -## What Was Built - -### Complete NestJS Application - -**Core Services:** -- **Horizon Service**: Interfaces with Stellar Horizon API for real-time event streaming -- **Event Processor**: Processes and transforms 18+ contract event types into database entities -- **Indexer Service**: Orchestrates indexing lifecycle with automatic restart and health monitoring -- **Database Layer**: TypeORM entities and repositories for 10 data models - -**Technology Stack:** -- NestJS 10.3 (Modern Node.js framework) -- TypeScript 5.3 (Type-safe development) -- TypeORM 0.3 (Database ORM) -- PostgreSQL 16 (Relational database) -- Stellar SDK 11.3 (Blockchain interaction) -- Docker (Containerization) - -## Features Implemented - -### 1. Real-Time Event Monitoring -- Continuous blockchain streaming via Horizon API -- Cursor-based event tracking to prevent missed events -- Automatic reconnection and error recovery -- Support for both testnet and mainnet - -### 2. Comprehensive Event Coverage - -**18+ Event Types Across 5 Domains:** - -**Bridge Operations (4 events):** -- DepositEvent -- ReleaseEvent -- BridgeInitiatedEvent -- BridgeCompletedEvent - -**Rewards (3 events):** -- RewardIssuedEvent -- RewardClaimedEvent -- RewardPoolFundedEvent - -**Escrow (6 events):** -- EscrowCreatedEvent -- EscrowApprovedEvent -- EscrowReleasedEvent -- EscrowRefundedEvent -- EscrowDisputedEvent -- EscrowResolvedEvent - -**Content Tokenization (4 events):** -- ContentMintedEvent -- OwnershipTransferredEvent -- ProvenanceRecordedEvent -- MetadataUpdatedEvent - -**Credit Scoring (3 events):** -- CreditScoreUpdatedEvent -- CourseCompletedEvent -- ContributionRecordedEvent - -### 3. Database Schema - -**10 Entity Types:** -1. BridgeTransaction - Cross-chain bridge operations -2. Reward - Reward issuance and claims -3. Escrow - Multi-signature escrow records -4. ContentToken - Educational content NFTs -5. ProvenanceRecord - Token ownership history -6. CreditScore - User credit scores -7. CourseCompletion - Course completion tracking -8. Contribution - User contribution records -9. RewardPool - Global reward pool state -10. IndexerState - Indexer progress tracking - -All entities include: -- Proper indexes for query optimization -- Timestamps for audit trails -- Relationships between entities -- Status enums for lifecycle tracking - -### 4. Operational Features - -- **Persistent State**: Tracks last processed ledger for resume capability -- **Historical Backfill**: On-demand indexing of past blockchain data -- **Health Monitoring**: Automatic health checks every 5 minutes -- **Error Recovery**: Auto-restart on failure with error tracking -- **Metrics**: Events processed, errors, and performance tracking - -### 5. Development & Testing - -**Comprehensive Test Suite:** -- Unit tests for all services (3 test suites) -- Integration tests for end-to-end flows -- Test coverage reporting -- Mock data and fixtures - -**Test Coverage:** -- Horizon service initialization and methods -- Event processor for all 18+ event types -- Indexer lifecycle management -- Database operations -- Error scenarios - -### 6. Production Infrastructure - -**Docker Support:** -- Multi-stage Dockerfile (builder, production, development) -- Docker Compose with development and production profiles -- Non-root container execution -- Optimized image sizes - -**Configuration Management:** -- Environment-based configuration -- Separate configs for development/production -- Secrets management via environment variables -- Validation and defaults - -## Project Structure - -``` -indexer/ -├── src/ -│ ├── config/ -│ │ └── configuration.ts # App configuration -│ ├── database/ -│ │ ├── entities/ # 10 TypeORM entities -│ │ │ ├── bridge-transaction.entity.ts -│ │ │ ├── reward.entity.ts -│ │ │ ├── escrow.entity.ts -│ │ │ ├── content-token.entity.ts -│ │ │ ├── provenance.entity.ts -│ │ │ ├── credit-score.entity.ts -│ │ │ ├── course-completion.entity.ts -│ │ │ ├── contribution.entity.ts -│ │ │ ├── reward-pool.entity.ts -│ │ │ └── indexer-state.entity.ts -│ │ └── database.module.ts -│ ├── events/ -│ │ ├── event-types/ # Event type definitions -│ │ │ ├── bridge.events.ts -│ │ │ ├── reward.events.ts -│ │ │ ├── escrow.events.ts -│ │ │ ├── tokenization.events.ts -│ │ │ └── scoring.events.ts -│ │ ├── event-processor.service.ts # Main event processor -│ │ └── events.module.ts -│ ├── horizon/ -│ │ ├── horizon.service.ts # Horizon API integration -│ │ └── horizon.module.ts -│ ├── indexer/ -│ │ ├── indexer.service.ts # Main indexer orchestration -│ │ └── indexer.module.ts -│ ├── app.module.ts # Root application module -│ └── main.ts # Application entry point -├── test/ -│ ├── app.e2e-spec.ts # Integration tests -│ └── jest-e2e.json -├── docker-compose.yml # Docker services -├── Dockerfile # Multi-stage build -├── package.json # Dependencies & scripts -├── tsconfig.json # TypeScript config -├── .env.example # Environment template -├── README.md # Full documentation -├── IMPLEMENTATION.md # Technical details -└── QUICKSTART.md # Quick start guide -``` - -## Files Created - -**Total Files:** 39 files - -**Source Code:** -- 27 TypeScript files -- 3 Test files -- 10 Database entity files -- 5 Event type definition files -- 3 Service files -- 3 Module files - -**Configuration:** -- 6 Configuration files (JSON, YAML) -- 4 Docker files -- 3 Environment files - -**Documentation:** -- 3 Markdown documentation files - -## Quick Start - -### Using Docker (Recommended) - -```bash -cd indexer -cp .env.example .env -# Edit .env with your TEACHLINK_CONTRACT_ID -docker-compose up indexer -``` - -### Manual Setup - -```bash -cd indexer -npm install -cp .env.example .env -# Edit .env with your configuration -createdb teachlink_indexer -npm run start:dev -``` - -## Configuration - -Key environment variables: - -```env -# Stellar Network -STELLAR_NETWORK=testnet -HORIZON_URL=https://horizon-testnet.stellar.org -TEACHLINK_CONTRACT_ID=your_contract_id_here - -# Database -DB_HOST=localhost -DB_PORT=5432 -DB_USERNAME=teachlink -DB_PASSWORD=your_password -DB_DATABASE=teachlink_indexer - -# Indexer -INDEXER_START_LEDGER=latest -INDEXER_POLL_INTERVAL=5000 -``` - -## Testing - -```bash -# Run unit tests -npm run test - -# Run integration tests -npm run test:e2e - -# Generate coverage report -npm run test:cov - -# Lint code -npm run lint -``` - -## Architecture Highlights - -### Layered Architecture - -1. **Horizon Layer**: Blockchain API communication -2. **Event Processing Layer**: Event transformation and routing -3. **Database Layer**: Persistent storage with TypeORM -4. **Service Layer**: Business logic and orchestration - -### Design Patterns - -- **Repository Pattern**: Database access abstraction -- **Dependency Injection**: NestJS DI container -- **Event-Driven**: Stream-based processing -- **State Management**: Persistent checkpoint tracking - -### Key Technical Decisions - -1. **TypeORM over raw SQL**: Type safety, migrations, relationships -2. **PostgreSQL over NoSQL**: Relational data, transactions, complex queries -3. **Streaming over polling**: Lower latency, efficient resource usage -4. **Docker multi-stage**: Optimized production images -5. **Comprehensive testing**: Unit + integration tests for reliability - -## Operational Capabilities - -### Monitoring -- Real-time health checks -- Event processing metrics -- Error tracking and logging -- Last processed ledger tracking - -### Reliability -- Automatic restart on failure -- Resume from last checkpoint -- Error recovery mechanisms -- Database transaction safety - -### Scalability -- Configurable batch sizes -- Indexed database columns -- Efficient event streaming -- Ready for horizontal scaling - -## Next Steps - -### Immediate Use -1. Deploy to production environment -2. Configure monitoring/alerting -3. Set up database backups -4. Build applications on indexed data - -### Future Enhancements -1. GraphQL API for querying indexed data -2. WebSocket subscriptions for real-time updates -3. Analytics dashboard -4. Multi-contract support -5. Horizontal scaling with event queues - -## Documentation - -- **[README.md](indexer/README.md)**: Complete setup and usage guide -- **[IMPLEMENTATION.md](indexer/IMPLEMENTATION.md)**: Technical architecture details -- **[QUICKSTART.md](indexer/QUICKSTART.md)**: 5-minute quick start guide -- **Inline Code Comments**: JSDoc comments in source files - -## Summary - -The TeachLink Indexer is a **production-ready** solution that: - -✅ Monitors Stellar blockchain in real-time -✅ Indexes all 18+ TeachLink contract events -✅ Stores data in PostgreSQL for efficient querying -✅ Includes comprehensive testing (unit + integration) -✅ Provides Docker containerization for easy deployment -✅ Implements health monitoring and auto-recovery -✅ Offers complete documentation and examples -✅ Follows best practices for TypeScript/NestJS development - -**Ready for production deployment with:** -- Type-safe codebase -- Comprehensive error handling -- Automated testing -- Docker containerization -- Clear documentation -- Operational monitoring - -The indexer provides the foundation for building analytics, dashboards, and applications that require efficient access to TeachLink contract data without querying the blockchain directly. diff --git a/README.md b/README.md index 71983700..4b96a5fe 100644 --- a/README.md +++ b/README.md @@ -278,12 +278,12 @@ Production monitoring and alerting is built around the long-running **indexer ru See: -- [OBSERVABILITY.md](OBSERVABILITY.md) +- [OBSERVABILITY.md](docs/OBSERVABILITY.md) - [indexer/MONITORING.md](indexer/MONITORING.md) ## Architecture -For full architecture documentation including system diagrams, data flow diagrams, and component interaction maps, see [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md). For a high-level overview of the entire ecosystem, see [SYSTEM_OVERVIEW.md](SYSTEM_OVERVIEW.md). +For full architecture documentation including system diagrams, data flow diagrams, and component interaction maps, see [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md). For a high-level overview of the entire ecosystem, see [SYSTEM_OVERVIEW.md](docs/SYSTEM_OVERVIEW.md). **High-level overview:** @@ -369,7 +369,7 @@ We welcome contributions that improve contract quality, developer experience, an ## Glossary -For definitions of key terms and concepts used across the TeachLink ecosystem, see [GLOSSARY.md](GLOSSARY.md). +For definitions of key terms and concepts used across the TeachLink ecosystem, see [GLOSSARY.md](docs/GLOSSARY.md). ### Code example (contract + test) diff --git a/Atomic.md b/docs/Atomic.md similarity index 100% rename from Atomic.md rename to docs/Atomic.md diff --git a/COMMUNICATION_PROCEDURES.md b/docs/COMMUNICATION_PROCEDURES.md similarity index 100% rename from COMMUNICATION_PROCEDURES.md rename to docs/COMMUNICATION_PROCEDURES.md diff --git a/DEVELOPER_EXPERIENCE.md b/docs/DEVELOPER_EXPERIENCE.md similarity index 100% rename from DEVELOPER_EXPERIENCE.md rename to docs/DEVELOPER_EXPERIENCE.md diff --git a/DISASTER_RECOVERY_PROCEDURES.md b/docs/DISASTER_RECOVERY_PROCEDURES.md similarity index 100% rename from DISASTER_RECOVERY_PROCEDURES.md rename to docs/DISASTER_RECOVERY_PROCEDURES.md diff --git a/FAILURE_MODES.md b/docs/FAILURE_MODES.md similarity index 100% rename from FAILURE_MODES.md rename to docs/FAILURE_MODES.md diff --git a/GLOSSARY.md b/docs/GLOSSARY.md similarity index 100% rename from GLOSSARY.md rename to docs/GLOSSARY.md diff --git a/INCIDENT_RESPONSE.md b/docs/INCIDENT_RESPONSE.md similarity index 100% rename from INCIDENT_RESPONSE.md rename to docs/INCIDENT_RESPONSE.md diff --git a/OBSERVABILITY.md b/docs/OBSERVABILITY.md similarity index 100% rename from OBSERVABILITY.md rename to docs/OBSERVABILITY.md diff --git a/PRE_COMMIT_QUICK_START.md b/docs/PRE_COMMIT_QUICK_START.md similarity index 100% rename from PRE_COMMIT_QUICK_START.md rename to docs/PRE_COMMIT_QUICK_START.md diff --git a/STAKEHOLDER_COMMUNICATION_PLAN.md b/docs/STAKEHOLDER_COMMUNICATION_PLAN.md similarity index 100% rename from STAKEHOLDER_COMMUNICATION_PLAN.md rename to docs/STAKEHOLDER_COMMUNICATION_PLAN.md diff --git a/SYSTEM_OVERVIEW.md b/docs/SYSTEM_OVERVIEW.md similarity index 100% rename from SYSTEM_OVERVIEW.md rename to docs/SYSTEM_OVERVIEW.md diff --git a/TESTING_ERROR_HANDLING.md b/docs/TESTING_ERROR_HANDLING.md similarity index 100% rename from TESTING_ERROR_HANDLING.md rename to docs/TESTING_ERROR_HANDLING.md diff --git a/TESTING_PLATFORM.md b/docs/TESTING_PLATFORM.md similarity index 100% rename from TESTING_PLATFORM.md rename to docs/TESTING_PLATFORM.md diff --git a/TRACKING.md b/docs/TRACKING.md similarity index 100% rename from TRACKING.md rename to docs/TRACKING.md