You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2026/08/09 13:30:27 UTC

(tinkerpop) 10/14: Label the root before it has children, and propagate changes by hand

This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit c978ae6b4013ea52d9cc08badecdf77d57660a0d
Author: Stephen Mallette <st...@amazon.com>
AuthorDate: Sun Aug 9 09:14:46 2026 -0400

    Label the root before it has children, and propagate changes by hand
    
    A child copies its parent's labels at birth, so a root labelled up
    front carries the whole subtree and a root labelled later carries
    nothing. bd has no backfill, so a later change has to be applied to
    every descendant.
    
    Assisted-by: Claude Code:claude-opus-5
---
 .beads/PRIME.md | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/.beads/PRIME.md b/.beads/PRIME.md
index 2c1ef27a94..c27c8b1f21 100644
--- a/.beads/PRIME.md
+++ b/.beads/PRIME.md
@@ -243,11 +243,13 @@ bd label list <id>
 bd label list-all                        # what is in use — includes drift; this file is the authority
 ```
 
-**Label the root, and only the root.** A bead's dimensions are its root's dimensions: to read
-them, navigate to the root. Do not label children — `bd create --parent` copies the *parent's*
-labels onto a child at birth and never again. Siblings born either side of a relabel disagree,
-and at depth each level snapshots the level above, so the copies drift further the deeper they
-sit. The structural labels below are the exception; they describe the bead itself and belong
+**Set every dimension label on the root when you create it, before any child exists.**
+`bd create --parent` copies the *parent's* labels onto a child at birth and never again, so a
+root labelled up front propagates to the whole subtree for free — and a root labelled afterwards
+propagates to nothing. If a label must change later, `bd label add|remove` on the root does not
+backfill: apply the change to every existing descendant by hand. Skip that and siblings born
+either side of the change disagree, and each new level snapshots whichever version its parent
+happened to hold. Structural labels are the exception; they describe the bead itself and belong
 wherever they apply.
 
 ### Structural labels — part of the data model, never optional