# Concepts

Second-brain semantic layer: nouns map atomically to file sets (EXTRACTED); verbs aggregate structural edges (INFERRED).

| Concept | Files | Mentions | Top Files |
|---------|-------|----------|-----------|
| `estorides` | 126 | 260 | `app.py`, `estorides_cli.py`, `estorides_core/__init__.py`, `estorides_core/active_recon.py`, `estorides_core/alerter.py` |
| `when` | 71 | 144 | `estorides_cli.py`, `estorides_core/async_client.py`, `estorides_core/audit.py`, `estorides_core/case_crypto.py`, `estorides_core/cases.py` |
| `not` | 69 | 142 | `app.py`, `estorides_cli.py`, `estorides_core/alerter.py`, `estorides_core/async_client.py`, `estorides_core/audit.py` |
| `run` | 68 | 186 | `estorides_cli.py`, `estorides_core/active_recon.py`, `estorides_core/alerter.py`, `estorides_core/audit.py`, `estorides_core/cases.py` |
| `returns` | 67 | 193 | `estorides_cli.py`, `estorides_core/alerter.py`, `estorides_core/async_client.py`, `estorides_core/cases.py`, `estorides_core/config.py` |
| `source` | 66 | 339 | `estorides_core/cases.py`, `estorides_core/change_detection.py`, `estorides_core/config.py`, `estorides_core/entity_extraction.py`, `estorides_core/entity_store.py` |
| `dict` | 57 | 153 | `estorides_cli.py`, `estorides_core/active_recon.py`, `estorides_core/async_client.py`, `estorides_core/audit.py`, `estorides_core/cloud_asset_discovery.py` |
| `empty` | 57 | 119 | `estorides_core/change_detection.py`, `estorides_core/config.py`, `estorides_core/entity_resolution.py`, `estorides_core/event_bus.py`, `estorides_core/fusion_analytics.py` |
| `list` | 56 | 146 | `estorides_cli.py`, `estorides_core/alerter.py`, `estorides_core/async_client.py`, `estorides_core/cases.py`, `estorides_core/config.py` |
| `bdd` | 56 | 63 | `tests/properties/test_observation_models_properties.py`, `tests/test_active_recon.py`, `tests/test_async_client.py`, `tests/test_case_crypto.py`, `tests/test_change_detection.py` |
| `one` | 55 | 145 | `estorides_cli.py`, `estorides_core/async_client.py`, `estorides_core/audit.py`, `estorides_core/change_detection.py`, `estorides_core/config.py` |
| `never` | 55 | 126 | `estorides_cli.py`, `estorides_core/alerter.py`, `estorides_core/async_client.py`, `estorides_core/audit.py`, `estorides_core/case_crypto.py` |
| `only` | 53 | 99 | `estorides_cli.py`, `estorides_core/alerter.py`, `estorides_core/async_client.py`, `estorides_core/audit.py`, `estorides_core/case_crypto.py` |
| `single` | 52 | 91 | `estorides_core/alerter.py`, `estorides_core/async_client.py`, `estorides_core/audit.py`, `estorides_core/cases.py`, `estorides_core/change_detection.py` |
| `none` | 51 | 104 | `estorides_cli.py`, `estorides_core/alerter.py`, `estorides_core/async_client.py`, `estorides_core/case_crypto.py`, `estorides_core/change_detection.py` |
| `every` | 48 | 98 | `estorides_core/alerter.py`, `estorides_core/audit.py`, `estorides_core/cases.py`, `estorides_core/change_detection.py`, `estorides_core/config.py` |
| `sources` | 46 | 140 | `estorides_cli.py`, `estorides_core/async_client.py`, `estorides_core/audit.py`, `estorides_core/cases.py`, `estorides_core/change_detection.py` |
| `error` | 46 | 108 | `estorides_core/async_client.py`, `estorides_core/audit.py`, `estorides_core/cloud_asset_discovery.py`, `estorides_core/discoverer.py`, `estorides_core/entity_extraction.py` |
| `spec` | 46 | 89 | `estorides_core/parsers.py`, `estorides_core/search_telemetry.py`, `estorides_core/system_app_sources.py`, `estorides_export/stix.py`, `estorides_web.py` |
| `entity` | 45 | 239 | `estorides_cli.py`, `estorides_core/cases.py`, `estorides_core/change_detection.py`, `estorides_core/config.py`, `estorides_core/discoverer.py` |
| `default` | 44 | 81 | `estorides_cli.py`, `estorides_core/alerter.py`, `estorides_core/audit.py`, `estorides_core/config.py`, `estorides_core/entity_resolution.py` |
| `type` | 43 | 136 | `estorides_cli.py`, `estorides_core/async_client.py`, `estorides_core/cases.py`, `estorides_core/config.py`, `estorides_core/discoverer.py` |
| `return` | 43 | 121 | `estorides_core/alerter.py`, `estorides_core/audit.py`, `estorides_core/case_crypto.py`, `estorides_core/cases.py`, `estorides_core/config.py` |
| `value` | 43 | 105 | `estorides_core/cases.py`, `estorides_core/config.py`, `estorides_core/discoverer.py`, `estorides_core/entity_extraction.py`, `estorides_core/entity_resolution.py` |
| `result` | 42 | 104 | `estorides_cli.py`, `estorides_core/active_recon.py`, `estorides_core/audit.py`, `estorides_core/cloud_asset_discovery.py`, `estorides_core/code_exposure.py` |
| `safe` | 42 | 65 | `estorides_core/audit.py`, `estorides_core/cases.py`, `estorides_core/config.py`, `estorides_core/discoverer.py`, `estorides_core/entity_store.py` |
| `same` | 41 | 97 | `estorides_core/cases.py`, `estorides_core/change_detection.py`, `estorides_core/config.py`, `estorides_core/discoverer.py`, `estorides_core/entity_extraction.py` |
| `all` | 41 | 71 | `estorides_cli.py`, `estorides_core/alerter.py`, `estorides_core/entity_extraction.py`, `estorides_core/entity_store.py`, `estorides_core/feeds.py` |
| `module` | 41 | 49 | `app.py`, `estorides_core/audit.py`, `estorides_core/cases.py`, `estorides_core/change_detection.py`, `estorides_core/config.py` |
| `name` | 40 | 129 | `estorides_core/change_detection.py`, `estorides_core/entity_extraction.py`, `estorides_core/entity_resolution.py`, `estorides_core/event_bus.py`, `estorides_core/feeds.py` |
| `given` | 40 | 118 | `estorides_cli.py`, `estorides_core/cases.py`, `estorides_core/entity_resolution.py`, `estorides_core/graph_kuzu.py`, `estorides_core/knowledge_graph.py` |
| `key` | 40 | 101 | `estorides_core/async_client.py`, `estorides_core/case_crypto.py`, `estorides_core/change_detection.py`, `estorides_core/code_exposure.py`, `estorides_core/config.py` |
| `path` | 40 | 98 | `estorides_core/cases.py`, `estorides_core/config.py`, `estorides_core/entity_extraction.py`, `estorides_core/entity_resolution.py`, `estorides_core/hypothesis_engine.py` |
| `json` | 40 | 89 | `estorides_cli.py`, `estorides_core/alerter.py`, `estorides_core/audit.py`, `estorides_core/cases.py`, `estorides_core/entity_extraction.py` |
| `can` | 40 | 73 | `estorides_cli.py`, `estorides_core/alerter.py`, `estorides_core/async_client.py`, `estorides_core/audit.py`, `estorides_core/cases.py` |
| `each` | 40 | 59 | `estorides_core/alerter.py`, `estorides_core/audit.py`, `estorides_core/change_detection.py`, `estorides_core/config.py`, `estorides_core/entity_extraction.py` |
| `raises` | 39 | 84 | `estorides_core/lan_bundle.py`, `estorides_core/lan_inventory.py`, `estorides_core/lan_policy.py`, `estorides_core/lan_runner.py`, `estorides_core/lan_scope.py` |
| `without` | 38 | 59 | `estorides_core/alerter.py`, `estorides_core/async_client.py`, `estorides_core/audit.py`, `estorides_core/cases.py`, `estorides_core/config.py` |
| `then` | 38 | 44 | `estorides_core/audit.py`, `estorides_core/cases.py`, `estorides_core/entity_resolution.py`, `estorides_core/fusion_store.py`, `estorides_core/ontology.py` |
| `data` | 36 | 74 | `.scratchpad/gfv2_data.py`, `estorides_core/async_client.py`, `estorides_core/audit.py`, `estorides_core/change_detection.py`, `estorides_core/config.py` |
| `graph` | 35 | 152 | `estorides_cli.py`, `estorides_core/cases.py`, `estorides_core/entity_extraction.py`, `estorides_core/entity_resolution.py`, `estorides_core/entity_store.py` |
| `input` | 35 | 75 | `estorides_core/change_detection.py`, `estorides_core/entity_extraction.py`, `estorides_core/entity_resolution.py`, `estorides_core/graph_bundle.py`, `estorides_core/graph_force.py` |
| `must` | 35 | 72 | `estorides_core/audit.py`, `estorides_core/config.py`, `estorides_core/entity_store.py`, `estorides_core/observation_models.py`, `estorides_core/orchestrator.py` |
| `per` | 35 | 72 | `estorides_core/async_client.py`, `estorides_core/audit.py`, `estorides_core/cases.py`, `estorides_core/change_detection.py`, `estorides_core/config.py` |
| `first` | 34 | 52 | `estorides_core/alerter.py`, `estorides_core/change_detection.py`, `estorides_core/config.py`, `estorides_core/entity_extraction.py`, `estorides_core/entity_resolution.py` |
| `entities` | 33 | 98 | `estorides_cli.py`, `estorides_core/active_recon.py`, `estorides_core/cases.py`, `estorides_core/change_detection.py`, `estorides_core/config.py` |
| `unknown` | 33 | 68 | `estorides_core/config.py`, `estorides_core/graph_kuzu.py`, `estorides_core/lan_inventory.py`, `estorides_core/observation_models.py`, `estorides_core/parsers.py` |
| `back` | 33 | 51 | `estorides_core/async_client.py`, `estorides_core/config.py`, `estorides_core/entity_extraction.py`, `estorides_core/entity_resolution.py`, `estorides_core/entity_store.py` |
| `any` | 32 | 58 | `estorides_core/alerter.py`, `estorides_core/async_client.py`, `estorides_core/audit.py`, `estorides_core/config.py`, `estorides_core/entity_extraction.py` |
| `build` | 32 | 54 | `estorides_cli.py`, `estorides_core/change_detection.py`, `estorides_core/entity_resolution.py`, `estorides_core/graph_bundle.py`, `estorides_core/graph_force.py` |

## Verb Edges

| Source | Verb | Target | Strength |
|--------|------|--------|----------|
| `run` | `depends_on` | `estorides` | 1.00 |
| `returns` | `depends_on` | `estorides` | 0.95 |
| `when` | `depends_on` | `estorides` | 0.93 |
| `not` | `depends_on` | `estorides` | 0.92 |
| `list` | `depends_on` | `estorides` | 0.83 |
| `sources` | `depends_on` | `estorides` | 0.82 |
| `estorides` | `depends_on` | `not` | 0.81 |
| `estorides` | `depends_on` | `single` | 0.81 |
| `one` | `depends_on` | `estorides` | 0.80 |
| `estorides` | `depends_on` | `source` | 0.79 |
| `only` | `depends_on` | `estorides` | 0.78 |
| `entity` | `depends_on` | `estorides` | 0.77 |
| `source` | `depends_on` | `estorides` | 0.77 |
| `estorides` | `depends_on` | `can` | 0.75 |
| `estorides` | `depends_on` | `list` | 0.75 |
| `estorides` | `depends_on` | `one` | 0.75 |
| `estorides` | `depends_on` | `every` | 0.73 |
| `estorides` | `depends_on` | `returns` | 0.73 |
| `none` | `depends_on` | `estorides` | 0.73 |
| `type` | `depends_on` | `estorides` | 0.73 |
| `estorides` | `depends_on` | `entity` | 0.71 |
| `estorides` | `depends_on` | `when` | 0.71 |
| `estorides` | `depends_on` | `return` | 0.70 |
| `run` | `depends_on` | `single` | 0.69 |
| `run` | `depends_on` | `not` | 0.68 |
| `run` | `depends_on` | `source` | 0.68 |
| `estorides` | `depends_on` | `never` | 0.67 |
| `estorides` | `depends_on` | `only` | 0.67 |
| `every` | `depends_on` | `estorides` | 0.67 |
| `default` | `depends_on` | `estorides` | 0.66 |
| `estorides` | `depends_on` | `same` | 0.66 |
| `returns` | `depends_on` | `not` | 0.66 |
| `returns` | `depends_on` | `source` | 0.65 |
| `run` | `depends_on` | `can` | 0.65 |
| `run` | `depends_on` | `list` | 0.65 |
| `can` | `depends_on` | `estorides` | 0.64 |
| `graph` | `depends_on` | `estorides` | 0.64 |
| `not` | `depends_on` | `single` | 0.64 |
| `returns` | `depends_on` | `single` | 0.64 |
| `run` | `depends_on` | `every` | 0.64 |
| `run` | `depends_on` | `one` | 0.64 |
| `when` | `depends_on` | `source` | 0.64 |
| `estorides` | `depends_on` | `type` | 0.63 |
| `not` | `depends_on` | `source` | 0.63 |
| `returns` | `depends_on` | `return` | 0.63 |
| `run` | `depends_on` | `entity` | 0.63 |
| `run` | `depends_on` | `returns` | 0.63 |
| `when` | `depends_on` | `single` | 0.63 |
| `error` | `depends_on` | `estorides` | 0.62 |
| `returns` | `depends_on` | `can` | 0.62 |

## Dialectic Prompts

- Thesis: `all` centralizes 41 files; Antithesis: `list` pulls 56 files with 24 shared (Jaccard 0.33); Synthesis: should they merge, split by layer, or keep `bridges` explicit?
- Thesis: `all` centralizes 41 files; Antithesis: `none` pulls 51 files with 25 shared (Jaccard 0.37); Synthesis: should they merge, split by layer, or keep `bridges` explicit?
- Thesis: `all` centralizes 41 files; Antithesis: `returns` pulls 67 files with 25 shared (Jaccard 0.30); Synthesis: should they merge, split by layer, or keep `bridges` explicit?
- Thesis: `all` centralizes 41 files; Antithesis: `source` pulls 66 files with 25 shared (Jaccard 0.30); Synthesis: should they merge, split by layer, or keep `bridges` explicit?
- Thesis: `all` centralizes 41 files; Antithesis: `sources` pulls 46 files with 22 shared (Jaccard 0.34); Synthesis: should they merge, split by layer, or keep `bridges` explicit?
- Thesis: `all` centralizes 41 files; Antithesis: `when` pulls 71 files with 26 shared (Jaccard 0.30); Synthesis: should they merge, split by layer, or keep `bridges` explicit?
- Thesis: `any` centralizes 32 files; Antithesis: `can` pulls 40 files with 25 shared (Jaccard 0.53); Synthesis: should they merge, split by layer, or keep `bridges` explicit?
- Thesis: `any` centralizes 32 files; Antithesis: `data` pulls 36 files with 16 shared (Jaccard 0.31); Synthesis: should they merge, split by layer, or keep `bridges` explicit?
- Thesis: `any` centralizes 32 files; Antithesis: `each` pulls 40 files with 17 shared (Jaccard 0.31); Synthesis: should they merge, split by layer, or keep `bridges` explicit?
- Thesis: `any` centralizes 32 files; Antithesis: `every` pulls 48 files with 24 shared (Jaccard 0.43); Synthesis: should they merge, split by layer, or keep `bridges` explicit?
