Skip to content

docs(clade): uuid follows the GitHub path; qualify the prefixed-name case - #76

Merged
hyperpolymath merged 1 commit into
mainfrom
docs/clade-uuid-github-path
Nov 11, 2026
Merged

hyperpolymath merged 1 commit into
mainfrom
docs/clade-uuid-github-path

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

Comment-only follow-up. An earlier PR replaced "uuid is immortal" in the CLADE status comment with "uuid follows the forge path". This one makes it exact. 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 follows the forge path" → "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 prefixed-name (clade code) change 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 refines the wording merged earlier.

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 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
Copilot AI balanced review requested due to automatic review settings November 10, 2026 23:47
@linear-code
linear-code Bot marked this pull request as ready for review November 10, 2026 23:47

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

@coderabbitai

coderabbitai Bot commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

Explain Change →

No actionable comments were generated in the recent review.

Summary

Summary by CodeRabbit

  • Documentation
    • Clarified that UUID identity follows the GitHub path and remains unchanged by mirror moves or phase changes.
    • Clarified that changing a prefixed name while keeping the GitHub path unchanged updates the aliases without changing the UUID or phase.

The lifecycle-status comment now defines UUID identity by the GitHub path. It also clarifies how mirror moves, phase changes, and prefixed-name changes affect UUIDs, phases, and aliases[].

Changes: Lifecycle identity guidance

Layer / File(s) Summary
Clarify UUID and alias rules
.machine_readable/CLADE.a2ml
The comment states that mirror moves and phase changes do not mint a UUID. When the GitHub path stays unchanged, a prefixed-name change updates aliases[] without changing the UUID or phase.

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

Change: Other

Merge Risk: Minimal · up to 9f3ac

The clarification presents no identified material merge risk.

Pre-merge checks: Passed 4

Check name Status Explanation
Title check Passed The title clearly identifies the UUID rule and the prefixed-name condition clarified by the change.
Description check Passed The description explains the comment-only changes to the UUID and prefixed-name wording.
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: 9340fd10-a000-4a9c-b0f8-9642eea773ee
Commits

Reviewing files that changed from the base of the PR and between 7caf523 and 9f3acfd.

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: 5

  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: CodeRabbit
  • GitHub Check: Hypatia Neurosymbolic Analysis
  • GitHub Check: Analyze (rust)
  • GitHub Check: Analyze (actions)
Additional comments: 1

.machine_readable/CLADE.a2ml: 1

29-35: LGTM!

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 10, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-10T23:48:45.989994Z 9f3acfd Draft marked ready
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@sonarqubecloud

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 77 issues detected

Severity Count
🔴 Critical 0
🟠 High 36
🟡 Medium 41
View findings
[
  {
    "reason": "No test directory or test files found",
    "type": "no_tests",
    "file": "/home/runner/work/formatrix-docs/formatrix-docs",
    "level": "epi",
    "rule_module": "honest_completion",
    "action": "flag",
    "severity": "high",
    "deduction": 20,
    "evidence": [
      {
        "span": {
          "file": "/home/runner/work/formatrix-docs/formatrix-docs",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "honest_completion/no_tests",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "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"
    }
  },
  {
    "reason": "Step uses `peter-evans/repository-dispatch` with `token: ${{ secrets.FARM_DISPATCH_TOKEN }}` but has no `if: secrets.FARM_DISPATCH_TOKEN != ''` gate. On repos where the secret hasn't been propagated the action fails on every push, red-maining the repo. Add the step-level gate (or env+if pattern) so the missing-secret path is a clean skip instead of a red.",
    "type": "secret_action_without_presence_gate",
    "file": ".github/workflows/instant-sync.yml",
    "level": "epi",
    "rule_module": "workflow_audit",
    "action": "peter-evans/repository-dispatch",
    "severity": "high",
    "fix_recipe": "add_secret_presence_gate",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/instant-sync.yml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/secret_action_without_presence_gate",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "reason": "Step uses `webfactory/ssh-agent` with `ssh-private-key: ${{ secrets.GITLAB_SSH_KEY }}` but has no `if: secrets.GITLAB_SSH_KEY != ''` gate. On repos where the secret hasn't been propagated the action fails on every push, red-maining the repo. Add the step-level gate (or env+if pattern) so the missing-secret path is a clean skip instead of a red.",
    "type": "secret_action_without_presence_gate",
    "file": ".github/workflows/mirror.yml",
    "level": "epi",
    "rule_module": "workflow_audit",
    "action": "webfactory/ssh-agent",
    "severity": "high",
    "fix_recipe": "add_secret_presence_gate",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/mirror.yml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/secret_action_without_presence_gate",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "reason": "Step uses `webfactory/ssh-agent` with `ssh-private-key: ${{ secrets.BITBUCKET_SSH_KEY }}` but has no `if: secrets.BITBUCKET_SSH_KEY != ''` gate. On repos where the secret hasn't been propagated the action fails on every push, red-maining the repo. Add the step-level gate (or env+if pattern) so the missing-secret path is a clean skip instead of a red.",
    "type": "secret_action_without_presence_gate",
    "file": ".github/workflows/mirror.yml",
    "level": "epi",
    "rule_module": "workflow_audit",
    "action": "webfactory/ssh-agent",
    "severity": "high",
    "fix_recipe": "add_secret_presence_gate",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/mirror.yml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/secret_action_without_presence_gate",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "reason": "Step uses `webfactory/ssh-agent` with `ssh-private-key: ${{ secrets.CODEBERG_SSH_KEY }}` but has no `if: secrets.CODEBERG_SSH_KEY != ''` gate. On repos where the secret hasn't been propagated the action fails on every push, red-maining the repo. Add the step-level gate (or env+if pattern) so the missing-secret path is a clean skip instead of a red.",
    "type": "secret_action_without_presence_gate",
    "file": ".github/workflows/mirror.yml",
    "level": "epi",
    "rule_module": "workflow_audit",
    "action": "webfactory/ssh-agent",
    "severity": "high",
    "fix_recipe": "add_secret_presence_gate",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/mirror.yml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/secret_action_without_presence_gate",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "reason": "Step uses `webfactory/ssh-agent` with `ssh-private-key: ${{ secrets.SOURCEHUT_SSH_KEY }}` but has no `if: secrets.SOURCEHUT_SSH_KEY != ''` gate. On repos where the secret hasn't been propagated the action fails on every push, red-maining the repo. Add the step-level gate (or env+if pattern) so the missing-secret path is a clean skip instead of a red.",
    "type": "secret_action_without_presence_gate",
    "file": ".github/workflows/mirror.yml",
    "level": "epi",
    "rule_module": "workflow_audit",
    "action": "webfactory/ssh-agent",
    "severity": "high",
    "fix_recipe": "add_secret_presence_gate",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/mirror.yml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/secret_action_without_presence_gate",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "reason": "Step uses `webfactory/ssh-agent` with `ssh-private-key: ${{ secrets.DISROOT_SSH_KEY }}` but has no `if: secrets.DISROOT_SSH_KEY != ''` gate. On repos where the secret hasn't been propagated the action fails on every push, red-maining the repo. Add the step-level gate (or env+if pattern) so the missing-secret path is a clean skip instead of a red.",
    "type": "secret_action_without_presence_gate",
    "file": ".github/workflows/mirror.yml",
    "level": "epi",
    "rule_module": "workflow_audit",
    "action": "webfactory/ssh-agent",
    "severity": "high",
    "fix_recipe": "add_secret_presence_gate",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/mirror.yml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/secret_action_without_presence_gate",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "reason": "Step uses `webfactory/ssh-agent` with `ssh-private-key: ${{ secrets.GITEA_SSH_KEY }}` but has no `if: secrets.GITEA_SSH_KEY != ''` gate. On repos where the secret hasn't been propagated the action fails on every push, red-maining the repo. Add the step-level gate (or env+if pattern) so the missing-secret path is a clean skip instead of a red.",
    "type": "secret_action_without_presence_gate",
    "file": ".github/workflows/mirror.yml",
    "level": "epi",
    "rule_module": "workflow_audit",
    "action": "webfactory/ssh-agent",
    "severity": "high",
    "fix_recipe": "add_secret_presence_gate",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/mirror.yml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/secret_action_without_presence_gate",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@hyperpolymath
hyperpolymath merged commit 96ccef4 into main Nov 11, 2026
9 checks passed
@hyperpolymath
hyperpolymath deleted the docs/clade-uuid-github-path branch November 11, 2026 00:20
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.

4 participants