fix: comparison and source pages accept the sources: cite add writes; sources may cite sources (#173)
CI / verify (push) Successful in 5m20s
CI / pwsh (push) Successful in 2m2s
Release / release (push) Successful in 36s

Files changed:
- CHANGES.md
- VERSION
- instructions/wiki-ingest/SKILL.md
- kb/CONTRACT.md
- tools/CONTRACT.md
- tools/chemenu/commands/cite_cmd.py
- tools/chemenu/commands/xref.py
- tools/chemenu/tests/test_cite_cmd.py
- tools/chemenu/tests/test_page_ops.py
- tools/chemenu/tests/test_type_resolver.py
- tools/chemenu/tests/test_xref.py
- types/comparison.md
- types/comparison.schema.yaml
- types/source.md
- types/source.schema.yaml

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SnAJ7Z3CpVD3PRbN73QtU2
This commit is contained in:
torbenandClaude Opus 5.5 committed 2026-10-04 21:35:24 +02:00
1 parent 662a844cf1
commit 862bc04d9c
15 files changed
+310 -19

No files matched your search

+2 -1
View File
@@ -4,7 +4,7 @@ name: comparison
description: Structured type for comparison pages that set several entities or approaches against one another
schema: types/comparison.schema.yaml
base_dir: comparisons
page_ref_fields: [entities, related]
page_ref_fields: [entities, related, sources]
guidance: types/comparison.guidance.md
---
@@ -24,6 +24,7 @@ and how to write a conforming page is [types/comparison.guidance.md](comparison.
| `created` | Yes | Creation date (YYYY-MM-DD) |
| `entities` | Yes | Titles of the entities compared |
| `related` | No | Declared outbound edges - one `compares-with` edge per subject, written by `wikitool xref add` |
| `sources` | No | Titles of the source pages cited on this page, written by `wikitool cite add` |
| `summary` | Yes | One-liner for `kb/index.md` |
## Template
+7
View File
@@ -38,6 +38,13 @@ properties:
provenance-style list, so without this one the edge the page exists to
make would live only in hand-written prose - which is the thing
instructions/link-taxonomy.md was built to end.
sources:
type: array
items:
type: string
description: >-
Source page titles cited on this page, written by `wikitool cite add`.
Optional, so a comparison that cites nothing keeps validating without it.
summary:
type: string
description: 1-line summary for index.md
+2 -1
View File
@@ -6,7 +6,7 @@ schema: types/source.schema.yaml
subtype_field: source_type
base_dir: sources
title_prefix: "Source - "
page_ref_fields: [entities, concepts]
page_ref_fields: [entities, concepts, sources]
capture_fields: [fidelity, authority]
guidance: types/source.guidance.md
layout:
@@ -42,6 +42,7 @@ how to write a conforming page is [types/source.guidance.md](source.guidance.md)
| `tags` | No | Navigation tags for categorization |
| `entities` | No | Titles of the entities mentioned in this source |
| `concepts` | No | Titles of the concepts mentioned in this source |
| `sources` | No | Titles of *other* source pages this source cites, written by `wikitool cite add` - never its own title |
| `summary` | Yes | One-liner for `kb/index.md` |
## Template
+9
View File
@@ -72,6 +72,15 @@ properties:
items:
type: string
description: Concept titles mentioned in this source
sources:
type: array
items:
type: string
description: >-
Other source pages this source cites, written by `wikitool cite add`.
Never this page's own title - a citation of one of its own raw files
leaves the field untouched. Optional, so a source that cites no other
source keeps validating without it.
summary:
type: string
description: 1-line summary for index.md