Skip to main content

Development/decision-provenance schema for context graphs: Decision, Fact-slot/Assertion, Evidence, Thread, Session, Procedure, and Entity node kinds with deterministic identity and overlay/reasoning edges — the dev-domain sibling to cjm-transcript-graph-schema for graphing a project's own evolution.

Project description

cjm-dev-graph-schema

Development/decision-provenance schema for context graphs: Decision, Fact-slot/Assertion, Evidence, Thread, Session, Procedure, and Entity node kinds with deterministic identity and overlay/reasoning edges — the dev-domain sibling to cjm-transcript-graph-schema for graphing a project's own evolution.

Modules

  • cjm_dev_graph_schema.__init__
  • cjm_dev_graph_schema.aliases — Rename-stable subject resolution (the A+aliases identity machinery).
  • cjm_dev_graph_schema.identity — Deterministic node-id helpers for the dev/decision-provenance domain.
  • cjm_dev_graph_schema.nodes — Typed node dataclasses for the dev schema (coarse + fine tier).
  • cjm_dev_graph_schema.predicates — Typed predicates + their value-space metadata (the dedup decidability layer).
  • cjm_dev_graph_schema.vocab — The reserved node-kind and edge-relation vocabulary for the dev/decision-provenance domain.
  • tests.test_code_nodes — Code source-type nodes: deterministic identity, wire shapes, and edges.
  • tests.test_entity — EntityNode: deterministic (sub-kind, key) identity, wire-dict, DEPENDS_ON edges.
  • tests.test_fine_nodes — Fine-tier nodes: deterministic identity, wire shapes, and alias resolution.
  • tests.test_nodes — Coarse-tier NoteNode: deterministic identity, wire-dict mapping, REFERENCES edges.
  • tests.test_predicates — Predicate value-space: canonicalization, ordering, and conflict decisions.

API

cjm_dev_graph_schema.aliases

  • build_alias_index function — Index every entity by its key, current name, and each alias.
  • resolve_subject_id function — Resolve a subject name to its entity id via the alias index (no guessing).

cjm_dev_graph_schema.identity

  • assertion_node_id function — Assertion identity = (slot, canonical value, actor).
  • cell_node_id function — Cell identity = (notebook module, stable cell key).
  • check_node_id function — Check identity = (its work item, canonical text) — the same wording on two
  • code_module_node_id function — Code-module identity = (repo_key, module_path).
  • code_symbol_node_id function — Code-symbol identity = (enclosing module, qualified name).
  • code_text_node_id function — Code-text-region identity = (module, region key).
  • decision_node_id function — Decision identity = its canonical statement (idempotent re-records).
  • entity_node_id function — Entity identity = (sub-kind, stable key).
  • factslot_node_id function — Fact-slot identity = (subject, predicate).
  • note_node_id function — Note identity = its stable slug.
  • section_node_id function — Section identity = (enclosing Note, heading anchor slug).
  • series_node_id function — Series identity = its stable key.
  • session_node_id function — Session identity = its stable key (so DECIDED_IN/PRODUCED_IN converge).
  • topic_node_id function — Topic identity = its normalized name slug.

cjm_dev_graph_schema.nodes

  • AssertionNode class — One value claimed for a Fact-slot — identified by WHAT is claimed.
  • CellNode class — One VERBATIM notebook cell — the lossless source substrate of a notebook module.
  • CheckNode class — A definition-of-done check on a work item — a derivable gate, not prose.
  • CodeModuleNode class — The code source-type's coarse node: one decomposed .py module.
  • CodeSymbolNode class — A definition within a module: a function, class, or method.
  • CodeTextNode class — A non-def top-level region of a plain-.py module — the verbatim substrate BETWEEN symbols.
  • DecisionNode class — A decision/conclusion, with rationale recorded as edges, not prose.
  • EntityNode class — A first-class subject: a repo/lib, stage, capability, person, or term.
  • FactSlotNode class — A (subject, predicate) slot — the home for layered, supersede-able claims.
  • NoteNode class — The coarse-tier document node: one decomposed markdown/memory file.
  • SectionNode class — One heading-delimited section of a Note's body — the navigable unit + anchor target.
  • SeriesNode class — An ordered collection/progression a note belongs to (a Quarto series, …).
  • SessionNode class — A working session — the home decisions/facts are PRODUCED_IN / DECIDED_IN.
  • TopicNode class — A category/tag facet — a thematic-clustering subject shared across notes.

cjm_dev_graph_schema.predicates

  • Predicate class — A typed predicate's value-space (the contradiction decidability metadata).
  • active_contradiction function — Whether a slot's ACTIVE (non-superseded) values form a hard contradiction.
  • canonical_value function — Canonicalize a value so equal claims collapse to one Assertion.
  • get_predicate function — Look up a predicate's value-space; None = an untyped freetext predicate.
  • is_multivalued function — Whether the predicate is a SET slot (distinct values coexist, never conflict).
  • is_ordered function — Whether the predicate's values have a "later supersedes earlier" ordering.
  • is_typed function — Whether the predicate is in the typed registry.
  • ordering_supersedes function — For an ordered predicate, does new_value supersede old_value?
  • soft_conflict function — Whether an UNTYPED slot's active values disagree (a worklist candidate).
  • values_conflict function — Whether two values are a HARD contradiction under the value-space.

cjm_dev_graph_schema.vocab

  • DevNodeKinds class — Node labels of the dev/decision-provenance schema (the locked model).
  • DevRelations class — Dev-domain edge relations (reserved up front).

tests.test_code_nodes

  • test_cell_contains_next_documents_references_edges function
  • test_cell_identity_prefers_nbformat_id_else_index function
  • test_cell_wire_is_verbatim_and_typed function
  • test_codetext_region_identity_and_wire function
  • test_module_about_targets_repo_entity function
  • test_module_contains_edges_order_regions function
  • test_module_defines_and_imports_edges function
  • test_module_identity_is_repokey_path function
  • test_module_wire_carries_relevance_fields_and_source function
  • test_nested_defines function
  • test_nested_symbol_has_no_body_props function
  • test_symbol_identity_is_module_qualname function
  • test_symbol_uses_edges_superset_dedups_and_skips_self function
  • test_symbol_wire_and_call_edges function
  • test_symbol_without_content_hash_has_no_source function
  • test_top_level_symbol_carries_verbatim_body_and_order function

tests.test_entity

  • test_depends_on_edges_target_same_kind_ids function
  • test_id_from_kind_and_key function
  • test_same_key_different_kind_differs function
  • test_to_graph_node_shape function

tests.test_fine_nodes

  • test_assertion_identity_is_slot_value_actor function
  • test_assertion_wire_and_edges function
  • test_decision_and_session function
  • test_entity_aliases_resolve_rename_stable function
  • test_factslot_identity_is_subject_predicate function

tests.test_nodes

  • test_cross_post_alias_resolution function
  • test_cross_post_edges_anchor_resolves_to_section_id function
  • test_facets_stored_on_node_when_present function
  • test_id_changes_with_slug function
  • test_id_is_deterministic_from_slug function
  • test_no_references_no_edges function
  • test_optional_fields_omitted_when_empty function
  • test_reference_edges_target_linked_note_ids function
  • test_section_identity_and_anchor_resolution_by_construction function
  • test_section_node_shape_carries_verbatim_text function
  • test_section_structural_edges_membership_and_hierarchy function
  • test_series_edges_membership function
  • test_series_node_shape_and_identity function
  • test_tagged_edges_target_shared_topic_ids function
  • test_to_graph_node_shape function
  • test_topic_node_shape_and_identity function

tests.test_predicates

  • test_active_contradiction_and_soft_conflict function
  • test_aka_distinct_values_never_conflict function
  • test_aka_is_multivalued_slug_set function
  • test_canonical_value_enum_lowercases function
  • test_canonical_value_semver_strips_v_prefix function
  • test_canonical_value_untyped_preserves_case function
  • test_ordering_supersedes_semver function
  • test_ordering_supersedes_task_state_enum function
  • test_rename_disposition_is_unordered_enum function
  • test_typed_predicate_registry function
  • test_values_conflict_only_typed_unordered function
  • test_version_is_ordered_semver function

Dependencies

Used by: cjm-context-graph-projection, cjm-markdown-decompose-core, cjm-notebook-decompose-core, cjm-python-decompose-core

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cjm_dev_graph_schema-0.0.11.tar.gz (39.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cjm_dev_graph_schema-0.0.11-py3-none-any.whl (33.0 kB view details)

Uploaded Python 3

File details

Details for the file cjm_dev_graph_schema-0.0.11.tar.gz.

File metadata

  • Download URL: cjm_dev_graph_schema-0.0.11.tar.gz
  • Upload date:
  • Size: 39.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for cjm_dev_graph_schema-0.0.11.tar.gz
Algorithm Hash digest
SHA256 aa1703345f8c02c0e30fb85d0efb2c3bfc74001f57d66122b18c31b0a359d37e
MD5 189e7ffc82ffb061cc6c9f2c9bbfb793
BLAKE2b-256 830c26f902a3d211a3be921705fbc9e3fd70fc661714002a9d2cafba76cd3ee6

See more details on using hashes here.

File details

Details for the file cjm_dev_graph_schema-0.0.11-py3-none-any.whl.

File metadata

File hashes

Hashes for cjm_dev_graph_schema-0.0.11-py3-none-any.whl
Algorithm Hash digest
SHA256 27ce37c1f869bef4f8134bef467a86edf355ce4eca073f0bca60ebcf1c633da0
MD5 980211b9c6cb59adbf3e3ed201435c83
BLAKE2b-256 c8a8f393964801d0ef718db04ef82496652c85e4518ded0ae61e8ea4aebba3f3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page