Setelah mengikuti panduan ini, kamu bisa bertanya ke Claude Code "apakah change set checkout sudah hijau?" dan mendapat jawaban yang dibaca dari osFoundry, bukan ditebak dari hasil test lokalmu. Claude Code menampilkan daftar check pada composed commit milik change set, memberi tahu mana yang gagal, dan kalau kelihatannya flaky, mengajukan retry untuk satu check itu saja. Retry tidak langsung jalan saat Claude Code memintanya. Permintaan itu masuk ke osFoundry sebagai kartu "Retry GitNest check" lengkap dengan versi change set dan commit persisnya, dan baru dijalankan ketika kamu mengklik Approve retry.
| Claude Code | osFoundry | |
|---|---|---|
| Login | Login miliknya sendiri di mesinmu | Koneksi yang sudah kamu setujui sekali untuk satu workspace, dengan scope osfoundry:read danosfoundry:write |
| Repository mana | Memilih dari yang didaftarkan server | Hanya repository GitNest yang ditetapkan ke project tempat koneksi itu berada |
| Membaca check | list_gitnest_checks pada satu change set |
Mengembalikan status terbatas untuk composed commit change set saat ini |
| Menjalankan check | Tidak pernah | Mesin runner yang kamu daftarkan yang menjalankannya. osFoundry tidak mengeksekusi kodemu |
| Retry check | propose_gitnest_check_rerun , yang ditandai destruktif, jadi Claude Code bertanya dulu |
Sebuah kartu di bawah "Needs your approval" (menunggu persetujuanmu). Approve retry memasukkan ulang satu check yang sudah selesai itu ke antrean |
| Apa yang dicek ulang | Tidak ada | Saat disetujui: akses repository, versi change set, commit, dan status check |
$ claude mcp add --transport http -s user osfoundry https://api.osfoundry.io/api/v1/external-mcp
CLI osFoundry mencetak baris yang sama lewat osfoundry agent connect claude --print. Di Claude Code, jalankan /mcp, pilih osfoundry, lalu pilih Authenticate. Browser akan membuka osFoundry, dan kamu memilih satu workspace. Setelah itu tool-nya muncul sebagai mcp__osfoundry__….
Check yang belum pernah jalan tidak bisa dibaca atau di-retry. Di GitNest, buka halaman pengaturan repository. Ada dua panel yang penting di sini:
OSF_RUNNER_TOKEN=… osfoundry-runner --api https://api.osfoundry.io. Tanpa runner, panel memberi peringatan "Checks will stay queued until one is.".osfoundry/checks.yaml. "A change set cannot merge until every check named here has passed on its commit."
Di GitNest, bagian Project pada repository bertuliskan "Connected agents in this project can use approved GitNest read tools when their connection owner still has repository access." Hanya pemilik repository yang mendapat pemilihnya. Pilih sebuah project, dan osFoundry mengonfirmasi "Repository project updated".
Lalu buka ikon kunci → Connected, pilih koneksi Claude Code, dan di bawah Projects tambahkan ke project tersebut.
Contoh: Menambahkan koneksi Claude Code ke project yang berisi repository
Di bawah Tools pada panel yang sama, "All supported tools are on by default." Tool yang dipakai di panduan ini muncul sebagai list gitnest work, list gitnest checks, list gitnest saved results, read gitnest work, dan propose gitnest check rerun. Kalau mau Claude Code hanya bisa membaca check, hapus centang propose gitnest check rerun lalu klik Save tools.
Nama tool dan argumen adalah yang dikembalikan server osFoundry dari tools/list. Repository, change set, ID, nama check, dan balasannya adalah konten contoh.
Example
You: Is the checkout-retry change set in shop-api green? If a check failed
for a reason that isn't the code, ask osFoundry to retry it.
Claude Code → mcp__osfoundry__list_granted_resources {}
← project "Payments" · GitNest repository "shop-api"
Claude Code → mcp__osfoundry__list_gitnest_work {"repository_id": "…", "kind": "changes"}
← "Fix double charge on checkout retry" (cs_4e81a0) · version 3
Claude Code → mcp__osfoundry__list_gitnest_checks {"repository_id": "…", "change_set_id": "cs_4e81a0"}
← composed commit 9c1e47a…: unit passed · lint passed · e2e failed
Claude Code → mcp__osfoundry__list_gitnest_saved_results {"repository_id": "…", "limit": 10}
← 2 saved results behind this change set
Claude Code → mcp__osfoundry__read_gitnest_work {"repository_id": "…", "kind": "runs", "item_id": "…"}
← run summary: payment client tests passed locally
Claude Code: unit and lint passed on 9c1e47a. e2e failed. The change only
touches the payment client, and its tests passed in the saved
run, so a retry is reasonable. Shall I propose one?
You: Yes.
Claude Code → mcp__osfoundry__propose_gitnest_check_rerun
{"repository_id": "…", "change_set_id": "cs_4e81a0",
"check_name": "e2e", "expected_change_set_version": 3,
"expected_composition_oid": "9c1e47a…",
"idempotency_key": "rerun-5b0c…"}
← proposal waiting for the owner
Claude Code: The retry is waiting under Connected → Needs your approval.
Tell me when you've approved it and I'll read the checks again.
Claude Code bertanya sebelum memanggil propose karena tool itu diberi anotasi destructiveHint: true. Itu prompt izin milik Claude Code sendiri, terpisah dari persetujuan di osFoundry.
Sebelum menyetujui, lihat dulu change set-nya. Di halaman review-nya di GitNest, panel check ada di atas tab dan merangkum composed commit dalam satu baris, di sini "Checks did not pass: e2e", dengan tiap check dan statusnya di bawahnya. Change set yang belum di-compose tidak menampilkan panel sama sekali, dan commit tanpa check menampilkan "No checks have run against this commit" alih-alih tanda centang.
Lonceng notifikasi menampilkan " proposes retrying a GitNest check". Di ikon kunci → Connected → koneksimu → Needs your approval, kartunya berbunyi:
Retry GitNest check in shop-api
Change set: cs_4e81a0 · expected version 3
Reviewed commit: 9c1e47a…
Check to retry: e2e
Review change set before approving
Expires …
[ Approve retry ] [ Decline ]
Contoh: Usulan Retry GitNest check di bawah Needs your approval
"Review change set before approving" membuka halaman review yang sama. Kalau commit di kartu adalah commit yang sudah kamu lihat, klik Approve retry. Check e2e masuk antrean lagi untuk commit itu, lalu runner-mu mengambilnya. Setelah itu beri tahu Claude Code, dan ia akan memanggil list_gitnest_checks sekali lagi.
Retry menyebut commit, bukan branch. propose_gitnest_check_rerun mewajibkan expected_change_set_version dan expected_composition_oid, jadi kartu selalu menunjukkan composed commit mana yang dilihat Claude Code gagal. Kalau ada yang me-recompose change set saat kartu masih menunggu, commit yang akan kamu setujui sudah bukan yang tertera di kartu. osFoundry mengecek ulang versi, commit, dan status check saat kamu mengklik, dan kartu yang sudah usang tidak dijalankan. Panel lalu menampilkan "Could not decide this proposal. Its access may have changed." Minta Claude Code membaca check lagi dan mengusulkan untuk commit yang baru.
Hanya check yang sudah selesai yang bisa di-retry. Deskripsi tool-nya berbunyi "retry one finished check", dan status check termasuk dalam pengecekan ulang. Check yang sudah masuk antrean atau sedang berjalan lagi, karena orang lain sudah me-retry-nya atau change set di-recompose, tidak akan diantrekan untuk kedua kalinya.
Satu check per usulan. check_name adalah satu string dengan panjang maksimal 200 karakter. Me-retry seluruh suite berarti satu kartu per check, dan setiap kartu kamu yang memutuskan. Dengan begitu, retry e2e yang flaky tidak diam-diam ikut menjalankan ulang security scan yang lebih baik tetap gagal.
Tidak ada bagian dari alur ini yang berjalan di mesin osFoundry atau mengubah kode. Check berjalan di runner yang kamu daftarkan. Menyetujui retry hanya memasukkan ulang satu check ke antrean, tidak lebih. Tidak ada recompose, merge, atau publish. Merge tetap menunggu sampai semua required check lolos pada commit itu.
Data yang dibaca tetap minim. list_gitnest_checks mengembalikan status terbatas hanya untuk composed commit saat ini. list_gitnest_saved_results dan read_gitnest_work tidak menyertakan binding lokal dan kredensial, jadi Claude Code bisa memberi tahu bahwa sebuah test gagal, tetapi tidak pernah melihat token runner atau path checkout lokalmu.
Untuk mencobanya, daftarkan satu runner di mesin cadangan, push change set dengan check yang kamu tahu flaky, lalu tanyakan ke Claude Code apakah sudah hijau. Halaman GitNest menampilkan layar repository, change set, dan check, sedangkan halaman Connected membahas panel persetujuan.