mirror of
https://github.com/Dvorinka/Devour.git
synced 2026-06-03 20:13:03 +00:00
i dont like commits
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
{
|
||||
"assessments": {
|
||||
"error_consistency": 47.2
|
||||
},
|
||||
"dimension_notes": {
|
||||
"error_consistency": {
|
||||
"evidence": [
|
||||
"Multiple analyzers silently suppress parse/read failures instead of returning contextual errors (internal/quality/plugins/go/analyzers/detectors.go:112-114, 240-245; internal/quality/plugins/go/analyzers/test_coverage.go:211-214).",
|
||||
"Scraper entrypoints mix contextual wrapping and raw passthrough in similar boundary operations (internal/scraper/openapi.go:43-50 returns raw err; internal/scraper/github.go:29-37 returns raw err; internal/scraper/external/nuxtdocs.go:39-45 wraps with %w).",
|
||||
"Several paths collapse structured errors into joined strings, reducing traceability and unwrapping (internal/scraper/web.go:259; internal/scraper/localsearch.go:143; cmd/ask.go:320,340).",
|
||||
"Some runtime errors are dropped and processing continues without durable signal (internal/server/server.go:213 ignores encode error; internal/scraper/local.go:90-93 drops file parse errors; internal/search/engine.go:134-137 skips parse failures)."
|
||||
],
|
||||
"impact_scope": "subsystem",
|
||||
"fix_scope": "multi_file_refactor",
|
||||
"confidence": "high",
|
||||
"unreported_risk": ""
|
||||
}
|
||||
},
|
||||
"findings": [
|
||||
{
|
||||
"dimension": "error_consistency",
|
||||
"identifier": "silent_parse_failures_in_analyzers",
|
||||
"summary": "Analyzer parse/read errors are silently converted to no findings.",
|
||||
"related_files": [
|
||||
"internal/quality/plugins/go/analyzers/detectors.go",
|
||||
"internal/quality/plugins/go/analyzers/test_coverage.go",
|
||||
"internal/quality/scanner.go"
|
||||
],
|
||||
"evidence": [
|
||||
"GodStructDetector.analyzeFile returns nil on parser.ParseFile error (detectors.go:112-114).",
|
||||
"DebugLogDetector.analyzeFile also returns nil on parse failure (detectors.go:240-241).",
|
||||
"UntestedFuncDetector returns (nil, nil) when coverage.out read fails (test_coverage.go:211-214), making failure indistinguishable from success.",
|
||||
"Scanner loop logs detector failure and continues (scanner.go:77-79), so detector internals that swallow errors become invisible."
|
||||
],
|
||||
"suggestion": "Standardize detector contract: return wrapped errors for parse/read failures (`fmt.Errorf(\"parse %s: %w\", path, err)`) and let scanner classify them as detector execution errors instead of empty findings.",
|
||||
"confidence": "high",
|
||||
"impact_scope": "module",
|
||||
"fix_scope": "multi_file_refactor"
|
||||
},
|
||||
{
|
||||
"dimension": "error_consistency",
|
||||
"identifier": "mixed_error_wrapping_at_scraper_boundaries",
|
||||
"summary": "Scrapers mix raw error passthrough with contextual wrapping.",
|
||||
"related_files": [
|
||||
"internal/scraper/openapi.go",
|
||||
"internal/scraper/github.go",
|
||||
"internal/scraper/external/nuxtdocs.go"
|
||||
],
|
||||
"evidence": [
|
||||
"OpenAPI scraper returns raw `err` from readSpec/parseOpenAPISpec (openapi.go:43-50).",
|
||||
"GitHub scraper returns raw resolveRepo/MkdirTemp errors (github.go:29-37).",
|
||||
"Nuxt external scraper wraps fetch/parse failures with operation context and `%w` (nuxtdocs.go:39-45)."
|
||||
],
|
||||
"suggestion": "Adopt one boundary rule for scraper packages: every external I/O or parse failure should be wrapped with operation context and `%w` before returning.",
|
||||
"confidence": "high",
|
||||
"impact_scope": "subsystem",
|
||||
"fix_scope": "multi_file_refactor"
|
||||
},
|
||||
{
|
||||
"dimension": "error_consistency",
|
||||
"identifier": "string_aggregated_errors_lose_causal_chain",
|
||||
"summary": "Aggregated scrape failures are flattened to strings, losing unwrap support.",
|
||||
"related_files": [
|
||||
"internal/scraper/web.go",
|
||||
"internal/scraper/localsearch.go",
|
||||
"cmd/ask.go"
|
||||
],
|
||||
"evidence": [
|
||||
"Web scraper returns `fmt.Errorf(\"web scrape failed: %s\", strings.Join(scrapeErrors, \"; \"))` (web.go:259).",
|
||||
"Local search scraper similarly returns joined string error text (localsearch.go:143).",
|
||||
"ask command accumulates URL/term errors as formatted strings (ask.go:320,340), not typed/wrapped errors."
|
||||
],
|
||||
"suggestion": "Store and return structured error sets (e.g., `[]error` wrapped via a multi-error type) and only stringify at CLI presentation boundaries.",
|
||||
"confidence": "medium",
|
||||
"impact_scope": "subsystem",
|
||||
"fix_scope": "architectural_change"
|
||||
},
|
||||
{
|
||||
"dimension": "error_consistency",
|
||||
"identifier": "error_drop_and_continue_without_signal",
|
||||
"summary": "Some failures are intentionally ignored with no traceable signal.",
|
||||
"related_files": [
|
||||
"internal/server/server.go",
|
||||
"internal/scraper/local.go",
|
||||
"internal/search/engine.go"
|
||||
],
|
||||
"evidence": [
|
||||
"Server ignores encode error when writing parse-error RPC response (`_ = out.Encode(...)`) (server.go:213).",
|
||||
"Local scraper drops file conversion errors by returning nil in walk callback (local.go:90-93).",
|
||||
"Search engine skips parseDocFile errors with `continue` and no reporting (engine.go:134-137)."
|
||||
],
|
||||
"suggestion": "When continuing after non-fatal errors, emit a consistent warning/collector path (counter + sampled log + optional returned diagnostics) so operators can detect degraded runs.",
|
||||
"confidence": "high",
|
||||
"impact_scope": "subsystem",
|
||||
"fix_scope": "multi_file_refactor"
|
||||
}
|
||||
],
|
||||
"review_quality": {
|
||||
"batch_count": 1,
|
||||
"dimension_coverage": 1.0,
|
||||
"evidence_density": 1.0,
|
||||
"high_score_without_risk": 0,
|
||||
"finding_pressure": 9.74,
|
||||
"dimensions_with_findings": 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,125 @@
|
||||
You are a focused subagent reviewer for a single holistic investigation batch.
|
||||
|
||||
Repository root: /home/tdvorak/Desktop/PROG_projekty/GOLANG/Devour
|
||||
Immutable packet: /home/tdvorak/Desktop/PROG_projekty/GOLANG/Devour/.desloppify/review_packets/holistic_packet_20260224_103046.json
|
||||
Batch index: 1
|
||||
Batch name: Cross-cutting Sweep
|
||||
Batch dimensions: error_consistency
|
||||
Batch rationale: selected dimensions had no direct batch mapping; review representative cross-cutting files
|
||||
|
||||
Files assigned:
|
||||
- internal/quality/enhanced_types.go
|
||||
- internal/quality/scoring_test.go
|
||||
- internal/quality/types.go
|
||||
- pkg/rustdocs/parser_test.go
|
||||
- internal/config/config.go
|
||||
- cmd/scrape.go
|
||||
- internal/quality/plugins/go/analyzers/detectors.go
|
||||
- internal/quality/plugins/go/analyzers/advanced.go
|
||||
- internal/scraper/web.go
|
||||
- internal/quality/plugins/go/plugin.go
|
||||
- internal/scheduler/scheduler.go
|
||||
- cmd/push.go
|
||||
- internal/scraper/localsearch_test.go
|
||||
- cmd/ask.go
|
||||
- internal/ai/openai.go
|
||||
- internal/server/server.go
|
||||
- cmd/get.go
|
||||
- internal/quality/analyzers/controlflow.go
|
||||
- internal/vector/store.go
|
||||
- examples/demo_scrapers.go
|
||||
- internal/indexer/indexer.go
|
||||
- internal/scraper/openapi.go
|
||||
- pkg/pythondocs/parser.go
|
||||
- cmd/get_test.go
|
||||
- internal/quality/scanner_test.go
|
||||
- internal/scraper/localsearch.go
|
||||
- cmd/serve.go
|
||||
- internal/scraper/external/nuxtdocs.go
|
||||
- internal/quality/plugins/go/analyzers/test_coverage.go
|
||||
- internal/quality/scanner.go
|
||||
- internal/search/engine.go
|
||||
- internal/scraper/github.go
|
||||
- internal/scraper/external/astrodocs.go
|
||||
- internal/scraper/external/cloudflaredocs.go
|
||||
- internal/scraper/external/dockerdocs.go
|
||||
- internal/quality/plugins/go/fixers/advanced_fixers.go
|
||||
- cleanup_unused.go
|
||||
- main.go
|
||||
- cmd/ask_test.go
|
||||
- cmd/auto.go
|
||||
- internal/scraper/local.go
|
||||
- internal/scraper/local_test.go
|
||||
- README.md
|
||||
- .desloppify/config.json
|
||||
- .desloppify/query.json
|
||||
- .desloppify/subagents/runs/20260223_100953/prompts/batch-1.md
|
||||
- .desloppify/subagents/runs/20260223_100953/prompts/batch-2.md
|
||||
- .desloppify/subagents/runs/20260223_100953/prompts/batch-3.md
|
||||
- .desloppify/subagents/runs/20260223_100953/prompts/batch-4.md
|
||||
- .desloppify/subagents/runs/20260223_100953/prompts/batch-5.md
|
||||
- .desloppify/subagents/runs/20260223_100953/prompts/batch-6.md
|
||||
- .desloppify/subagents/runs/20260224_101201/prompts/batch-1.md
|
||||
- .desloppify/subagents/runs/20260224_101201/prompts/batch-2.md
|
||||
- .desloppify/subagents/runs/20260224_101201/prompts/batch-5.md
|
||||
- .desloppify/subagents/runs/20260224_101740/prompts/batch-1.md
|
||||
- .github/workflows/ci.yml
|
||||
- AGENTS.md
|
||||
- cmd/devour_enhanced.py
|
||||
- cmd/devour_enhanced_fixed.py
|
||||
- cmd/devour_enhanced_v2.py
|
||||
- desloppify/desloppify/desloppify/app/commands/_show_terminal.py
|
||||
- desloppify/desloppify/desloppify/app/commands/fix/apply_flow.py
|
||||
- desloppify/desloppify/desloppify/app/commands/issues_cmd.py
|
||||
- desloppify/desloppify/desloppify/app/commands/next.py
|
||||
- desloppify/desloppify/desloppify/app/commands/resolve/selection.py
|
||||
- desloppify/desloppify/desloppify/app/commands/scan/scan_reporting_llm.py
|
||||
- desloppify/desloppify/desloppify/app/commands/status_parts/render.py
|
||||
- desloppify/desloppify/desloppify/app/output/scorecard_parts/projection.py
|
||||
- desloppify/desloppify/desloppify/engine/detectors/security/rules.py
|
||||
- desloppify/desloppify/desloppify/engine/scoring_internal/subjective/core.py
|
||||
- desloppify/desloppify/desloppify/engine/state_internal/resolution.py
|
||||
- desloppify/desloppify/desloppify/intelligence/review/__init__.py
|
||||
- desloppify/desloppify/desloppify/intelligence/review/context_internal/structure.py
|
||||
- desloppify/desloppify/desloppify/intelligence/review/dimensions/data.py
|
||||
- desloppify/desloppify/desloppify/intelligence/review/importing/holistic.py
|
||||
- desloppify/desloppify/desloppify/languages/_shared/phases_common.py
|
||||
- desloppify/desloppify/desloppify/languages/_shared/review_data/dimensions.json
|
||||
- desloppify/desloppify/desloppify/languages/_shared/scaffold_detect_commands.py
|
||||
- desloppify/desloppify/desloppify/languages/csharp/_parse_helpers.py
|
||||
- desloppify/desloppify/desloppify/languages/csharp/commands.py
|
||||
|
||||
Task requirements:
|
||||
1. Read the immutable packet and follow `system_prompt` constraints exactly.
|
||||
2. Evaluate ONLY listed files and ONLY listed dimensions for this batch.
|
||||
3. Return 0-10 high-quality findings for this batch (empty array allowed).
|
||||
4. Score/finding consistency is required: broader or more severe findings MUST lower dimension scores.
|
||||
5. Every finding must include `related_files` with at least 2 files when possible.
|
||||
6. Every finding must include `impact_scope` and `fix_scope`.
|
||||
7. Every scored dimension MUST include dimension_notes with concrete evidence.
|
||||
8. If a dimension score is >85, include `unreported_risk` in dimension_notes.
|
||||
9. Use exactly one decimal place for every assessment and abstraction sub-axis score.
|
||||
10. Do not edit repository files.
|
||||
11. Return ONLY valid JSON, no markdown fences.
|
||||
|
||||
Scope enums:
|
||||
- impact_scope: "local" | "module" | "subsystem" | "codebase"
|
||||
- fix_scope: "single_edit" | "multi_file_refactor" | "architectural_change"
|
||||
|
||||
Output schema:
|
||||
{
|
||||
"batch": "Cross-cutting Sweep",
|
||||
"batch_index": 1,
|
||||
"assessments": {"<dimension>": <0-100 with one decimal place>},
|
||||
"dimension_notes": {
|
||||
"<dimension>": {
|
||||
"evidence": ["specific code observations"],
|
||||
"impact_scope": "local|module|subsystem|codebase",
|
||||
"fix_scope": "single_edit|multi_file_refactor|architectural_change",
|
||||
"confidence": "high|medium|low",
|
||||
"unreported_risk": "required when score >85",
|
||||
"sub_axes": {"abstraction_leverage": 0-100 with one decimal place, "indirection_cost": 0-100 with one decimal place, "interface_honesty": 0-100 with one decimal place} // required for abstraction_fitness when evidence supports it
|
||||
}
|
||||
},
|
||||
"findings": []
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
{
|
||||
"batch": "Cross-cutting Sweep",
|
||||
"batch_index": 1,
|
||||
"assessments": {
|
||||
"error_consistency": 71.0
|
||||
},
|
||||
"dimension_notes": {
|
||||
"error_consistency": {
|
||||
"evidence": [
|
||||
"Multiple analyzers silently suppress parse/read failures instead of returning contextual errors (internal/quality/plugins/go/analyzers/detectors.go:112-114, 240-245; internal/quality/plugins/go/analyzers/test_coverage.go:211-214).",
|
||||
"Scraper entrypoints mix contextual wrapping and raw passthrough in similar boundary operations (internal/scraper/openapi.go:43-50 returns raw err; internal/scraper/github.go:29-37 returns raw err; internal/scraper/external/nuxtdocs.go:39-45 wraps with %w).",
|
||||
"Several paths collapse structured errors into joined strings, reducing traceability and unwrapping (internal/scraper/web.go:259; internal/scraper/localsearch.go:143; cmd/ask.go:320,340).",
|
||||
"Some runtime errors are dropped and processing continues without durable signal (internal/server/server.go:213 ignores encode error; internal/scraper/local.go:90-93 drops file parse errors; internal/search/engine.go:134-137 skips parse failures)."
|
||||
],
|
||||
"impact_scope": "subsystem",
|
||||
"fix_scope": "multi_file_refactor",
|
||||
"confidence": "high"
|
||||
}
|
||||
},
|
||||
"findings": [
|
||||
{
|
||||
"dimension": "error_consistency",
|
||||
"identifier": "silent_parse_failures_in_analyzers",
|
||||
"summary": "Analyzer parse/read errors are silently converted to no findings.",
|
||||
"related_files": [
|
||||
"internal/quality/plugins/go/analyzers/detectors.go",
|
||||
"internal/quality/plugins/go/analyzers/test_coverage.go",
|
||||
"internal/quality/scanner.go"
|
||||
],
|
||||
"evidence": [
|
||||
"GodStructDetector.analyzeFile returns nil on parser.ParseFile error (detectors.go:112-114).",
|
||||
"DebugLogDetector.analyzeFile also returns nil on parse failure (detectors.go:240-241).",
|
||||
"UntestedFuncDetector returns (nil, nil) when coverage.out read fails (test_coverage.go:211-214), making failure indistinguishable from success.",
|
||||
"Scanner loop logs detector failure and continues (scanner.go:77-79), so detector internals that swallow errors become invisible."
|
||||
],
|
||||
"suggestion": "Standardize detector contract: return wrapped errors for parse/read failures (`fmt.Errorf(\"parse %s: %w\", path, err)`) and let scanner classify them as detector execution errors instead of empty findings.",
|
||||
"confidence": "high",
|
||||
"impact_scope": "module",
|
||||
"fix_scope": "multi_file_refactor"
|
||||
},
|
||||
{
|
||||
"dimension": "error_consistency",
|
||||
"identifier": "mixed_error_wrapping_at_scraper_boundaries",
|
||||
"summary": "Scrapers mix raw error passthrough with contextual wrapping.",
|
||||
"related_files": [
|
||||
"internal/scraper/openapi.go",
|
||||
"internal/scraper/github.go",
|
||||
"internal/scraper/external/nuxtdocs.go"
|
||||
],
|
||||
"evidence": [
|
||||
"OpenAPI scraper returns raw `err` from readSpec/parseOpenAPISpec (openapi.go:43-50).",
|
||||
"GitHub scraper returns raw resolveRepo/MkdirTemp errors (github.go:29-37).",
|
||||
"Nuxt external scraper wraps fetch/parse failures with operation context and `%w` (nuxtdocs.go:39-45)."
|
||||
],
|
||||
"suggestion": "Adopt one boundary rule for scraper packages: every external I/O or parse failure should be wrapped with operation context and `%w` before returning.",
|
||||
"confidence": "high",
|
||||
"impact_scope": "subsystem",
|
||||
"fix_scope": "multi_file_refactor"
|
||||
},
|
||||
{
|
||||
"dimension": "error_consistency",
|
||||
"identifier": "string_aggregated_errors_lose_causal_chain",
|
||||
"summary": "Aggregated scrape failures are flattened to strings, losing unwrap support.",
|
||||
"related_files": [
|
||||
"internal/scraper/web.go",
|
||||
"internal/scraper/localsearch.go",
|
||||
"cmd/ask.go"
|
||||
],
|
||||
"evidence": [
|
||||
"Web scraper returns `fmt.Errorf(\"web scrape failed: %s\", strings.Join(scrapeErrors, \"; \"))` (web.go:259).",
|
||||
"Local search scraper similarly returns joined string error text (localsearch.go:143).",
|
||||
"ask command accumulates URL/term errors as formatted strings (ask.go:320,340), not typed/wrapped errors."
|
||||
],
|
||||
"suggestion": "Store and return structured error sets (e.g., `[]error` wrapped via a multi-error type) and only stringify at CLI presentation boundaries.",
|
||||
"confidence": "medium",
|
||||
"impact_scope": "subsystem",
|
||||
"fix_scope": "architectural_change"
|
||||
},
|
||||
{
|
||||
"dimension": "error_consistency",
|
||||
"identifier": "error_drop_and_continue_without_signal",
|
||||
"summary": "Some failures are intentionally ignored with no traceable signal.",
|
||||
"related_files": [
|
||||
"internal/server/server.go",
|
||||
"internal/scraper/local.go",
|
||||
"internal/search/engine.go"
|
||||
],
|
||||
"evidence": [
|
||||
"Server ignores encode error when writing parse-error RPC response (`_ = out.Encode(...)`) (server.go:213).",
|
||||
"Local scraper drops file conversion errors by returning nil in walk callback (local.go:90-93).",
|
||||
"Search engine skips parseDocFile errors with `continue` and no reporting (engine.go:134-137)."
|
||||
],
|
||||
"suggestion": "When continuing after non-fatal errors, emit a consistent warning/collector path (counter + sampled log + optional returned diagnostics) so operators can detect degraded runs.",
|
||||
"confidence": "high",
|
||||
"impact_scope": "subsystem",
|
||||
"fix_scope": "multi_file_refactor"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user