本文へ移動
cccskills
無料GitHub で公開

tasks

Flat actionable task list across the portfolio with direct URLs — PRs to review, issues to triage, comments, failing CI.

日本語の概要は準備中です。原文の説明を表示しています。

me2resh/apexyardスター 538(GitHub 538 + cccskills 0)
連携ツールGitHubGitLab

実行スコア 未検証

インストール方法を見る

含まれるファイル(1)

  • SKILL.md10.1 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Writing: read docs/skills/shared/writing-rule.md before you write a durable artifact.

/tasks — Actionable Task List

A single ordered list of "things to click on right now". Where /inbox groups items by category, /tasks flattens everything into a prioritised TODO with one URL per line. Optimised for "I have 30 minutes, what should I do?".

Path resolution

Read the registry path via portfolio_registry, the per-project docs dir via portfolio_projects_dir, and the ideas backlog via portfolio_ideas_backlog — all from .claude/hooks/_lib-portfolio-paths.sh. Source the helper at the top of any bash block that touches those paths:

source "$(git rev-parse --show-toplevel)/.claude/hooks/_lib-read-config.sh"
source "$(git rev-parse --show-toplevel)/.claude/hooks/_lib-portfolio-paths.sh"
source "$(git rev-parse --show-toplevel)/.claude/hooks/_lib-tracker.sh"
registry=$(portfolio_registry)

Defaults match today's single-fork layout (./apexyard.projects.yaml, ./projects, ./projects/ideas-backlog.md). Adopters in split-portfolio mode override the portfolio.{registry, projects_dir, ideas_backlog} keys in .claude/project-config.json. Don't hardcode literal apexyard.projects.yaml or projects/ paths in bash blocks — the helper resolves whichever mode the adopter is in. See docs/multi-project.md.

Tracker-agnostic issue listing (#710 / AgDR-0093)

The issue sources below call tracker_list from _lib-tracker.sh (per repo: from the registry) instead of hardcoding gh issue list, so /tasks works on GitLab-tracked projects too:

# tracker_list <owner/repo> [state=…] [assignee=@me|none|<user>] [author=…] [labels=csv] [search=…] [since=ISO] [limit=N]
# → JSON array [{ref,number,state,title,url,labels,updatedAt}, …]  ([] on empty/unavailable)

Check that each read was complete (#1441). A call that fills its limit may be a short read, and a failed call prints []. Use tracker_list_to, which returns the verdict on stdout:

tmp=$(mktemp) || return 1
status=$(tracker_list_to "$tmp" "$repo" assignee=@me labels=priority-high limit=50 2>/dev/null); rc=$?
if [ "$status" = "TRUNCATED" ]; then                 # raise the limit and read again
  status=$(tracker_list_to "$tmp" "$repo" assignee=@me labels=priority-high limit=200 2>/dev/null); rc=$?
fi
case "$status" in
  UNKNOWN)
    if [ "$rc" -ne 0 ]; then
      echo "$repo: could not read issues"            # a failure, never print 0
    else
      echo "$repo: read $(jq -r 'length' < "$tmp"), completeness unknown"
    fi ;;
  TRUNCATED) echo "$repo: at least $(jq -r 'length' < "$tmp"), still not the end" ;;
esac
items=$(cat "$tmp"); rm -f "$tmp"

One retry is enough for a task list. A second TRUNCATED means the project has more matching issues than any one screen should show, so say "at least N" rather than reading further. A glab project stops at 100 whatever limit you ask for.

Split UNKNOWN on the exit status. Non-zero is a failed read. Zero with UNKNOWN is a successful read this library cannot judge for completeness, which is what a custom adapter returns when no limit is passed. Reporting that as a failure would be its own false claim.

Pass an explicit limit where you can. The rows in the table below pass none, so they take the configured default (tracker.list_default_limit, 30) on gh and glab, and they report UNKNOWN on a custom tracker.

Do not write items=$(tracker_list …) and then read TRACKER_LIST_STATUS. A subshell cannot pass that variable back, so you would read a stale verdict from an earlier project.

Scope caveat (forge axis, #711). The PR sources still call gh pr list / gh api …/pulls. The PR/MR forge abstraction is #711; until it lands, those sources are GitHub-only, so /tasks is issue-axis tracker-agnostic, not fully tracker-agnostic. Filters GitHub expresses but GitLab can't (mentions:, commenter:, assignee=none on glab) degrade to a gh-only path or empty, noted per source.

Usage

/tasks
/tasks --top 10
/tasks --priority high
/tasks --markdown

Scope

Iterates every project in apexyard.projects.yaml (the registry at the root of your ops repo).

Where tasks come from

The task list is the union of:

SourceToolAxis
PRs awaiting your reviewgh pr list --search "review-requested:@me is:open"forge (#711)
PRs you authored that are blocked on you (changes requested, conflicts, failing CI)gh pr list --search "author:@me is:open review:changes_requested"forge (#711)
Issues assigned to you with high prioritytracker_list "$repo" assignee=@me labels=priority-high,priority-criticalissue ✓
Issues you opened with new commentstracker_list "$repo" state=open author=@me + client-side comment-recency filter (commenter: is gh-only)issue ✓
Mentions in unresolved threadsgh-only: gh search issues "mentions:@me is:open" (empty on non-gh trackers)issue (gh-only)
PR comments awaiting your responsegh api repos/{repo}/pulls/{n}/comments filtered to threads where you were mentioned and the last reply isn't yoursforge (#711)
Open Critical/High issues with no assignee in projects you owntracker_list "$repo" labels=priority-critical assignee=none (assignee=none degrades on glab)issue ✓
Failing CI on your authored open PRsfrom statusCheckRollupforge (#711)

Label semantics note: labels=priority-high,priority-critical is passed to each CLI's native --label handling, which is AND on both gh and glab. The intent here (high OR critical) is a pre-existing GitHub-search limitation carried over unchanged — call the two labels in separate tracker_list passes and union the results if strict OR is needed.

Prioritisation

Tasks are scored and sorted. Higher score = closer to the top.

SignalScore
Failing CI on your own PR+100
PR ready to merge (approved, CI green) — yours+90
Critical issue assigned to you+80
PR review requested by name on you+70
PR review requested on a team you're in+60
Changes requested on your PR+50
High-priority issue assigned to you+40
New comment on an issue you opened+30
Mention in an open thread+20
Medium-priority issue assigned to you+10
Low-priority issue assigned to you+1

Tie-breakers:

  1. Older updatedAt first (stale things bubble up)
  2. Same project as your current working directory first
  3. Alphabetical by repo

Output format

Default (terminal):

TASKS — 2026-04-06 09:14
========================
12 actionable items across 3 projects.

  1. [MERGE]  example-app#41  Add health endpoint        — approved + CI green
              https://github.com/your-org/example-app/pull/41
  2. [FIX-CI] example-app#42  CSV export                 — lint job failed
              https://github.com/your-org/example-app/pull/42
  3. [REVIEW] billing-api#8   Fix invoice rounding       — review requested 3h ago
              https://github.com/your-org/billing-api/pull/8
  4. [TRIAGE] example-app#117 [Bug] Login fails Safari   — priority-high, unassigned
              https://github.com/your-org/example-app/issues/117
  5. [REPLY]  marketing#5     Hero copy refresh          — designer commented 1h ago
              https://github.com/your-org/marketing/issues/5
  6. [FIX]    example-app#39  Refactor session store     — Code Reviewer requested changes
              https://github.com/your-org/example-app/pull/39
  …

Markdown (--markdown, suitable for pasting into a TODO file):

## Tasks — 2026-04-06

- [ ] **MERGE** example-app#41 — Add health endpoint (approved, CI green) — https://…
- [ ] **FIX-CI** example-app#42 — CSV export, lint job failed — https://…
- [ ] **REVIEW** billing-api#8 — Fix invoice rounding — https://…
- [ ] **TRIAGE** example-app#117 — Login fails on Safari (priority-high) — https://…
- [ ] **REPLY** marketing#5 — Hero copy refresh, designer commented — https://…

JSON (--json):

[
  {
    "id": "example-app#41",
    "type": "MERGE",
    "score": 90,
    "title": "Add health endpoint",
    "url": "https://...",
    "project": "example-app",
    "reason": "approved + CI green"
  },
  ...
]

Action types

TypeMeaning
MERGEApproved + CI green — click merge
FIX-CIYour PR has a failing check
REVIEWA PR is waiting on your review
FIXYour PR has changes requested
TRIAGEAn issue needs labelling, priority, or assignment
REPLYA comment is waiting on your response
WORKAn issue assigned to you with no PR yet
DECIDEA decision is blocking progress (/decide needed)

Filters

FlagEffect
--top NOnly show the top N items
--priority highOnly critical and high priority
--project <name>Limit to one project from the registry
--type MERGE,REVIEWComma-separated action types
--markdownMarkdown checklist output
--jsonJSON output

Rules

  1. Always include the URL on every line — the user needs to click
  2. One action per line — don't bundle "review and merge" as one task
  3. Always sort by score, then staleness — never alphabetical by default
  4. Multi-project aware — iterate the registry, not the org
  5. Never modify anything — read-only
  6. Skip resolved items — if a PR is merged or an issue is closed mid-run, drop it
  7. Cap at 50 items by default — if there are more, show count and suggest filters
  8. Prefer actionable over informational — "11 PRs reviewed by others" is not a task

Related skills

  • /inbox — same data, grouped by category instead of flattened
  • /status — current project state
  • /projects — portfolio table

Part of ApexYard — multi-project SDLC framework for Claude Code · MIT.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

WCAG 2.1 AA audit — perceivable, operable, understandable, robust criteria. Deep-dive for /launch-check accessibility.

日本語の概要は準備中です。原文の説明を表示しています。

me2resh/apexyard5382026年10月26日 更新

WCAG 2.2 AA audit — perceivable, operable, understandable, robust criteria. Deep-dive for /launch-check accessibility.

日本語の概要は準備中です。原文の説明を表示しています。

me2resh/apexyard5382026年10月26日 更新

agdr

無料

Browse / search / show / stats AgDRs across the portfolio — recalls "have we decided this before?".

日本語の概要は準備中です。原文の説明を表示しています。

me2resh/apexyard5382026年10月26日 更新

Analytics audit — SDK config, event naming, funnel completeness, dashboards. Deep-dive for /launch-check analytics.

日本語の概要は準備中です。原文の説明を表示しています。

me2resh/apexyard5382026年10月26日 更新

Record per-PR architecture-review approval for design-artifact PRs (required by the architecture gate). ONLY on an explicit per-PR architect "approved".

日本語の概要は準備中です。原文の説明を表示しています。

me2resh/apexyard5382026年10月26日 更新

Record per-PR design-review approval (UI merge gate). ONLY on an explicit per-PR designer "approved".

日本語の概要は準備中です。原文の説明を表示しています。

me2resh/apexyard5382026年10月26日 更新

me2resh のスキルをすべて見る

このスキルの問題を報告する