generated from coulomb/repo-seed
REUSE-WP-0018-T03: LLM semantic rerank for plan-check
Some checks failed
ci / validate-registry (push) Has been cancelled
Some checks failed
ci / validate-registry (push) Has been cancelled
llm-connect came up locally (mock provider, 127.0.0.1:8080), unblocking this task. reuse_surface/plan_check.py: build_rerank_prompt/request_rerank/apply_rerank, reusing llm_bridge.execute_prompt/extract_json_object (same pattern as maintain_llm.py's request_maintain_patches). New schema schemas/plan-check-rerank.schema.json rejects malformed responses (missing fields, non-JSON, invented candidate ids outside the input set) rather than guessing. Per design principle 3 (deterministic matches always rank first), apply_rerank appends LLM-scored entries after the deterministic list (kind: 'llm') instead of reordering it -- the trusted base result is identical with or without the rerank pass. Graceful skip via a 'notes' field when LLM_CONNECT_URL is unset or the response is malformed, mirroring maintain.py's no_llm/skip pattern. New --llm-url/--no-llm CLI flags. Also extended plan-check-result.schema.json for 'notes' and the (pre-existing, previously unschema'd) 'filed_capability_request' field. 9 new pytest cases; 89 total pass. Live-verified against the running llm-connect instance: it correctly rejected the mock provider's non-JSON response and surfaced the skip note, with the deterministic verdict and match order completely unaffected. REUSE-WP-0018 is now fully done (T01-T06). Updated docs/IntentScopeGapAnalysis.md priority 29 to Closed and the workplan's own frontmatter status to finished. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -608,6 +608,8 @@ def cmd_plan_check(args: argparse.Namespace) -> int:
|
||||
query,
|
||||
reuse_threshold=args.reuse_threshold,
|
||||
extend_threshold=args.extend_threshold,
|
||||
use_llm=not args.no_llm,
|
||||
llm_url=args.llm_url,
|
||||
)
|
||||
|
||||
if args.record_outcome:
|
||||
@@ -812,6 +814,13 @@ def main(argv: list[str] | None = None) -> int:
|
||||
"--requesting-domain", default="infotech",
|
||||
help="domain slug recorded on a filed capability request",
|
||||
)
|
||||
plan_check.add_argument(
|
||||
"--llm-url", help="llm-connect base URL (or LLM_CONNECT_URL) for semantic rerank",
|
||||
)
|
||||
plan_check.add_argument(
|
||||
"--no-llm", action="store_true",
|
||||
help="skip the optional LLM semantic rerank pass",
|
||||
)
|
||||
plan_check.set_defaults(func=cmd_plan_check)
|
||||
|
||||
catalog = subparsers.add_parser(
|
||||
|
||||
Reference in New Issue
Block a user