Repository navigation
docs(clade): uuid follows the forge path, it is not immortal - #225
Conversation
Comment-only correction. The CLADE status comment written by clade-status-backfill (gv-clade-index ADR 0006) 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. The same comment's "A rename is NOT a phase change" now says "A prefixed-name (clade code) change", the rename it means, so the two sentences no longer read as a contradiction. No data value changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0136P7ZmtCj9Doze7s38qbz5
|
Warning Review limit reachedYou'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 39 minutes. View limit details
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. |
|
🔍 Hypatia Security ScanFindings: 111 issues detected
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": 20,
"reason": "job `dispatch` in .github/workflows/instant-sync.yml references `secrets.*` but does not install `step-security/harden-runner` or declare its egress — review outbound-egress monitoring",
"type": "RE001",
"file": ".github/workflows/instant-sync.yml",
"level": "epi",
"rule_module": "research_extensions",
"action": "report",
"severity": "medium",
"evidence": [
{
"span": {
"file": ".github/workflows/instant-sync.yml",
"end_line": 20,
"start_line": 20
},
"rule": "research_extensions/RE001",
"observations": 1,
"rule_version": "0.1.0"
}
],
"support": {
"kind": "pattern"
}
},
{
"line": 271,
"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": 271,
"start_line": 271
},
"rule": "research_extensions/RE001",
"observations": 1,
"rule_version": "0.1.0"
}
],
"support": {
"kind": "pattern"
}
},
{
"line": 44,
"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": 44,
"start_line": 44
},
"rule": "research_extensions/RE001",
"observations": 1,
"rule_version": "0.1.0"
}
],
"support": {
"kind": "pattern"
}
},
{
"line": 88,
"reason": "workflow .github/workflows/compilation_tests.yml:88 step `Run ignored tests (stress)` swallows non-zero exit via `continue-on-error: true` — failures will be masked",
"type": "RE005",
"file": ".github/workflows/compilation_tests.yml",
"level": "epi",
"rule_module": "research_extensions",
"action": "report",
"severity": "medium",
"evidence": [
{
"span": {
"file": ".github/workflows/compilation_tests.yml",
"end_line": 88,
"start_line": 88
},
"rule": "research_extensions/RE005",
"observations": 1,
"rule_version": "0.1.0"
}
],
"support": {
"kind": "pattern"
}
},
{
"line": 47,
"reason": "workflow .github/workflows/label-triage.yml:47 job `triage` has no `timeout-minutes:` — defaults to 360 min on hang",
"type": "WH006",
"file": ".github/workflows/label-triage.yml",
"level": "epi",
"rule_module": "workflow_hardening",
"action": "report",
"severity": "medium",
"evidence": [
{
"span": {
"file": ".github/workflows/label-triage.yml",
"end_line": 47,
"start_line": 47
},
"rule": "workflow_hardening/WH006",
"observations": 1,
"rule_version": "0.1.0"
}
],
"support": {
"kind": "pattern"
}
},
{
"line": 33,
"reason": "workflow .github/workflows/labels.yml:33 job `sync` has no `timeout-minutes:` — defaults to 360 min on hang",
"type": "WH006",
"file": ".github/workflows/labels.yml",
"level": "epi",
"rule_module": "workflow_hardening",
"action": "report",
"severity": "medium",
"evidence": [
{
"span": {
"file": ".github/workflows/labels.yml",
"end_line": 33,
"start_line": 33
},
"rule": "workflow_hardening/WH006",
"observations": 1,
"rule_version": "0.1.0"
}
],
"support": {
"kind": "pattern"
}
},
{
"line": 18,
"reason": "workflow .github/workflows/secret-scanner.yml:18 uses `secrets: inherit` — forwards every caller secret to the reusable workflow",
"type": "WH008",
"file": ".github/workflows/secret-scanner.yml",
"level": "epi",
"rule_module": "workflow_hardening",
"action": "report",
"severity": "medium",
"evidence": [
{
"span": {
"file": ".github/workflows/secret-scanner.yml",
"end_line": 18,
"start_line": 18
},
"rule": "workflow_hardening/WH008",
"observations": 1,
"rule_version": "0.1.0"
}
],
"support": {
"kind": "pattern"
}
},
{
"line": 13,
"reason": "workflow .github/workflows/mirror.yml:13 uses `secrets: inherit` — forwards every caller secret to the reusable workflow",
"type": "WH008",
"file": ".github/workflows/mirror.yml",
"level": "epi",
"rule_module": "workflow_hardening",
"action": "report",
"severity": "medium",
"evidence": [
{
"span": {
"file": ".github/workflows/mirror.yml",
"end_line": 13,
"start_line": 13
},
"rule": "workflow_hardening/WH008",
"observations": 1,
"rule_version": "0.1.0"
}
],
"support": {
"kind": "pattern"
}
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
Codex Review Summary: ❌ FailedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
This security review couldn’t start because the paying account has exhausted its Codex allowance and has insufficient available credits. The payer can check their balance and add credits in the Codex usage dashboard, then try again. If you do not manage the paying account, contact this repository's admins. |



Comment-only correction in
.machine_readable/CLADE.a2ml. The 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 rename is NOT a phase change" now reads "A prefixed-name (clade code) change is NOT a phase change". The comment paragraph is re-wrapped at 80 columns; no data values change.Generated by Claude Code