You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: evals/gecode-trigger-evals.json
+12Lines changed: 12 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -15,6 +15,10 @@
15
15
"query": "Can you help debug a Gecode issue where a stored choice seems invalid after recomputation? The model uses custom branchers and I suspect I'm breaking clone or commit invariants.",
16
16
"should_trigger": true
17
17
},
18
+
{
19
+
"query": "I am packaging a C++ solver that depends on Gecode 6.3+ and I want the downstream CMake project to use find_package(Gecode CONFIG) with a FetchContent fallback when it's not installed.",
20
+
"should_trigger": true
21
+
},
18
22
{
19
23
"query": "Please model this scheduling problem in Gecode with strong global constraints, sensible symmetry breaking, and a branching strategy that focuses on the cost-driving variables first.",
20
24
"should_trigger": true
@@ -35,6 +39,10 @@
35
39
"query": "I'm using Gecode with a mix of discrete choices and continuous tolerances. What should I watch out for when float vars are part of the model, especially compared with ordinary integer branching intuition?",
36
40
"should_trigger": true
37
41
},
42
+
{
43
+
"query": "I need to clean up a generic CMakeLists.txt for a small SDL app. There is no Gecode involved, I just want better target_link_libraries usage and install rules.",
44
+
"should_trigger": false
45
+
},
38
46
{
39
47
"query": "How would you model a nurse rostering problem in constraint programming? I'm open to any solver or even OR-Tools, I mainly want high-level CP advice.",
40
48
"should_trigger": false
@@ -47,6 +55,10 @@
47
55
"query": "Can you explain branch and bound versus depth-first search in general terms? I don't need implementation details for any particular library.",
48
56
"should_trigger": false
49
57
},
58
+
{
59
+
"query": "I have an old FindFoo.cmake module and want to migrate to package config usage. The library is our in-house SDK, not Gecode.",
60
+
"should_trigger": false
61
+
},
50
62
{
51
63
"query": "What are good heuristics for graph coloring in CP, and how do I think about symmetry? Solver-agnostic advice is fine.",
Copy file name to clipboardExpand all lines: skills/gecode/SKILL.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
name: gecode
3
-
description: "Gecode architecture, modeling, cookbook-style modeling patterns, set/float/scheduling guidance, propagators, branchers, memory management, search engine usage and implementation, recomputation/cloning behavior, and debugging/performance diagnosis. Use for any materially Gecode-specific task: building or refining Gecode models, implementing custom constraints or branchers, tuning DFS/BAB/RBS/PBS/LDS search, diagnosing weak propagation or search pathologies, or reasoning about set/float/resource-style models."
3
+
description: "Gecode architecture, modeling, cookbook-style modeling patterns, set/float/scheduling guidance, propagators, branchers, memory management, search engine usage and implementation, recomputation/cloning behavior, debugging/performance diagnosis, and downstream CMake consumption. Use for any materially Gecode-specific task: building or refining Gecode models, implementing custom constraints or branchers, tuning DFS/BAB/RBS/PBS/LDS search, diagnosing weak propagation or search pathologies, reasoning about set/float/resource-style models, or integrating Gecode into CMake projects."
4
4
---
5
5
6
6
# Gecode
@@ -47,6 +47,7 @@ Use this skill as the entry point for any Gecode-specific task. Carry the univer
47
47
- Read `references/memory-handling.md` for space/region/heap allocation, handles, clone footprint, and disposal obligations.
48
48
- Read `references/search-engines.md` for using and tuning built-in engines such as `DFS`, `BAB`, `LDS`, restart, and portfolio search.
49
49
- Read `references/search-engine-implementation.md` for custom engine orchestration, recomputation strategy, LAO, and completeness invariants.
50
+
- Read `references/cmake-consumption.md` for `find_package(Gecode CONFIG)`, target usage, version checks, and vendored fallback patterns.
50
51
- Read `references/general-knowledge.md` only for broad conceptual explanations, tracing/observability guidance, or staged model-improvement workflow discussion that goes beyond the always-on mental model.
51
52
52
53
## Operating Rules
@@ -68,3 +69,4 @@ Use this skill as the entry point for any Gecode-specific task. Carry the univer
68
69
-`references/memory-handling.md`: memory areas, lazy vs eager allocation, shared/local handles, and `AP_DISPOSE` discipline.
if(SOME_STRICT_OPTION AND Gecode_VERSION VERSION_LESS "6.3.0")
24
+
message(FATAL_ERROR "Gecode >= 6.3.0 required, found ${Gecode_VERSION}")
25
+
endif()
26
+
```
27
+
- Try installed package first with `find_package(Gecode CONFIG QUIET)` when discovery is optional.
28
+
- If the package is absent and project policy allows vendoring, use `FetchContent` and set Gecode cache options before `FetchContent_MakeAvailable(...)`.
29
+
- Require `TARGET Gecode::gecode` after resolution and fail fast with actionable error text if it is missing.
30
+
- Mark Gecode targets as `SYSTEM` in strict-warning projects to isolate third-party headers from local warning policy.
31
+
- For pinned source fallbacks, prefer stable release tags or commits over long-lived feature branches.
32
+
- When migrating away from custom discovery modules, remove manual imported-target composition and library probing once package config is the baseline.
33
+
- Keep strict version toggles if desired, but enforce them against `Gecode_VERSION`.
34
+
35
+
## Pitfalls
36
+
- Calling `find_package(Gecode REQUIRED)` without `CONFIG` and accidentally resolving old module-mode shims.
37
+
- Assuming optional components exist without checking enabled modules in the installed build.
38
+
- Mixing custom imported-target composition with package-provided targets in the same code path.
39
+
- Parsing headers for version when package metadata already provides `Gecode_VERSION`.
0 commit comments