mirror of
https://github.com/Dvorinka/Devour.git
synced 2026-06-05 04:53:02 +00:00
i dont like commits
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
{
|
||||
"assessments": {
|
||||
"error_consistency": 52.1
|
||||
},
|
||||
"dimension_notes": {
|
||||
"error_consistency": {
|
||||
"evidence": [
|
||||
"HTTP RPC path collapses response write failures to generic `http.Error(..., \"rpc write error\", ...)`, while stdio path returns wrapped encode errors (`encode parse-error response: %w`) in the same server module.",
|
||||
"Batch scrape aggregates per-source failures but returns only `one or more sources failed`, while other command paths return joined/wrapped causes (`errors.Join(...)` in ask flow).",
|
||||
"Quality scan loop logs detector failures and continues, while detector implementations mix per-file silent skips (`continue` on file read/count errors) and fail-fast returns for parse errors, yielding inconsistent failure visibility.",
|
||||
"Ask fallback persistence/reindex errors are explicitly ignored (`_, _ = storage.SaveDocuments`, `_, _ = engine.Rebuild`) whereas push/scrape treat analogous save/reindex failures as returned errors."
|
||||
],
|
||||
"impact_scope": "subsystem",
|
||||
"fix_scope": "multi_file_refactor",
|
||||
"confidence": "high",
|
||||
"unreported_risk": ""
|
||||
}
|
||||
},
|
||||
"findings": [
|
||||
{
|
||||
"dimension": "error_consistency",
|
||||
"identifier": "rpc_transport_error_detail_divergence",
|
||||
"summary": "HTTP and stdio RPC transports expose write/encode failures with different fidelity.",
|
||||
"related_files": [
|
||||
"internal/server/server.go",
|
||||
"cmd/serve.go"
|
||||
],
|
||||
"evidence": [
|
||||
"In `internal/server/server.go`, HTTP `/rpc` writes generic `rpc write error` on writeRPC failure (lines ~132-140), dropping underlying encode context.",
|
||||
"In the same file, stdio transport returns wrapped encode errors (line ~218) and raw encode failures (line ~224), preserving actionable context.",
|
||||
"`cmd/serve.go` uses one server abstraction for both modes, so callers see transport-dependent error behavior for equivalent failure classes."
|
||||
],
|
||||
"suggestion": "Unify transport error contract: introduce a shared helper that classifies encode/write failures and records structured context (operation, transport, cause). Keep client-facing RPC payload stable, but log/return wrapped internal causes consistently for both HTTP and stdio.",
|
||||
"confidence": "high",
|
||||
"impact_scope": "module",
|
||||
"fix_scope": "multi_file_refactor"
|
||||
},
|
||||
{
|
||||
"dimension": "error_consistency",
|
||||
"identifier": "batch_scrape_error_cause_loss",
|
||||
"summary": "Batch scrape returns a generic terminal error after printing detailed source failures.",
|
||||
"related_files": [
|
||||
"cmd/scrape.go",
|
||||
"cmd/ask.go"
|
||||
],
|
||||
"evidence": [
|
||||
"`cmd/scrape.go` records per-source failures, prints each error, then returns `one or more sources failed` (lines ~187-207), losing machine-readable causes.",
|
||||
"`cmd/ask.go` returns joined upstream causes when retrieval fails (`errors.Join(fetchErrors...)`, lines ~149-154), preserving aggregate failure detail.",
|
||||
"This creates inconsistent caller behavior across commands: some flows expose causal chains, others require scraping stdout logs."
|
||||
],
|
||||
"suggestion": "Accumulate per-source errors in `scrapeFromConfig` and return `fmt.Errorf(\"...: %w\", errors.Join(errs...))` while still printing the summary; this keeps CLI UX and provides consistent programmatic error chains.",
|
||||
"confidence": "high",
|
||||
"impact_scope": "module",
|
||||
"fix_scope": "single_edit"
|
||||
},
|
||||
{
|
||||
"dimension": "error_consistency",
|
||||
"identifier": "quality_scan_detector_failure_semantics_mixed",
|
||||
"summary": "Quality scanning mixes swallowed detector failures with fail-fast detector behavior.",
|
||||
"related_files": [
|
||||
"internal/quality/scanner.go",
|
||||
"internal/quality/plugins/go/analyzers/detectors.go",
|
||||
"internal/quality/plugins/go/analyzers/advanced.go"
|
||||
],
|
||||
"evidence": [
|
||||
"`internal/quality/scanner.go` logs detector errors and continues (lines ~76-79), so scan succeeds even when detectors fail.",
|
||||
"`detectors.go` has inconsistent per-file policy: `LargeFileDetector` silently `continue`s on count errors (lines ~44-47), while `GodStructDetector` returns wrapped errors and aborts detector run (lines ~102-105).",
|
||||
"This produces non-uniform failure propagation: some analysis gaps are silent, some are surfaced, and scanner-level behavior masks both as successful scans."
|
||||
],
|
||||
"suggestion": "Define a uniform detector error policy (e.g., collect per-file errors + thresholded hard-fail) and enforce it via shared helper APIs so scanner output includes a structured `partial_failures` section instead of ad-hoc continue/abort choices.",
|
||||
"confidence": "high",
|
||||
"impact_scope": "subsystem",
|
||||
"fix_scope": "architectural_change"
|
||||
},
|
||||
{
|
||||
"dimension": "error_consistency",
|
||||
"identifier": "ask_fallback_ignores_persistence_errors",
|
||||
"summary": "Ask fallback suppresses save/reindex failures that analogous command flows propagate.",
|
||||
"related_files": [
|
||||
"cmd/ask.go",
|
||||
"cmd/push.go",
|
||||
"cmd/scrape.go"
|
||||
],
|
||||
"evidence": [
|
||||
"`cmd/ask.go` ignores persistence/index maintenance errors with blank identifier assignments (lines ~369-377).",
|
||||
"`cmd/push.go` and `cmd/scrape.go` both return save/reindex failures (`save docs failed`, `reindex failed`, `reindex after scrape...`) instead of suppressing them.",
|
||||
"Equivalent storage/index boundary failures therefore produce different observability depending on command path."
|
||||
],
|
||||
"suggestion": "Handle ask fallback persistence/reindex errors explicitly: either return them when they invalidate guarantees, or attach them to response metadata/logged warnings with a consistent typed error category used across commands.",
|
||||
"confidence": "high",
|
||||
"impact_scope": "module",
|
||||
"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": 8.88,
|
||||
"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_104658.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,96 @@
|
||||
{
|
||||
"batch": "Cross-cutting Sweep",
|
||||
"batch_index": 1,
|
||||
"assessments": {
|
||||
"error_consistency": 74.0
|
||||
},
|
||||
"dimension_notes": {
|
||||
"error_consistency": {
|
||||
"evidence": [
|
||||
"HTTP RPC path collapses response write failures to generic `http.Error(..., \"rpc write error\", ...)`, while stdio path returns wrapped encode errors (`encode parse-error response: %w`) in the same server module.",
|
||||
"Batch scrape aggregates per-source failures but returns only `one or more sources failed`, while other command paths return joined/wrapped causes (`errors.Join(...)` in ask flow).",
|
||||
"Quality scan loop logs detector failures and continues, while detector implementations mix per-file silent skips (`continue` on file read/count errors) and fail-fast returns for parse errors, yielding inconsistent failure visibility.",
|
||||
"Ask fallback persistence/reindex errors are explicitly ignored (`_, _ = storage.SaveDocuments`, `_, _ = engine.Rebuild`) whereas push/scrape treat analogous save/reindex failures as returned errors."
|
||||
],
|
||||
"impact_scope": "subsystem",
|
||||
"fix_scope": "multi_file_refactor",
|
||||
"confidence": "high"
|
||||
}
|
||||
},
|
||||
"findings": [
|
||||
{
|
||||
"dimension": "error_consistency",
|
||||
"identifier": "rpc_transport_error_detail_divergence",
|
||||
"summary": "HTTP and stdio RPC transports expose write/encode failures with different fidelity.",
|
||||
"related_files": [
|
||||
"internal/server/server.go",
|
||||
"cmd/serve.go"
|
||||
],
|
||||
"evidence": [
|
||||
"In `internal/server/server.go`, HTTP `/rpc` writes generic `rpc write error` on writeRPC failure (lines ~132-140), dropping underlying encode context.",
|
||||
"In the same file, stdio transport returns wrapped encode errors (line ~218) and raw encode failures (line ~224), preserving actionable context.",
|
||||
"`cmd/serve.go` uses one server abstraction for both modes, so callers see transport-dependent error behavior for equivalent failure classes."
|
||||
],
|
||||
"suggestion": "Unify transport error contract: introduce a shared helper that classifies encode/write failures and records structured context (operation, transport, cause). Keep client-facing RPC payload stable, but log/return wrapped internal causes consistently for both HTTP and stdio.",
|
||||
"confidence": "high",
|
||||
"impact_scope": "module",
|
||||
"fix_scope": "multi_file_refactor"
|
||||
},
|
||||
{
|
||||
"dimension": "error_consistency",
|
||||
"identifier": "batch_scrape_error_cause_loss",
|
||||
"summary": "Batch scrape returns a generic terminal error after printing detailed source failures.",
|
||||
"related_files": [
|
||||
"cmd/scrape.go",
|
||||
"cmd/ask.go"
|
||||
],
|
||||
"evidence": [
|
||||
"`cmd/scrape.go` records per-source failures, prints each error, then returns `one or more sources failed` (lines ~187-207), losing machine-readable causes.",
|
||||
"`cmd/ask.go` returns joined upstream causes when retrieval fails (`errors.Join(fetchErrors...)`, lines ~149-154), preserving aggregate failure detail.",
|
||||
"This creates inconsistent caller behavior across commands: some flows expose causal chains, others require scraping stdout logs."
|
||||
],
|
||||
"suggestion": "Accumulate per-source errors in `scrapeFromConfig` and return `fmt.Errorf(\"...: %w\", errors.Join(errs...))` while still printing the summary; this keeps CLI UX and provides consistent programmatic error chains.",
|
||||
"confidence": "high",
|
||||
"impact_scope": "module",
|
||||
"fix_scope": "single_edit"
|
||||
},
|
||||
{
|
||||
"dimension": "error_consistency",
|
||||
"identifier": "quality_scan_detector_failure_semantics_mixed",
|
||||
"summary": "Quality scanning mixes swallowed detector failures with fail-fast detector behavior.",
|
||||
"related_files": [
|
||||
"internal/quality/scanner.go",
|
||||
"internal/quality/plugins/go/analyzers/detectors.go",
|
||||
"internal/quality/plugins/go/analyzers/advanced.go"
|
||||
],
|
||||
"evidence": [
|
||||
"`internal/quality/scanner.go` logs detector errors and continues (lines ~76-79), so scan succeeds even when detectors fail.",
|
||||
"`detectors.go` has inconsistent per-file policy: `LargeFileDetector` silently `continue`s on count errors (lines ~44-47), while `GodStructDetector` returns wrapped errors and aborts detector run (lines ~102-105).",
|
||||
"This produces non-uniform failure propagation: some analysis gaps are silent, some are surfaced, and scanner-level behavior masks both as successful scans."
|
||||
],
|
||||
"suggestion": "Define a uniform detector error policy (e.g., collect per-file errors + thresholded hard-fail) and enforce it via shared helper APIs so scanner output includes a structured `partial_failures` section instead of ad-hoc continue/abort choices.",
|
||||
"confidence": "high",
|
||||
"impact_scope": "subsystem",
|
||||
"fix_scope": "architectural_change"
|
||||
},
|
||||
{
|
||||
"dimension": "error_consistency",
|
||||
"identifier": "ask_fallback_ignores_persistence_errors",
|
||||
"summary": "Ask fallback suppresses save/reindex failures that analogous command flows propagate.",
|
||||
"related_files": [
|
||||
"cmd/ask.go",
|
||||
"cmd/push.go",
|
||||
"cmd/scrape.go"
|
||||
],
|
||||
"evidence": [
|
||||
"`cmd/ask.go` ignores persistence/index maintenance errors with blank identifier assignments (lines ~369-377).",
|
||||
"`cmd/push.go` and `cmd/scrape.go` both return save/reindex failures (`save docs failed`, `reindex failed`, `reindex after scrape...`) instead of suppressing them.",
|
||||
"Equivalent storage/index boundary failures therefore produce different observability depending on command path."
|
||||
],
|
||||
"suggestion": "Handle ask fallback persistence/reindex errors explicitly: either return them when they invalidate guarantees, or attach them to response metadata/logged warnings with a consistent typed error category used across commands.",
|
||||
"confidence": "high",
|
||||
"impact_scope": "module",
|
||||
"fix_scope": "multi_file_refactor"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user