跳到正文
cccskills
免费在 GitHub 公开

pr-daily

Set up the daily dotfiles branch from the current daily branch, clean up previous daily branches, and ensure a draft PR exists. Use when invoked as `$pr-daily` or when the user asks to start the daily dotfiles workflow.

中文简介正在准备中。当前显示原文说明。

集成工具GitHub
查看安装方法

包含的文件(2)

  • SKILL.md5.0 KB
  • agents/openai.yaml43 B

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

pr-daily

Set up today's daily branch from the current daily branch, clean up old daily branches, and ensure a draft PR exists.

Workflow

  1. Detect context:

    remote=$(git remote | head -1)
    dow=$(date +%A | tr '[:upper:]' '[:lower:]')
    if [ "$dow" = "saturday" ] || [ "$dow" = "sunday" ]; then today="weekend"; else today="$dow"; fi
    today_date=$(date +%Y-%m-%d)
    default_branch=$(git symbolic-ref refs/remotes/${remote}/HEAD 2>/dev/null | sed "s|refs/remotes/${remote}/||" || echo "main")
    current_branch=$(git branch --show-current)
    source_branch=${current_branch}
    echo "remote=${remote} dow=${dow} today=${today} date=${today_date} default=${default_branch} current=${current_branch} source=${source_branch}"
    
  2. Prune stale remote-tracking refs:

    git fetch "${remote}" --prune
    
  3. Check for uncommitted changes. If dirty, show files and ask whether to commit, stash, or abort. Do not silently stash or discard.

  4. Clean up previous daily branches named monday, tuesday, wednesday, thursday, friday, and weekend, skipping today's name and ${source_branch} so the source remains available until today's branch is created:

    • If the branch has a merged PR, delete local branch and remote branch if present.
    • If the PR is open, closed-unmerged, or absent, leave it and report why.
  5. Keep ${source_branch} checked out as the base for today's branch. Do not switch to the default branch.

    • If it is a daily branch, use it as the source.
    • If it is the default branch, use it as the fallback when no daily branch is active.
    • If it is any other branch, ask whether to use it or abort rather than silently inheriting unrelated work.

    When the source differs from today, check whether that exact source branch exists on the remote. Treat the lookup status as a safety boundary:

    • Status 0: Fetch and fast-forward the remote source before branching.
    • Status 2: The remote source is absent; intentionally continue with the local source branch.
    • Any other status: Report the lookup failure and stop the workflow before branching. Do not treat network, authentication, or remote errors as a missing branch.
    if test "${source_branch}" != "${today}"; then
      source_remote_status=0
      git ls-remote --exit-code --heads "${remote}" "${source_branch}" >/dev/null 2>&1 || source_remote_status=$?
    
      case "${source_remote_status}" in
        0)
          git fetch "${remote}" "${source_branch}"
          git merge --ff-only "${remote}/${source_branch}"
          ;;
        2)
          echo "Source branch '${source_branch}' is absent from '${remote}'; continuing with the local source branch."
          ;;
        *)
          echo "Failed to inspect source branch '${source_branch}' on '${remote}' (git ls-remote status ${source_remote_status}); stopping before branching." >&2
          exit "${source_remote_status}"
          ;;
      esac
    fi
    

    If the fast-forward fails because the local and remote source branches diverged, ask how to proceed rather than merging, rebasing, or force-pushing automatically.

  6. Create or switch to today's branch:

    • Existing local branch: git checkout "${today}"
    • Existing remote branch: git checkout -b "${today}" "${remote}/${today}"
    • New branch: git checkout -b "${today}" "${source_branch}"

    Establish or verify tracking. For new branches, push with:

    git push -u "${remote}" "${today}:${today}"
    
  7. Ensure a draft PR exists:

    gh pr list --head "${today}" --state open --json number,url --jq '.[0] | "\(.number)|\(.url)"'
    

    If no PR exists, compare a newly layered branch with its source. On a same-day rerun, compare with the default branch instead because ${source_branch} and ${today} are identical:

    comparison_branch=${default_branch}
    if [ "${source_branch}" != "${today}" ]; then
      comparison_branch=${source_branch}
    fi
    git rev-list --count "${comparison_branch}..${today}"
    

    If the count is 0, create an empty marker commit so today's branch remains distinct after the source PR merges:

    git commit --allow-empty -m "chore: start ${today} ${today_date}"
    git push "${remote}" "${today}:${today}"
    

    Then create:

    gh pr create --draft --base "${default_branch}" --assignee @me --title "chore: ${today} ${today_date}" --body "Daily dotfiles branch for ${today}, ${today_date}."
    

    The branch inherits ${source_branch}, while the PR continues to target ${default_branch}. The PR is cumulative until the source PR merges, then its diff shrinks to the newer changes.

  8. Report branch, source branch, PR, pruned refs, cleaned branches, and branches intentionally left alone.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

2ndbrain

免费

Quick-save the last assistant response as a verbatim note in the 2ndBrain Obsidian vault (~/2ndBrain/quick-notes/<year>/). Use when the user asks to quick-save/save the last response to 2ndBrain, or invokes $2ndbrain or /skill:2ndbrain.

中文简介正在准备中。当前显示原文说明。

phatblat/dotfiles122026年10月19日 更新

Write commit messages under the agent-commits convention - a Conventional Commits fork with no chore catch-all, intent-only type tokens, facts in trailers, and legally-grounded AI provenance (Assisted-by, never Co-authored-by). Use when composing a commit in a repo whose commitlint.config.js extends agent-commits, when deciding between feat/fix/refactor/perf, or when recording AI participation.

中文简介正在准备中。当前显示原文说明。

phatblat/dotfiles122026年10月19日 更新

Coordinate multi-agent work through durable artifacts in git instead of chat. Use this whenever a task involves sending a message to another agent, agent mailboxes or handoffs, claiming work from a shared queue, notifying another agent or crew (OpenClaw, Grok Bot, Claude Code, Codex, Gas Town/Gas City workers) that work is ready, or whenever the user mentions the artifact bus, message bus, agent mail, beads mail, doorbells, or pings between agents — even if they don't say "bus" explicitly.

中文简介正在准备中。当前显示原文说明。

phatblat/dotfiles122026年10月19日 更新

aven

免费

Use aven to find tasks, update status, and leave durable handoff context.

中文简介正在准备中。当前显示原文说明。

phatblat/dotfiles122026年10月19日 更新

Plan, order and deliver a batch of backlog items (e.g. every High item) in a Conventional Docs repo, one decision, branch, worktree, draft PR, review and merge per item. Use when asked to work through the backlog, implement all items of a priority, or sequence several backlog items end to end.

中文简介正在准备中。当前显示原文说明。

phatblat/dotfiles122026年10月19日 更新

boris

免费

Codex workflow tips from Boris Cherny (creator of Codex) and the Codex team. Use when: setting up Codex, optimizing workflows, running parallel sessions, configuring AGENTS.md, using skills/commands, subagents, hooks, MCP integrations, or learning best practices. Covers: git worktrees, plan mode, verification, permissions, Slack MCP, BigQuery, prompting tips, plugins, custom agents, sandboxing, keybindings, status lines, output styles, customization, /simplify for code quality, /batch for parallel code migrations, /loop for scheduled tasks, code review agents, /btw for mid-task questions, /effort max reasoning, remote control sessions, voice mode, setup scripts, session naming, /color, PostCompact hook, auto mode, /schedule cloud jobs, iMessage plugin, auto-memory, and auto-dream, mobile app, session teleporting, Cowork Dispatch, Chrome extension, Desktop app, /branch forking, --bare SDK startup, --add-dir multi-repo, --agent custom agents, /voice input.

中文简介正在准备中。当前显示原文说明。

phatblat/dotfiles122026年10月19日 更新

查看 phatblat 的全部技能

报告此技能的问题