tegwick
81a4c8796a
feat(infospace): add L2 entity classification with type × VSM matrix (S2.9)
Implements the L2 typed-entities layer — each entity is assigned an
Entity Type (Element, Process, Relation, Principle, Institution) and a
VSM System (S1–S5) by an LLM, with one-sentence rationales for each.
New modules:
- markitect/infospace/classification.py — EntityClassification dataclass
+ ENTITY_TYPES / VSM_SYSTEMS controlled vocabularies
- markitect/infospace/classification_io.py — write/read classification
files (YAML frontmatter + markdown body, mirrors evaluation_io)
- markitect/infospace/classifier.py — build_classification_prompt(),
parse_classification_response(), run_entity_classification(); batch
runner writes files incrementally (same resumable pattern as evaluate)
CLI: markitect infospace classify [--entity SLUG] [--provider P] [--model M]
- Incremental skip: checks output/classifications/ for existing files
- Defaults to openrouter provider; 2000 max_tokens (Gemini 2.5 Flash
uses ~787 thinking tokens, so 800 was too low)
CLI: markitect infospace classify-summary [--update-metrics]
- Entity type counts + VSM system counts with percentages
- 5 × 6 type × VSM matrix (spots structural blind spots at a glance)
- --update-metrics writes type_distribution, type_entropy,
vsm_type_matrix_cells to metrics.yaml
Config: InfospaceConfig gains classifications_dir (default output/classifications)
Schema: schemas/typed-entity-schema-v1.0.md — type/VSM vocabulary tables,
rationale format rules, validation rules, metrics enabled at L2
infospace.yaml: schemas.typed_entity references typed-entity-schema-v1.0.md
Seed classifications (3): division_of_labour (Process/S1),
natural_price_as_central_price (Principle/S2),
invisible_hand_mechanism (Principle/S4)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 09:35:58 +01:00
..
2026-02-19 01:38:35 +01:00
2025-11-12 00:19:03 +01:00
2026-02-19 00:27:45 +01:00
2025-10-13 23:09:18 +02:00
2025-10-25 02:37:45 +02:00
2026-02-08 12:29:11 +01:00
2026-02-13 16:35:44 +01:00
2026-02-23 09:35:58 +01:00
2025-09-30 17:28:39 +02:00
2026-02-19 14:26:28 +01:00
2025-10-02 09:14:24 +02:00
2025-10-13 20:26:08 +02:00
2025-10-02 09:14:24 +02:00
2025-10-13 23:09:18 +02:00
2025-12-15 23:42:54 +01:00
2025-10-14 18:15:26 +02:00
2025-10-04 01:53:31 +02:00
2026-02-19 01:40:13 +01:00
2026-02-13 21:00:51 +01:00
2025-10-25 02:37:45 +02:00
2026-02-16 18:49:50 +01:00
2026-01-06 13:31:02 +01:00
2026-02-08 18:03:35 +01:00
2025-12-16 10:27:05 +01:00
2026-02-08 02:02:46 +01:00
2025-10-02 15:33:32 +02:00
2025-12-17 12:02:42 +01:00
2025-11-10 11:43:25 +01:00
2026-01-06 03:41:03 +01:00
2025-09-16 03:04:18 +02:00
2026-02-13 17:49:14 +01:00
2025-10-14 13:46:34 +02:00
2025-09-30 13:09:37 +02:00
2025-09-24 01:14:27 +02:00
2025-09-27 09:31:47 +02:00
2025-10-03 10:45:43 +02:00
2025-09-27 08:28:10 +02:00
2026-02-13 17:49:14 +01:00
2025-10-14 13:46:34 +02:00
2026-02-23 05:40:11 +01:00
2025-10-06 03:03:38 +02:00
2026-02-08 02:02:46 +01:00
2026-02-08 02:02:46 +01:00
2025-10-03 10:35:16 +02:00
2025-10-06 03:03:38 +02:00
2025-10-06 03:03:38 +02:00
2025-10-06 03:03:38 +02:00
2025-09-30 17:28:39 +02:00
2026-01-04 21:02:51 +01:00
2026-02-08 02:02:46 +01:00
2025-10-06 03:03:38 +02:00
2026-02-08 02:02:46 +01:00
2026-02-08 02:02:46 +01:00
2026-02-08 02:02:46 +01:00
2026-02-08 02:02:46 +01:00
2026-02-08 02:02:46 +01:00
2026-02-08 02:02:46 +01:00
2026-01-06 12:32:38 +01:00
2026-02-08 02:02:46 +01:00
2025-10-06 03:03:38 +02:00
2025-09-29 21:21:21 +02:00
2026-02-08 02:02:46 +01:00