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,85 @@
|
||||
{
|
||||
"assessments": {
|
||||
"error_consistency": 56.9
|
||||
},
|
||||
"dimension_notes": {
|
||||
"error_consistency": {
|
||||
"evidence": [
|
||||
"Quality analyzers mix hard failures and silent skips: `TestCoverageDetector.Detect` returns `nil, nil` when `go` is missing and when coverage file is still absent (`internal/quality/plugins/go/analyzers/test_coverage.go:38-41,50-52`), while other paths return wrapped errors.",
|
||||
"Multiple detector paths suppress parse/read failures instead of propagating context (`internal/quality/plugins/go/analyzers/detectors.go:44-47,111-114`).",
|
||||
"Scraper modules differ on partial failure handling: `LocalScraper.Scrape` drops document conversion errors (`internal/scraper/local.go:90-93`), while `WebScraper`/`LocalSearchScraper` accumulate and return aggregated scrape errors (`internal/scraper/web.go:257-261`, `internal/scraper/localsearch.go:141-145`).",
|
||||
"HTTP error context is uneven: external scrapers return bare `HTTP <code>` (`internal/scraper/external/astrodocs.go:86-88`) while local search includes status plus response body excerpt (`internal/scraper/localsearch.go:212-217`).",
|
||||
"Plugin startup uses process-terminating panic on registration failure (`internal/quality/plugins/go/plugin.go:360-363`) instead of the recoverable error style used elsewhere in scanner execution (`internal/quality/scanner.go:109-116`)."
|
||||
],
|
||||
"impact_scope": "subsystem",
|
||||
"fix_scope": "multi_file_refactor",
|
||||
"confidence": "high",
|
||||
"unreported_risk": ""
|
||||
}
|
||||
},
|
||||
"findings": [
|
||||
{
|
||||
"dimension": "error_consistency",
|
||||
"identifier": "quality_detectors_silent_failure_paths",
|
||||
"summary": "Quality detectors silently skip failures in some paths but fail loudly in others",
|
||||
"related_files": [
|
||||
"internal/quality/plugins/go/analyzers/test_coverage.go",
|
||||
"internal/quality/plugins/go/analyzers/detectors.go"
|
||||
],
|
||||
"evidence": [
|
||||
"`TestCoverageDetector.Detect` returns `nil, nil` when `go` is unavailable and when `coverage.out` is missing after test run, making tooling/environment failures indistinguishable from a clean run.",
|
||||
"`LargeFileDetector.Detect` continues on `countLines` error and `GodStructDetector.analyzeFile` returns nil on parse error, suppressing scanner visibility into unreadable/unparseable files."
|
||||
],
|
||||
"suggestion": "Standardize detector contracts: return typed non-fatal diagnostics (or wrapped errors) for tool-missing/parse/read failures, and let scanner decide whether to downgrade to warnings instead of silently returning no findings.",
|
||||
"confidence": "high",
|
||||
"impact_scope": "module",
|
||||
"fix_scope": "multi_file_refactor"
|
||||
},
|
||||
{
|
||||
"dimension": "error_consistency",
|
||||
"identifier": "scraper_partial_failure_contract_drift",
|
||||
"summary": "Scraper implementations disagree on whether per-item errors are surfaced or dropped",
|
||||
"related_files": [
|
||||
"internal/scraper/local.go",
|
||||
"internal/scraper/web.go",
|
||||
"internal/scraper/localsearch.go"
|
||||
],
|
||||
"evidence": [
|
||||
"`LocalScraper.Scrape` ignores `fileToDocument` errors by returning nil in the walk callback and continues without recording failures.",
|
||||
"`WebScraper` and `LocalSearchScraper` collect per-URL failures and return an explicit error when no documents are produced."
|
||||
],
|
||||
"suggestion": "Adopt one partial-failure policy across scrapers (for example: collect bounded per-item errors and return them when output is empty, optionally include warnings when output is partial). Implement this via a shared helper used by local/web/localsearch scrapers.",
|
||||
"confidence": "high",
|
||||
"impact_scope": "subsystem",
|
||||
"fix_scope": "multi_file_refactor"
|
||||
},
|
||||
{
|
||||
"dimension": "error_consistency",
|
||||
"identifier": "http_error_context_inconsistent",
|
||||
"summary": "HTTP failure messages vary from rich context to opaque status-only strings",
|
||||
"related_files": [
|
||||
"internal/scraper/external/astrodocs.go",
|
||||
"internal/scraper/external/cloudflaredocs.go",
|
||||
"internal/scraper/external/dockerdocs.go",
|
||||
"internal/scraper/external/nuxtdocs.go",
|
||||
"internal/scraper/localsearch.go"
|
||||
],
|
||||
"evidence": [
|
||||
"External docs scrapers return generic `HTTP %d` without endpoint or response snippet, reducing traceability during failures.",
|
||||
"Local search includes status code and trimmed response body in error messages, providing significantly better debugging context."
|
||||
],
|
||||
"suggestion": "Create a shared HTTP error formatter for scraper clients that includes URL host/path, status code, and a bounded response-body excerpt; update all external scraper fetchers to use it.",
|
||||
"confidence": "medium",
|
||||
"impact_scope": "subsystem",
|
||||
"fix_scope": "multi_file_refactor"
|
||||
}
|
||||
],
|
||||
"review_quality": {
|
||||
"batch_count": 1,
|
||||
"dimension_coverage": 1.0,
|
||||
"evidence_density": 1.667,
|
||||
"high_score_without_risk": 0,
|
||||
"finding_pressure": 6.604,
|
||||
"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_101740.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
|
||||
- .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
|
||||
- desloppify/desloppify/desloppify/languages/csharp/deps/cli.py
|
||||
- desloppify/desloppify/desloppify/languages/csharp/deps/fallback.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,78 @@
|
||||
{
|
||||
"batch": "Cross-cutting Sweep",
|
||||
"batch_index": 1,
|
||||
"assessments": {
|
||||
"error_consistency": 73.0
|
||||
},
|
||||
"dimension_notes": {
|
||||
"error_consistency": {
|
||||
"evidence": [
|
||||
"Quality analyzers mix hard failures and silent skips: `TestCoverageDetector.Detect` returns `nil, nil` when `go` is missing and when coverage file is still absent (`internal/quality/plugins/go/analyzers/test_coverage.go:38-41,50-52`), while other paths return wrapped errors.",
|
||||
"Multiple detector paths suppress parse/read failures instead of propagating context (`internal/quality/plugins/go/analyzers/detectors.go:44-47,111-114`).",
|
||||
"Scraper modules differ on partial failure handling: `LocalScraper.Scrape` drops document conversion errors (`internal/scraper/local.go:90-93`), while `WebScraper`/`LocalSearchScraper` accumulate and return aggregated scrape errors (`internal/scraper/web.go:257-261`, `internal/scraper/localsearch.go:141-145`).",
|
||||
"HTTP error context is uneven: external scrapers return bare `HTTP <code>` (`internal/scraper/external/astrodocs.go:86-88`) while local search includes status plus response body excerpt (`internal/scraper/localsearch.go:212-217`).",
|
||||
"Plugin startup uses process-terminating panic on registration failure (`internal/quality/plugins/go/plugin.go:360-363`) instead of the recoverable error style used elsewhere in scanner execution (`internal/quality/scanner.go:109-116`)."
|
||||
],
|
||||
"impact_scope": "subsystem",
|
||||
"fix_scope": "multi_file_refactor",
|
||||
"confidence": "high"
|
||||
}
|
||||
},
|
||||
"findings": [
|
||||
{
|
||||
"dimension": "error_consistency",
|
||||
"identifier": "quality_detectors_silent_failure_paths",
|
||||
"summary": "Quality detectors silently skip failures in some paths but fail loudly in others",
|
||||
"related_files": [
|
||||
"internal/quality/plugins/go/analyzers/test_coverage.go",
|
||||
"internal/quality/plugins/go/analyzers/detectors.go"
|
||||
],
|
||||
"evidence": [
|
||||
"`TestCoverageDetector.Detect` returns `nil, nil` when `go` is unavailable and when `coverage.out` is missing after test run, making tooling/environment failures indistinguishable from a clean run.",
|
||||
"`LargeFileDetector.Detect` continues on `countLines` error and `GodStructDetector.analyzeFile` returns nil on parse error, suppressing scanner visibility into unreadable/unparseable files."
|
||||
],
|
||||
"suggestion": "Standardize detector contracts: return typed non-fatal diagnostics (or wrapped errors) for tool-missing/parse/read failures, and let scanner decide whether to downgrade to warnings instead of silently returning no findings.",
|
||||
"confidence": "high",
|
||||
"impact_scope": "module",
|
||||
"fix_scope": "multi_file_refactor"
|
||||
},
|
||||
{
|
||||
"dimension": "error_consistency",
|
||||
"identifier": "scraper_partial_failure_contract_drift",
|
||||
"summary": "Scraper implementations disagree on whether per-item errors are surfaced or dropped",
|
||||
"related_files": [
|
||||
"internal/scraper/local.go",
|
||||
"internal/scraper/web.go",
|
||||
"internal/scraper/localsearch.go"
|
||||
],
|
||||
"evidence": [
|
||||
"`LocalScraper.Scrape` ignores `fileToDocument` errors by returning nil in the walk callback and continues without recording failures.",
|
||||
"`WebScraper` and `LocalSearchScraper` collect per-URL failures and return an explicit error when no documents are produced."
|
||||
],
|
||||
"suggestion": "Adopt one partial-failure policy across scrapers (for example: collect bounded per-item errors and return them when output is empty, optionally include warnings when output is partial). Implement this via a shared helper used by local/web/localsearch scrapers.",
|
||||
"confidence": "high",
|
||||
"impact_scope": "subsystem",
|
||||
"fix_scope": "multi_file_refactor"
|
||||
},
|
||||
{
|
||||
"dimension": "error_consistency",
|
||||
"identifier": "http_error_context_inconsistent",
|
||||
"summary": "HTTP failure messages vary from rich context to opaque status-only strings",
|
||||
"related_files": [
|
||||
"internal/scraper/external/astrodocs.go",
|
||||
"internal/scraper/external/cloudflaredocs.go",
|
||||
"internal/scraper/external/dockerdocs.go",
|
||||
"internal/scraper/external/nuxtdocs.go",
|
||||
"internal/scraper/localsearch.go"
|
||||
],
|
||||
"evidence": [
|
||||
"External docs scrapers return generic `HTTP %d` without endpoint or response snippet, reducing traceability during failures.",
|
||||
"Local search includes status code and trimmed response body in error messages, providing significantly better debugging context."
|
||||
],
|
||||
"suggestion": "Create a shared HTTP error formatter for scraper clients that includes URL host/path, status code, and a bounded response-body excerpt; update all external scraper fetchers to use it.",
|
||||
"confidence": "medium",
|
||||
"impact_scope": "subsystem",
|
||||
"fix_scope": "multi_file_refactor"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user