用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/EveryInc/symphony-thumbtack --skill land命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | land |
| description | Land a local PR by resolving conflicts and squash-merging the feature |
There is no remote, no GitHub PR, and no CI in this demo. "Land" means:
main.main.MERGED and move the issue to Done.main.main.tasks pr-merge) is marked MERGED.Done.symphony/<identifier>) with a clean
working tree.Merging state (the human approved it).OPEN.branch=$(git branch --show-current)
identifier=$(echo "$branch" | sed 's|^symphony/||' | tr '[:lower:]' '[:upper:]')
tasks pr-view "$identifier"
main:
git fetch . main:main 2>/dev/null || true
If the branch hasn't ingested recent main commits, run the pull skill
first. The pull skill is configured for this offline mode and merges
from local main rather than origin/main.tasks comment-list "$identifier"
[claude] comment that's actionable, choose: accept
(implement), clarify (ask), or push back (justified disagreement).[claude]-prefixed comment with your decision:
cat > /tmp/reply.md <<'EOF'
[claude] Re: "<paraphrase of the reviewer's point>"
<decision and rationale>
EOF
tasks comment-create "$identifier" --body-file /tmp/reply.md
commit skill, and
re-run the push skill to update the PR body before merging.# Whatever the issue's Validation section specifies, e.g.:
pytest -q
main. From the feature branch:
pr_title=$(tasks pr-view "$identifier" --json | python3 -c 'import sys,json;print(json.load(sys.stdin)["title"])')
pr_body=$(tasks pr-view "$identifier" --json | python3 -c 'import sys,json;print(json.load(sys.stdin)["body"])')
# Stash any in-flight uncommitted changes — there should be none at this point.
git switch main
git -c merge.ff=false merge --squash "$branch"
commit_msg=$(printf '%s\n\n%s' "$pr_title" "$pr_body")
git commit -m "$commit_msg"
merge_sha=$(git rev-parse HEAD)
Note: this is happening inside the agent's git worktree. The squashed
commit lands on the worktree's local main. The orchestrator's
before_remove hook will clean up the worktree afterwards. The squashed
commit is the deliverable for this issue.Done:
tasks pr-merge "$identifier" --merge-commit "$merge_sha"
tasks update-state "$identifier" --state "Done"
git switch "$branch"
pull skill, resolve, run the commit skill,
re-run the push skill, then start this skill from the top.main
diverged in unexpected ways): stop and surface the exact state in the
workpad. Don't try to recover with destructive commands.git push, git fetch origin, or gh .... There is no remote.--force anything; nothing forces in offline mode.git merge or git switch main outside this skill flow.[claude].Done,
unless you hit a true blocker.Merge local `main` into the current branch and resolve merge conflicts
Finalize the local feature branch and create or update a local PR record on
Use the local `tasks` CLI to read/write `tasks.json` — the offline-demo replacement for Linear. Covers reading issues, posting/editing comments, transitioning issue state, attaching local PRs, and creating follow-up issues. Use when working a ticket through Symphony in offline mode.
基于 SOC 职业分类