Skip to content

Commit dac1867

Browse files
HumanBean17claude
andcommitted
docs: align consumer docs with closed filter enums (#315)
The structured filter schemas PR makes role/framework/source_layer/ client_kind/producer_kind closed Literal enums with extra="forbid", so stale or omitted values are now hard schema errors instead of silent no-ops. Align the three consumer-facing operating manuals with the now-closed sets: - Framework glossary: drop the non-existent `codebase_async_route` (only ever a function name, never a stored value), add the missing `feign`, drop the misleading `...` (the set is now closed/exhaustive). - NodeFilter applicability tables: add `source_layer` to the client and producer rows (applicable per _NODEFILTER_APPLICABLE_FIELDS, previously undocumented). - Strict-frame note: invalid enum values (e.g. wrong case) are rejected earlier at the schema layer with the valid set listed - distinct from the success=false applicability path. - Glossary: add Source layers (client/producer) closed value set. Doc-only; no code or test impact. Co-Authored-By: Claude <noreply@anthropic.com>
1 parent d3dee36 commit dac1867

3 files changed

Lines changed: 14 additions & 12 deletions

File tree

agents/explorer-rag-enhanced.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -151,15 +151,15 @@ Simple types in parentheses; generics erased. No spaces after commas. No-arg: `(
151151

152152
### Shared NodeFilter
153153

154-
For `find`, `filter` is required — `{}` means no predicates. **Strict frame:** unknown keys or inapplicable populated fields → `success=false`.
154+
For `find`, `filter` is required — `{}` means no predicates. **Strict frame:** unknown keys or inapplicable populated fields → `success=false`; invalid enum values (e.g. wrong case) are rejected earlier at the schema layer with the valid set listed.
155155

156156
| Keys | Applies to |
157157
| ---- | ---------- |
158158
| `microservice`, `module` | All kinds |
159159
| `role`, `exclude_roles`, `annotation`, `capability`, `fqn_prefix`, `symbol_kind`, `symbol_kinds` | **symbol** |
160160
| `http_method`, `path_prefix`, `framework` | **route** |
161-
| `client_kind`, `target_service`, `target_path_prefix`, `http_method` | **client** |
162-
| `producer_kind`, `topic_prefix` | **producer** |
161+
| `source_layer`, `client_kind`, `target_service`, `target_path_prefix`, `http_method` | **client** |
162+
| `source_layer`, `producer_kind`, `topic_prefix` | **producer** |
163163

164164
No wildcards in prefix fields — use `search(query=…)` for fuzzy text.
165165

docs/AGENT-GUIDE.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,12 +138,12 @@ For **`find`**, `filter` is required — `{}` means no predicates (all nodes of
138138
| `microservice`, `module` | All kinds |
139139
| `role`, `exclude_roles`, `annotation`, `capability`, `fqn_prefix`, `symbol_kind`, `symbol_kinds` | **symbol** |
140140
| `http_method`, `path_prefix`, `framework` | **route** |
141-
| `client_kind`, `target_service`, `target_path_prefix`, `http_method` | **client** |
142-
| `producer_kind`, `topic_prefix` | **producer** |
141+
| `source_layer`, `client_kind`, `target_service`, `target_path_prefix`, `http_method` | **client** |
142+
| `source_layer`, `producer_kind`, `topic_prefix` | **producer** |
143143

144144
`http_method` filters HTTP verbs on **routes** (declared method) and on **clients** (outbound call method). Not applicable to **symbol** rows.
145145

146-
**Strict frame:** one populated field → one stored attribute for that kind. Unknown keys or inapplicable populated fields → `success=false` with a teaching `message`. No wildcards in `fqn_prefix`, `path_prefix`, or `target_path_prefix` (`*` / `?` rejected) — use `search(query=…)` for ranked text instead. `search.query` is opaque text, not a DSL.
146+
**Strict frame:** one populated field → one stored attribute for that kind. Unknown keys or inapplicable populated fields → `success=false` with a teaching `message`. Invalid enum values (e.g. wrong case) are rejected earlier at the schema layer with the valid set listed. No wildcards in `fqn_prefix`, `path_prefix`, or `target_path_prefix` (`*` / `?` rejected) — use `search(query=…)` for ranked text instead. `search.query` is opaque text, not a DSL.
147147

148148
### Identifier resolution (`resolve`)
149149

@@ -245,12 +245,14 @@ Returns **edges** with `attrs` (`confidence`, `strategy`, `match`, … on cross-
245245

246246
**Symbol kinds (`symbol_kind` / `symbol_kinds`):** `class`, `interface`, `enum`, `record`, `annotation`, `method`, `constructor`.
247247

248-
**Route `framework` (examples on stored routes):** `spring_mvc`, `webflux`, `kafka`, `rabbitmq`, `jms`, `stream`, `codebase_async_route`, …
248+
**Route `framework` (closed set on stored routes):** `spring_mvc`, `webflux`, `kafka`, `rabbitmq`, `jms`, `stream`, `feign`.
249249

250250
**Client kinds:** `feign_method`, `rest_template`, `web_client`.
251251

252252
**Producer kinds:** `kafka_send`, `stream_bridge_send`.
253253

254+
**Source layers (client/producer):** `builtin`, `layer_a_meta`, `layer_b_ann`, `layer_b_fqn`, `layer_c_source`.
255+
254256
**HTTP call `attrs.match` / async `attrs.match`:** `cross_service`, `intra_service`, `ambiguous`, `phantom`, `unresolved`.
255257

256258
### Recovery playbook

skills/explore-codebase/SKILL.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -125,15 +125,15 @@ Use these strings **verbatim** in `neighbors(..., edge_types=[...])`.
125125

126126
### NodeFilter (`find`, `search.filter`, `neighbors.filter`)
127127

128-
For `find`, `filter` is required — `{}` means no predicates. **Strict frame:** unknown keys or inapplicable populated fields → `success=false`.
128+
For `find`, `filter` is required — `{}` means no predicates. **Strict frame:** unknown keys or inapplicable populated fields → `success=false`; invalid enum values (e.g. wrong case) are rejected earlier at the schema layer with the valid set listed.
129129

130130
| Applicable to | Keys |
131131
| ------------- | ---- |
132132
| All kinds | `microservice`, `module` |
133133
| **symbol** only | `role`, `exclude_roles`, `annotation`, `capability`, `fqn_prefix`, `symbol_kind`, `symbol_kinds` |
134134
| **route** only | `http_method`, `path_prefix`, `framework` |
135-
| **client** only | `client_kind`, `target_service`, `target_path_prefix`, `http_method` |
136-
| **producer** only | `producer_kind`, `topic_prefix` |
135+
| **client** only | `source_layer`, `client_kind`, `target_service`, `target_path_prefix`, `http_method` |
136+
| **producer** only | `source_layer`, `producer_kind`, `topic_prefix` |
137137

138138
No wildcards in prefix fields — use `search(query=…)` for ranked text.
139139

@@ -166,8 +166,8 @@ Exclude `DTO`, `OTHER`, `MAPPER` with `exclude_roles` when tracing business logi
166166

167167
**Symbol kinds:** `class`, `interface`, `enum`, `record`, `annotation`, `method`, `constructor`.
168168

169-
**Route frameworks:** `spring_mvc`, `webflux`, `kafka`, `rabbitmq`, `jms`, `stream`, `codebase_async_route`, …
170-
**Client kinds:** `feign_method`, `rest_template`, `web_client`. **Producer kinds:** `kafka_send`, `stream_bridge_send`.
169+
**Route frameworks:** `spring_mvc`, `webflux`, `kafka`, `rabbitmq`, `jms`, `stream`, `feign`.
170+
**Client kinds:** `feign_method`, `rest_template`, `web_client`. **Producer kinds:** `kafka_send`, `stream_bridge_send`. **Source layers (client/producer):** `builtin`, `layer_a_meta`, `layer_b_ann`, `layer_b_fqn`, `layer_c_source`.
171171
**Match types:** `cross_service`, `intra_service`, `ambiguous`, `phantom`, `unresolved`.
172172

173173
---

0 commit comments

Comments
 (0)