| Dimension | Shared | Only in A | Only in B | Overlap |
|---|---|---|---|---|
| Sections | 1 | 35 | 16 | 2% |
| Commands | 1 | 6 | 1 | 13% |
| Section tags | 5 | 10 | 1 | 31% |
What each file covers
Sections
1 shared · 35 only in A · 16 only in B- − CLAUDE.md
- − Project Overview
- − Architecture & Entry Points
- − Critical Components
- − Database Schema Strategy
- − Build & Development Workflow
- − Essential Commands
- − Development Mode for UI Work
- − UI Testing with Playwright
- − Start development server in background
- − Use Task tool with browser automation to test UI changes
- − The agent can:
- − - Navigate to localhost:8080
- − - Take screenshots of UI components
- − - Test hover interactions on heatmap cells
- − - Verify responsive layout behavior
- − - Test different time range selections
- − - Validate tooltips and interactive elements
- − Pre-commit Requirements
- − Project-Specific Conventions
- − Error Handling Pattern
- − Configuration Philosophy
- − Ping Implementation Detail
- − Web Interface Integration
- − API Patterns
- − Static Assets
- − Testing & CI/CD
- − Test Strategy
- − Docker Deployment
- − Integration Points
- − llm-shared Submodule
- − External Dependencies
- − ISP Documentation Workflow
- − Data Collection Strategy
- − Report Generation
- + Network Monitor Project Summary
- + Overview
- + Technology Stack
- + Architecture
- + Key Components
- + Features
- + Configuration
- + Deployment
- + Data Flow
- + Use Cases
- + Development Guidelines
- + Git Practices
- + Build System
- + Code Quality
- + Modern Tools
- + Project Validation
- Development Notes
Commands
1 shared · 6 only in A · 1 only in B- − task dev
- − task test
- − task lint
- − task build-linux
- − task test-ci
- − docker-compose.yml
- + go build ./cmd/monitor
- task build
Section tags
5 shared · 10 only in A · 1 only in B- − test
- − types
- − testing-strategy
- − dependencies
- − database
- − api
- − ui
- − deployment
- − agent-behaviour
- − docs
- + do-not
- build
- lint-format
- code-style
- architecture
- git-pr
Line diff
lepinkainen/network-monitor · CLAUDE.md
@@ −1 @@
1# CLAUDE.md
2
3Network Connectivity Monitor - AI Agent Guidelines
4
5## Project Overview
6
7A Go-based network monitoring tool that performs continuous ping tests to detect ISP issues and connectivity patterns. Features intelligent data retention, pattern detection via heatmaps, and web-based visualization.
8
9**Key Purpose**: Long-term ISP issue documentation with compelling visual evidence.
10
11## Architecture & Entry Points
12
13- **Main Entry**: `main.go` - Orchestrates all components with graceful shutdown
14- **Internal Structure**: Clean separation via `internal/` packages
15- **Static Assets**: Embedded via `//go:embed static/*` in main.go (production) or filesystem serving (development)
16- **Database**: SQLite with WAL mode for concurrent access
17
18### Critical Components
19
20```plain
21internal/
22├── config/ - CLI flags and validation (config.go, flags.go)
23├── database/ - SQLite operations, schema, maintenance (db.go, queries.go)
24├── models/ - Data structures (ping.go, stats.go, types.go)
25├── monitor/ - Worker orchestration and lifecycle (monitor.go, worker.go)
26├── ping/ - Cross-platform ping implementation
27├── report/ - PNG chart generation using go-chart/v2
28└── web/ - HTTP server and REST API (handlers.go, server.go)
29```
30
31## Database Schema Strategy
32
33**Smart Retention Pattern**:
34
35- `ping_results`: Raw data (7-day retention)
36- `hourly_patterns`: Aggregated for heatmap (90-day retention)
37- `outages`: Detected failures (permanent)
38- `hourly_stats`: Statistical summaries
39
40**Key Insight**: Maintenance runs hourly via `internal/database/maintenance.go` - automatic data aggregation and cleanup.
41
42## Build & Development Workflow
43
44### Essential Commands
45
46```bash
47task build # Build after tests+lint (required for deployment)
48task dev # Development server with live static file editing
49task test # Run all tests
50task lint # goimports + vet + golangci-lint
51task build-linux # Cross-compile for Linux deployment
52```
53
54### Development Mode for UI Work
55
56**Live Static File Editing**: The `task dev` command now enables live editing of HTML, CSS, and JavaScript files without server restarts.
57
58```bash
59task dev # Runs: go run . --dev
60```
61
62**Development Mode Features**:
63
64- **Live HTML editing**: Changes to `static/index.html` visible on browser refresh
65- **Live CSS editing**: Modifications to `static/css/*.css` applied immediately
66- **Live JavaScript editing**: Updates to `static/js/*.js` served instantly from filesystem
67- **No server restart required**: Only browser refresh needed to see changes
68- **Production safety**: Build process unchanged, still uses embedded files
69
70**Development vs Production**:
71
72- **Development** (`--dev` flag): Serves files from `static/` directory (live editing)
73- **Production** (default): Uses embedded `//go:embed` files (compile-time)
74
75### UI Testing with Playwright
76
77**Automated UI Testing**: Use the general-purpose agent with Playwright browser automation for comprehensive UI testing.
78
79```bash
80# Start development server in background
81task dev
82
83# Use Task tool with browser automation to test UI changes
84# The agent can:
85# - Navigate to localhost:8080
86# - Take screenshots of UI components
87# - Test hover interactions on heatmap cells
88# - Verify responsive layout behavior
89# - Test different time range selections
90# - Validate tooltips and interactive elements
91```
92
93**UI Development Workflow**:
94
951. Start development server: `task dev`
962. Edit static files (HTML/CSS/JS) in your editor
973. Refresh browser to see changes immediately
984. Use Playwright agent to verify functionality
995. Take screenshots for documentation/validation
100
101### Pre-commit Requirements
102
103- **Always run**: `task build` before considering changes complete
104- **Format**: Uses `goimports -w .` (NOT gofmt) for imports management
105- **Linting**: golangci-lint with `.golangci.yml` config
106
107## Project-Specific Conventions
108
109### Error Handling Pattern
110
111```go
112// Preferred throughout codebase
113if errors.Is(err, database.ErrOutageExists) {
114 // handle specifically
115}
116```
117
118### Configuration Philosophy
119
120- CLI flags via `internal/config/flags.go`
121- Validation in separate `config.Validate()` method
122- Defaults optimized for home ISP monitoring
123
124### Ping Implementation Detail
125
126- Cross-platform: Windows/Mac/Linux support in `internal/ping/ping.go`
127- **Outage Detection**: 5+ failures in any 10 consecutive pings
128- Uses OS-native ping (not raw sockets) for reliability
129
130## Web Interface Integration
131
132### API Patterns
133
134- RESTful JSON endpoints in `internal/web/handlers.go`
135- Real-time data serving for D3.js frontend
136- **Key Route**: `/api/data` powers the heatmap visualization
137
138### Static Assets
139
140- Single `static/index.html` with embedded D3.js
141- **Production Pattern**: All static files embedded at compile time via `//go:embed`
142- **Development Pattern**: Files served directly from filesystem for live editing
143- No build step for frontend - vanilla HTML/JS/CSS
144- **Live Development**: Use `task dev` for immediate UI changes without server restart
145
146## Testing & CI/CD
147
148### Test Strategy
149
150- `*_test.go` files for critical functionality only
151- **CI Pattern**: Separate test/lint/build jobs in GitHub Actions
152- Uses `task test-ci` for coverage reporting
153
154### Docker Deployment
155
156- `Dockerfile` + `docker-compose.yml` for containerization
157- **Volume Pattern**: `./data:/app/data` for database persistence
158- Health checks via web interface availability
159
160## Integration Points
161
162### llm-shared Submodule
163
164- Development tools in `llm-shared/utils/`
165- **Key Tool**: `gofuncs.go` for function analysis
166- Project validation via `validate-docs.go`
167
168### External Dependencies
169
170- **Database**: `modernc.org/sqlite` (pure Go SQLite)
171- **Charts**: `github.com/wcharczuk/go-chart/v2` for PNG report generation
172- **Minimal Dependencies**: Prefers standard library
173
174## ISP Documentation Workflow
175
176### Data Collection Strategy
177
1781. **Hour 1**: Basic connectivity data
1792. **Day 1**: Initial pattern recognition
1803. **Week 1**: Clear time-of-day patterns
1814. **Month 1**: Compelling evidence for ISP discussions
182
183### Report Generation
184
185- PNG charts via `internal/report/` package
186- **Visual Evidence**: Heatmap screenshots after 1-2 weeks most effective
187- Export capability for CSV data analysis
188
189## Development Notes
190
191- **Deployment Target**: Single-user, private monitoring (not SaaS)
192- **Service Integration**: Includes launchd/systemd service examples in README
193- **Resource Efficient**: <1% CPU, 20-50MB RAM with default settings
194- **Cross-Platform**: Full macOS/Linux/Windows support with OS-specific deployment guides
195
lepinkainen/network-monitor · .clinerules/project-base.md
@@ +1 @@
1# Network Monitor Project Summary
2
3## Overview
4
5A focused Go-based network connectivity monitoring solution designed for long-term ISP issue documentation and pattern detection.
6
7## Technology Stack
8
9- **Language**: Go 1.21
10- **Database**: SQLite (modernc.org/sqlite driver)
11- **Frontend**: HTML/CSS/JavaScript with D3.js for visualizations
12- **Chart Generation**: go-chart/v2 library for static PNG reports
13- **Build System**: Taskfile.yml for build management and automation
14
15## Architecture
16
17- **Main Application**: Go module with entry point at `cmd/monitor/main.go`, embedded static web assets
18- **Internal Packages**: Modular design with `internal/` packages for separation of concerns
19- **Database Layer**: SQLite with multiple tables for ping results, outages, and aggregated patterns
20- **Web Interface**: REST API serving data to D3.js-based dashboard
21- **Report Generation**: `internal/report/` package for static PNG chart generation
22
23## Key Components
24
25- **cmd/monitor/main.go**: Core monitoring logic, ping workers, web server, database management
26- **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 visualizations
34- **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 failures
38 - `hourly_stats`: Statistical aggregations
39
40## Features
41
42- **Continuous Monitoring**: Configurable ping intervals to multiple targets
43- **Real-time Dashboard**: Web interface at localhost:8080 with live charts
44- **Pattern Detection**: 24-hour heatmap overlay showing issue patterns across days
45- **Outage Tracking**: Automatic detection of connectivity failures (5+ failed pings in any 10 consecutive pings)
46- **Static Reports**: PNG chart generation for ISP evidence documentation
47- **Data Management**: Automatic maintenance with configurable retention periods
48
49## Configuration
50
51- **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)
56
57## Deployment
58
59- **Build**: `task build` command (or `go build ./cmd/monitor`)
60- **Run**: Executable binary with optional flags
61- **Service**: Can be configured as macOS launchd service or systemd service
62- **Resource Usage**: Low CPU/memory footprint suitable for continuous operation
63
64## Data Flow
65
661. Ping workers continuously test connectivity to configured targets
672. Results stored in SQLite database with timestamps
683. Hourly maintenance aggregates data for heatmap visualization
694. Web API serves data to frontend dashboard
705. Optional static report generation for documentation
71
72## Use Cases
73
74- ISP connectivity monitoring and issue documentation
75- Network troubleshooting and pattern analysis
76- Long-term connectivity logging for service agreements
77- Real-time network status dashboard
78
79## Development Guidelines
80
81### Git Practices
82
83- **NEVER commit to main/master branch directly** - use feature branches
84- Keep commits small and focused with clear, descriptive messages
85- Rebase branches before merging to maintain clean history
86- Use pull requests for code reviews and discussions
87
88### Build System
89
90- Use Taskfile.yml for build management instead of Makefiles
91- Required tasks: `build`, `build-linux`, `build-ci`, `test`, `test-ci`, `lint`
92- Build tasks must depend on test and lint tasks
93- Build artifacts placed in `build/` directory
94- GitHub Actions CI uses build-ci task for automated testing and linting
95
96### Code Quality
97
98- **Formatting**: Use `goimports -w .` (not `gofmt`) for code formatting and import management
99- **Linting**: Use golangci-lint with `.golangci.yml` configuration
100- **Error Handling**: Use `errors.Is()` and `errors.As()` for robust error checking
101- **Testing**: Include basic unit tests for critical functionality
102- **Dependencies**: Prefer standard library; justify third-party additions
103
104### Modern Tools
105
106- **Search**: Use `rg` (ripgrep) instead of `grep` for faster, smarter searching
107- **File Finding**: Use `fd` instead of `find` for better performance and `.gitignore` respect
108- **Code Analysis**: Use `gofuncs` tool for exploring Go function structures
109
110### Project Validation
111
112- Use `validate-docs` tool to ensure standard project structure compliance
113- Validates directory structure, required files, and build configuration
114
115## Development Notes
116
117- Cross-platform ping implementation (Windows/Mac/Linux support)
118- Embedded static files using Go's `embed` package
119- RESTful API design with JSON responses
120- D3.js for interactive data visualizations
121- SQLite WAL mode for concurrent access
122- llm-shared submodule provides development tools and guidelines
123
@@ −1 +1 @@
1−# CLAUDE.md
1+# Network Monitor Project Summary
22
3−Network Connectivity Monitor - AI Agent Guidelines
3+## Overview
44
5−## Project Overview
5+A focused Go-based network connectivity monitoring solution designed for long-term ISP issue documentation and pattern detection.
66
7−A Go-based network monitoring tool that performs continuous ping tests to detect ISP issues and connectivity patterns. Features intelligent data retention, pattern detection via heatmaps, and web-based visualization.
7+## Technology Stack
88
9−**Key Purpose**: Long-term ISP issue documentation with compelling visual evidence.
9+- **Language**: Go 1.21
10+- **Database**: SQLite (modernc.org/sqlite driver)
11+- **Frontend**: HTML/CSS/JavaScript with D3.js for visualizations
12+- **Chart Generation**: go-chart/v2 library for static PNG reports
13+- **Build System**: Taskfile.yml for build management and automation
1014
11−## Architecture & Entry Points
15+## Architecture
1216
13−- **Main Entry**: `main.go` - Orchestrates all components with graceful shutdown
14−- **Internal Structure**: Clean separation via `internal/` packages
15−- **Static Assets**: Embedded via `//go:embed static/*` in main.go (production) or filesystem serving (development)
16−- **Database**: SQLite with WAL mode for concurrent access
17+- **Main Application**: Go module with entry point at `cmd/monitor/main.go`, embedded static web assets
18+- **Internal Packages**: Modular design with `internal/` packages for separation of concerns
19+- **Database Layer**: SQLite with multiple tables for ping results, outages, and aggregated patterns
20+- **Web Interface**: REST API serving data to D3.js-based dashboard
21+- **Report Generation**: `internal/report/` package for static PNG chart generation
1722
18−### Critical Components
23+## Key Components
1924
20−```plain
21−internal/
22−├── config/ - CLI flags and validation (config.go, flags.go)
23−├── database/ - SQLite operations, schema, maintenance (db.go, queries.go)
24−├── models/ - Data structures (ping.go, stats.go, types.go)
25−├── monitor/ - Worker orchestration and lifecycle (monitor.go, worker.go)
26−├── ping/ - Cross-platform ping implementation
27−├── report/ - PNG chart generation using go-chart/v2
28−└── web/ - HTTP server and REST API (handlers.go, server.go)
29−```
25+- **cmd/monitor/main.go**: Core monitoring logic, ping workers, web server, database management
26+- **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 visualizations
34+- **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 failures
38+ - `hourly_stats`: Statistical aggregations
3039
31−## Database Schema Strategy
40+## Features
3241
33−**Smart Retention Pattern**:
42+- **Continuous Monitoring**: Configurable ping intervals to multiple targets
43+- **Real-time Dashboard**: Web interface at localhost:8080 with live charts
44+- **Pattern Detection**: 24-hour heatmap overlay showing issue patterns across days
45+- **Outage Tracking**: Automatic detection of connectivity failures (5+ failed pings in any 10 consecutive pings)
46+- **Static Reports**: PNG chart generation for ISP evidence documentation
47+- **Data Management**: Automatic maintenance with configurable retention periods
3448
35−- `ping_results`: Raw data (7-day retention)
36−- `hourly_patterns`: Aggregated for heatmap (90-day retention)
37−- `outages`: Detected failures (permanent)
38−- `hourly_stats`: Statistical summaries
49+## Configuration
3950
40−**Key Insight**: Maintenance runs hourly via `internal/database/maintenance.go` - automatic data aggregation and cleanup.
51+- **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)
4156
42−## Build & Development Workflow
57+## Deployment
4358
44−### Essential Commands
59+- **Build**: `task build` command (or `go build ./cmd/monitor`)
60+- **Run**: Executable binary with optional flags
61+- **Service**: Can be configured as macOS launchd service or systemd service
62+- **Resource Usage**: Low CPU/memory footprint suitable for continuous operation
4563
46−```bash
47−task build # Build after tests+lint (required for deployment)
48−task dev # Development server with live static file editing
49−task test # Run all tests
50−task lint # goimports + vet + golangci-lint
51−task build-linux # Cross-compile for Linux deployment
52−```
64+## Data Flow
5365
54−### Development Mode for UI Work
66+1. Ping workers continuously test connectivity to configured targets
67+2. Results stored in SQLite database with timestamps
68+3. Hourly maintenance aggregates data for heatmap visualization
69+4. Web API serves data to frontend dashboard
70+5. Optional static report generation for documentation
5571
56−**Live Static File Editing**: The `task dev` command now enables live editing of HTML, CSS, and JavaScript files without server restarts.
72+## Use Cases
5773
58−```bash
59−task dev # Runs: go run . --dev
60−```
74+- ISP connectivity monitoring and issue documentation
75+- Network troubleshooting and pattern analysis
76+- Long-term connectivity logging for service agreements
77+- Real-time network status dashboard
6178
62−**Development Mode Features**:
79+## Development Guidelines
6380
64−- **Live HTML editing**: Changes to `static/index.html` visible on browser refresh
65−- **Live CSS editing**: Modifications to `static/css/*.css` applied immediately
66−- **Live JavaScript editing**: Updates to `static/js/*.js` served instantly from filesystem
67−- **No server restart required**: Only browser refresh needed to see changes
68−- **Production safety**: Build process unchanged, still uses embedded files
81+### Git Practices
6982
70−**Development vs Production**:
83+- **NEVER commit to main/master branch directly** - use feature branches
84+- Keep commits small and focused with clear, descriptive messages
85+- Rebase branches before merging to maintain clean history
86+- Use pull requests for code reviews and discussions
7187
72−- **Development** (`--dev` flag): Serves files from `static/` directory (live editing)
73−- **Production** (default): Uses embedded `//go:embed` files (compile-time)
88+### Build System
7489
75−### UI Testing with Playwright
90+- Use Taskfile.yml for build management instead of Makefiles
91+- Required tasks: `build`, `build-linux`, `build-ci`, `test`, `test-ci`, `lint`
92+- Build tasks must depend on test and lint tasks
93+- Build artifacts placed in `build/` directory
94+- GitHub Actions CI uses build-ci task for automated testing and linting
7695
77−**Automated UI Testing**: Use the general-purpose agent with Playwright browser automation for comprehensive UI testing.
96+### Code Quality
7897
79−```bash
80−# Start development server in background
81−task dev
98+- **Formatting**: Use `goimports -w .` (not `gofmt`) for code formatting and import management
99+- **Linting**: Use golangci-lint with `.golangci.yml` configuration
100+- **Error Handling**: Use `errors.Is()` and `errors.As()` for robust error checking
101+- **Testing**: Include basic unit tests for critical functionality
102+- **Dependencies**: Prefer standard library; justify third-party additions
82103
83−# Use Task tool with browser automation to test UI changes
84−# The agent can:
85−# - Navigate to localhost:8080
86−# - Take screenshots of UI components
87−# - Test hover interactions on heatmap cells
88−# - Verify responsive layout behavior
89−# - Test different time range selections
90−# - Validate tooltips and interactive elements
91−```
104+### Modern Tools
92105
93−**UI Development Workflow**:
106+- **Search**: Use `rg` (ripgrep) instead of `grep` for faster, smarter searching
107+- **File Finding**: Use `fd` instead of `find` for better performance and `.gitignore` respect
108+- **Code Analysis**: Use `gofuncs` tool for exploring Go function structures
94109
95−1. Start development server: `task dev`
96−2. Edit static files (HTML/CSS/JS) in your editor
97−3. Refresh browser to see changes immediately
98−4. Use Playwright agent to verify functionality
99−5. Take screenshots for documentation/validation
110+### Project Validation
100111
101−### Pre-commit Requirements
112+- Use `validate-docs` tool to ensure standard project structure compliance
113+- Validates directory structure, required files, and build configuration
102114
103−- **Always run**: `task build` before considering changes complete
104−- **Format**: Uses `goimports -w .` (NOT gofmt) for imports management
105−- **Linting**: golangci-lint with `.golangci.yml` config
106−
107−## Project-Specific Conventions
108−
109−### Error Handling Pattern
110−
111−```go
112−// Preferred throughout codebase
113−if errors.Is(err, database.ErrOutageExists) {
114− // handle specifically
115−}
116−```
117−
118−### Configuration Philosophy
119−
120−- CLI flags via `internal/config/flags.go`
121−- Validation in separate `config.Validate()` method
122−- Defaults optimized for home ISP monitoring
123−
124−### Ping Implementation Detail
125−
126−- Cross-platform: Windows/Mac/Linux support in `internal/ping/ping.go`
127−- **Outage Detection**: 5+ failures in any 10 consecutive pings
128−- Uses OS-native ping (not raw sockets) for reliability
129−
130−## Web Interface Integration
131−
132−### API Patterns
133−
134−- RESTful JSON endpoints in `internal/web/handlers.go`
135−- Real-time data serving for D3.js frontend
136−- **Key Route**: `/api/data` powers the heatmap visualization
137−
138−### Static Assets
139−
140−- Single `static/index.html` with embedded D3.js
141−- **Production Pattern**: All static files embedded at compile time via `//go:embed`
142−- **Development Pattern**: Files served directly from filesystem for live editing
143−- No build step for frontend - vanilla HTML/JS/CSS
144−- **Live Development**: Use `task dev` for immediate UI changes without server restart
145−
146−## Testing & CI/CD
147−
148−### Test Strategy
149−
150−- `*_test.go` files for critical functionality only
151−- **CI Pattern**: Separate test/lint/build jobs in GitHub Actions
152−- Uses `task test-ci` for coverage reporting
153−
154−### Docker Deployment
155−
156−- `Dockerfile` + `docker-compose.yml` for containerization
157−- **Volume Pattern**: `./data:/app/data` for database persistence
158−- Health checks via web interface availability
159−
160−## Integration Points
161−
162−### llm-shared Submodule
163−
164−- Development tools in `llm-shared/utils/`
165−- **Key Tool**: `gofuncs.go` for function analysis
166−- Project validation via `validate-docs.go`
167−
168−### External Dependencies
169−
170−- **Database**: `modernc.org/sqlite` (pure Go SQLite)
171−- **Charts**: `github.com/wcharczuk/go-chart/v2` for PNG report generation
172−- **Minimal Dependencies**: Prefers standard library
173−
174−## ISP Documentation Workflow
175−
176−### Data Collection Strategy
177−
178−1. **Hour 1**: Basic connectivity data
179−2. **Day 1**: Initial pattern recognition
180−3. **Week 1**: Clear time-of-day patterns
181−4. **Month 1**: Compelling evidence for ISP discussions
182−
183−### Report Generation
184−
185−- PNG charts via `internal/report/` package
186−- **Visual Evidence**: Heatmap screenshots after 1-2 weeks most effective
187−- Export capability for CSV data analysis
188−
189115 ## Development Notes
190116
191−- **Deployment Target**: Single-user, private monitoring (not SaaS)
192−- **Service Integration**: Includes launchd/systemd service examples in README
193−- **Resource Efficient**: <1% CPU, 20-50MB RAM with default settings
194−- **Cross-Platform**: Full macOS/Linux/Windows support with OS-specific deployment guides
117+- Cross-platform ping implementation (Windows/Mac/Linux support)
118+- Embedded static files using Go's `embed` package
119+- RESTful API design with JSON responses
120+- D3.js for interactive data visualizations
121+- SQLite WAL mode for concurrent access
122+- llm-shared submodule provides development tools and guidelines
195123
