Nitzan Pomerantz
11512045dd
Extract magic numbers into named constants
...
Define module-level constants for market activity, volatility, and liquidity
thresholds. This improves code readability and makes threshold values easier
to maintain and adjust in the future.
Constants added:
- ACTIVITY_VERY_HIGH_THRESHOLD, ACTIVITY_HIGH_THRESHOLD, etc.
- VOLATILITY_VERY_VOLATILE_THRESHOLD, VOLATILITY_VOLATILE_THRESHOLD, etc.
- LIQUIDITY_VERY_HIGH_THRESHOLD, LIQUIDITY_HIGH_THRESHOLD, etc.
Addresses PR #2 review comments on lines 1084 and 1224.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-10-24 19:22:03 +03:00
Nitzan Pomerantz
2968711307
Complete Phase 2: Market Analysis, Filtering & Documentation
...
This commit implements all Phase 2 functionality with architectural
improvements over the original plan.
## Phase 2.1: Property Valuation Data ✅
- filter_deals_by_criteria() with comprehensive filtering
- calculate_deal_statistics() for statistical aggregations
- _extract_floor_number() for Hebrew floor parsing
- _calculate_std_dev() helper function
- MCP tools: get_valuation_comparables, get_deal_statistics
## Phase 2.2: Market Activity & Investment Analysis ✅
- calculate_market_activity_score() - deal frequency & velocity
* Activity score (0-100), trend analysis, monthly distribution
* Classifies markets: very_high, high, moderate, low, very_low
- analyze_investment_potential() - price trends & stability
* Price appreciation rate via linear regression
* Volatility score using coefficient of variation
* Investment score combining appreciation & stability
- get_market_liquidity() - turnover & liquidity metrics
* Quarterly/monthly breakdowns, velocity scoring
* Trend direction, most active periods
- MCP tool: get_market_activity_metrics (unified tool)
## Phase 2.3: Enhanced Deal Filtering ✅
- Property type, room count, price, area, floor filtering
- All integrated into existing tools
- Hebrew floor number parsing support
## Testing ✅
- Added 15 comprehensive unit tests (all passing)
- Coverage: market activity, investment analysis, liquidity, filtering
- Edge cases: empty data, invalid dates, insufficient data
## Documentation ✅
- Created CLAUDE.md (~250 lines) - AI agent guidance
* Development commands, architecture overview
* Product vision from USECASES.md
* Available tools with status indicators
- Updated TASKS.md - Phase 2 marked 100% complete
## Architectural Improvements
- 1 unified MCP tool instead of 6 separate tools (simpler API)
- 1 flexible filtering function instead of 3 (more composable)
- All logic in govmap.py (no new files, better cohesion)
- ~955 lines added with comprehensive documentation
## Design Principles Followed
✅ MCP provides data, LLM provides intelligence
✅ No predictions - only statistical calculations
✅ Comprehensive error handling & input validation
✅ Well-documented with detailed docstrings
Phase 2 Progress: 100% complete (60% overall project completion)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-10-24 18:51:50 +03:00
Nitzan Pomerantz
53e730ea66
Merge pull request #1 from nitzpo/comprehensive-plan-phase-1
...
Comprehensive-plan-phase-1
2025-10-23 00:12:13 +03:00
Nitzan Pomerantz
d9e42bea17
Some more small fixes
2025-10-23 00:11:41 +03:00
Nitzan Pomerantz
49bfc7b940
CR Fixes and update markdownlint
2025-10-22 23:59:07 +03:00
Nitzan Pomerantz
7780d89bb4
Update tasks and plan
2025-10-19 01:02:36 +03:00
Nitzan Pomerantz
85f52a8108
Main updates of Phase 1
2025-10-19 00:58:46 +03:00
Nitzan Pomerantz
b844760147
Remove old file
2025-10-19 00:58:27 +03:00
Nitzan Pomerantz
e0dacbc5b9
Fix requirements
2025-10-19 00:58:20 +03:00
Nitzan Pomerantz
c71f950eb7
Added documentation
2025-10-19 00:58:11 +03:00
Nitzan Pomerantz
ffd7c84aa7
Added plan
2025-10-19 00:57:50 +03:00
Nitzan Pomerantz
fb1f276a80
Add amenities to usecases
2025-10-19 00:02:15 +03:00
Nitzan Pomerantz
055b2bcc2a
Add markdownlint
2025-10-19 00:02:06 +03:00
Nitzan Pomerantz
9ee5372b1c
Another iteration
2025-07-14 14:26:53 +03:00
Nitzan Pomerantz
650048445f
Optimization because of long running times
2025-07-14 13:40:36 +03:00
Nitzan Pomerantz
80dfaa28f0
Improving parameters
2025-07-14 13:12:44 +03:00
Nitzan Pomerantz
eb4bf3894c
Use cases guide
2025-07-13 01:07:54 +03:00
Nitzan Pomerantz
4f3b74ceaf
Refactor fastmcp
2025-07-13 01:05:16 +03:00
Nitzan Pomerantz
dd6d78b48b
Refactor govmap
2025-07-13 01:03:15 +03:00
Nitzan Pomerantz
a1fa75a878
mcp clean up
2025-07-13 00:56:47 +03:00
Nitzan Pomerantz
d8c18cb2f7
mcp second iteration
2025-07-13 00:50:51 +03:00
Nitzan Pomerantz
76bdc323df
MCP server first iteration
2025-07-12 22:11:12 +03:00
Nitzan Pomerantz
1f1f4fc0ec
Added tests
2025-07-12 17:48:50 +03:00
Nitzan Pomerantz
f422aeaa79
First iteration
2025-07-12 17:45:54 +03:00
Nitzan Pomerantz
f3d3a8efd4
Update gitignore for python
2025-07-12 17:44:48 +03:00
Nitzan Pomerantz
f5ba5bd5c1
Commit start prompt that was used by gemini to generate start2 prompt for claude 4
2025-07-12 17:43:43 +03:00
Nitzan Pomerantz
f199defdf7
Initial commit
2025-07-12 12:27:22 +03:00