Implement Markdown doctrine graph lifecycle - #20
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5f9f9c1c11
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| concept_nodes = { | ||
| str(node.id) for node in graph.nodes.values() if node.node_type == NodeType.CONCEPT | ||
| } | ||
| concept_checked_types = {NodeType.NOTE, NodeType.EXAMPLE, NodeType.ANTIPATTERN} |
There was a problem hiding this comment.
Check concept notes for every concept-bearing node
Because this validation only considers notes, examples, and antipatterns, concepts used exclusively by standards, doctrines, maps, or decisions are omitted from tea-kb validate even though those node types declare concepts frontmatter and the generated duplicate-concepts report already lists many missing concept notes such as concept:graph and concept:generated-artifacts. This makes validation and the health report report zero warnings while another generated artifact flags unresolved vocabulary, so missing controlled-vocabulary entries can be committed as a clean graph.
Useful? React with 👍 / 👎.
Summary
tea_kbPython package andtea-kbCLI for validation, build/export, reports, visualization, inspection, neighbors, path, and tea-themed aliases.Graph output
Validation
uv run ruff checkuv run ruff format --checkuv run pyrightuv run pytestuv run tea-kb validateuv run tea-kb build --check