Instructions file
Claude Code instructions for jkitchin/discopt, covering claude.md, project overview, development philosophy (read this first), measurement & instrumentation discipline and workflow.
Instructions file
Claude Code instructions for jkitchin/discopt, covering claude.md, project overview, development philosophy (read this first), measurement & instrumentation discipline and workflow.
Agent
Adaptive Multivariate Partitioning (AMP) global MINLP solver - the Nagarajan et al. algorithm that alternates between tight MILP relaxations and NLP upper bounds, refining partitions adaptively around the MILP solution. Use when the question is "should I turn on AMP?" / "how to tune partitions?" / "why is AMP…
Agent
You are an expert on discopt's benchmark harness. You help users design or interpret performance studies, understand the phase-gate methodology that drives the roadmap, read Dolan-Moré profiles, and extend the suite when new problem classes land.
Agent
Convex relaxations that underpin discopt's spatial branch-and-bound - McCormick envelopes, piecewise McCormick partitions, alphaBB Hessian-based underestimators, RLT cuts, and the relaxation compiler. Use when the question is "what is the bound at this node?" or "how tight is this relaxation?".
Agent
SUSPECT-style structural convexity detection in discopt - sign-aware rule propagation on the expression DAG plus interval-Hessian soundness certificates. Use when the question is "is this function convex on this box?" or "why did the detector abstain?".
Agent
Differentiating through discopt solves - envelope theorem (Level 1), implicit differentiation through KKT at the active set (Level 3), Model.parameter() sensitivity API, the differentiablesolve / differentiablesolvel3 functions. Use when the question involves gradients of the optimum w.r.t. problem parameters.
Agent
Parameter estimation from experimental data using discopt.estimate. Covers weighted least-squares NLP formulation, Fisher-Information-based covariance and confidence intervals, array observations, diagnostic interpretation, and the connection to DoE / identifiability / profile likelihood.
Agent
Primal heuristics for finding feasible solutions fast - multi-start, feasibility pump, large neighborhood search (LNS / RENS / RINS / DINS), feasibility jump, matheuristics. Use when discopt returns status='infeasible' prematurely, when no incumbent is found within the time budget, or when "good enough fast" matters…
Agent
Deep expert on HiGHS (LP/MIP/QP) — revised simplex, interior point, MIP branch-and-bound, cutting planes, heuristics, presolve, and numerical linear algebra. Use when working on discopt's HiGHS LP backend, debugging simplex/IPM behavior, or reasoning about LP/MIP solver internals and performance.
Agent
Ipopt and discopt's wrappers around it - cyipopt binding, POUNCE (pure-Rust Ipopt port; the default single-solve backend), option tuning, restoration phase, scaling, watchdog, acceptable-tolerance behavior, wide-bounds handling. Use when the NLP backend is failing, returning NaN, hitting iterationlimit, or entering…
Agent
You are an expert on discopt.llm — the optional LLM layer that adds natural-language formulation, explanation, diagnosis, and reformulation features on top of discopt's solver. You know the safety invariant that separates LLM suggestions from deterministic code, the litellm adapter, and how to extend the feature set…
Agent
You are an expert on discopt's MINLP solver architecture. You help users understand why a solve took the path it did, interpret the returned SolveResult, debug convergence and correctness, and decide which of the several backend combinations to request.
Agent
The discopt modeling API - Model, Variable, Parameter, Expression DAG, Constraint, sense handling, array operations, big-M / indicator / disjunctive constraints, and GDP reformulations. Helps users express problems idiomatically and spot formulation pitfalls before they hit the solver.
Agent
Multi-objective optimization via discopt.mo - weighted sum, AUGMECON2 epsilon-constraint, augmented weighted Tchebycheff, Normal Boundary Intersection (NBI), Normalized Normal Constraint (NNC), and the Pareto-front quality indicators (hypervolume, IGD, spread, epsilon). Use when a problem has 2+ conflicting objectives.
Agent
Embedding trained neural networks and tree ensembles as MINLP constraints via discopt.nn - OMLT-style full-space and reduced-space formulations, ReLU big-M, interval bound propagation, ONNX reader. Use when a trained ML surrogate must live inside an optimization problem.
Agent
Presolve and bound tightening in discopt - FBBT (feasibility-based bound tightening), OBBT (optimization-based bound tightening), probing, big-M simplification. Lives in Rust (crates/discopt-core/src/presolve/). Use when the question is "why didn't FBBT tighten this?" or "is OBBT worth the cost?".
Agent
Robust optimization with discopt.ro - box, ellipsoidal, polyhedral / budget uncertainty sets; static vs. adjustable robust optimization (ARO) with affine decision rules (ADRs); counterpart construction; when to switch sets; how to size uncertainty. Use when the question involves worst-case feasibility over uncertain…
Agent
Deep expert on SCIP (Solving Constraint Integer Programs) and MINLP solver architecture — spatial branch-and-bound, constraint handlers, separators/cuts, presolve, expression/nonlinear handling, grounded in the SCIP Optimization Suite source. Use when comparing discopt against SCIP, reasoning about MINLP solver…
Command
Read discopt benchmark result JSON and produce a narrative performance report — solve counts, timing (shifted geometric mean), solution quality, layer profiling, performance profiles, and regression detection. Use to analyze or compare benchmark runs.
Command
Translate a discopt model to or from another algebraic modeling language (Pyomo, GAMS, AMPL, JuMP) or file format. Use to port a model in/out of discopt. For machine file formats (.gms/.nl/.mps/.lp), prefer the built-in discopt convert CLI.
Command
Debug a broken discopt setup, model, or solve. Root-cause installation/import failures, daemon problems, infeasibility (with IIS), NLP/numerical errors, wrong answers, non-reproducible runs, and crashes — then fix them. Use when something is broken or behaving unexpectedly, as opposed to /diagnose which interprets a…
Command
Interpret a discopt SolveResult or solver output and recommend concrete next steps — status, gap, timing, and layer profiling. Use for a solve that completed (optimal/feasible/timelimit/etc.) and you want to understand or improve it. For something broken, crashing, or infeasible, use /debug instead.
Command
Fit unknown model parameters to experimental data with discopt — build an Experiment, run estimateparameters(), and interpret estimates, confidence intervals, FIM, and identifiability. Use for parameter estimation / regression / model calibration from data.
Command
Read a discopt model and produce a formal mathematical formulation (LaTeX/Markdown) — sets, parameters, variables, objective, constraints — plus plain-English descriptions. Use to document a model or generate its math write-up.