Skip to content

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

Merged
hyperpolymath merged 2 commits into
mainfrom
docs/clade-uuid-follows-forge-path
Nov 10, 2026
Merged

hyperpolymath merged 2 commits into
mainfrom
docs/clade-uuid-follows-forge-path

Conversation

@hyperpolymath

@hyperpolymath hyperpolymath commented Nov 10, 2026 •

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) derives the uuid from the GitHub path (UUIDv5 over github.com/<owner>/<name>): a move or rename on GitHub mints a new one, and a mirror move or 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 GitHub path (a move or rename there mints a new one, gv-clade-index ADR 0007; a mirror move or a phase change never does)"; "A rename is NOT a phase change" → "A prefixed-name (clade code) change with the GitHub path unchanged is NOT a phase change". The paragraph is re-wrapped at 80 columns. No data values change. The owner approved this wording for the whole estate. It replaces the earlier "forge path" text, and follow-up PRs bring the repos that merged that text in line.

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 with Claude Code

https://claude.ai/code/session_0136P7ZmTcNdC1jL1Vp3qW9H

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 →

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 34 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

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: 5d906ac7-1dd6-4f41-9381-171242d844dc
Commits

Reviewing files that changed from the base of the PR and between 4a487af and 6a7c24f.

Files selected for processing: 1

  • .machine_readable/CLADE.a2ml

No actionable comments were generated in the recent review.

Summary

Summary by CodeRabbit

  • Documentation
    • Clarified how UUIDs behave when items are moved, renamed or have their phase changed.

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

Changes: Lifecycle status

Layer / File(s) Summary
Lifecycle status comment
.machine_readable/CLADE.a2ml
The comment describes how moves, renames, and prefixed-name changes relate to UUIDs and phases.

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

Change: Other

Merge Risk: Minimal · previous review 4a487

The wording clarifies the lifecycle rules without changing data. No merge-blocking risk was identified.

Pre-merge checks: Passed 4

Check name Status Explanation
Title check Passed The title clearly identifies the UUID wording correction in the CLADE documentation.
Description check Passed The description includes the summary, changes, quality checklist and testing details. It reports that tests were not run locally and are left to CI. The optional Screenshots section is absent.
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.
  • 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: d6960e34-92af-456c-b222-00ce6af604ba
Commits

Reviewing files that changed from the base of the PR and between d32a82a and 4a487af.

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: gitleaks
  • GitHub Check: trufflehog
  • GitHub Check: rust-secrets
  • GitHub Check: Hypatia Neurosymbolic Analysis
  • GitHub Check: analyze (actions, none)
  • GitHub Check: semgrep-cloud-platform/scan
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: SPDX: `PMPL-1.0-or-later` on all new files.

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

Files:

  • .machine_readable/CLADE.a2ml
Additional comments: 1

.machine_readable/CLADE.a2ml: 1

29-34: LGTM!

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

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 74 issues detected

Severity Count
🔴 Critical 0
🟠 High 31
🟡 Medium 43
View findings
[
  {
    "reason": "Job `triage` in label-triage.yml has no `timeout-minutes:` declaration. Default is 6 hours — a stuck codeload fetch or runner hang can burn budget. Add `timeout-minutes: 10` (or proportional).",
    "type": "missing_timeout_minutes",
    "file": ".github/workflows/label-triage.yml",
    "level": "epi",
    "rule_module": "workflow_audit",
    "action": "flag",
    "severity": "medium",
    "recipe_id": "recipe-add-workflow-timeout-minutes",
    "job": "triage",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/label-triage.yml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/missing_timeout_minutes",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "reason": "Job `sync` in labels.yml has no `timeout-minutes:` declaration. Default is 6 hours — a stuck codeload fetch or runner hang can burn budget. Add `timeout-minutes: 10` (or proportional).",
    "type": "missing_timeout_minutes",
    "file": ".github/workflows/labels.yml",
    "level": "epi",
    "rule_module": "workflow_audit",
    "action": "flag",
    "severity": "medium",
    "recipe_id": "recipe-add-workflow-timeout-minutes",
    "job": "sync",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/labels.yml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/missing_timeout_minutes",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 273,
    "reason": "job `scan` in .github/workflows/hypatia-scan.yml references `secrets.*` but does not install `step-security/harden-runner` or declare its egress — review outbound-egress monitoring; it holds the credential next to fetched code (a piped installer or a dependency install/build)",
    "type": "RE001",
    "file": ".github/workflows/hypatia-scan.yml",
    "level": "epi",
    "rule_module": "research_extensions",
    "action": "report",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/hypatia-scan.yml",
          "end_line": 273,
          "start_line": 273
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 46,
    "reason": "job `notify` in .github/workflows/push-email-notify.yml references `secrets.*` but does not install `step-security/harden-runner` or declare its egress — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/push-email-notify.yml",
    "level": "epi",
    "rule_module": "research_extensions",
    "action": "report",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/push-email-notify.yml",
          "end_line": 46,
          "start_line": 46
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 27,
    "reason": "job `mirror-gitlab` in .github/workflows/mirror.yml references `secrets.*` but does not install `step-security/harden-runner` or declare its egress — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/mirror.yml",
    "level": "epi",
    "rule_module": "research_extensions",
    "action": "report",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/mirror.yml",
          "end_line": 27,
          "start_line": 27
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 47,
    "reason": "job `mirror-bitbucket` in .github/workflows/mirror.yml references `secrets.*` but does not install `step-security/harden-runner` or declare its egress — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/mirror.yml",
    "level": "epi",
    "rule_module": "research_extensions",
    "action": "report",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/mirror.yml",
          "end_line": 47,
          "start_line": 47
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 67,
    "reason": "job `mirror-codeberg` in .github/workflows/mirror.yml references `secrets.*` but does not install `step-security/harden-runner` or declare its egress — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/mirror.yml",
    "level": "epi",
    "rule_module": "research_extensions",
    "action": "report",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/mirror.yml",
          "end_line": 67,
          "start_line": 67
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 87,
    "reason": "job `mirror-sourcehut` in .github/workflows/mirror.yml references `secrets.*` but does not install `step-security/harden-runner` or declare its egress — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/mirror.yml",
    "level": "epi",
    "rule_module": "research_extensions",
    "action": "report",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/mirror.yml",
          "end_line": 87,
          "start_line": 87
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 107,
    "reason": "job `mirror-disroot` in .github/workflows/mirror.yml references `secrets.*` but does not install `step-security/harden-runner` or declare its egress — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/mirror.yml",
    "level": "epi",
    "rule_module": "research_extensions",
    "action": "report",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/mirror.yml",
          "end_line": 107,
          "start_line": 107
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 127,
    "reason": "job `mirror-gitea` in .github/workflows/mirror.yml references `secrets.*` but does not install `step-security/harden-runner` or declare its egress — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/mirror.yml",
    "level": "epi",
    "rule_module": "research_extensions",
    "action": "report",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/mirror.yml",
          "end_line": 127,
          "start_line": 127
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

The uuid is UUIDv5 over github.com/<owner>/<name> (gv-clade-index ADR
0007), so say "GitHub path" rather than "forge path": a move or rename on
GitHub mints a new uuid, a mirror move does not. Scope the "not a phase
change" sentence to a prefixed-name change with the GitHub path unchanged.

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

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

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 74 issues detected

Severity Count
🔴 Critical 0
🟠 High 31
🟡 Medium 43
View findings
[
  {
    "reason": "Job `triage` in label-triage.yml has no `timeout-minutes:` declaration. Default is 6 hours — a stuck codeload fetch or runner hang can burn budget. Add `timeout-minutes: 10` (or proportional).",
    "type": "missing_timeout_minutes",
    "file": ".github/workflows/label-triage.yml",
    "level": "epi",
    "rule_module": "workflow_audit",
    "action": "flag",
    "severity": "medium",
    "recipe_id": "recipe-add-workflow-timeout-minutes",
    "job": "triage",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/label-triage.yml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/missing_timeout_minutes",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "reason": "Job `sync` in labels.yml has no `timeout-minutes:` declaration. Default is 6 hours — a stuck codeload fetch or runner hang can burn budget. Add `timeout-minutes: 10` (or proportional).",
    "type": "missing_timeout_minutes",
    "file": ".github/workflows/labels.yml",
    "level": "epi",
    "rule_module": "workflow_audit",
    "action": "flag",
    "severity": "medium",
    "recipe_id": "recipe-add-workflow-timeout-minutes",
    "job": "sync",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/labels.yml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/missing_timeout_minutes",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 273,
    "reason": "job `scan` in .github/workflows/hypatia-scan.yml references `secrets.*` but does not install `step-security/harden-runner` or declare its egress — review outbound-egress monitoring; it holds the credential next to fetched code (a piped installer or a dependency install/build)",
    "type": "RE001",
    "file": ".github/workflows/hypatia-scan.yml",
    "level": "epi",
    "rule_module": "research_extensions",
    "action": "report",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/hypatia-scan.yml",
          "end_line": 273,
          "start_line": 273
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 46,
    "reason": "job `notify` in .github/workflows/push-email-notify.yml references `secrets.*` but does not install `step-security/harden-runner` or declare its egress — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/push-email-notify.yml",
    "level": "epi",
    "rule_module": "research_extensions",
    "action": "report",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/push-email-notify.yml",
          "end_line": 46,
          "start_line": 46
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 27,
    "reason": "job `mirror-gitlab` in .github/workflows/mirror.yml references `secrets.*` but does not install `step-security/harden-runner` or declare its egress — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/mirror.yml",
    "level": "epi",
    "rule_module": "research_extensions",
    "action": "report",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/mirror.yml",
          "end_line": 27,
          "start_line": 27
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 47,
    "reason": "job `mirror-bitbucket` in .github/workflows/mirror.yml references `secrets.*` but does not install `step-security/harden-runner` or declare its egress — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/mirror.yml",
    "level": "epi",
    "rule_module": "research_extensions",
    "action": "report",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/mirror.yml",
          "end_line": 47,
          "start_line": 47
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 67,
    "reason": "job `mirror-codeberg` in .github/workflows/mirror.yml references `secrets.*` but does not install `step-security/harden-runner` or declare its egress — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/mirror.yml",
    "level": "epi",
    "rule_module": "research_extensions",
    "action": "report",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/mirror.yml",
          "end_line": 67,
          "start_line": 67
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 87,
    "reason": "job `mirror-sourcehut` in .github/workflows/mirror.yml references `secrets.*` but does not install `step-security/harden-runner` or declare its egress — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/mirror.yml",
    "level": "epi",
    "rule_module": "research_extensions",
    "action": "report",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/mirror.yml",
          "end_line": 87,
          "start_line": 87
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 107,
    "reason": "job `mirror-disroot` in .github/workflows/mirror.yml references `secrets.*` but does not install `step-security/harden-runner` or declare its egress — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/mirror.yml",
    "level": "epi",
    "rule_module": "research_extensions",
    "action": "report",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/mirror.yml",
          "end_line": 107,
          "start_line": 107
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 127,
    "reason": "job `mirror-gitea` in .github/workflows/mirror.yml references `secrets.*` but does not install `step-security/harden-runner` or declare its egress — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/mirror.yml",
    "level": "epi",
    "rule_module": "research_extensions",
    "action": "report",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/mirror.yml",
          "end_line": 127,
          "start_line": 127
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@hyperpolymath
hyperpolymath merged commit 73e8569 into main Nov 10, 2026
11 checks passed
@hyperpolymath
hyperpolymath deleted the docs/clade-uuid-follows-forge-path branch November 10, 2026 23:45
@hyperpolymath hyperpolymath changed the title docs(clade): uuid follows the forge path, it is not immortal docs(clade): uuid follows the GitHub path, it is not immortal Nov 10, 2026
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