https://github.com/timogilvie/wavemill
· scanned 2026-06-16 00:37 UTC (2 months, 2 weeks ago)
371 raw signals (99 security + 272 graph)
Last scanned 2 months, 2 weeks ago · v1 · 280 actionable findings from 2 signal sources. 325 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 3849 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
__iter__ |
software | healthy | dspy/claude_cli_lm.py:48 |
__init__ |
software | healthy | dspy/claude_cli_lm.py:72 |
forward |
software | dead | dspy/claude_cli_lm.py:84 |
_messages_to_prompt |
software | healthy | dspy/claude_cli_lm.py:118 |
_call_claude |
software | healthy | dspy/claude_cli_lm.py:144 |
detect_risk_flags |
software | healthy | dspy/prepare_data.py:54 |
classify_task_type |
software | healthy | dspy/prepare_data.py:98 |
is_greenfield |
software | healthy | dspy/prepare_data.py:127 |
resolve_agent |
software | healthy | dspy/prepare_data.py:151 |
derive_cost_band |
software | healthy | dspy/prepare_data.py:162 |
derive_confidence |
software | healthy | dspy/prepare_data.py:173 |
derive_optimal_routing |
software | healthy | dspy/prepare_data.py:182 |
_build_reasoning |
software | healthy | dspy/prepare_data.py:228 |
load_training_data |
software | healthy | dspy/prepare_data.py:248 |
routing_metric |
software | dead | dspy/optimize.py:30 |
extract_few_shot_examples |
software | healthy | dspy/optimize.py:64 |
extract_system_prompt |
software | healthy | dspy/optimize.py:90 |
export_artifact |
software | healthy | dspy/optimize.py:107 |
main |
software | healthy | dspy/optimize.py:154 |
_extract_stage_rubric_gt |
software | healthy | dspy/optimize_stages.py:59 |
prepare_planner_examples |
software | dead | dspy/optimize_stages.py:80 |
prepare_coder_examples |
software | dead | dspy/optimize_stages.py:106 |
prepare_reviewer_examples |
software | dead | dspy/optimize_stages.py:134 |
export_stage_artifact |
software | healthy | dspy/optimize_stages.py:173 |
optimize_stage |
software | healthy | dspy/optimize_stages.py:252 |
main |
software | healthy | dspy/optimize_stages.py:344 |
load_artifact |
software | healthy | dspy/evaluate.py:24 |
heuristic_baseline |
software | healthy | dspy/evaluate.py:32 |
evaluate_predictions |
software | healthy | dspy/evaluate.py:47 |
main |
software | healthy | dspy/evaluate.py:89 |
optimized_predict |
software | dead | dspy/evaluate.py:158 |
coerce_score |
software | healthy | dspy/evaluators/evaluator_utils.py:7 |
extract_json_object |
software | healthy | dspy/evaluators/evaluator_utils.py:21 |
score_to_impl_band |
software | healthy | dspy/evaluators/coder_evaluator.py:71 |
filter_with_impl_scores |
software | healthy | dspy/evaluators/coder_evaluator.py:79 |
get_impl_ground_truth |
software | healthy | dspy/evaluators/coder_evaluator.py:91 |
build_coder_input |
software | healthy | dspy/evaluators/coder_evaluator.py:154 |
_coder_parse_error |
software | healthy | dspy/evaluators/coder_evaluator.py:167 |
parse_coder_output |
software | healthy | dspy/evaluators/coder_evaluator.py:171 |
score_impl_agreement |
software | healthy | dspy/evaluators/coder_evaluator.py:204 |
evaluate_coder |
software | healthy | dspy/evaluators/coder_evaluator.py:242 |
coder_metric |
software | dead | dspy/evaluators/coder_evaluator.py:274 |
run_evaluation |
software | healthy | dspy/evaluators/coder_evaluator.py:301 |
test_signature_output_fields_match_production_rubric |
software | healthy | dspy/evaluators/test_coder_evaluator.py:25 |
test_parse_coder_legacy_minimal_json |
software | healthy | dspy/evaluators/test_coder_evaluator.py:35 |
test_parse_coder_missing_rubric_criterion_handled |
software | healthy | dspy/evaluators/test_coder_evaluator.py:51 |
test_parse_coder_rubric_criterion_out_of_domain |
software | healthy | dspy/evaluators/test_coder_evaluator.py:66 |
test_parse_coder_derives_from_stage_scores_and_preserves_ru… |
software | healthy | dspy/evaluators/test_coder_evaluator.py:82 |
test_parse_coder_preserves_unknown_extra_fields |
software | healthy | dspy/evaluators/test_coder_evaluator.py:111 |
test_parse_coder_malformed_json_returns_sentinel |
software | healthy | dspy/evaluators/test_coder_evaluator.py:127 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
.wavemill-config.json |
software | healthy | .wavemill-config.json |
README.md |
software | healthy | README.md |
CLAUDE.md |
software | healthy | CLAUDE.md |
install.sh |
software | healthy | install.sh |
package.json |
software | healthy | package.json |
.env.example |
software | healthy | .env.example |
LICENSE |
software | healthy | LICENSE |
wavemill-config.schema.json |
software | healthy | wavemill-config.schema.json |
agent_selector.py |
software | healthy | dspy/agent_selector.py |
claude_cli_lm.py |
software | healthy | dspy/claude_cli_lm.py |
prepare_data.py |
software | healthy | dspy/prepare_data.py |
optimize.py |
software | healthy | dspy/optimize.py |
pyproject.toml |
software | healthy | dspy/pyproject.toml |
optimize_stages.py |
software | healthy | dspy/optimize_stages.py |
evaluate.py |
software | healthy | dspy/evaluate.py |
evaluator_utils.py |
software | healthy | dspy/evaluators/evaluator_utils.py |
__init__.py |
software | healthy | dspy/evaluators/__init__.py |
coder_evaluator.py |
software | healthy | dspy/evaluators/coder_evaluator.py |
test_coder_evaluator.py |
software | healthy | dspy/evaluators/test_coder_evaluator.py |
test_planner_evaluator.py |
software | healthy | dspy/evaluators/test_planner_evaluator.py |
data_loader.py |
software | healthy | dspy/evaluators/data_loader.py |
model_router_evaluator.py |
software | healthy | dspy/evaluators/model_router_evaluator.py |
planner_evaluator.py |
software | healthy | dspy/evaluators/planner_evaluator.py |
run_evaluators.py |
software | healthy | dspy/evaluators/run_evaluators.py |
template_utils.py |
software | healthy | dspy/evaluators/template_utils.py |
issue_writer_evaluator.py |
software | healthy | dspy/evaluators/issue_writer_evaluator.py |
reviewer_evaluator.py |
software | healthy | dspy/evaluators/reviewer_evaluator.py |
eval_judge_evaluator.py |
software | healthy | dspy/evaluators/eval_judge_evaluator.py |
llm_caller.py |
software | healthy | dspy/evaluators/llm_caller.py |
README.md |
software | healthy | dspy/artifacts/README.md |
optimized-coder.json |
software | healthy | dspy/artifacts/optimized-coder.json |
optimized-selector.json |
software | healthy | dspy/artifacts/optimized-selector.json |
optimized-planner.json |
software | healthy | dspy/artifacts/optimized-planner.json |
optimized-reviewer.json |
software | healthy | dspy/artifacts/optimized-reviewer.json |
optimized-selector-20260404.json |
software | healthy | dspy/artifacts/optimized-selector-20260404.json |
stage-optimization-summary.json |
software | healthy | dspy/artifacts/stage-optimization-summary.json |
hook-status-verbosity.test.sh |
software | healthy | tests/hook-status-verbosity.test.sh |
check-shell.sh |
software | healthy | tests/check-shell.sh |
lifecycle-scenarios.test.sh |
software | healthy | tests/lifecycle-scenarios.test.sh |
task-selection-worktree-silence.test.sh |
software | healthy | tests/task-selection-worktree-silence.test.sh |
deepseek-launcher.test.sh |
software | healthy | tests/deepseek-launcher.test.sh |
wavemill-window-titles.test.sh |
software | healthy | tests/wavemill-window-titles.test.sh |
ready-log-spam.test.sh |
software | healthy | tests/ready-log-spam.test.sh |
startup-handoff.test.sh |
software | healthy | tests/startup-handoff.test.sh |
planning-validation.test.sh |
software | healthy | tests/planning-validation.test.sh |
wavemill-monitor-command-draining.test.sh |
software | healthy | tests/wavemill-monitor-command-draining.test.sh |
dashboard-refresh.test.sh |
software | healthy | tests/dashboard-refresh.test.sh |
project-context-suggestion.test.sh |
software | healthy | tests/project-context-suggestion.test.sh |
wavemill-usage-tips.test.sh |
software | healthy | tests/wavemill-usage-tips.test.sh |
cli-smoke.test.ts |
software | healthy | tests/cli-smoke.test.ts |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
dspy |
software | healthy | dspy |
evaluators |
software | healthy | dspy/evaluators |
artifacts |
software | healthy | dspy/artifacts |
tests |
software | healthy | tests |
fixtures |
software | healthy | tests/fixtures |
startup |
software | healthy | tests/fixtures/startup |
forbidden-ddl |
software | healthy | tests/fixtures/forbidden-ddl |
lifecycle |
software | healthy | tests/fixtures/lifecycle |
wavemill-router-eval |
software | healthy | tests/fixtures/wavemill-router-eval |
artifacts |
software | healthy | tests/fixtures/wavemill-router-eval/artifacts |
HOK-2002 |
software | healthy | tests/fixtures/wavemill-router-eval/artifacts/HOK-2002 |
HOK-2003 |
software | healthy | tests/fixtures/wavemill-router-eval/artifacts/HOK-2003 |
HOK-2005 |
software | healthy | tests/fixtures/wavemill-router-eval/artifacts/HOK-2005 |
HOK-2001 |
software | healthy | tests/fixtures/wavemill-router-eval/artifacts/HOK-2001 |
migrations |
software | healthy | tests/fixtures/migrations |
fixtures |
software | healthy | fixtures |
plan-queue |
software | healthy | fixtures/plan-queue |
commands |
software | healthy | commands |
docs |
software | healthy | docs |
migrations |
software | healthy | docs/migrations |
shared |
software | healthy | shared |
lib |
software | healthy | shared/lib |
resource-adapters |
software | healthy | shared/lib/resource-adapters |
hooks |
software | healthy | shared/hooks |
schemas |
software | healthy | shared/schemas |
templates |
software | healthy | templates |
codex |
software | healthy | codex |
tests |
software | healthy | codex/tests |
prompts |
software | healthy | codex/prompts |
src |
software | healthy | codex/src |
generate |
software | healthy | codex/src/generate |
commands |
software | healthy | codex/src/commands |
agents |
software | healthy | agents |
tools |
software | healthy | tools |
prompts |
software | healthy | tools/prompts |
skills |
software | healthy | skills |
frontend-design |
software | healthy | skills/frontend-design |
git-workflow-manager |
software | healthy | skills/git-workflow-manager |
document-orchestrator |
software | healthy | skills/document-orchestrator |
linear-task-selector |
software | healthy | skills/linear-task-selector |
frontend-testing |
software | healthy | skills/frontend-testing |
issue-writer |
software | healthy | skills/issue-writer |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
src |
software | healthy | src |
evaluation |
software | healthy | src/evaluation |
adapters |
software | healthy | src/evaluation/adapters |
scorers |
software | healthy | src/evaluation/scorers |
wavemill |
software | healthy | src/evaluation/scorers/wavemill |
claude |
software | healthy | claude |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
AgentSelector |
software | healthy | dspy/agent_selector.py:11 |
_Message |
software | healthy | dspy/claude_cli_lm.py:31 |
_Choice |
software | healthy | dspy/claude_cli_lm.py:37 |
_Usage |
software | healthy | dspy/claude_cli_lm.py:43 |
_Response |
software | healthy | dspy/claude_cli_lm.py:55 |
ClaudeCLI |
software | healthy | dspy/claude_cli_lm.py:65 |
ReviewerAssessor |
software | healthy | dspy/optimize_stages.py:38 |
CoderEvaluatorSignature |
software | healthy | dspy/evaluators/coder_evaluator.py:28 |
EvalExample |
software | healthy | dspy/evaluators/data_loader.py:15 |
PlannerEvaluatorSignature |
software | healthy | dspy/evaluators/planner_evaluator.py:31 |
Migration |
software | healthy | tests/fixtures/migrations/class_style_downgrade_pass.py:1 |
ModelPolicyResolutionError |
software | healthy | shared/lib/model-resolution-policy.ts:ModelPolicyResolution… |
to |
software | healthy | shared/lib/workflow-router.ts:to |
LinearApiError |
software | healthy | shared/lib/linear.ts:LinearApiError |
and |
software | healthy | shared/lib/route-artifact.test.ts:and |
ModelValidationError |
software | healthy | shared/lib/model-registry.ts:ModelValidationError |
ModelSelectorParseError |
software | healthy | shared/lib/model-registry.ts:ModelSelectorParseError |
ModelResolutionError |
software | healthy | shared/lib/model-registry.ts:ModelResolutionError |
and |
software | healthy | shared/lib/challenge-mode.test.ts:and |
changed |
software | healthy | shared/lib/eval-record-builder.test.ts:changed |
LLMQuotaError |
software | healthy | shared/lib/llm-cli.ts:LLMQuotaError |
NoopReviewProgressReporter |
software | healthy | shared/lib/review-progress.ts:NoopReviewProgressReporter |
StderrReviewProgressReporter |
software | healthy | shared/lib/review-progress.ts:StderrReviewProgressReporter |
ContributionValidationError |
software | healthy | shared/lib/hokusai-contribution-schema.ts:ContributionValid… |
EvalValidationError |
software | healthy | shared/lib/eval-persistence.ts:EvalValidationError |
MissingDeepSeekApiKeyError |
software | healthy | shared/lib/deepseek-launcher.ts:MissingDeepSeekApiKeyError |
InvalidPathSegmentError |
software | healthy | shared/lib/deepseek-launcher.ts:InvalidPathSegmentError |
UnsafeStateDirError |
software | healthy | shared/lib/deepseek-launcher.ts:UnsafeStateDirError |
and |
software | healthy | shared/lib/operating-mode.test.ts:and |
TaskDependencyPlannerError |
software | healthy | shared/lib/task-dependency-planner.ts:TaskDependencyPlanner… |
downgrade |
software | healthy | shared/lib/workflow-router.test.ts:downgrade |
StateLockTimeoutError |
software | healthy | shared/lib/state-mutex.ts:StateLockTimeoutError |
StateParseError |
software | healthy | shared/lib/state-mutex.ts:StateParseError |
ClaudeSessionAdapter |
software | healthy | shared/lib/session-adapters.ts:ClaudeSessionAdapter |
CodexSessionAdapter |
software | healthy | shared/lib/session-adapters.ts:CodexSessionAdapter |
| Label | Layer | Status | Path |
|---|---|---|---|
safe_migration.py |
data | healthy | tests/fixtures/forbidden-ddl/safe_migration.py |
class_style_downgrade_pass.py |
data | healthy | tests/fixtures/migrations/class_style_downgrade_pass.py |
not_implemented_bare_downgrade.py |
data | healthy | tests/fixtures/migrations/not_implemented_bare_downgrade.py |
empty_pass_downgrade.py |
data | healthy | tests/fixtures/migrations/empty_pass_downgrade.py |
downgrade_docstring_pass.py |
data | healthy | tests/fixtures/migrations/downgrade_docstring_pass.py |
downgrade_docstring_only.py |
data | healthy | tests/fixtures/migrations/downgrade_docstring_only.py |
invalid_python.py |
data | healthy | tests/fixtures/migrations/invalid_python.py |
malformed_syntax.py |
data | healthy | tests/fixtures/migrations/malformed_syntax.py |
docstring_pass_downgrade.py |
data | healthy | tests/fixtures/migrations/docstring_pass_downgrade.py |
destructive_upgrade.py |
data | healthy | tests/fixtures/migrations/destructive_upgrade.py |
docstring_only_downgrade.py |
data | healthy | tests/fixtures/migrations/docstring_only_downgrade.py |
downgrade_not_implemented_call.py |
data | healthy | tests/fixtures/migrations/downgrade_not_implemented_call.py |
not_a_migration.py |
data | healthy | tests/fixtures/migrations/not_a_migration.py |
upgrade_drops_table.py |
data | healthy | tests/fixtures/migrations/upgrade_drops_table.py |
non_trivial_downgrade.py |
data | healthy | tests/fixtures/migrations/non_trivial_downgrade.py |
downgrade_not_implemented_name.py |
data | healthy | tests/fixtures/migrations/downgrade_not_implemented_name.py |
not_implemented_called_downgrade.py |
data | healthy | tests/fixtures/migrations/not_implemented_called_downgrade.… |
downgrade_pass.py |
data | healthy | tests/fixtures/migrations/downgrade_pass.py |
downgrade_real.py |
data | healthy | tests/fixtures/migrations/downgrade_real.py |
missing_downgrade.py |
data | healthy | tests/fixtures/migrations/missing_downgrade.py |
upgrade_drops_column.py |
data | healthy | tests/fixtures/migrations/upgrade_drops_column.py |
ready-migration-base.ts |
data | healthy | shared/lib/ready-migration-base.ts |
migration_ast.py |
data | healthy | shared/lib/migration_ast.py |
migration-ast.ts |
data | healthy | shared/lib/migration-ast.ts |
ready-migration-base.test.ts |
data | healthy | shared/lib/ready-migration-base.test.ts |
migration-ast.test.ts |
data | healthy | shared/lib/migration-ast.test.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
port:3000 |
network | healthy | tests/wavemill-window-titles.test.sh |
port:11 |
network | healthy | tests/ready-log-spam.test.sh |
port:07 |
network | healthy | tests/ready-log-spam.test.sh |
port:10 |
network | healthy | tests/stage-state.test.sh |
port:05 |
network | healthy | tests/stage-state.test.sh |
port:09 |
network | healthy | tests/stage-state.test.sh |
port:12 |
network | healthy | tests/wavemill-status.test.sh |
port:30 |
network | healthy | tests/wavemill-status.test.sh |
port:18 |
network | healthy | tests/wavemill-status.test.sh |
port:16 |
network | healthy | tests/wavemill-status.test.sh |
port:14 |
network | healthy | tests/launch-ready-phase.test.sh |
port:55 |
network | healthy | tests/launch-ready-phase.test.sh |
port:15 |
network | healthy | shared/lib/wavemill-status.sh |
port:04 |
network | healthy | shared/lib/wavemill-status.sh |
port:23 |
network | healthy | shared/lib/wavemill-eval-report.sh |
port:59 |
network | healthy | shared/lib/wavemill-eval-report.sh |
port:5432 |
network | healthy | templates/migrate-dryrun.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::shared/lib/task-packet-validator.test.ts |
security | healthy | shared/lib/task-packet-validator.test.ts |
auth::shared/lib/eval-schema.test.ts |
security | healthy | shared/lib/eval-schema.test.ts |
auth::shared/lib/task-context-analyzer.test.ts |
security | healthy | shared/lib/task-context-analyzer.test.ts |
auth::shared/lib/hokusai-schema.ts |
security | healthy | shared/lib/hokusai-schema.ts |
auth::shared/lib/challenge-mode.test.ts |
security | healthy | shared/lib/challenge-mode.test.ts |
auth::shared/lib/codebase-context-gatherer.ts |
security | healthy | shared/lib/codebase-context-gatherer.ts |
auth::shared/lib/project-context-generator.ts |
security | healthy | shared/lib/project-context-generator.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
postgres |
data | healthy | README.md |
redis |
data | healthy | dspy/artifacts/optimized-planner.json |
postgresql |
data | healthy | dspy/artifacts/optimized-selector-20260404.json |
mysql |
data | healthy | shared/lib/stage-aware-router.ts |
sqlite |
data | healthy | shared/lib/stage-aware-router.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::aws |
hardware | healthy | shared/lib/task-context-analyzer.ts |
vps::gcp |
hardware | healthy | shared/lib/task-context-analyzer.ts |
vps::azure |
hardware | healthy | shared/lib/task-context-analyzer.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
shell-and-unit |
cicd | healthy | .github/workflows/ci.yml |
check-paths |
cicd | healthy | .github/workflows/ci.yml |
lifecycle-integration |
cicd | healthy | .github/workflows/ci.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-u1xf3blj |
software | healthy | /tmp/repobility-clone-u1xf3blj |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | tests/wavemill-window-titles.test.sh |
| Label | Layer | Status | Path |
|---|---|---|---|
/abs/path/eval-judge.md |
frontend | healthy | shared/lib/prompt-registry.test.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
generic_api_key::tools/smoke-deepseek.test.ts |
security | healthy | tools/smoke-deepseek.test.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::ci |
cicd | healthy | .github/workflows/ci.yml |
This page is publicly accessible at:
https://repobility.com/scan/5a4bb31e-0ec2-4f4c-8659-5ed44cd6411b/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/5a4bb31e-0ec2-4f4c-8659-5ed44cd6411b/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.