fix(automation): run hourly NVIDIA NIM review repair - #782
Conversation
📝 WalkthroughWalkthroughClearfolio 시간별 호출자와 재사용 스케줄러를 추가했습니다. 스케줄러는 호출 워크플로의 SHA를 검증하고 불변 소스를 체크아웃합니다. 자동수정은 NVIDIA NIM을 사용하며, 충돌 해결 후 변경 범위를 검증합니다. Changes시간별 리뷰 복구 흐름
Estimated code review effort: 4 (Complex) | ~60 minutes Possibly related issues
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
|
@coderabbitai review @opencode-agent @cwl-noema-review Independently review exact current head Verify the one-hour cadence and retry floor, one-dispatch/single-flight bounds, immutable called-workflow and repository-dispatch source binding, |
|
@opencode-agent @cwl-noema-review @coderabbitai review Review exact current head |
🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '== Repository and requested commits =='
git remote -v
git rev-parse HEAD
git show -s --format='HEAD %H%nparents %P%nsubject %s' HEAD
git cat-file -e '63b50227caefb49abd389a8da41edcfc1d32428e^{commit}' 2>/dev/null && \
git show -s --format='requested-head %H%nparents %P%nsubject %s' 63b50227caefb49abd389a8da41edcfc1d32428e || true
git cat-file -e 'f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae^{commit}' 2>/dev/null && \
git show -s --format='baseline %H%nsubject %s' f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae || true
printf '%s\n' '== Changed paths and diff summary =='
git diff --stat f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae 63b50227caefb49abd389a8da41edcfc1d32428e 2>/dev/null || \
git diff --stat HEAD^ HEAD
git diff --name-status f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae 63b50227caefb49abd389a8da41edcfc1d32428e 2>/dev/null || \
git diff --name-status HEAD^ HEAD
printf '%s\n' '== Candidate automation source =='
fd -HI -t f .github docs 2>/dev/null | sort | \
grep -E 'hourly|review.*repair|dispatch|opencode|automation|doctoring|CHANGELOG' || true
printf '%s\n' '== Workflow and helper outlines =='
for f in \
.github/workflows/hourly-nvidia-nim-review-repair.yml \
.github/workflows/opencode-review-dispatch.yml
do
if [ -f "$f" ]; then
echo "--- $f"
nl -ba "$f"
fi
done
printf '%s\n' '== Security-sensitive references in tracked text files =='
rg -n -i -C 3 \
'NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|github models|models:|mistral-nemotron|nemotron-3-nano|canonical_ref|repository_dispatch|workflow_call|concurrency|cron|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|permissions:|pull-requests:\s*write|contents:\s*write|gh pr (merge|review)|release' \
.github docs CHANGELOG.md 2>/dev/null || true
printf '%s\n' '== Independent reviewer workflow blob comparison =='
if git cat-file -e 'f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae:.github/workflows/opencode-review-dispatch.yml' 2>/dev/null; then
echo -n 'baseline blob: '
git rev-parse 'f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae:.github/workflows/opencode-review-dispatch.yml'
fi
if git cat-file -e '63b50227caefb49abd389a8da41edcfc1d32428e:.github/workflows/opencode-review-dispatch.yml' 2>/dev/null; then
echo -n 'head blob: '
git rev-parse '63b50227caefb49abd389a8da41edcfc1d32428e:.github/workflows/opencode-review-dispatch.yml'
fi
printf '%s\n' '== Referenced workflow runs =='
for run in 31002522693 31002522736 31002522780 31002522802 31002522718 31002522761 31002523083 31002522717 31002522776; do
gh api "repos/ContextualWisdomLab/.github/actions/runs/${run}" \
--jq '"\(.id) \(.name) status=\(.status) conclusion=\(.conclusion) head_sha=\(.head_sha) event=\(.event)"' \
2>&1 || true
doneLength of output: 5016 🏁 Script executed: #!/bin/bash
set -euo pipefail
head_sha='63b50227caefb49abd389a8da41edcfc1d32428e'
base_sha='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
show_numbered() {
file="$1"
if [ -f "$file" ]; then
echo "--- $file"
awk '{ printf "%5d %s\n", NR, $0 }' "$file"
else
echo "--- MISSING: $file"
fi
}
printf '%s\n' '== Exact changed workflow diff =='
git diff --no-ext-diff --unified=80 "$base_sha" "$head_sha" -- \
.github/workflows/hourly-nvidia-nim-review-repair.yml \
.github/workflows/pr-review-autofix.yml \
.github/workflows/pr-review-fix-scheduler.yml
printf '%s\n' '== Current workflow source =='
show_numbered .github/workflows/hourly-nvidia-nim-review-repair.yml
show_numbered .github/workflows/pr-review-autofix.yml
show_numbered .github/workflows/pr-review-fix-scheduler.yml
printf '%s\n' '== Contract-test source =='
for f in \
tests/test_pr_review_autofix_nvidia_nim_contract.py \
tests/test_pr_review_fix_hourly_contract.py \
tests/test_pr_review_fix_scheduler_source_pin.py
do
show_numbered "$f"
done
printf '%s\n' '== Repository-wide security-sensitive executable references =='
git grep -n -I -E \
'NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|models\.inference\.ai|github[ _-]?models|canonical_ref|ACTIONS_ID_TOKEN_REQUEST_TOKEN|ACTIONS_ID_TOKEN_REQUEST_URL|GITHUB_TOKEN|GH_TOKEN|repository_dispatch|workflow_call|concurrency:|cron:|mistralai/mistral-nemotron|nvidia/nemotron-3-nano-30b-a3b|gh pr (merge|review)|gh release|branches/.+protection' \
"$head_sha" -- .github ':!*.md' || true
printf '%s\n' '== Independent reviewer workflow immutable blob check =='
expected_blob='83f6830d5c21a324b4dbcd4e5c21a07968994b81'
base_blob=$(git rev-parse "$base_sha:.github/workflows/opencode-review-dispatch.yml")
head_blob=$(git rev-parse "$head_sha:.github/workflows/opencode-review-dispatch.yml")
printf 'expected=%s\nbaseline=%s\nhead=%s\n' "$expected_blob" "$base_blob" "$head_blob"
git diff --no-ext-diff --exit-code "$base_sha" "$head_sha" -- .github/workflows/opencode-review-dispatch.yml || true
printf '%s\n' '== Requested workflow runs =='
for run in 31002522693 31002522736 31002522780 31002522802 31002522718 31002522761 31002523083 31002522717 31002522776; do
printf 'run %s: ' "$run"
gh api "repos/ContextualWisdomLab/.github/actions/runs/${run}" \
--jq '[.id, .name, .status, .conclusion, .head_sha, .event] | `@tsv`' 2>&1 || true
doneLength of output: 156113 🤖 web_search executed:
Length of output: 13390
I found no actionable findings in the requested scope. Verified items:
GitHub documents the This review covers current PR I do not issue approval. Approval must remain subject to the required independent reviewer and branch-protection policy.
|
|
@opencode-agent @cwl-noema-review @coderabbitai review Review exact current head |
|
I will verify the requested scheduler, source-binding, NVIDIA NIM credential, token-scrubbing, permission, safety-guard, independent-reviewer, and documentation controls. I will not reuse
|
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
head_expected='63b50227caefb49abd389a8da41edcfc1d32428e'
base_expected='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
printf '%s\n' '== checked-out commit =='
git rev-parse HEAD
printf '%s\n' '== expected commits present =='
git cat-file -e "${head_expected}^{commit}"
git cat-file -e "${base_expected}^{commit}"
printf '%s\n' '== changed paths =='
git diff --name-status "$base_expected" "$head_expected"
printf '%s\n' '== changed workflow files =='
git diff --stat "$base_expected" "$head_expected" -- .github/workflows
fd -a -t f .github/workflows | sort
printf '%s\n' '== workflow and helper symbols =='
for f in \
.github/workflows/hourly-nvidia-nim-review-repair.yml \
.github/workflows/opencode-review-dispatch.yml
do
if [ -f "$f" ]; then
printf '\n--- %s ---\n' "$f"
cat -n "$f"
fi
done
printf '%s\n' '== references to hourly scheduler, dispatch, and model authentication =='
rg -n -C 3 \
-e 'NVIDIA_NIM_API_KEY' \
-e 'COPILOT_GITHUB_TOKEN' \
-e 'GitHub Models|models\.github' \
-e 'canonical_ref' \
-e 'repository_dispatch|workflow_dispatch|concurrency|cron' \
-e 'GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST' \
-e 'opencode|nemotron|mistral-nemotron' \
-e 'pull-requests:\s*write|contents:\s*write|actions:\s*write' \
.github scripts 2>/dev/null || trueLength of output: 2843 🏁 Script executed: #!/bin/bash
set -euo pipefail
head='63b50227caefb49abd389a8da41edcfc1d32428e'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
printf '%s\n' '== independent reviewer workflow blob at head and base =='
git rev-parse "${head}:.github/workflows/opencode-review-dispatch.yml"
git rev-parse "${base}:.github/workflows/opencode-review-dispatch.yml"
git diff --exit-code "$base" "$head" -- .github/workflows/opencode-review-dispatch.yml \
&& echo 'independent-reviewer workflow: unchanged'
printf '%s\n' '== all workflow paths at reviewed head =='
git ls-tree -r --name-only "$head" .github/workflows | sort
for f in \
.github/workflows/hourly-nvidia-nim-review-repair.yml \
.github/workflows/pr-review-autofix.yml \
.github/workflows/pr-review-fix-scheduler.yml
do
printf '\n== %s at exact head ==\n' "$f"
git show "${head}:${f}" | cat -n
done
printf '%s\n' '== exact workflow diffs =='
git diff --unified=80 "$base" "$head" -- \
.github/workflows/hourly-nvidia-nim-review-repair.yml \
.github/workflows/pr-review-autofix.yml \
.github/workflows/pr-review-fix-scheduler.yml
printf '%s\n' '== scheduler/autofix source and credential references at exact head =='
git grep -n -I -E \
'NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|models\.github|GitHub Models|canonical_ref|ACTIONS_ID_TOKEN_REQUEST|GITHUB_TOKEN|GH_TOKEN|repository_dispatch|workflow_call|workflow_dispatch|concurrency|cron|mistralai/mistral-nemotron|nvidia/nemotron-3-nano-30b-a3b' \
"$head" -- .github scripts 2>/dev/null || true
printf '%s\n' '== focused contract test outlines =='
ast-grep outline tests/test_pr_review_autofix_nvidia_nim_contract.py --items all
ast-grep outline tests/test_pr_review_fix_hourly_contract.py --items all
ast-grep outline tests/test_pr_review_fix_scheduler_source_pin.py --items all
printf '%s\n' '== focused contract test assertions =='
for f in \
tests/test_pr_review_autofix_nvidia_nim_contract.py \
tests/test_pr_review_fix_hourly_contract.py \
tests/test_pr_review_fix_scheduler_source_pin.py
do
printf '\n== %s ==\n' "$f"
git show "${head}:${f}" | sed -n '1,280p'
doneLength of output: 223866 🏁 Script executed: #!/bin/bash
set -euo pipefail
head='63b50227caefb49abd389a8da41edcfc1d32428e'
printf '%s\n' '== scheduler helper outline =='
ast-grep outline scripts/ci/pr_review_fix_scheduler.py --items all
printf '%s\n' '== scheduler helper dispatch, bounds, and guard references =='
git show "${head}:scripts/ci/pr_review_fix_scheduler.py" |
nl -ba |
grep -E -C 8 \
'max.dispatch|retry.hours|repository.dispatch|autofix|head.sha|live.head|allowed|allowlist|same.repository|pull.request|conflict|syntax|dispatch' || true
printf '%s\n' '== selected helper source =='
git show "${head}:scripts/ci/pr_review_fix_scheduler.py" | sed -n '1,920p'
printf '%s\n' '== prohibited worker operation scan =='
git show "${head}:.github/workflows/pr-review-autofix.yml" |
nl -ba |
grep -Ei -C 4 \
'pulls/.*/merge|/merges|merge.pull|pulls/.*/reviews|approve|releases|branches/.*/protection|rulesets|gh pr (merge|review)|gh release|gh api.*(merge|protection|ruleset|releases)' || true
printf '%s\n' '== operator documentation =='
for f in \
docs/automation/hourly-review-repair.md \
docs/doctoring/hourly-nvidia-nim-autofix.md \
CHANGELOG.md
do
printf '\n== %s ==\n' "$f"
git show "${head}:${f}" | cat -n
doneLength of output: 39579
I verified commit You are interacting with an AI system. |
|
@opencode-agent @cwl-noema-review @coderabbitai review Please review exact head |
|
@coderabbitai review Please review exact current head |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
head='63b50227caefb49abd389a8da41edcfc1d32428e'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
expected_blob='83f6830d5c21a324b4dbcd4e5c21a07968994b81'
git cat-file -e "${head}^{commit}"
git cat-file -e "${base}^{commit}"
printf '%s\n' '== reviewed commits =='
git show -s --format='head=%H%nbase=%P%nsubject=%s' "$head"
git show -s --format='baseline=%H%nsubject=%s' "$base"
printf '%s\n' '== changed paths =='
git diff --name-status "$base" "$head"
printf '%s\n' '== scheduler and autofix workflow at exact head =='
for path in \
.github/workflows/hourly-nvidia-nim-review-repair.yml \
.github/workflows/pr-review-fix-scheduler.yml \
.github/workflows/pr-review-autofix.yml \
scripts/ci/pr_review_fix_scheduler.py \
docs/automation/hourly-review-repair.md \
docs/doctoring/hourly-nvidia-nim-autofix.md
do
printf '\n--- %s ---\n' "$path"
git show "${head}:${path}" | nl -ba
done
printf '%s\n' '== independent reviewer blob =='
printf 'expected=%s\n' "$expected_blob"
printf 'base=%s\n' "$(git rev-parse "${base}:.github/workflows/opencode-review-dispatch.yml")"
printf 'head=%s\n' "$(git rev-parse "${head}:.github/workflows/opencode-review-dispatch.yml")"
git diff --exit-code "$base" "$head" -- .github/workflows/opencode-review-dispatch.yml
printf '%s\n' '== security-sensitive references at exact head =='
git grep -n -I -E \
'NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|models\.github|GitHub Models|mistralai/mistral-nemotron|nvidia/nemotron-3-nano-30b-a3b|23 \* \* \* \*|retry.hours|canonical_ref|job\.workflow_(repository|sha|ref|file_path)|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|gh pr (merge|review)|pulls/.*/(merge|reviews)|releases|branches/.+protection|rulesets|git add -A|conflicted_files' \
"$head" -- .github scripts docs ':!*.md' || true
printf '%s\n' '== current-head workflow runs =='
for run in 31002522693 31002522736 31002522780 31002522802 31002522718 31002522761 31002523083 31002522717 31002522776; do
gh api "repos/ContextualWisdomLab/.github/actions/runs/${run}" \
--jq '[.id, .name, .status, .conclusion, .head_sha, .event] | `@tsv`' \
2>&1 || true
doneLength of output: 3363 🏁 Script executed: #!/bin/bash
set -euo pipefail
head='63b50227caefb49abd389a8da41edcfc1d32428e'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
expected_blob='83f6830d5c21a324b4dbcd4e5c21a07968994b81'
show_file() {
path="$1"
printf '\n--- %s ---\n' "$path"
git show "${head}:${path}" | awk '{ printf "%5d %s\n", NR, $0 }'
}
printf '%s\n' '== exact-head workflow and helper source =='
for path in \
.github/workflows/hourly-nvidia-nim-review-repair.yml \
.github/workflows/pr-review-fix-scheduler.yml \
.github/workflows/pr-review-autofix.yml \
scripts/ci/pr_review_fix_scheduler.py \
docs/automation/hourly-review-repair.md \
docs/doctoring/hourly-nvidia-nim-autofix.md
do
show_file "$path"
done
printf '%s\n' '== independent reviewer blob comparison =='
printf 'expected=%s\n' "$expected_blob"
printf 'base=%s\n' "$(git rev-parse "${base}:.github/workflows/opencode-review-dispatch.yml")"
printf 'head=%s\n' "$(git rev-parse "${head}:.github/workflows/opencode-review-dispatch.yml")"
if git diff --quiet "$base" "$head" -- .github/workflows/opencode-review-dispatch.yml; then
printf '%s\n' 'workflow_unchanged=true'
else
printf '%s\n' 'workflow_unchanged=false'
fi
printf '%s\n' '== focused security controls at exact head =='
git grep -n -I -E \
'NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|models\.github|GitHub Models|mistralai/mistral-nemotron|nvidia/nemotron-3-nano-30b-a3b|23 \* \* \* \*|retry.hours|canonical_ref|job\.workflow_(repository|sha|ref|file_path)|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|gh pr (merge|review)|pulls/.*/(merge|reviews)|releases|branches/.+protection|rulesets|git add -A|conflicted_files' \
"$head" -- .github scripts docs ':!*.md' || true
printf '%s\n' '== specified workflow-run metadata =='
for run in 31002522693 31002522736 31002522780 31002522802 31002522718 31002522761 31002523083 31002522717 31002522776; do
printf 'run=%s ' "$run"
gh api "repos/ContextualWisdomLab/.github/actions/runs/${run}" \
--jq '[.name, .status, .conclusion, .head_sha, .event] | `@tsv`' \
2>&1 || true
doneLength of output: 166782
High — Conflict resolution does not enforce its file boundaryIn The OpenCode agent has An unrelated model edit can therefore be committed during conflict resolution. Before I verified the following controls at exact head
I found no separate approve, merge, release, or branch-protection operation in the reviewed scheduler or autofix worker. I do not approve this PR while the conflict-resolution file-boundary issue remains. You are interacting with an AI system. |
|
@opencode-agent Please independently review exact current head |
|
@cwl-noema-review Please perform a second independent exact-head review of |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
head='63b50227caefb49abd389a8da41edcfc1d32428e'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
reviewer_blob='83f6830d5c21a324b4dbcd4e5c21a07968994b81'
git cat-file -e "${head}^{commit}"
git cat-file -e "${base}^{commit}"
printf '%s\n' '== exact commits =='
git show -s --format='head %H%nsubject %s' "$head"
git show -s --format='base %H%nsubject %s' "$base"
printf '%s\n' '== changed paths =='
git diff --name-status "$base" "$head"
printf '%s\n' '== reviewer workflow blob stability =='
printf 'expected %s\n' "$reviewer_blob"
printf 'base %s\n' "$(git rev-parse "$base:.github/workflows/opencode-review-dispatch.yml")"
printf 'head %s\n' "$(git rev-parse "$head:.github/workflows/opencode-review-dispatch.yml")"
git diff --exit-code "$base" "$head" -- .github/workflows/opencode-review-dispatch.yml || true
printf '%s\n' '== hourly scheduler and source binding =='
git show "$head:.github/workflows/hourly-nvidia-nim-review-repair.yml" | nl -ba
git show "$head:.github/workflows/pr-review-fix-scheduler.yml" | nl -ba
printf '%s\n' '== autofix model steps, permission maps, and conflict handling =='
git show "$head:.github/workflows/pr-review-autofix.yml" | nl -ba | \
grep -E -C 12 \
'NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|GitHub Models|models\.github|mistral-nemotron|nemotron-3-nano|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST|permission|conflicted_files|RESOLVE_CONFLICT|git add|git commit|git push|merge|approve|release|protection' || true
printf '%s\n' '== scheduler helper safeguards =='
git show "$head:scripts/ci/pr_review_fix_scheduler.py" | nl -ba | \
grep -E -C 8 \
'retry|dispatch|concurrency|same.repository|head.sha|live.head|allowlist|allowed|conflict|syntax' || true
printf '%s\n' '== focused contract tests and operator documentation =='
for path in \
tests/test_pr_review_autofix_nvidia_nim_contract.py \
tests/test_pr_review_fix_hourly_contract.py \
tests/test_pr_review_fix_scheduler_source_pin.py \
docs/automation/hourly-review-repair.md \
docs/doctoring/hourly-nvidia-nim-autofix.md
do
printf '\n--- %s ---\n' "$path"
git show "$head:$path" | nl -ba
done
printf '%s\n' '== exact-head workflow run status =='
for run in 31002522693 31002522736 31002522780 31002522802 31002522718 31002522761 31002523083 31002522717 31002522776; do
gh api "repos/ContextualWisdomLab/.github/actions/runs/$run" \
--jq '[.id,.name,.status,.conclusion,.head_sha] | `@tsv`' 2>&1 || true
doneLength of output: 3741 🏁 Script executed: #!/bin/bash
set -euo pipefail
head='63b50227caefb49abd389a8da41edcfc1d32428e'
numbered_show() {
local path="$1"
printf '\n--- %s ---\n' "$path"
git show "${head}:${path}" | awk '{printf "%5d %s\n", NR, $0}'
}
printf '%s\n' '== hourly scheduler =='
numbered_show '.github/workflows/hourly-nvidia-nim-review-repair.yml'
printf '%s\n' '== reusable scheduler workflow =='
numbered_show '.github/workflows/pr-review-fix-scheduler.yml'
printf '%s\n' '== autofix workflow: credential, permissions, conflict and staging controls =='
git show "${head}:.github/workflows/pr-review-autofix.yml" |
awk '{printf "%5d %s\n", NR, $0}' |
grep -E -C 15 \
'NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|GitHub Models|models\.github|mistral-nemotron|nemotron-3-nano|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST|permissions:|conflicted_files|RESOLVE_CONFLICT|git add|git commit|git push|merge|approve|release|protection' || true
printf '%s\n' '== conflict branch in full context =='
git show "${head}:.github/workflows/pr-review-autofix.yml" |
awk '{printf "%5d %s\n", NR, $0}' |
sed -n '430,570p'
printf '%s\n' '== scheduler helper guard references =='
git show "${head}:scripts/ci/pr_review_fix_scheduler.py" |
awk '{printf "%5d %s\n", NR, $0}' |
grep -E -C 8 \
'retry|dispatch|concurrency|same.repository|head.sha|live.head|allowlist|allowed|conflict|syntax' || true
printf '%s\n' '== focused contracts: relevant assertions =='
for path in \
tests/test_pr_review_autofix_nvidia_nim_contract.py \
tests/test_pr_review_fix_hourly_contract.py \
tests/test_pr_review_fix_scheduler_source_pin.py
do
printf '\n--- %s ---\n' "$path"
git show "${head}:${path}" |
awk '{printf "%5d %s\n", NR, $0}' |
grep -E -C 4 \
'conflict|allowlist|NVIDIA|COPILOT|GitHub Models|credential|permission|cron|retry|workflow_(repository|sha|ref|file_path)|checkout|dispatch|approve|merge|release|protection' || true
done
printf '%s\n' '== doctoring: safeguards and stated claims =='
git show "${head}:docs/doctoring/hourly-nvidia-nim-autofix.md" |
awk '{printf "%5d %s\n", NR, $0}' |
grep -E -C 4 \
'allowlist|conflict|NVIDIA|credential|GitHub|permission|approval|merge|release|protection|APA' || true
printf '%s\n' '== exact-head workflow runs =='
for run in 31002522693 31002522736 31002522780 31002522802 31002522718 31002522761 31002523083 31002522717 31002522776; do
printf 'run %s: ' "$run"
gh api "repos/ContextualWisdomLab/.github/actions/runs/${run}" \
--jq '[.id,.name,.status,.conclusion,.head_sha] | `@tsv`' 2>&1 || true
doneLength of output: 86050
I reviewed exact head I verified the requested hourly cadence, one-hour retry floor, one-dispatch bound, repository-scoped concurrency, immutable called-workflow source binding, NVIDIA NIM-only provider configuration, model routing, NVIDIA secret scope, missing-secret failure, child-process GitHub/OIDC credential stripping, permission denials, exact-head checkout, and unchanged reviewer workflow blob The permanent contract gate and all nine listed direct workflows completed successfully for this exact head. One blocking finding remains:
I cannot approve while this write-capable path remains unbounded. You are interacting with an AI system. |
|
@opencode-agent review Review exact current head |
Pull request was converted to draft
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
head='63b50227caefb49abd389a8da41edcfc1d32428e'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
reviewer_blob='83f6830d5c21a324b4dbcd4e5c21a07968994b81'
git cat-file -e "${head}^{commit}"
git cat-file -e "${base}^{commit}"
printf '%s\n' '== Commits =='
printf 'checked_out='; git rev-parse HEAD
git show -s --format='head=%H%nbase-parent=%P%nsubject=%s' "$head"
git show -s --format='baseline=%H%nsubject=%s' "$base"
printf '%s\n' '== Changed paths =='
git diff --name-status "$base" "$head"
printf '%s\n' '== Independent reviewer workflow identity =='
printf 'expected=%s\n' "$reviewer_blob"
printf 'base=%s\n' "$(git rev-parse "$base:.github/workflows/opencode-review-dispatch.yml")"
printf 'head=%s\n' "$(git rev-parse "$head:.github/workflows/opencode-review-dispatch.yml")"
git diff --quiet "$base" "$head" -- .github/workflows/opencode-review-dispatch.yml &&
printf '%s\n' 'reviewer_workflow_unchanged=true'
printf '%s\n' '== Exact-head workflow source =='
for path in \
.github/workflows/hourly-nvidia-nim-review-repair.yml \
.github/workflows/pr-review-fix-scheduler.yml \
.github/workflows/pr-review-autofix.yml \
scripts/ci/pr_review_fix_scheduler.py \
docs/doctoring/hourly-nvidia-nim-autofix.md
do
printf '\n--- %s ---\n' "$path"
git show "${head}:${path}" | nl -ba
done
printf '%s\n' '== Sensitive control references =='
git grep -n -I -E \
'23 \* \* \* \*|retry.hours|canonical_ref|workflow_(repository|sha|ref|file_path)|NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|GitHub Models|models\.github|mistralai/mistral-nemotron|nvidia/nemotron-3-nano-30b-a3b|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|permissions:|repository_dispatch|concurrency:|conflicted_files|RESOLVE_CONFLICT|git add -A|gh pr (merge|review)|gh release|pulls/.*/(merge|reviews)|branches/.+protection|rulesets' \
"$head" -- .github scripts docs ':!*.md' || true
printf '%s\n' '== Exact-head workflow runs =='
for run in 31002522693 31002522736 31002522780 31002522802 31002522718 31002522761 31002523083 31002522717 31002522776; do
printf 'run=%s ' "$run"
gh api "repos/ContextualWisdomLab/.github/actions/runs/${run}" \
--jq '[.name,.status,.conclusion,.head_sha,.event] | `@tsv`' 2>&1 || true
doneLength of output: 3707 🏁 Script executed: #!/bin/bash
set -euo pipefail
head='63b50227caefb49abd389a8da41edcfc1d32428e'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
numbered_show() {
path="$1"
printf '\n--- %s ---\n' "$path"
git show "${head}:${path}" | awk '{ printf "%5d %s\n", NR, $0 }'
}
printf '%s\n' '== Exact-head workflow source =='
for path in \
.github/workflows/hourly-nvidia-nim-review-repair.yml \
.github/workflows/pr-review-fix-scheduler.yml \
.github/workflows/pr-review-autofix.yml \
scripts/ci/pr_review_fix_scheduler.py \
docs/doctoring/hourly-nvidia-nim-autofix.md
do
numbered_show "$path"
done
printf '%s\n' '== Autofix conflict branch, complete context =='
git show "${head}:.github/workflows/pr-review-autofix.yml" |
awk '{ printf "%5d %s\n", NR, $0 }' |
sed -n '430,575p'
printf '%s\n' '== Scheduler dispatch and retry controls =='
git show "${head}:scripts/ci/pr_review_fix_scheduler.py" |
awk '{ printf "%5d %s\n", NR, $0 }' |
grep -E -C 8 'retry|dispatch|concurrency|same.repository|head.sha|live.head|allowlist|allowed|conflict|syntax' || true
printf '%s\n' '== Sensitive control references at exact head =='
git grep -n -I -E \
'23 \* \* \* \*|retry.hours|canonical_ref|workflow_(repository|sha|ref|file_path)|NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|GitHub Models|models\.github|mistralai/mistral-nemotron|nvidia/nemotron-3-nano-30b-a3b|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|permissions:|repository_dispatch|concurrency:|conflicted_files|RESOLVE_CONFLICT|git add -A|gh pr (merge|review)|gh release|pulls/.*/(merge|reviews)|branches/.+protection|rulesets' \
"$head" -- .github scripts docs ':!*.md' || true
printf '%s\n' '== Relevant exact-head contract assertions =='
for path in \
tests/test_pr_review_autofix_nvidia_nim_contract.py \
tests/test_pr_review_fix_hourly_contract.py \
tests/test_pr_review_fix_scheduler_source_pin.py
do
printf '\n--- %s ---\n' "$path"
git show "${head}:${path}" |
awk '{ printf "%5d %s\n", NR, $0 }' |
grep -E -C 4 'conflict|allowlist|NVIDIA|COPILOT|GitHub Models|credential|permission|cron|retry|workflow_(repository|sha|ref|file_path)|checkout|dispatch|approve|merge|release|protection' || true
done
printf '%s\n' '== Exact-head workflow run metadata =='
for run in 31002522693 31002522736 31002522780 31002522802 31002522718 31002522761 31002523083 31002522717 31002522776; do
printf 'run=%s ' "$run"
gh api "repos/ContextualWisdomLab/.github/actions/runs/${run}" \
--jq '[.name,.status,.conclusion,.head_sha,.event] | `@tsv`' 2>&1 || true
doneLength of output: 245059
I reviewed only commit High — Conflict resolution does not enforce its file boundaryIn The OpenCode agent has An OpenCode conflict-resolution run can therefore modify an unrelated path, and the workflow can stage and push that modification. Before I verified these controls at the requested commit:
I cannot approve while the conflict-resolution write path remains unbounded. You are interacting with an AI system. |
|
@opencode-agent @cwl-noema-review @coderabbitai review Independently review exact current head Every direct current-head workflow is successful: Hourly NVIDIA NIM Review Repair Verify the schedule-only product caller, one-hour cadence and retry floor, one-dispatch/single-flight bounds, immutable called-workflow and repository-dispatch source binding, NVIDIA NIM-only model authentication, absence of |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
head='2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
reviewer_blob='83f6830d5c21a324b4dbcd4e5c21a07968994b81'
show_at_head() {
local path="$1"
printf '\n--- %s ---\n' "$path"
git show "${head}:${path}" | awk '{printf "%5d %s\n", NR, $0}'
}
git cat-file -e "${head}^{commit}"
git cat-file -e "${base}^{commit}"
printf '%s\n' '== Exact commits and diff =='
git show -s --format='head=%H%nhead_subject=%s' "$head"
git show -s --format='base=%H%nbase_subject=%s' "$base"
git diff --name-status "$base" "$head"
printf '%s\n' '== Relevant source at exact head =='
for path in \
.github/workflows/clearfolio-hourly-review-repair.yml \
.github/workflows/pr-review-fix-scheduler.yml \
.github/workflows/pr-review-autofix.yml \
scripts/ci/pr_review_fix_scheduler.py \
scripts/ci/pr_review_conflict_scope.py \
tests/test_pr_review_conflict_scope.py \
tests/test_pr_review_autofix_nvidia_nim_contract.py \
tests/test_pr_review_fix_hourly_contract.py \
tests/test_pr_review_fix_scheduler_source_pin.py \
docs/automation/hourly-review-repair.md \
docs/doctoring/hourly-nvidia-nim-autofix.md \
docs/doctoring/clearfolio-hourly-review-caller.md \
CHANGELOG.md
do
if git cat-file -e "${head}:${path}" 2>/dev/null; then
show_at_head "$path"
else
printf '\n--- MISSING: %s ---\n' "$path"
fi
done
printf '%s\n' '== Conflict-path call order =='
git show "${head}:.github/workflows/pr-review-autofix.yml" |
awk '{printf "%5d %s\n", NR, $0}' |
sed -n '430,700p'
printf '%s\n' '== Independent reviewer workflow identity =='
printf 'expected=%s\n' "$reviewer_blob"
printf 'base=%s\n' "$(git rev-parse "${base}:.github/workflows/opencode-review-dispatch.yml")"
printf 'head=%s\n' "$(git rev-parse "${head}:.github/workflows/opencode-review-dispatch.yml")"
if git diff --quiet "$base" "$head" -- .github/workflows/opencode-review-dispatch.yml; then
printf '%s\n' 'unchanged_from_base=true'
else
printf '%s\n' 'unchanged_from_base=false'
fi
printf '%s\n' '== Sensitive and prohibited-operation references =='
git grep -n -I -E \
'23 \* \* \* \*|retry.hours|max_dispatches|canonical_ref|workflow_(repository|sha|ref|file_path)|NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|GitHub Models|models\.github|mistralai/mistral-nemotron|nvidia/nemotron-3-nano-30b-a3b|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|pr_review_conflict_scope\.py (snapshot|verify)|git add -A|gh pr (merge|review)|gh release|pulls/.*/(merge|reviews)|branches/.+protection|rulesets|repository_dispatch|concurrency:' \
"$head" -- .github scripts docs ':!*.md' || true
printf '%s\n' '== Named workflow runs =='
for run in \
31069588915 31069588922 31069588960 31069588951 31069588912 \
31069589012 31069589172 31069588926 31069588916
do
gh api "repos/ContextualWisdomLab/.github/actions/runs/${run}" \
--jq '[.id,.name,.status,.conclusion,.head_sha,.event] | `@tsv`'
doneLength of output: 202804 🏁 Script executed: #!/bin/bash
set -euo pipefail
head='2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
printf '%s\n' '== Changed paths and focused diff =='
git diff --name-status "$base" "$head" -- \
.github/workflows/clearfolio-hourly-review-repair.yml \
.github/workflows/pr-review-fix-scheduler.yml \
.github/workflows/pr-review-autofix.yml \
scripts/ci/pr_review_fix_scheduler.py \
scripts/ci/pr_review_conflict_scope.py \
tests/test_pr_review_conflict_scope.py \
tests/test_pr_review_autofix_nvidia_nim_contract.py \
tests/test_pr_review_fix_hourly_contract.py \
tests/test_pr_review_fix_scheduler_source_pin.py \
docs/automation/hourly-review-repair.md \
docs/doctoring/hourly-nvidia-nim-autofix.md \
docs/doctoring/clearfolio-hourly-review-caller.md \
CHANGELOG.md
git diff --no-ext-diff --unified=30 "$base" "$head" -- \
.github/workflows/clearfolio-hourly-review-repair.yml \
.github/workflows/pr-review-fix-scheduler.yml \
.github/workflows/pr-review-autofix.yml \
scripts/ci/pr_review_fix_scheduler.py \
scripts/ci/pr_review_conflict_scope.py \
tests/test_pr_review_conflict_scope.py
printf '%s\n' '== Caller and scheduler source =='
for path in \
.github/workflows/clearfolio-hourly-review-repair.yml \
.github/workflows/pr-review-fix-scheduler.yml
do
printf '\n--- %s ---\n' "$path"
git show "${head}:${path}" | nl -ba
done
printf '%s\n' '== Autofix source sections =='
git show "${head}:.github/workflows/pr-review-autofix.yml" |
nl -ba |
sed -n '1,430p'
git show "${head}:.github/workflows/pr-review-autofix.yml" |
nl -ba |
sed -n '430,590p'
printf '%s\n' '== Repair-only prohibited-operation scan =='
for path in \
.github/workflows/clearfolio-hourly-review-repair.yml \
.github/workflows/pr-review-fix-scheduler.yml \
.github/workflows/pr-review-autofix.yml \
scripts/ci/pr_review_fix_scheduler.py \
scripts/ci/pr_review_conflict_scope.py
do
printf '\n--- %s ---\n' "$path"
git show "${head}:${path}" |
rg -n -i \
'gh\s+pr\s+(merge|review)|gh\s+release|pulls/.*/(merge|reviews)|mergePullRequest|enablePullRequestAutoMerge|branches/.+protection|rulesets|releases|/merges' \
|| true
done
printf '%s\n' '== Exact repair-workflow credential and permission controls =='
git show "${head}:.github/workflows/pr-review-autofix.yml" |
rg -n -C 3 \
'enabled_providers|nvidia-nim|NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|github-models|models\.github|NVIDIA_API_KEY|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|"bash": "deny"|"task": "deny"|"skill": "deny"|"question": "deny"|"webfetch": "deny"|"websearch": "deny"|"lsp": "deny"|"external_directory": "deny"|"doom_loop": "deny"|same repository|live.*head|allowed_files|allowlist|py_compile|actionlint' \
|| trueLength of output: 57003 🏁 Script executed: #!/bin/bash
set -euo pipefail
head='2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
printf '%s\n' '== Diff hygiene =='
git diff --check "$base" "$head"
printf '%s\n' '== Repair-only prohibited operation scan =='
for path in \
.github/workflows/clearfolio-hourly-review-repair.yml \
.github/workflows/pr-review-fix-scheduler.yml \
.github/workflows/pr-review-autofix.yml \
scripts/ci/pr_review_fix_scheduler.py \
scripts/ci/pr_review_conflict_scope.py
do
printf '\n--- %s ---\n' "$path"
git show "${head}:${path}" | \
rg -n -i \
'gh\s+pr\s+(merge|review)|gh\s+release|pulls/.*/(merge|reviews)|mergePullRequest|enablePullRequestAutoMerge|branches/.+protection|rulesets|releases|/merges' \
|| true
done
printf '%s\n' '== Exact autofix provider, token, permission, and guard controls =='
git show "${head}:.github/workflows/pr-review-autofix.yml" | \
awk '{printf "%5d %s\n", NR, $0}' | \
rg -n -C 3 \
'enabled_providers|nvidia-nim|NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|github-models|models\.github|NVIDIA_API_KEY|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|"bash": "deny"|"task": "deny"|"skill": "deny"|"question": "deny"|"webfetch": "deny"|"websearch": "deny"|"lsp": "deny"|"external_directory": "deny"|"doom_loop": "deny"|same-repository|same repository|live_head_sha|py_compile|actionlint|pr_review_conflict_scope\.py' \
|| true
printf '%s\n' '== Scheduler source identity and bounded dispatch controls =='
git show "${head}:.github/workflows/pr-review-fix-scheduler.yml" | \
awk '{printf "%5d %s\n", NR, $0}' | \
rg -n -C 3 \
'schedule:|ContextualWisdomLab/clearfolio|canonical_ref|job\.workflow_(repository|sha|ref|file_path)|WORKFLOW_(REPOSITORY|SHA|REF|FILE_PATH)|EXPECTED_(SHA|FILE)|MAX_DISPATCHES|RETRY_HOURS|cancel-in-progress|repository_dispatch' \
|| trueLength of output: 20882
I found no actionable finding in the requested scope. Verified controls:
I also verified that the nine named workflow runs completed successfully for this exact SHA. I do not issue approval from this You are interacting with an AI system. |
|
@coderabbitai review @opencode-agent @cwl-noema-review Independently review exact current head The predecessor-head OpenCode blocker was reproduced and fixed at its source: the product caller exposed Every direct exact-head workflow is successful: Hourly NVIDIA NIM Review Repair Verify the one-hour cadence and retry floor, schedule-only product caller, one-dispatch/single-flight bounds, immutable called-workflow and repository-dispatch source binding, |
|
I will use only exact-head evidence. I will verify the requested scheduler, source-binding, NVIDIA NIM, credential-isolation, file-boundary, reviewer-stability, and prohibited-operation controls. I will not issue approval unless repository independence and branch-protection requirements are satisfied.
|
|
@opencode-agent @cwl-noema-review Re-run an independent exact-head review for Recompute current-head coverage and docstring evidence, verify the one-hour bounded scheduler, immutable called-workflow source identity, NVIDIA NIM-only model authentication and missing-secret fail-closed behavior, GitHub/OIDC credential stripping, file-only OpenCode permissions, exact-head/live-head/file-allowlist/conflict publication guards, independent reviewer byte stability, and the prohibition on approval, merge, release, or protection weakening. Submit a formal exact-head verdict only; branch protection and a qualifying non-author approval remain mandatory. |
|
Exact-current-head review request for @opencode-agent |
🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
head='2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
expected_reviewer_blob='83f6830d5c21a324b4dbcd4e5c21a07968994b81'
git cat-file -e "${head}^{commit}"
git cat-file -e "${base}^{commit}"
printf '%s\n' '== Exact commits and changed paths =='
git show -s --format='head=%H%nsubject=%s' "$head"
git show -s --format='base=%H%nsubject=%s' "$base"
git diff --name-status "$base" "$head"
printf '%s\n' '== Focused workflow and helper outlines =='
for path in \
.github/workflows/clearfolio-hourly-review-repair.yml \
.github/workflows/pr-review-fix-scheduler.yml \
.github/workflows/pr-review-autofix.yml \
scripts/ci/pr_review_fix_scheduler.py \
scripts/ci/pr_review_conflict_scope.py
do
printf '\n--- %s ---\n' "$path"
git show "${head}:${path}" | nl -ba
done
printf '%s\n' '== Independent reviewer workflow identity =='
printf 'expected=%s\n' "$expected_reviewer_blob"
printf 'base=%s\n' "$(git rev-parse "${base}:.github/workflows/opencode-review-dispatch.yml")"
printf 'head=%s\n' "$(git rev-parse "${head}:.github/workflows/opencode-review-dispatch.yml")"
git diff --quiet "$base" "$head" -- .github/workflows/opencode-review-dispatch.yml &&
printf '%s\n' 'unchanged_from_base=true'
printf '%s\n' '== Focused control and prohibited-operation scan =='
git grep -n -I -E \
'23 \* \* \* \*|workflow_dispatch|max_dispatches|retry_hours|canonical_ref|job\.workflow_(repository|sha|ref|file_path)|NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|GitHub Models|models\.github|mistralai/mistral-nemotron|nvidia/nemotron-3-nano-30b-a3b|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|pr_review_conflict_scope\.py (snapshot|verify)|git add -A|gh pr (merge|review)|gh release|pulls/.*/(merge|reviews)|branches/.+protection|rulesets|repository_dispatch|concurrency:' \
"$head" -- .github scripts docs ':!*.md' || true
printf '%s\n' '== Exact-head named workflow runs =='
for run in \
31069588915 31069588922 31069588960 31069588951 31069588912 \
31069589012 31069589172 31069588926 31069588916
do
gh api "repos/ContextualWisdomLab/.github/actions/runs/${run}" \
--jq '[.id,.name,.status,.conclusion,.head_sha,.event] | `@tsv`'
doneLength of output: 3558 🏁 Script executed: #!/bin/bash
set -euo pipefail
head='2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
expected_reviewer_blob='83f6830d5c21a324b4dbcd4e5c21a07968994b81'
show() {
path="$1"
printf '\n== %s ==\n' "$path"
git show "${head}:${path}" | sed -n '1,760p'
}
printf '%s\n' '== Caller and scheduler =='
show '.github/workflows/clearfolio-hourly-review-repair.yml'
show '.github/workflows/pr-review-fix-scheduler.yml'
printf '%s\n' '== Autofix model and conflict-path controls =='
git show "${head}:.github/workflows/pr-review-autofix.yml" |
grep -n -E -C 12 \
'enabled_providers|nvidia-nim|NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|GitHub Models|models\.github|mistral-nemotron|nemotron-3-nano|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST|permissions|conflicted_files|pr_review_conflict_scope\.py|git add -A|git push|same.repository|live.head|allowed_files|allowlist|py_compile|actionlint' \
|| true
printf '%s\n' '== Conflict-scope helper =='
show 'scripts/ci/pr_review_conflict_scope.py'
printf '%s\n' '== Independent reviewer workflow identity =='
printf 'expected=%s\n' "$expected_reviewer_blob"
printf 'base=%s\n' "$(git rev-parse "${base}:.github/workflows/opencode-review-dispatch.yml")"
printf 'head=%s\n' "$(git rev-parse "${head}:.github/workflows/opencode-review-dispatch.yml")"
if git diff --quiet "$base" "$head" -- .github/workflows/opencode-review-dispatch.yml; then
printf '%s\n' 'unchanged_from_base=true'
else
printf '%s\n' 'unchanged_from_base=false'
fi
printf '%s\n' '== Prohibited operations in repair components =='
for path in \
.github/workflows/clearfolio-hourly-review-repair.yml \
.github/workflows/pr-review-fix-scheduler.yml \
.github/workflows/pr-review-autofix.yml \
scripts/ci/pr_review_fix_scheduler.py \
scripts/ci/pr_review_conflict_scope.py
do
printf '\n-- %s --\n' "$path"
git show "${head}:${path}" |
grep -n -E -i \
'gh[[:space:]]+pr[[:space:]]+(merge|review)|gh[[:space:]]+release|pulls/.*/(merge|reviews)|mergePullRequest|enablePullRequestAutoMerge|branches/.+protection|rulesets|/merges' \
|| true
done
printf '%s\n' '== Exact-head named workflow runs =='
for run in \
31069588915 31069588922 31069588960 31069588951 31069588912 \
31069589012 31069589172 31069588926 31069588916
do
gh api "repos/ContextualWisdomLab/.github/actions/runs/${run}" \
--jq '[.id,.name,.status,.conclusion,.head_sha,.event] | `@tsv`'
doneLength of output: 43952
I found no actionable finding in the requested scope. Verified controls:
This review does not constitute a qualifying independent non-author approval. Repository branch-protection requirements still apply.
|
Dismissed as stale: the review is anchored to predecessor head 4d69c58. Exact current head 2f16cca removes the branch-selected manual dispatch entrypoint that caused the reproduced coverage failure, and all direct exact-head focused, security, and supply-chain workflows are successful. A fresh current-head review and independent approval remain required.
|
@opencode-agent @cwl-noema-review Please submit a formal GitHub pull-request review for exact head Independently verify the schedule-only Clearfolio caller, one-hour cadence and retry floor, one-dispatch and single-flight bounds, immutable called-workflow/repository-dispatch source identity, |
|
@coderabbitai review @cwl-noema-review Please review exact current head |
|
|
|
@coderabbitai review Re-evaluate exact current head Perform read-only review with no branch write, auto-merge, merge, release, approval synthesis, reviewer-identity change, or protection change. Submit an exact-head formal verdict and, only if reviewer independence and repository policy genuinely permit it, a qualifying non-author approval. Otherwise state the remaining external gate precisely. |
|
Your plan includes PR reviews subject to rate limits. More reviews will be available in 12 minutes. |
|
@opencode-agent @cwl-noema-review Independently review exact current head Verify the one-hour product caller and same-head retry floor, one-dispatch and single-flight bounds, immutable reusable-workflow source identity, NVIDIA NIM-only OpenCode authentication, absence of |
|
@opencode-agent @cwl-noema-review @coderabbitai review Please review exact head |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
head='2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
reviewer_blob='83f6830d5c21a324b4dbcd4e5c21a07968994b81'
show_head() {
local path="$1"
printf '\n--- %s ---\n' "$path"
git show "${head}:${path}" | nl -ba
}
git cat-file -e "${head}^{commit}"
git cat-file -e "${base}^{commit}"
printf '%s\n' '== Exact commits and changed paths =='
git show -s --format='head=%H%nsubject=%s' "$head"
git show -s --format='base=%H%nsubject=%s' "$base"
git diff --name-status "$base" "$head"
printf '%s\n' '== Workflow and helper structure =='
for path in \
.github/workflows/clearfolio-hourly-review-repair.yml \
.github/workflows/pr-review-fix-scheduler.yml \
.github/workflows/pr-review-autofix.yml \
scripts/ci/pr_review_fix_scheduler.py \
scripts/ci/pr_review_conflict_scope.py
do
printf '\n--- outline: %s ---\n' "$path"
ast-grep outline "$path" --items all || true
done
printf '%s\n' '== Requested exact-head sources =='
for path in \
.github/workflows/clearfolio-hourly-review-repair.yml \
.github/workflows/pr-review-fix-scheduler.yml \
.github/workflows/pr-review-autofix.yml \
scripts/ci/pr_review_fix_scheduler.py \
scripts/ci/pr_review_conflict_scope.py \
tests/test_pr_review_conflict_scope.py \
tests/test_pr_review_autofix_nvidia_nim_contract.py \
tests/test_pr_review_fix_hourly_contract.py \
tests/test_pr_review_fix_scheduler_source_pin.py
do
show_head "$path"
done
printf '%s\n' '== Independent reviewer workflow identity =='
printf 'expected=%s\n' "$reviewer_blob"
printf 'base=%s\n' "$(git rev-parse "${base}:.github/workflows/opencode-review-dispatch.yml")"
printf 'head=%s\n' "$(git rev-parse "${head}:.github/workflows/opencode-review-dispatch.yml")"
git diff --quiet "$base" "$head" -- .github/workflows/opencode-review-dispatch.yml &&
printf '%s\n' 'unchanged_from_base=true'
printf '%s\n' '== Sensitive and prohibited-operation scan =='
git grep -n -I -E \
'23 \* \* \* \*|workflow_dispatch|max_dispatches|retry_hours|canonical_ref|workflow_(repository|sha|ref|file_path)|NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|GitHub Models|models\.github|nvidia-nim|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|pr_review_conflict_scope\.py (snapshot|verify)|git add -A|gh pr (merge|review)|gh release|pulls/.*/(merge|reviews)|branches/.+protection|rulesets|repository_dispatch|concurrency:' \
"$head" -- .github scripts docs ':!*.md' || true
printf '%s\n' '== Exact-head diff hygiene =='
git diff --check "$base" "$head"
printf '%s\n' '== Named workflow run metadata =='
for run in \
31069588915 31069588922 31069588960 31069588951 31069588912 \
31069589012 31069589172 31069588926 31069588916
do
gh api "repos/ContextualWisdomLab/.github/actions/runs/${run}" \
--jq '[.id,.name,.status,.conclusion,.head_sha,.event] | `@tsv`'
doneLength of output: 7406 🏁 Script executed: #!/bin/bash
set -euo pipefail
head='2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
reviewer_blob='83f6830d5c21a324b4dbcd4e5c21a07968994b81'
show_head() {
local path="$1"
printf '\n--- %s ---\n' "$path"
git show "${head}:${path}" | awk '{ printf "%5d %s\n", NR, $0 }'
}
printf '%s\n' '== Caller and reusable scheduler =='
show_head '.github/workflows/clearfolio-hourly-review-repair.yml'
show_head '.github/workflows/pr-review-fix-scheduler.yml'
printf '%s\n' '== Autofix controls and conflict path =='
git show "${head}:.github/workflows/pr-review-autofix.yml" |
awk '{ printf "%5d %s\n", NR, $0 }' |
grep -E -C 10 \
'enabled_providers|nvidia-nim|NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|GitHub Models|models\.github|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|permissions|same.repository|live.head|allowed_files|allowlist|conflicted_files|pr_review_conflict_scope\.py|git add -A|git push|py_compile|actionlint' \
|| true
printf '%s\n' '== Conflict-scope helper and focused contracts =='
for path in \
scripts/ci/pr_review_conflict_scope.py \
tests/test_pr_review_conflict_scope.py \
tests/test_pr_review_autofix_nvidia_nim_contract.py \
tests/test_pr_review_fix_hourly_contract.py \
tests/test_pr_review_fix_scheduler_source_pin.py
do
show_head "$path"
done
printf '%s\n' '== Independent reviewer workflow identity =='
printf 'expected=%s\n' "$reviewer_blob"
printf 'base=%s\n' "$(git rev-parse "${base}:.github/workflows/opencode-review-dispatch.yml")"
printf 'head=%s\n' "$(git rev-parse "${head}:.github/workflows/opencode-review-dispatch.yml")"
if git diff --quiet "$base" "$head" -- .github/workflows/opencode-review-dispatch.yml; then
printf '%s\n' 'unchanged_from_base=true'
else
printf '%s\n' 'unchanged_from_base=false'
fi
printf '%s\n' '== Prohibited operations in repair components =='
for path in \
.github/workflows/clearfolio-hourly-review-repair.yml \
.github/workflows/pr-review-fix-scheduler.yml \
.github/workflows/pr-review-autofix.yml \
scripts/ci/pr_review_fix_scheduler.py \
scripts/ci/pr_review_conflict_scope.py
do
printf '\n--- %s ---\n' "$path"
git show "${head}:${path}" |
grep -n -E -i \
'gh[[:space:]]+pr[[:space:]]+(merge|review)|gh[[:space:]]+release|pulls/.*/(merge|reviews)|mergePullRequest|enablePullRequestAutoMerge|branches/.+protection|rulesets|/merges' \
|| true
done
printf '%s\n' '== Exact-head diff hygiene =='
git diff --check "$base" "$head"
printf '%s\n' '== Named workflow run metadata =='
for run in \
31069588915 31069588922 31069588960 31069588951 31069588912 \
31069589012 31069589172 31069588926 31069588916
do
gh api "repos/ContextualWisdomLab/.github/actions/runs/${run}" \
--jq '[.id,.name,.status,.conclusion,.head_sha,.event] | `@tsv`'
doneLength of output: 77085
I found no actionable finding in the requested scope. Verified controls:
This review does not satisfy the external merge gates. A qualifying independent non-author approval and repository branch-protection requirements remain mandatory. You are interacting with an AI system. |
|
Exact-head review request for @coderabbitai review |
|
|
|
@opencode-agent @cwl-noema-review Final independent exact-head review requested for |
seonghobae
left a comment
There was a problem hiding this comment.
Exact-current-head review request after evidence reconciliation.
Head: 2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2
Base: f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae
Focused scheduler gate, Python Security, Security Scan, CodeQL, Semgrep, Secret Scan, OSV, Scorecard, and SBOM are successful on this exact head. Inline review threads are resolved. Earlier OpenCode request-changes reviews belong to predecessor head 4d69c58c403c1db07a9c39d5c5180c5b6b0aae15 and are dismissed stale evidence.
@coderabbitai review
@opencode-agent review
@cwl-noema-review review
@strix review
Review read-only. Preserve the existing reviewer identities and credential chain. Do not update the branch, create repair automation, approve from author identity, or merge. Submit an exact-head verdict only.
|
@opencode-agent @cwl-noema-review review Re-review exact current head |
Purpose
Activate a real one-hour Clearfolio review → repair → revalidation support loop on the protected central control-plane baseline while preserving the existing independent reviewer workflow, its credential system, and modular reuse by other CWL services.
Product and MSA behavior
.github/workflows/clearfolio-hourly-review-repair.ymlas the explicit product caller at minute 23 of every hour;ContextualWisdomLab/clearfolio, protectedmain, one dispatch, and one-hour same-head retry parameters to the reusable engine;.github/workflows/pr-review-fix-scheduler.ymlfree of product-specific timers and repository names so naruon, contextual-orchestrator, and other CWL services can call it independently;PR_REVIEW_MERGE_TOKENandOPENCODE_APPROVE_TOKENscheduler credentials; never usesecrets: inherit;canonical_refinput accepted but ignored.OpenCode and credential behavior
secrets.NVIDIA_NIM_API_KEY;mistralai/mistral-nemotronas the primary repair model andnvidia/nemotron-3-nano-30b-a3bas the bounded helper model;COPILOT_GITHUB_TOKEN, GitHub Models, or a GitHub token as model authentication;GITHUB_TOKEN,GH_TOKEN, and Actions OIDC request credentials from both OpenCode child processes;.github/workflows/opencode-review-dispatch.ymlbyte-for-byte unchanged at blob83f6830d5c21a324b4dbcd4e5c21a07968994b81;Test-first evidence
The contracts-only head
b02b4c995c91b2d9130adbf6f867fa1df5d1df87failed as designed in permanent workflow run31002306348, proving that the inherited baseline still used a two-hour cadence, a 24-hour retry floor, mutable scheduler source, GitHub Models, GitHub credentials in the model step, no NVIDIA binding or missing-secret preflight, and incomplete unattended-agent denials.The implementation subsequently added the explicit Clearfolio caller, removed product cadence from the reusable engine, bound privileged source to
job.workflow_repository,job.workflow_sha,job.workflow_ref, andjob.workflow_file_path, moved model authentication to NVIDIA NIM, stripped GitHub and OIDC credentials from model subprocesses, and introduced the exact conflict-path publication boundary. Focused regressions cover cadence, source identity, provider and secret scope, reviewer independence, conflict snapshot validation, path normalization, symlink and deletion handling, malformed evidence, complete branch coverage, docstrings, and workflow ordering.Exact-head evidence
Exact current head:
2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2.Successful on this exact head:
31069588915;31073803688;31073803736;31073803711;31073803666;31073803680;31073804008;31073803697;31073803667; andThe two dismissed OpenCode request-changes reviews are anchored to predecessor head
4d69c58c403c1db07a9c39d5c5180c5b6b0aae15and are not current-head evidence. The current formal review inventory contains no qualifying non-author approval for2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2. No predecessor-head, synthetic-merge, queued, pending, cancelled, skipped-required, rate-limit, wrapper-only, author-only, or local-only result is accepted as merge evidence.Documentation
docs/automation/hourly-review-repair.mddefines product-caller, reusable-engine, target precedence, immutable source, operator, and modular MSA behavior.docs/doctoring/hourly-nvidia-nim-autofix.mdrecords the NVIDIA provider, credential boundary, child-process isolation, conflict-path publication boundary, verification, and rollback.docs/doctoring/clearfolio-hourly-review-caller.mdrecords the product caller, least privilege, failure behavior, verification, rollback, and APA 7 primary-source evidence.CHANGELOG.mdrecords cadence, explicit target, immutable source, provider migration, secret scope, reviewer separation, and conflict-scope hardening.Activation boundary
Scheduled workflows execute only from the protected default branch. The Clearfolio production heartbeat is not active while this PR remains unmerged. Missing scheduler or NVIDIA credentials fail closed while independent review, required checks, and manual maintenance remain available.
Merge acceptance
The direct exact-head workflow, security, supply-chain, coverage, docstring, and unresolved-thread gates are satisfied on
2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2. Do not merge until exact-head CodeRabbit, OpenCode, Noema, every other repository-required review surface, a qualifying non-author approval, and every branch-protection rule are satisfied without administrative bypass. The repair worker itself must never change Draft state, approve, auto-merge, merge, release, or modify protections.Supersedes closed predecessor #779 after this current-main replacement is validated and merged.
Summary by CodeRabbit
새 기능
보안 및 안정성 개선
문서