2026-02-19 02:29:53 +01:00
|
|
|
# Infospace: The Wealth of Nations through the Viable System Model
|
|
|
|
|
#
|
|
|
|
|
# This configuration declares the infospace built by processing
|
|
|
|
|
# Adam Smith's "The Wealth of Nations" (1776) through the lens of
|
|
|
|
|
# Stafford Beer's Viable System Model (VSM).
|
|
|
|
|
|
|
|
|
|
topic:
|
|
|
|
|
name: "The Wealth of Nations"
|
|
|
|
|
domain: "Classical Economics"
|
|
|
|
|
sources: artifacts/sources/
|
|
|
|
|
|
|
|
|
|
disciplines:
|
|
|
|
|
- name: "Viable System Model"
|
|
|
|
|
path: artifacts/vsm-reference/
|
|
|
|
|
|
|
|
|
|
schemas:
|
|
|
|
|
entity: schemas/economic-entity-schema-v1.0.md
|
|
|
|
|
mapping: schemas/vsm-mapping-schema-v1.0.md
|
|
|
|
|
analysis: schemas/chapter-analysis-schema-v1.0.md
|
feat(infospace): add L3 relation graph with VSM-aware triplets (S2.8)
Implements the L3 relation graph layer — a directed graph of (Subject,
Predicate, Object) triplets annotated with VSM channel codes and feedback
roles. Triplets are authored as markdown files under output/relations/,
parsed into RelationMeta dataclasses, and analysed with networkx.
New modules:
- markitect/infospace/relation_models.py — RelationMeta dataclass +
RELATION_TYPES controlled vocabulary (15 relation classes → VSM codes)
- markitect/infospace/relation_parser.py — parse_relation_file() and
parse_relations_directory()
New schema: examples/infospace-with-history/schemas/relation-schema-v1.0.md
— file naming convention, required sections, controlled vocabulary table
15 seed relation files covering the three core WoN feedback loops:
- Capital Accumulation loop (positive reinforcement, S1/S3)
- Market Price Balancing loop (negative feedback, S2/S3)
- Market Extent mutual dependency (S1/S2)
Plus structural relations: wages regulation, rent residual, price
decomposition, invisible hand coordination
CLI: markitect infospace relations [--entity SLUG] [--vsm FILTER]
[--loops] [--stats]
- Builds directed graph from parsed files
- Detects feedback loops via nx.simple_cycles()
- 6 loops found from 15 seed relations (3 intended + 3 emergent)
- --stats aggregates by VSM system code (strips parentheticals)
Config: InfospaceConfig gains relations_dir (default output/relations)
infospace.yaml: schemas.relation references relation-schema-v1.0.md
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 06:04:28 +01:00
|
|
|
relation: schemas/relation-schema-v1.0.md
|
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
|
|
|
typed_entity: schemas/typed-entity-schema-v1.0.md
|
2026-02-19 02:29:53 +01:00
|
|
|
|
|
|
|
|
competency_questions: |
|
|
|
|
|
1. How does Smith's division of labour map to VSM System 1 operations?
|
|
|
|
|
2. What mechanisms in WoN correspond to VSM coordination (System 2)?
|
|
|
|
|
3. Where does Smith describe self-organising regulation (System 3)?
|
|
|
|
|
4. What role does the "invisible hand" play as a System 4 mechanism?
|
|
|
|
|
5. How do Smith's views on government map to System 5 policy?
|
|
|
|
|
6. Is the WoN entity set viable as an explanatory framework?
|
|
|
|
|
|
|
|
|
|
viability:
|
|
|
|
|
redundancy_ratio:
|
|
|
|
|
max: 0.10
|
|
|
|
|
coverage_ratio:
|
2026-02-20 09:28:20 +01:00
|
|
|
min: 0.40 # multi-book corpus: domain sparsity is expected
|
2026-02-19 02:29:53 +01:00
|
|
|
coherence_components:
|
|
|
|
|
max: 3
|
|
|
|
|
consistency_cycles:
|
|
|
|
|
max: 0
|
|
|
|
|
granularity_entropy:
|
|
|
|
|
min: 1.0
|
2026-02-23 01:26:45 +01:00
|
|
|
per_entity_mean:
|
|
|
|
|
min: 3.5 # LLM quality score across 5 dimensions (1-5 scale)
|
2026-02-19 02:29:53 +01:00
|
|
|
|
|
|
|
|
pipeline:
|
|
|
|
|
stages:
|
|
|
|
|
- name: extract-entities
|
|
|
|
|
template: templates/extract-entities.md
|
feat(infospace): add process command for batch source file processing
- Extend PipelineStage with name, output_dir, output_macro,
split_entities, and macros fields for declarative pipeline config
- Add SourcePipeline class (pipeline.py) using simple @{macro}
substitution — no SQLite dependency, skip-if-exists per stage,
LLM retry on rate limits, git commit per source
- Add `markitect infospace process [GLOB_PATTERN]` CLI command with
--all, --provider, --model, --check-after-each, --no-commit flags
- Update infospace.yaml with output_dir, output_macro, split_entities,
and macros for each pipeline stage in the WoN example
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 13:29:32 +01:00
|
|
|
output_dir: output/entities
|
|
|
|
|
output_macro: entities
|
|
|
|
|
split_entities: true
|
2026-02-19 18:48:33 +01:00
|
|
|
max_tokens: 8000
|
feat(infospace): add process command for batch source file processing
- Extend PipelineStage with name, output_dir, output_macro,
split_entities, and macros fields for declarative pipeline config
- Add SourcePipeline class (pipeline.py) using simple @{macro}
substitution — no SQLite dependency, skip-if-exists per stage,
LLM retry on rate limits, git commit per source
- Add `markitect infospace process [GLOB_PATTERN]` CLI command with
--all, --provider, --model, --check-after-each, --no-commit flags
- Update infospace.yaml with output_dir, output_macro, split_entities,
and macros for each pipeline stage in the WoN example
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 13:29:32 +01:00
|
|
|
macros:
|
|
|
|
|
extraction_rules: artifacts/guidelines/extraction-rules.md
|
|
|
|
|
vsm_framework: artifacts/vsm-reference/vsm-framework.md
|
2026-02-19 02:29:53 +01:00
|
|
|
- name: map-to-vsm
|
|
|
|
|
template: templates/map-to-vsm.md
|
feat(infospace): add process command for batch source file processing
- Extend PipelineStage with name, output_dir, output_macro,
split_entities, and macros fields for declarative pipeline config
- Add SourcePipeline class (pipeline.py) using simple @{macro}
substitution — no SQLite dependency, skip-if-exists per stage,
LLM retry on rate limits, git commit per source
- Add `markitect infospace process [GLOB_PATTERN]` CLI command with
--all, --provider, --model, --check-after-each, --no-commit flags
- Update infospace.yaml with output_dir, output_macro, split_entities,
and macros for each pipeline stage in the WoN example
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 13:29:32 +01:00
|
|
|
output_dir: output/mappings
|
|
|
|
|
output_macro: mappings
|
2026-02-19 15:21:04 +01:00
|
|
|
max_tokens: 10000
|
feat(infospace): add process command for batch source file processing
- Extend PipelineStage with name, output_dir, output_macro,
split_entities, and macros fields for declarative pipeline config
- Add SourcePipeline class (pipeline.py) using simple @{macro}
substitution — no SQLite dependency, skip-if-exists per stage,
LLM retry on rate limits, git commit per source
- Add `markitect infospace process [GLOB_PATTERN]` CLI command with
--all, --provider, --model, --check-after-each, --no-commit flags
- Update infospace.yaml with output_dir, output_macro, split_entities,
and macros for each pipeline stage in the WoN example
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 13:29:32 +01:00
|
|
|
macros:
|
|
|
|
|
mapping_rules: artifacts/guidelines/mapping-rules.md
|
|
|
|
|
vsm_framework: artifacts/vsm-reference/vsm-framework.md
|
2026-02-19 02:29:53 +01:00
|
|
|
- name: synthesize-analysis
|
|
|
|
|
template: templates/synthesize-analysis.md
|
feat(infospace): add process command for batch source file processing
- Extend PipelineStage with name, output_dir, output_macro,
split_entities, and macros fields for declarative pipeline config
- Add SourcePipeline class (pipeline.py) using simple @{macro}
substitution — no SQLite dependency, skip-if-exists per stage,
LLM retry on rate limits, git commit per source
- Add `markitect infospace process [GLOB_PATTERN]` CLI command with
--all, --provider, --model, --check-after-each, --no-commit flags
- Update infospace.yaml with output_dir, output_macro, split_entities,
and macros for each pipeline stage in the WoN example
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 13:29:32 +01:00
|
|
|
output_dir: output/analyses
|
|
|
|
|
output_macro: analysis
|
2026-02-19 15:21:04 +01:00
|
|
|
max_tokens: 4000
|
feat(infospace): add process command for batch source file processing
- Extend PipelineStage with name, output_dir, output_macro,
split_entities, and macros fields for declarative pipeline config
- Add SourcePipeline class (pipeline.py) using simple @{macro}
substitution — no SQLite dependency, skip-if-exists per stage,
LLM retry on rate limits, git commit per source
- Add `markitect infospace process [GLOB_PATTERN]` CLI command with
--all, --provider, --model, --check-after-each, --no-commit flags
- Update infospace.yaml with output_dir, output_macro, split_entities,
and macros for each pipeline stage in the WoN example
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 13:29:32 +01:00
|
|
|
macros:
|
|
|
|
|
vsm_framework: artifacts/vsm-reference/vsm-framework.md
|
2026-02-19 02:29:53 +01:00
|
|
|
post_batch:
|
|
|
|
|
- name: assess-metrics
|
|
|
|
|
template: templates/assess-metrics.md
|