Skip to content

docs(clade): uuid follows the forge path, it is not immortal - #67

Open
hyperpolymath wants to merge 1 commit into
mainfrom
docs/clade-uuid-follows-forge-path
Open

hyperpolymath wants to merge 1 commit into
mainfrom
docs/clade-uuid-follows-forge-path

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

Comment-only correction. The CLADE status comment said the uuid is immortal. gv-clade-index ADR 0007 (accepted 2026-11-10) makes the uuid follow the forge path: a move or rename mints a new one, and a phase change never does.

A2ML is retired for new content. Correcting a factually wrong comment in an existing file is an edit, not new content.

Changes

  • .machine_readable/CLADE.a2ml: "uuid is immortal" → "uuid follows the forge path (a move or rename mints a new one, gv-clade-index ADR 0007; a phase change never does)"; "A rename is NOT a phase change" → "A prefixed-name (clade code) change is NOT a phase change". The paragraph is re-wrapped at 80 columns. No data values change. The wording is the same as in the correction PRs already merged across the estate.

RSR Quality Checklist

Required

  • Tests pass (just test or equivalent): not run locally. Comment-only change, left to CI.
  • Code is formatted (just fmt or equivalent): n/a, no code
  • Linter is clean (no new warnings or errors): n/a, no code
  • No banned language patterns
  • No unsafe blocks without // SAFETY: comments
  • No banned functions
  • SPDX license headers present on all new/modified source files (not touched)
  • No secrets, credentials, or .env files included

Testing

The diff is one comment paragraph in one file. Every line is ≤80 characters. The commit is signed.


Generated by Claude Code

The CLADE status comment said the uuid is immortal. gv-clade-index
ADR 0007 (accepted 2026-11-10) makes the uuid follow the forge path:
a move or rename mints a new one, and a phase change never does. A
prefixed-name (clade code) change still does not remint.

Comment-only correction. No data values change. A2ML is retired for
new content, but correcting a factually wrong comment in an existing
file is an edit, not new content.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0136P7ZmTcNdC1jL1Vp3qW9H
@coderabbitai

coderabbitai Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

Explain Change →

No actionable comments were generated in the recent review.

Summary

Summary by CodeRabbit

  • Documentation
    • Clarified that UUIDs follow the forge path and are newly minted when an item is moved or renamed, while phase changes leave the UUID unchanged.
    • Distinguished changes to prefixed names from phase changes, and retained details about mutable phases, valid transitions from extinct to active, and recording previous prefixed names in aliases.

The lifecycle comment now states that a move or rename mints a new UUID. It distinguishes these changes from phase changes and prefixed-name changes, which leave the UUID unchanged.

Changes: Lifecycle comment

Layer / File(s) Summary
Document lifecycle identity rules
.machine_readable/CLADE.a2ml
The comment states that a move or rename mints a new UUID, while a phase change or prefixed-name change leaves the UUID unchanged. It also states that the old prefixed name is recorded in aliases[].

Estimated code review effort: 1 (Trivial) | ~2 minutes

Change: Other

Merge Risk: Minimal · up to 1409b

No change-related merge-blocking risk is evident. CI reports K9 and manifest validation errors in other files.

Pre-merge checks: Passed 4

Check name Status Explanation
Title check Passed The title clearly summarises the main change: correcting the UUID lifecycle comment.
Description check Passed The description includes a summary, key changes, the required checklist and testing details. It states that tests were not run locally and were left to CI. The omitted screenshots section is not neede…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description includes a summary, key changes, the required checklist and testing details. It states that tests were not run locally and were left to CI. The omitted screenshots section is not needed for this comment-only change.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

Recent review info

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 9670cca6-41a4-43af-bc7c-5a9b337939d4
Commits

Reviewing files that changed from the base of the PR and between c659474 and 1409b5a.

Files selected for processing: 1

  • .machine_readable/CLADE.a2ml

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

Recent review details

Context from checks skipped due to timeout: 7

  • GitHub Check: CodeRabbit
  • GitHub Check: openssf-compliance
  • GitHub Check: analyze (actions, none)
  • GitHub Check: Patch Bridge CVE triage
  • GitHub Check: Hypatia neurosymbolic scan
  • GitHub Check: analyze (rust, none)
  • GitHub Check: panic-attack assail
CI failures not shown inline: 8

GitHub Actions: Dogfood Gate / 2_Groove manifest check.txt: docs(clade): uuid follows the forge path, it is not immortal

Conclusion: failure

View job details

##[group]Run # Check for static or dynamic Groove endpoints
 �[36;1m# Check for static or dynamic Groove endpoints�[0m
 �[36;1mHAS_MANIFEST="false"�[0m
 �[36;1mHAS_GROOVE_CODE="false"�[0m
 �[36;1m�[0m
 �[36;1mif [ -f ".well-known/groove/manifest.json" ]; then�[0m
 �[36;1m  HAS_MANIFEST="true"�[0m
 �[36;1m  # Validate the manifest JSON�[0m
 �[36;1m  if ! jq empty .well-known/groove/manifest.json 2>/dev/null; then�[0m
 �[36;1m    echo "::error file=.well-known/groove/manifest.json::Invalid JSON in Groove manifest"�[0m

GitHub Actions: Dogfood Gate / Groove manifest check: docs(clade): uuid follows the forge path, it is not immortal

Conclusion: failure

View job details

##[group]Run # Check for static or dynamic Groove endpoints
 �[36;1m# Check for static or dynamic Groove endpoints�[0m
 �[36;1mHAS_MANIFEST="false"�[0m
 �[36;1mHAS_GROOVE_CODE="false"�[0m
 �[36;1m�[0m
 �[36;1mif [ -f ".well-known/groove/manifest.json" ]; then�[0m
 �[36;1m  HAS_MANIFEST="true"�[0m
 �[36;1m  # Validate the manifest JSON�[0m
 �[36;1m  if ! jq empty .well-known/groove/manifest.json 2>/dev/null; then�[0m
 �[36;1m    echo "::error file=.well-known/groove/manifest.json::Invalid JSON in Groove manifest"�[0m

GitHub Actions: Dogfood Gate / 3_Validate eclexiaiser manifest.txt: docs(clade): uuid follows the forge path, it is not immortal

Conclusion: failure

View job details

##[group]Run if [ ! -f "eclexiaiser.toml" ]; then
 �[36;1mif [ ! -f "eclexiaiser.toml" ]; then�[0m
 �[36;1m  # Check if repo has a Containerfile — if so, recommend eclexiaiser�[0m
 �[36;1m  if [ -f "Containerfile" ]; then�[0m
 �[36;1m    echo "::warning::Containerfile present but no eclexiaiser.toml. Run \`eclexiaiser init\` to scaffold energy/carbon budgets."�[0m
 �[36;1m  fi�[0m
 �[36;1m  echo "has_manifest=false" >> "$GITHUB_OUTPUT"�[0m
 �[36;1m  exit 0�[0m
 �[36;1mfi�[0m
 �[36;1m�[0m
 �[36;1mecho "has_manifest=true" >> "$GITHUB_OUTPUT"�[0m
 �[36;1m�[0m
 �[36;1m# Validate TOML structure using pre-installed yq�[0m
 �[36;1m(�[0m
 �[36;1m  PROJECT_NAME=$(yq -e '.project.name // ""' eclexiaiser.toml)�[0m
 �[36;1m  if [ -z "$PROJECT_NAME" ]; then�[0m
 �[36;1m      echo "ERROR: project.name is required" >&2�[0m
 �[36;1m      exit 1�[0m
 �[36;1m  fi�[0m
 �[36;1m�[0m
 �[36;1m  FUNCTIONS_LEN=$(yq -e '.functions | length' eclexiaiser.toml)�[0m
 �[36;1m  if [ -z "$FUNCTIONS_LEN" ] || [ "$FUNCTIONS_LEN" -eq 0 ]; then�[0m
 �[36;1m      echo "ERROR: at least one [[functions]] entry is required" >&2�[0m
 �[36;1m      exit 1�[0m
 �[36;1m  fi�[0m
 �[36;1m�[0m
 �[36;1m  for i in $(seq 0 $((FUNCTIONS_LEN - 1))); do�[0m
 �[36;1m      FN_NAME=$(yq -e ".functions[$i].name // \"\"" eclexiaiser.toml)�[0m
 �[36;1m      if [ -z "$FN_NAME" ]; then�[0m
 �[36;1m          echo "ERROR: function name cannot be empty" >&2�[0m
 �[36;1m          exit 1�[0m
 �[36;1m      fi�[0m
 �[36;1m      FN_SRC=$(yq -e ".functions[$i].source // \"\"" eclexiaiser.toml)�[0m
 �[36;1m      if [ -z "$FN_SRC" ]; then�[0m
 �[36;1m          echo "ERROR: function $FN_NAME has no source path" >&2�[0m
 �[36;1m          exit 1�[0m
 �[36;1m      fi�[0m
 �[36;1m  done�[0m
 �[36;1m  echo "Valid: $PROJECT_NAME ($FUNCTIONS_LEN function(s))"�[0m
 �[36;1m) || {�[0m
 �[36;1m  echo "::error file=eclexiaiser.toml::Invalid eclexiaiser.toml — see step output for details"�[0m

GitHub Actions: Dogfood Gate / Validate eclexiaiser manifest: docs(clade): uuid follows the forge path, it is not immortal

Conclusion: failure

View job details

##[group]Run if [ ! -f "eclexiaiser.toml" ]; then
 �[36;1mif [ ! -f "eclexiaiser.toml" ]; then�[0m
 �[36;1m  # Check if repo has a Containerfile — if so, recommend eclexiaiser�[0m
 �[36;1m  if [ -f "Containerfile" ]; then�[0m
 �[36;1m    echo "::warning::Containerfile present but no eclexiaiser.toml. Run \`eclexiaiser init\` to scaffold energy/carbon budgets."�[0m
 �[36;1m  fi�[0m
 �[36;1m  echo "has_manifest=false" >> "$GITHUB_OUTPUT"�[0m
 �[36;1m  exit 0�[0m
 �[36;1mfi�[0m
 �[36;1m�[0m
 �[36;1mecho "has_manifest=true" >> "$GITHUB_OUTPUT"�[0m
 �[36;1m�[0m
 �[36;1m# Validate TOML structure using pre-installed yq�[0m
 �[36;1m(�[0m
 �[36;1m  PROJECT_NAME=$(yq -e '.project.name // ""' eclexiaiser.toml)�[0m
 �[36;1m  if [ -z "$PROJECT_NAME" ]; then�[0m
 �[36;1m      echo "ERROR: project.name is required" >&2�[0m
 �[36;1m      exit 1�[0m
 �[36;1m  fi�[0m
 �[36;1m�[0m
 �[36;1m  FUNCTIONS_LEN=$(yq -e '.functions | length' eclexiaiser.toml)�[0m
 �[36;1m  if [ -z "$FUNCTIONS_LEN" ] || [ "$FUNCTIONS_LEN" -eq 0 ]; then�[0m
 �[36;1m      echo "ERROR: at least one [[functions]] entry is required" >&2�[0m
 �[36;1m      exit 1�[0m
 �[36;1m  fi�[0m
 �[36;1m�[0m
 �[36;1m  for i in $(seq 0 $((FUNCTIONS_LEN - 1))); do�[0m
 �[36;1m      FN_NAME=$(yq -e ".functions[$i].name // \"\"" eclexiaiser.toml)�[0m
 �[36;1m      if [ -z "$FN_NAME" ]; then�[0m
 �[36;1m          echo "ERROR: function name cannot be empty" >&2�[0m
 �[36;1m          exit 1�[0m
 �[36;1m      fi�[0m
 �[36;1m      FN_SRC=$(yq -e ".functions[$i].source // \"\"" eclexiaiser.toml)�[0m
 �[36;1m      if [ -z "$FN_SRC" ]; then�[0m
 �[36;1m          echo "ERROR: function $FN_NAME has no source path" >&2�[0m
 �[36;1m          exit 1�[0m
 �[36;1m      fi�[0m
 �[36;1m  done�[0m
 �[36;1m  echo "Valid: $PROJECT_NAME ($FUNCTIONS_LEN function(s))"�[0m
 �[36;1m) || {�[0m
 �[36;1m  echo "::error file=eclexiaiser.toml::Invalid eclexiaiser.toml — see step output for details"�[0m

GitHub Actions: Dogfood Gate / 4_Validate K9 contracts.txt: docs(clade): uuid follows the forge path, it is not immortal

Conclusion: failure

View job details

##[group]K9 Configuration Validation
 Scanning . for K9 files (.k9, .k9.ncl)...
 Found 8 K9 file(s)
   Validating: ./.machine_readable/svc/k9/examples/ci-config.k9.ncl
   Validating: ./.machine_readable/svc/k9/examples/project-metadata.k9.ncl
   Validating: ./.machine_readable/svc/k9/examples/setup-repo.k9.ncl
   Validating: ./.machine_readable/svc/k9/methodology-guard.k9.ncl
 ##[error]Missing pedigree block. K9 files must contain a 'pedigree = { ... }' section
   Validating: ./.machine_readable/svc/k9/template-hunt.k9.ncl
   Validating: ./.machine_readable/svc/k9/template-kennel.k9.ncl
   Validating: ./.machine_readable/svc/k9/template-yard.k9.ncl
   Validating: ./container/deploy.k9.ncl
 ##[error]Pedigree block missing 'name' field (in pedigree.metadata.name or pedigree.name)
...
 Errors:        2
 Warnings:      2
 Strict mode:   false
 ────────────────────────────────────────
 ##[endgroup]
 ##[error]K9 validation failed with 2 error(s)
 ##[error]Process completed with exit code 1.

GitHub Actions: Dogfood Gate / Validate K9 contracts: docs(clade): uuid follows the forge path, it is not immortal

Conclusion: failure

View job details

##[group]K9 Configuration Validation
 Scanning . for K9 files (.k9, .k9.ncl)...
 Found 8 K9 file(s)
   Validating: ./.machine_readable/svc/k9/examples/ci-config.k9.ncl
   Validating: ./.machine_readable/svc/k9/examples/project-metadata.k9.ncl
   Validating: ./.machine_readable/svc/k9/examples/setup-repo.k9.ncl
   Validating: ./.machine_readable/svc/k9/methodology-guard.k9.ncl
 ##[error]Missing pedigree block. K9 files must contain a 'pedigree = { ... }' section
   Validating: ./.machine_readable/svc/k9/template-hunt.k9.ncl
   Validating: ./.machine_readable/svc/k9/template-kennel.k9.ncl
   Validating: ./.machine_readable/svc/k9/template-yard.k9.ncl
   Validating: ./container/deploy.k9.ncl
 ##[error]Pedigree block missing 'name' field (in pedigree.metadata.name or pedigree.name)
...
 Errors:        2
 Warnings:      2
 Strict mode:   false
 ────────────────────────────────────────
 ##[endgroup]
 ##[error]K9 validation failed with 2 error(s)
 ##[error]Process completed with exit code 1.

GitHub Actions: Dogfood Gate / 5_Validate DEED manifests.txt: docs(clade): uuid follows the forge path, it is not immortal

Conclusion: failure

View job details

##[group]A2ML Manifest Validation
 Scanning . for .a2ml files...
 Found 117 .a2ml file(s)
   Validating: ./.github/0.1-AI-MANIFEST.a2ml
 ##[warning]Missing SPDX-License-Identifier in first 10 lines
   Validating: ./.machine_readable/0.1-AI-MANIFEST.a2ml
   Validating: ./.machine_readable/6a2/AGENTIC.a2ml
   Validating: ./.machine_readable/6a2/ECOSYSTEM.a2ml
   Validating: ./.machine_readable/6a2/META.a2ml
   Validating: ./.machine_readable/6a2/NEUROSYM.a2ml
   Validating: ./.machine_readable/6a2/PLAYBOOK.a2ml
   Validating: ./.machine_readable/6a2/STATE.a2ml
   Validating: ./.machine_readable/CLADE.a2ml
   Validating: ./.machine_readable/ECOSYSTEM.a2ml
   Validating: ./.machine_readable/ENSAID_CONFIG.a2ml
   Validating: ./.machine_readable/META.a2ml
   Validating: ./.machine_readable/STATE.a2ml
   Validating: ./.machine_readable/agent_instructions/coverage.a2ml
   Validating: ./.machine_readable/agent_instructions/debt.a2ml
   Validating: ./.machine_readable/agent_instructions/methodology.a2ml
   Validating: ./.machine_readable/ai/0.2-AI-MANIFEST.a2ml
   Validating: ./.machine_readable/ai/AI.a2ml
 ##[warning]Missing SPDX-License-Identifier in first 10 lines
   Validating: ./.machine_readable/anchors/0.2-AI-MANIFEST.a2ml
   Validating: ./.machine_readable/anchors/ANCHOR.a2ml
   Validating: ./.machine_readable/configs/0.2-AI-MANIFEST.a2ml
   Validating: ./.machine_readable/contractiles/bust/Bustfile.a2ml
   Validating: ./.machine_readable/contractiles/dust/Dustfile.a2ml
   Validating: ./.machine_readable/contractiles/must/Mustfile.a2ml
   Validating: ./.machine_readable/contractiles/trust/Trustfile.a2ml
   Validating: ./.machine_readable/integrations/feedback-o-tron.a2ml
   Validating: ./.machine_readable/integrations/groove.a2ml
   Validating: ./.machine_readable/integrations/proven.a2ml
   Validating: ./.machine_readable/integrations/verisimdb.a2ml
   Validating: ./.machine_readable/integrations/vexometer.a2ml
   Validating: ./.machine_readable/policies/0.2-AI-MA...

GitHub Actions: Dogfood Gate / Validate DEED manifests: docs(clade): uuid follows the forge path, it is not immortal

Conclusion: failure

View job details

##[group]A2ML Manifest Validation
 Scanning . for .a2ml files...
 Found 117 .a2ml file(s)
   Validating: ./.github/0.1-AI-MANIFEST.a2ml
 ##[warning]Missing SPDX-License-Identifier in first 10 lines
   Validating: ./.machine_readable/0.1-AI-MANIFEST.a2ml
   Validating: ./.machine_readable/6a2/AGENTIC.a2ml
   Validating: ./.machine_readable/6a2/ECOSYSTEM.a2ml
   Validating: ./.machine_readable/6a2/META.a2ml
   Validating: ./.machine_readable/6a2/NEUROSYM.a2ml
   Validating: ./.machine_readable/6a2/PLAYBOOK.a2ml
   Validating: ./.machine_readable/6a2/STATE.a2ml
   Validating: ./.machine_readable/CLADE.a2ml
   Validating: ./.machine_readable/ECOSYSTEM.a2ml
   Validating: ./.machine_readable/ENSAID_CONFIG.a2ml
   Validating: ./.machine_readable/META.a2ml
   Validating: ./.machine_readable/STATE.a2ml
   Validating: ./.machine_readable/agent_instructions/coverage.a2ml
   Validating: ./.machine_readable/agent_instructions/debt.a2ml
   Validating: ./.machine_readable/agent_instructions/methodology.a2ml
   Validating: ./.machine_readable/ai/0.2-AI-MANIFEST.a2ml
   Validating: ./.machine_readable/ai/AI.a2ml
 ##[warning]Missing SPDX-License-Identifier in first 10 lines
   Validating: ./.machine_readable/anchors/0.2-AI-MANIFEST.a2ml
   Validating: ./.machine_readable/anchors/ANCHOR.a2ml
   Validating: ./.machine_readable/configs/0.2-AI-MANIFEST.a2ml
   Validating: ./.machine_readable/contractiles/bust/Bustfile.a2ml
   Validating: ./.machine_readable/contractiles/dust/Dustfile.a2ml
   Validating: ./.machine_readable/contractiles/must/Mustfile.a2ml
   Validating: ./.machine_readable/contractiles/trust/Trustfile.a2ml
   Validating: ./.machine_readable/integrations/feedback-o-tron.a2ml
   Validating: ./.machine_readable/integrations/groove.a2ml
   Validating: ./.machine_readable/integrations/proven.a2ml
   Validating: ./.machine_readable/integrations/verisimdb.a2ml
   Validating: ./.machine_readable/integrations/vexometer.a2ml
   Validating: ./.machine_readable/policies/0.2-AI-MA...
Additional context used

Code guidelines: 1

.github/copilot-instructions.md — auto-discovered
Path-based instructions: 2

Source excerpt: State files (.a2ml) live in `.machine_readable/` ONLY, never the root.

CodeRabbit inference engine (.github/copilot-instructions.md)

Files:

  • .machine_readable/CLADE.a2ml
Source excerpt: Use descriptive variable names.

CodeRabbit inference engine (.github/copilot-instructions.md)

Files:

  • .machine_readable/CLADE.a2ml
Additional comments: 1

.machine_readable/CLADE.a2ml: 1

29-34: LGTM!

@sonarqubecloud

Copy link
Copy Markdown

@linear-code
linear-code Bot marked this pull request as ready for review November 10, 2026 23:15

Copy link
Copy Markdown
Owner Author

CI note: these failures are not caused by this PR. This PR changes only the comment block in .machine_readable/CLADE.a2ml.

Two Dogfood Gate jobs are red:

  • Validate K9 contracts. ./.machine_readable/svc/k9/methodology-guard.k9.ncl has no pedigree block, and ./container/deploy.k9.ncl is missing the pedigree name.
  • Validate DEED manifests. ./docs/governance/MAINTENANCE-CHECKLIST.a2ml is missing an identity field (agent-id, name or project).

None of these files is part of this diff. The Dogfood Gate workflow also fails on main at the PR's base, c659474. No fix exists on main yet. Fixing these files means filling in real project metadata, so they need a separate change.


Generated by Claude Code

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants