Cline rules
.clinerules/project-base.mdCline rules
Quality
78/100
Scores the file, not the repository.Length
698 words
17 headings · 0 code blocksRepository
0
— · pushed 32 days agoLast changed
3 days ago
First indexed 3 days ago.1# Network Monitor Project Summary23## Overview45A focused Go-based network connectivity monitoring solution designed for long-term ISP issue documentation and pattern detection.67## Technology Stack89- **Language**: Go 1.2110- **Database**: SQLite (modernc.org/sqlite driver)11- **Frontend**: HTML/CSS/JavaScript with D3.js for visualizations12- **Chart Generation**: go-chart/v2 library for static PNG reports13- **Build System**: Taskfile.yml for build management and automation1415## Architecture1617- **Main Application**: Go module with entry point at `cmd/monitor/main.go`, embedded static web assets18- **Internal Packages**: Modular design with `internal/` packages for separation of concerns19- **Database Layer**: SQLite with multiple tables for ping results, outages, and aggregated patterns20- **Web Interface**: REST API serving data to D3.js-based dashboard21- **Report Generation**: `internal/report/` package for static PNG chart generation2223## Key Components2425- **cmd/monitor/main.go**: Core monitoring logic, ping workers, web server, database management26- **internal/config/**: Configuration management (config.go, flags.go)27- **internal/database/**: Database operations and schema (db.go, maintenance.go, queries.go)28- **internal/models/**: Data models (ping.go, stats.go, types.go)29- **internal/monitor/**: Monitoring lifecycle and workers (lifecycle.go, monitor.go, worker.go)30- **internal/ping/**: Ping implementation (ping.go)31- **internal/report/**: Chart generation using go-chart library (charts.go, generator.go, text.go, utils.go)32- **internal/web/**: Web server and API handlers (handlers.go, server.go)33- **static/index.html**: Web dashboard with real-time visualizations34- **Database Tables**:35 - `ping_results`: Raw ping data (7-day retention)36 - `hourly_patterns`: Aggregated patterns for heatmap (90-day retention)37 - `outages`: Detected connectivity failures38 - `hourly_stats`: Statistical aggregations3940## Features4142- **Continuous Monitoring**: Configurable ping intervals to multiple targets43- **Real-time Dashboard**: Web interface at localhost:8080 with live charts44- **Pattern Detection**: 24-hour heatmap overlay showing issue patterns across days45- **Outage Tracking**: Automatic detection of connectivity failures (5+ failed pings in any 10 consecutive pings)46- **Static Reports**: PNG chart generation for ISP evidence documentation47- **Data Management**: Automatic maintenance with configurable retention periods4849## Configuration5051- **Targets**: Comma-separated IP addresses (default: Google DNS, Cloudflare, OpenDNS)52- **Interval**: Ping frequency (default: 1 second)53- **Timeout**: Ping timeout (default: 5 seconds)54- **Database**: SQLite file path (default: network_monitor.db)55- **Port**: Web server port (default: 8080)5657## Deployment5859- **Build**: `task build` command (or `go build ./cmd/monitor`)60- **Run**: Executable binary with optional flags61- **Service**: Can be configured as macOS launchd service or systemd service62- **Resource Usage**: Low CPU/memory footprint suitable for continuous operation6364## Data Flow65661. Ping workers continuously test connectivity to configured targets672. Results stored in SQLite database with timestamps683. Hourly maintenance aggregates data for heatmap visualization694. Web API serves data to frontend dashboard705. Optional static report generation for documentation7172## Use Cases7374- ISP connectivity monitoring and issue documentation75- Network troubleshooting and pattern analysis76- Long-term connectivity logging for service agreements77- Real-time network status dashboard7879## Development Guidelines8081### Git Practices8283- **NEVER commit to main/master branch directly** - use feature branches84- Keep commits small and focused with clear, descriptive messages85- Rebase branches before merging to maintain clean history86- Use pull requests for code reviews and discussions8788### Build System8990- Use Taskfile.yml for build management instead of Makefiles91- Required tasks: `build`, `build-linux`, `build-ci`, `test`, `test-ci`, `lint`92- Build tasks must depend on test and lint tasks93- Build artifacts placed in `build/` directory94- GitHub Actions CI uses build-ci task for automated testing and linting9596### Code Quality9798- **Formatting**: Use `goimports -w .` (not `gofmt`) for code formatting and import management99- **Linting**: Use golangci-lint with `.golangci.yml` configuration100- **Error Handling**: Use `errors.Is()` and `errors.As()` for robust error checking101- **Testing**: Include basic unit tests for critical functionality102- **Dependencies**: Prefer standard library; justify third-party additions103104### Modern Tools105106- **Search**: Use `rg` (ripgrep) instead of `grep` for faster, smarter searching107- **File Finding**: Use `fd` instead of `find` for better performance and `.gitignore` respect108- **Code Analysis**: Use `gofuncs` tool for exploring Go function structures109110### Project Validation111112- Use `validate-docs` tool to ensure standard project structure compliance113- Validates directory structure, required files, and build configuration114115## Development Notes116117- Cross-platform ping implementation (Windows/Mac/Linux support)118- Embedded static files using Go's `embed` package119- RESTful API design with JSON responses120- D3.js for interactive data visualizations121- SQLite WAL mode for concurrent access122- llm-shared submodule provides development tools and guidelines123
Also in lepinkainen/network-monitor
Diff this repo’s formatsOne repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| lepinkainen/network-monitorAGENTS.md · 0 | AGENTS.md | buildteststylearch+3 | 90/100 | 3 days ago | |
| lepinkainen/network-monitorCLAUDE.md · 0 | CLAUDE.md | buildtestlint-formatstyle+11 | 97/100 | 3 days ago |
Similar configs
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| JCodesMore/ai-website-cloner-template.clinerules · 31k | Cline rules | buildlint-formatstylearch+3 | 97/100 | 2 days ago | |
| lepinkainen/humanlog.clinerules/project-rules.md · 0 | Cline rules | setupbuildtestlint-format+8 | 96/100 | 3 days ago | |
| BryaanF/LiantPortfolio.clinerules/project-guidelines.md · 0 | Cline rules | buildstylearchgit+2 | 96/100 | 3 days ago | |
| u9401066/zotero-keeper.clinerules/50-pubmed-project.md · 6 | Cline rules | testlint-formatstylearch+1 | 94/100 | 3 days ago | |
| u9401066/pubmed-search-mcp.clinerules/50-pubmed-project.md · 23 | Cline rules | testlint-formatstylearch+1 | 94/100 | 3 days ago | |
| u9401066/zotero-keepervscode-extension/resources/repo-assets/pubmed-search-mcp/.clinerules/50-pubmed-project.md · 6 | Cline rules | testlint-formatstylearch+1 | 94/100 | 3 days ago | |
| VaillerTeeter/HoshimiNest.clinerules/project-identity.md · 1 | Cline rules | setuparchtypesdo-not | 93/100 | yesterday | |
| blendsdk/codeops-mcp.clinerules/project.md · 0 | Cline rules | buildteststylearch+7 | 91/100 | 3 days ago |
