hurtener / penguiflow
Code health
This codebase scores 5.7 out of 10 for code health, which we rate fair. It also scores maintainability 6.4 and static performance 9.9 out of 10. The three are scored separately and never blended into one number. Risk is concentrated, as it usually is: 4 of 789 files are git hotspots, and they average 4.3 — which is where the fixes pay off most.
Do next
1 suggested
1 thing worth doing this quarter.
Worth planning
Delete 24 unused symbols and files (408 lines)
Nothing in the graph reaches them, across 10 files; every reader and agent pays to skip them.
- symbols
- 24
- lines
- 408
- safe to delete
- Yes(inferred)
Medium effort
Improve what Repowise can see
Add a test coverage report
Without one, Repowise cannot tell tested code from untested code, so every test-related action says “unknown”.
- line coverage
- Unknown, no report
Small effortReview the 174 proposed decisions
None is accepted yet, so nothing can drift from one and agents get no enforced guidance from them.
- proposed
- 174
- accepted
- 0
Medium effort
- Lines of code
- 160.4K
Recent activity
All commitsCommits
- 61c384f2Bump version to 3.10.14mo ago
- ff197931Add changelog entry for Opus 4.8 reasoning fix4mo ago
- c4f5929dFix Databricks Claude Opus 4.8 reasoning via profile-driven request style4mo ago
- 269fc0baMissed . in claude folder4mo ago
- d3a284eaexcluded claude folder from ruff4mo ago
- 370d14fdBump version4mo ago
Decisions
- Unary transport never schedules long-lived work.proposed
- Note: Validation may fail if spec schema is strict, but payload should be returnedproposed
- Note: This test uses a minimal valid spec - the actual validation may be stricter in production. We proposed
- The planner's NoOpArtifactStore is skipped, but the state store fallback finds the InMemoryStateStorproposed
- With the state store fallback, _discover_artifact_store() finds the InMemoryStateStore's artifact stproposed
- Explicitly set _planner and _orchestrator to None so the planner path returns None and the fallback proposed
Everything we found
2,597 open
Every detector's open count by area, each with its worst example. An inventory, not a to-do list: the actions above are the part worth doing.
- worst item is critical severity. Code health1,422Untested hotspot · penguiflow/planner/llm.py43 findings · 10.0 deducted
- worst item is medium severity. Refactoring248build_web_tool_specs+1.5 health, S effort · penguiflow/common_tools/web/specs.py
- worst item is medium severity. Decisions178tests/test_llm_provider_databricks.py174 awaiting review · 4 hotspots ungoverned
- worst item is medium severity. Ownership683penguiflow/llm/providers/databricks.py100% single-owner concentration, 5 commits in 90d
- worst item is low severity. Dead code66ShortTermMemoryArtifactsUnreachable class (4 lines)
Composition
Open the graph- python82%
- typescript17%
- javascript1%
Explore this codebase
- Docs0 pages across 9 modules
- ChatAsk this codebase a question and get an answer with its sources.
- Files789 files with per-file docs, health and history
- ArchitectureDependency graph, layers, and 76 entry points
- Code healthPer-file scores, 1,422 open findings, coverage and refactoring targets
- Knowledge graphEntities, communities, and the paths between them
- Change couplingFiles that keep changing together, mined from commit history
- CommitsChange-risk ranked history with agent provenance
- ContributorsBus factor, per-file maintainers, and the human/agent split
- StatsSize class, origin, lifetime churn, rhythm and records
- CostsWhat indexing this snapshot cost, by model and by run.