Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion PORTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ Upstream is the source of truth for the workflows themselves. This file records
- Four sites carry a conditional GitNexus nudge, active only when `.gitnexus/` exists in the repo and the `gitnexus` CLI is on `PATH`: the **how** skill (SKILL.md and `references/explorer-prompt.md`) seeds exploration with `gitnexus query`/`context`/`trace`; **blast-radius** seeds the change map with `gitnexus detect-changes`/`impact`; the **refactoring** playbook enumerates callers with `gitnexus impact`/`context` before a migration wave; and the Code review playbook's review lens lists a shared symbol's callers with `gitnexus impact`. Freshness-first policy: an existing index is refreshed with `gitnexus analyze --index-only` (incremental, no-op when up to date) before the graph is consulted — by the lead only, never from parallel arms (concurrent analyzes can corrupt the KuzuDB store). Creating a first index stays suggest-only. The code itself remains the source of truth: the index reflects the last analyzed commit and never sees uncommitted edits. No-op on hosts and repos without GitNexus.
- The GitHub watcher treats a PR whose head has no checks as having no CI (port addition, 2026-09). An empty GraphQL rollup proves it, so the watcher reads `ci-clean` instead of throwing `ChecksUnavailable`. It still throws that retryable error when an earlier commit on the PR had checks, because the head's checks may not be registered yet. So a later push that never gets checks in a repo with CI, such as a path-filtered or `[skip ci]` commit, still ends at the error cap. Upstream throws whenever both check sources are empty. Keep this on sync.
- The GitHub watcher keeps the origin host, including github.com and GitHub Enterprise (port addition, 2026-10). It reads the host from the origin remote, passes it to every `gh` call as `--repo <host>/<owner>/<repo>` and to GraphQL as `--hostname <host>`, and renders status links on it. An explicit `--owner`, `--repo`, and `--pr` outside a checkout uses `GH_HOST`, else github.com. Upstream assumes github.com. Keep the host through the watcher's context types on sync, and keep the Babysit playbook's `GH_HOST` sentence.
- The GitHub watcher (`skills/poteto-mode/scripts/watch-pr`) treats every review bot alike, not only Cursor Bugbot: a thread carries `bot: { login, passes } | null`, and `READY` waits while a bot is still a requested reviewer (`WAITING` with `pending-review-bots`), which is how GitHub Copilot code review shows up before it posts. Since 2026-10, `READY` also stops on a bot review of the head commit whose body reports a finding with no thread (the `review-findings` blocker, exit 8), until a PR comment from the PR author or a repository owner, member, or collaborator contains that review's full URL. A per-format parser registry reads Copilot's overview. An unreadable body from Copilot's login blocks, and another bot's unreadable body becomes a note on `READY`. Repos without review bots see no change. Upstream still has `isBugbot`/`bugbotReviewPasses`; on sync, keep the port's shape and re-apply the babysit playbook and triage-reference wording.
- The GitHub watcher (`skills/poteto-mode/scripts/watch-pr`) treats every review bot alike, not only Cursor Bugbot: a thread carries `bot: { login, passes } | null`, and `READY` waits while a bot is still a requested reviewer (`WAITING` with `pending-review-bots`), which is how GitHub Copilot code review shows up before it posts. Since 2026-10, `READY` also stops on a bot review of the head commit whose body reports a finding with no thread (the `review-findings` blocker, exit 8), until it is acknowledged under the [Babysit playbook's rules](skills/poteto-mode/playbooks/babysit.md). A per-format parser registry reads Copilot's overview. An unreadable body from Copilot's login blocks, and another bot's unreadable body becomes a note on `READY`. Repos without review bots see no change. Upstream still has `isBugbot`/`bugbotReviewPasses`; on sync, keep the port's shape and re-apply the babysit playbook and triage-reference wording.
- Shipping lands GitHub PRs through `scripts/watch-pr/merge-gate` (port addition, 2026-10). The lead broke the prose landing gates three times in one week: once it merged before reading a bot's review body, once it missed red CI behind the watcher's first blocker, and once it reported CI it had not read. merge-gate reads the latest trusted verdict block (`Verdict:`, `Head:`, `Patch-id:`, `Docs:`) and recomputes the patch-id. It checks CI, bot review bodies, threads, and mergeability on the current head, reports every failed gate, and merges with `--match-head-commit`. It also refuses a base branch with a merge queue, because `gh pr merge` would only enqueue the PR, and the queue would land it later without rechecking the verdict, the bot reviews, or the open threads. `--override` posts its reason on the PR. On GitHub, Shipping never arms GitHub auto-merge, because it would merge later without these checks; the lead runs merge-gate when the watcher reports `READY`. Upstream lands with a bare `gh pr merge` or arms `--auto`, and has no verdict block. Autopilot-full step 5 also says the full-autonomy grant never approves `--override`, so an owner whose merge-gate run refuses on a merge queue stops at merge-ready and the root reports an open operator gate. Keep that sentence on sync.
- Autopilot-full's third-`FAIL` stop and finding bar are port additions (2026-10, #177). [Autopilot-full step 4](skills/poteto-mode/playbooks/autopilot-full.md) owns the counting, reset, `Stopped:`, recorded-run, and security rules; step 6 applies the stop on each hourly tick. Upstream has none of these rules. Keep both steps and the `verdict.ts` and merge-gate support on sync. The security exception also covers Shipping step 1's posted verdict and Multi-phase plan's follow-up-issue rule (port edits). Keep that sentence at both sites on sync.
- Babysit CI classification is a port edit. [Babysit step 7](skills/poteto-mode/playbooks/babysit.md) owns the classification and retry rules. Preserve that step on upstream sync.
Expand Down
Loading
Loading