The scoring engine (engine.go) awards 20 points when the MaintainerActive signal is true. However, looking at signals.go, the MaintainerActive field is never assigned — it stays at its zero value (false) for every single repository.
This means every repository recommendation silently loses 20 points regardless of actual maintainer activity, making scores consistently lower than intended.
📍 File to Change
backend/core_service/internal/orchestration/signals.go
🔍 Current Buggy Code (lines ~10–40 in signals.go)
// MaintainerActive is NEVER set — always stays false
func (s *Service) BuildRepoSignals(...) scoring.RepoSignals {
signals := scoring.RepoSignals{}
repoData, err := s.githubClient.FetchRepo(ctx, repo)
// ... MaintainerActive is never touched here
return signals
}
✅ What To Do
After fetching repoData, add a heuristic check: if the repo was pushed to within the last 7 days, consider the maintainer active.
// Add this block after the RecentActivity check in signals.go:
// Check if maintainer is active (pushed within last 7 days)
pushedTime, err := time.Parse(time.RFC3339, repoData.LastPushedAt)
if err == nil && time.Since(pushedTime).Hours() < 24*7 {
signals.MaintainerActive = true
}
Add a brief comment explaining the heuristic so future contributors understand the logic.
🏁 Acceptance Criteria
💡 Technical Hints
- Edit
backend/core_service/internal/orchestration/signals.go — specifically the BuildRepoSignals function
repoData.LastPushedAt is a string formatted as RFC3339 — parse it using time.Parse(time.RFC3339, ...)
- The same parsing pattern is already used a few lines above for
RecentActivity — follow the same style
- You do not need to make any new API calls;
repoData is already fetched
🚀 Getting Started
- Fork the repository
- Create a branch:
git checkout -b fix/issue-3-maintainer-active-signal
- Edit
backend/core_service/internal/orchestration/signals.go
- Verify it compiles:
cd backend/core_service && go build ./...
- Open a Pull Request!
The scoring engine (
engine.go) awards 20 points when theMaintainerActivesignal istrue. However, looking atsignals.go, theMaintainerActivefield is never assigned — it stays at its zero value (false) for every single repository.This means every repository recommendation silently loses 20 points regardless of actual maintainer activity, making scores consistently lower than intended.
📍 File to Change
backend/core_service/internal/orchestration/signals.go🔍 Current Buggy Code (lines ~10–40 in
signals.go)✅ What To Do
After fetching
repoData, add a heuristic check: if the repo was pushed to within the last 7 days, consider the maintainer active.Add a brief comment explaining the heuristic so future contributors understand the logic.
🏁 Acceptance Criteria
signals.MaintainerActiveis now set totruewhen the repo was pushed to within the last 7 dayssignals.RecentActivitycheck (30-day threshold) is untouchedgo build ./...frombackend/core_servicemust pass// Active maintainer: pushed within last 7 days)💡 Technical Hints
backend/core_service/internal/orchestration/signals.go— specifically theBuildRepoSignalsfunctionrepoData.LastPushedAtis a string formatted as RFC3339 — parse it usingtime.Parse(time.RFC3339, ...)RecentActivity— follow the same stylerepoDatais already fetched🚀 Getting Started
git checkout -b fix/issue-3-maintainer-active-signalbackend/core_service/internal/orchestration/signals.gocd backend/core_service && go build ./...