用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/matdev83/go-llm-interactive-proxy --skill lip-pr-delivery命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | lip-pr-delivery |
| description | Deliver sequential LIP PRs: preflight, CI repair, merge order, smoke checks, and cleanup. |
| license | MIT |
| metadata | {"author":"go-llm-interactive-proxy","version":"1.0.0"} |
Deliver repository changes through GitHub without bypassing local policy, remote gates, merge order, or final operational evidence.
Use this skill for PR preparation, stacked/sequential PRs, CI babysitting, merge repair, final verification, and worktree cleanup. Repository AGENTS.md and .kiro/steering/ override this skill.
main. Use one named feature worktree per PR.main is verified.Before editing, committing, rebasing, or merging:
git status --short --branch
git worktree list --porcelain
git log -1 --oneline --decorate
git remote -v
gh auth status
Confirm explicitly:
origin/main;If a delegated worker appears hung, inspect the shared worktree and run status/tests before retrying. A blocked wrapper does not prove the work failed. Do not launch another mutating worker over completed changes.
Review the full diff, not only the worker report:
git diff --check
git diff --stat
git diff
git diff --cached --check
git diff --cached
Check for:
errors.Is / errors.As behavior;Expected results must not be produced by the implementation under test.
Reject tautological tests such as:
Use pinned fixtures, independently constructed expected values, reference implementations, or post-mapping validators.
Run the exact repository gates relevant to the changed paths. At minimum:
test -z "$(gofmt -l cmd internal pkg)"
git diff --check
go mod verify
git diff --exit-code -- go.mod go.sum
Then run focused uncached tests:
go test -count=1 ./path/to/changed/package/...
Use the verification guidance in AGENTS.md:
make quality-checks for formatting, vet, and architecture hygiene;make test-unit for broad unit coverage;make parity-checks for protocol/frontend/backend matrices;make qa for wide or release-grade changes;If a changed package is covered by a measured workflow, inspect .github/workflows/*coverage*.yml and reproduce its command and threshold locally before pushing. Never assume ordinary go test is sufficient.
Example pattern:
go test -count=1 -coverprofile=coverage.out ./path/to/package
go tool cover -func=coverage.out
Add coverage only for meaningful changed behavior. Do not add unrelated tests merely to inflate the percentage, and never lower the threshold.
For changes that can affect composition, protocols, frontends, backends, config, or CLI startup:
go build ./cmd/lipstd
go run ./cmd/lipstd --help
For protocol/runtime changes, run the applicable full-path integration smoke tests. OpenResponses changes should include JSON, SSE, compact, and WebSocket round trips where relevant, plus reference client/backend suites.
Stage only intended paths, then recheck the staged diff:
git add <explicit-paths>
git diff --cached --check
git diff --cached --stat
git status --short
git commit -m "<conventional message>"
Before opening the PR, fetch and rebase onto current origin/main when the PR is independent:
git fetch origin main
git rebase origin/main
For a branch originally based on an already squash-merged predecessor, transplant only the unique commit(s), rather than replaying predecessor commits:
git rebase --onto origin/main <old-predecessor-tip> <branch>
After rebase, rerun focused tests and push with --force-with-lease only when history was intentionally rewritten.
Open the PR with a body listing behavior, constraints, and exact verification evidence. Record the PR number and head SHA.
Monitor checks for the latest head SHA. A force-push may briefly report no checks; wait for the new workflow runs rather than reading stale results.
gh pr view <pr> --json state,headRefOid,baseRefOid,mergeable,mergeStateStatus,reviewDecision,statusCheckRollup
gh pr checks <pr> --watch --interval 20
For every failure:
Retrieve the exact failed job log:
gh run view <run-id> --job <job-id> --log-failed
Identify the precise command and failure.
Reproduce it locally.
Make the smallest production-grade repair.
Rerun the exact failed command plus focused regression tests.
Review the repair diff.
Commit and push.
Wait for checks attached to the new head SHA.
Do not dismiss formatting, coverage, platform, security, compliance, or architecture failures as incidental. Do not merge while checks are pending, stale, skipped unexpectedly, or attached to an old SHA.
If GitHub API/authentication fails, distinguish API credentials from Git transport credentials. Preserve committed/pushed work, report the blocker, restore gh auth, and resume without duplicating PRs.
Before merge, require:
state=OPEN;mergeable=MERGEABLE;mergeStateStatus=CLEAN;Then merge using the repository's established method, normally squash:
gh pr merge <pr> --squash --delete-branch
Confirm the merged state and merge commit:
gh pr view <pr> --json state,mergedAt,mergeCommit,url
Fetch origin/main before preparing the next PR. Rebase/transplant the next PR onto the newly merged main, rerun preflight, then submit it. Never merge dependent PRs out of order.
Use the original main worktree, not a feature checkout:
git -C <main-worktree> status --short --branch
git -C <main-worktree> pull --ff-only origin main
Run on merged main:
go build ./cmd/lipstd;go run ./cmd/lipstd --help.For OpenResponses, explicitly exercise applicable JSON, SSE, compact, and WebSocket paths. State clearly whether tests use the in-process deployment harness, independent emulators, or a separately spawned lipstd serve process; do not conflate them.
Only after merge and merged-main verification:
git worktree prune.main is clean and synchronized.git worktree remove <path>
git branch -D <merged-branch>
git fetch --prune origin
git worktree prune --verbose
git worktree list --porcelain
git branch --list '<task-pattern>'
git status --short --branch
On Windows, directory locks may prevent physical deletion. If so, remove/prune the Git registration and branches, verify they are gone from Git metadata, and report that the remaining directory must be deleted manually after locks release. Never use destructive resets to work around locks.
Report:
Delivery is complete only when all scoped PRs are merged, merged main passes the required verification, and Git metadata cleanup is complete (or a clearly stated OS lock is the sole remaining physical cleanup item).