원클릭으로
asana
Show Asana tasks due in the next 7 days across both workspaces and interactively mark tasks complete.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Show Asana tasks due in the next 7 days across both workspaces and interactively mark tasks complete.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Pull the latest changes from the upstream openbrain-claude-starter repo, diff against this vault's infrastructure, and interactively apply each change with user approval.
Genericize vault improvements and open a PR against the upstream openbrain-claude-starter repo — strips personal data, diffs, and creates a GitHub PR automatically after PII review.
Discovery pass across Gmail, Google Calendar, Slack, and Fathom to find organizations not yet captured in + Atlas/Organizations/. Stages candidates in + Inbox/org-candidates/ for review. Mirrors /sync-people, but for organizations rather than people.
Produce today's daily briefing across all Google Calendars, Gmail accounts, Slack workspaces, and Asana. Writes to + Atlas/Daily/YYYY-MM-DD.md and surfaces anything that needs the user's attention today. Safe to re-run — refreshes the `## Morning brief` section in place.
Draft a follow-up email or Slack message for a given person or thread, using the correct account. Never sends.
Scan sent messages across configured Google and Slack accounts to derive a personalized writing-style profile (email vs Slack, by audience size), then update CLAUDE.md §6 in place. Run after initial bootstrap or anytime you want to refresh.
| name | asana |
| description | Show Asana tasks due in the next 7 days across both workspaces and interactively mark tasks complete. |
Quick view of upcoming Asana tasks with interactive completion. Pure chat skill — no file writes.
$1 (optional): number of days to look ahead. Defaults to 7.Issue both calls in a single tool-use block so they run in parallel. Both workspaces use asana_get_my_tasks — this returns only tasks assigned to the user (not collaborator/follower tasks, which search_tasks incorrectly includes).
mcp__asana_<work_slug>__asana_get_my_tasks, workspace <asana_work_workspace_gid>):
completed_since: now (returns incomplete tasks only)opt_fields: name,due_on,due_at,projects.name,permalink_urldue_on is non-null AND due_on <= today + $1 days. Sort ascending by due_on.mcp__asana_<personal_slug>__asana_get_my_tasks, workspace <asana_personal_workspace_gid>):
completed_since: now (returns incomplete tasks only)opt_fields: name,due_on,due_at,projects.name,permalink_urldue_on is non-null AND due_on <= today + $1 days. Sort ascending by due_on.Why get_my_tasks over search_tasks: search_tasks with assignee_any: me returns tasks where the user is a collaborator or follower — not just the assignee. This floods the list with downstream pipeline and team-watched tasks that aren't actually theirs. get_my_tasks returns only truly assigned tasks. Free-tier workspaces also require get_my_tasks because search_tasks is paid-plan-only (402 Payment Required otherwise).
Overdue tasks (due_on < today, not completed) fall naturally inside the due_on <= today + $1 days window and will appear in both result sets without a separate query.
Format as a single unified table with Personal on the left and Work on the right. Date group headers are rendered as bold-text rows spanning the table (use the Personal column for the label, leave other cells empty). Using one table guarantees consistent column widths throughout.
Numbering: assign numbers by counting through all Personal tasks first (across all date groups), then all Work tasks (across all date groups). This keeps the numbering contiguous within each workspace.
## Asana — next 7 days
| # | Personal | # | Work |
|----|-----------------------------------------|----|-----------------------------------------|
| | 🔴 **Overdue** | | |
| 1 | Task name — was due Apr 3 | 8 | Task name — was due Apr 5 |
| | 📅 **Today (Apr 7)** | | |
| 2 | Task name (Project) | 9 | Task name (Project) |
| 3 | Task name (Project) | | |
| | 📅 **Tomorrow (Apr 8)** | | |
| 4 | Task name | | |
| | 📅 **Fri Apr 10** | | |
| 5 | Task name | 10 | Task name (Project) |
After displaying the numbered list, ask the user to type the numbers of tasks they want to mark complete. Example prompt:
Type the numbers of tasks to check off (e.g.
1, 3, 8, 11), ornoneto skip.
3-5), or none/skip to exit.For all selected tasks:
asana_update_task on the correct workspace's MCP (asana_work or asana_personal) with completed: true.Completed: <task name> or Failed: <task name> — <error>.asana_get_my_tasks (not search_tasks) to ensure only truly assigned tasks appear. search_tasks with assignee_any: me returns collaborator/follower tasks too, flooding the list with pipeline items that the user isn't responsible for. Free-tier workspaces also require get_my_tasks because search_tasks is paid-plan-only (402 on search_tasks).