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 53f6da138e2933b39e3fe5c66877f9aa0bfa5935
Author: Stephen Mallette <[email protected]>
AuthorDate: Fri Aug 7 17:00:53 2026 -0400

    Close the label vocabulary and forbid inventing new ones
    
    Labels drifted into 26 values with competing forms and one duplicating the 
type
    field. Section 7 now lists the whole vocabulary — Maven module names 
verbatim,
    release lines, and cross-cutting concerns — and separates the structural 
labels
    the workflow depends on from descriptive ones. Agents never add to the list.
    
    Assisted-by: Claude Code:claude-opus-5
---
 .beads/PRIME.md | 46 +++++++++++++++++++++++++++++++++++-----------
 1 file changed, 35 insertions(+), 11 deletions(-)

diff --git a/.beads/PRIME.md b/.beads/PRIME.md
index 0e36213018..dbfd590a79 100644
--- a/.beads/PRIME.md
+++ b/.beads/PRIME.md
@@ -206,28 +206,52 @@ a list, and `bd ready` cannot tell you anything useful 
about it.
 Labels are categorization **orthogonal to type and priority** — a bead carries 
as many as
 apply, giving cross-cutting views the tree cannot.
 
+> **Never invent a label.** What is listed below is the entire vocabulary. A 
label that
+> exists in the database but is not listed here is drift, not precedent — do 
not copy it.
+> If a bead genuinely needs something absent from these lists, that is the 
operator's
+> decision, not yours: raise it with a `human` bead and proceed without the 
label.
+
 ```bash
-bd create --labels="gremlin-core,io"     # at creation
-bd label list-all                        # what already exists — ALWAYS check 
before inventing one
+bd create --labels="gremlin-core,3.8"    # at creation
 bd label add|remove <id> <label>
 bd label list <id>
+bd label list-all                        # what is in use — includes drift; 
this file is the authority
 ```
 
 **Set module and release labels once on the root** — children inherit them. 
Labels added to
 a root *after* its children exist do not backfill, so label the root first.
 
-| Dimension | Values |
+### Structural labels — part of the data model, never optional
+
+| Label | Why it exists |
 |---|---|
-| Module | `gremlin-core`, `gremlin-server`, `gremlin-test`, `tinkergraph`, 
`gremlator`, and `gremlin-python` / `gremlin-javascript` / `gremlin-go` / 
`gremlin-dotnet` |
-| Concern | `io`, `traversal`, `docs`, `antlr`, `process`, `specification`, 
`glv`, `breaking-change`, `deprecation` |
-| Semantic | `rejected-alternative`, `human`, and record kinds `jira` / `pr` / 
`dev-list` / `proposal` |
+| `human` | bd's own contract: `bd human list/respond/dismiss` query this 
exact string |
+| `rejected-alternative` | the chosen decision and the road not taken are 
**both** `type=decision`; this label is the only thing telling them apart |
+| `jira` `pr` `dev-list` `proposal` | which kind of external artifact a 
`record` bead holds — exactly one per record |
+
+### Dimensions — descriptive; several may apply
+
+**Module** — the Maven module name, verbatim. If it is not a directory with a 
`pom.xml`, it
+is not a module label. Sub-trees use their parent's label.
+
+```
+gql-gremlin  gremlin-annotations  gremlin-console  gremlin-core     
gremlin-dotnet
+gremlin-driver  gremlin-go  gremlin-groovy  gremlin-js  gremlin-language
+gremlin-python  gremlin-server  gremlin-shaded  gremlin-test  gremlin-tools
+gremlin-util  hadoop-gremlin  spark-gremlin  tinkergraph-gremlin  docs
+```
 
-**Never label a bead with something `--type` already says.** `feature`, 
`task`, `bug` are
-types; a `feature` label is on 18 beads today and carries no information the 
type field
-lacks. That is the drift `bd label list-all` is meant to catch.
+**Release** — the release line, not the branch. Branches get renamed; the bead 
outlives them.
 
-These are conventions, not enforced values — but a new label splits every 
query that used
-the old one, so introducing one is a decision. Treat it as such.
+```
+3.7   3.8   4.0
+```
+
+**Concern** — a cross-cutting property that changes what someone must do about 
the change.
+
+```
+breaking-change  deprecation  security  serialization  protocol  performance  
release  build
+```
 
 ---
 

Reply via email to