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
in the framework repo). That long doc is the source of truth for prose; this
14
-
file is the shape an agent reads to act.
11
+
This file is the **operational distillation** of
12
+
[`docs/orchestrator-model.md`](https://github.com/tomas-samek/tiko-di/blob/main/docs/orchestrator-model.md). The long
13
+
doc is the source of truth for prose; this file is the shape an agent reads
14
+
to act. **When adding a recipe, update both** — the table here, and the
15
+
recipe section there.
15
16
16
17
## The rule
17
18
@@ -21,7 +22,7 @@ When a user says *"I need X"*, classify X into one of three buckets:
21
22
|---|---|---|
22
23
|**Core**| container, scopes, event bus, compile-time wiring, lifecycle | Use a tiko primitive directly. |
23
24
|**Plug in**| any integration with an external system (HTTP, DB, cache, templating, scheduling, retry, observability, security, SDK clients) | Bring the library; expose it as a `@Produces` value; consume as a constructor parameter. |
24
-
|**Open**| extending the event model itself (new async modes, scheduling-as-event, retry-as-loop) |Open an issue against tiko-di. Don't invent. |
25
+
|**Open**| extending the event model itself (new async modes, scheduling-as-event, retry-as-loop) |File an issue. Don't invent. |
25
26
26
27
**Default if uncertain: Plug in.** Never search for "tiko's equivalent of
27
28
Spring's X" — that frame is the failure mode this skill exists to prevent.
@@ -136,7 +137,6 @@ public record DbConfig(
136
137
@Default("4") int poolSize) {}
137
138
```
138
139
139
-
#[[
140
140
The `application.yml` that binds against them — section names match the prefix
141
141
and field names, `${VAR:default}` for environment overrides, `poolSize`
|**Core** (container, scopes, event bus, compile-time wiring, lifecycle) |**Not a cookbook entry.** Surface to the user — this is a framework-feature discussion, not an integration recipe. File an issue against `tomas-samek/tiko-di`if it's a real gap. |
67
+
|**Core** (container, scopes, event bus, compile-time wiring, lifecycle) |**Not a cookbook entry.** Surface to the user — this is a framework-feature discussion, not an integration recipe. File an issue if it's a real gap. |
64
68
|**Plug in** (HTTP, DB, cache, templates, scheduling, retry, SDK clients, security) |**Proceed to step 2.** This is what the cookbook is for. |
65
-
|**Open design questions** (extends the event model itself — new async modes, scheduling-as-event, retry-as-loop) |**Not a cookbook entry.** Surface to the user — open an issue against `tomas-samek/tiko-di`; the cookbook can't make this decision. |
69
+
|**Open design questions** (extends the event model itself — new async modes, scheduling-as-event, retry-as-loop) |**Not a cookbook entry.** Surface to the user — open an issue against tiko-di; the cookbook can't make this decision. |
66
70
67
71
If you're not sure which bucket — that's a step-1 ask. Don't pick.
68
72
@@ -82,11 +86,12 @@ Before any code, get answers from the user:
82
86
needed. If not, ask whether the recipe should add one and what
83
87
`close()`-equivalent it should call.
84
88
4.**Singleton vs per-request.** Most plug-in libraries are
85
-
`SINGLETON`. If the user has a use case for `EVENT`-scoped, ask
86
-
explicitly — the proxy generation has rules they should know about.
87
-
5.**Overlap with existing recipes.** Read the cookbook table in
88
-
[`tiko-build/SKILL.md`](../tiko-build/SKILL.md). If the new library
89
-
competes with an existing recipe (e.g. Vert.x vs Javalin), ask:
89
+
`SINGLETON`. If the user has a use case for `EVENT`-scoped (e.g.
90
+
per-request DB connection wrappers), ask explicitly — the proxy
91
+
generation has rules they should know about.
92
+
5.**Overlap with existing recipes.** Search the cookbook table in
93
+
`tiko-build/SKILL.md`. If the new library competes with an existing
94
+
recipe (e.g. user wants Vert.x and the cookbook has Javalin), ask:
90
95
replace? augment with a *choose-one* note? sit alongside?
0 commit comments