---
name: asana-weekly-project-status
description: "Fridays: what got done in your Asana project this week, what is due next week and what is at risk, written as an update stakeholders can read. Use when the user asks for this, or when it runs on a schedule."
---

# Asana weekly project status update

Fridays: what got done in your Asana project this week, what is due next week and what is at risk, written as an update stakeholders can read.

Writing the Friday status update means scrolling the project, remembering what closed, guessing what is at risk and turning it into prose a stakeholder will read. It takes long enough that it gets skipped in exactly the weeks it matters.

The agent reads the project's tasks and milestones, sorts the week into done, next and at risk, and drafts the update with owners and dates. You check it, change a word and post it, or let the agent post it as an Asana status update once you have read it.

## Two ways to get the data

Use the API or MCP route when you have an MCP server, a CLI or an API token for the app. Otherwise, if you can drive a browser the user is signed in to (Claude in Chrome, a Playwright or Chrome DevTools MCP server), use the browser route. Say which one you used.

## Route A: API or MCP server

### What you need

- Access to the Asana project through the Asana MCP server or connector, or a personal access token in `ASANA_ACCESS_TOKEN`.
- Permission to post status updates on the project, only if you want the agent to publish the update you approve.

If something is missing, say what and stop; do not invent numbers.

### Steps

1. **Pull the week's tasks** (Asana): Call `GET /tasks?project={project_gid}&completed_since={7 days ago}&opt_fields=name,completed,completed_at,assignee.name,due_on,modified_at,resource_subtype,custom_fields`. With `completed_since`, Asana returns open tasks plus those completed since that time.
2. **Sort into done, next and at risk**: Done: completed in the last 7 days. Next: open and due in the coming 7 days. At risk: overdue, or due within 3 days with no change in a week (`modified_at`), or flagged in a status custom field.
3. **Check the milestones** (Asana): Tasks with `resource_subtype: milestone` are the dates stakeholders care about. Note each one's due date and whether the open tasks ahead of it are on time.
4. **Draft the update**: An overall status (on track, at risk, off track), then what was done, what is next with owners, and each risk with what would fix it.
5. **Post it if asked** (Asana): Only after the person approves, create it with `POST /status_updates`: `parent` set to the project gid, `status_type` of `on_track`, `at_risk` or `off_track`, a `title` and the `text`.

## Route B: the browser

### What you need

- Signed in to Asana as a project member; posting a status update needs membership of the project, and comment-only members can read but not post.

If something is missing, say what and stop; do not invent numbers.

### Steps

Start at https://app.asana.com/. The user is signed in already; never type passwords or codes, and ask if a sign-in page appears.

1. **Read what closed this week**: Open the project and its **List** tab. Click **Filter** and set it to **Completed tasks**, then sort by **Completion date** (or show the **Completed on** column) and read every task completed in the last 7 days with its assignee.
2. **Read what is due next**: Change the filter to **Incomplete tasks**, sort by **Due date**, and read tasks due in the coming 7 days with owners, plus anything already overdue. Show the **Last modified** column (the **+** at the right of the header) to spot tasks due within 3 days that have not changed in a week, and read your status custom field column if the project has one.
3. **Check milestones and the current status**: Open the **Overview** tab: the **Milestones** section lists each milestone's date, and the status log shows the last update and its color. Note whether the open tasks ahead of each milestone are on time.
4. **Draft, then post only if asked**: Write the update: overall status, done, next with owners, risks with what would fix each, milestones. If the person approves, click **Update status** on the Overview tab, pick **On track**, **At risk** or **Off track**, paste the text and click **Post**.

Note: Column names in the List view depend on the project; add Completed on and Last modified through the + button at the right of the header if they are hidden. The Overview tab also shows the status history, which is a quick way to see what last week's update promised.

## The report

- **Overall status**: on track, at risk or off track, and why in one line.
- **Done this week**: the tasks that closed.
- **Next week**: what is due, with owners.
- **At risk**: each task with the reason and what would unblock it.
- **Milestones** and whether their dates hold.

## Post it to Briefkin

When `BRIEFKIN_TOKEN` is set, or `~/.config/briefkin/env` exists (the installer from https://briefkin.dev/docs writes it), also send the result to the user's Briefkin board as one card. Keep the `item_key` the same on every run so the card updates in place, use a new `event_id` per run, and put today's real numbers in place of the example ones. If the request fails, say so once and carry on.

```bash
[ -n "${BRIEFKIN_TOKEN:-}" ] || . ~/.config/briefkin/env
curl -sS -X POST "${BRIEFKIN_URL:-https://briefkin.dev}/v1/events" \
  -H "authorization: Bearer $BRIEFKIN_TOKEN" \
  -H "content-type: application/json" \
  -d @- <<'JSON'
{
  "v": 1,
  "event_id": "asana-weekly-project-status/<date of this run, e.g. 2026-10-16>",
  "item_key": "asana-weekly-project-status",
  "project": "acme-web",
  "source": "Asana weekly project status update skill",
  "kind": "update",
  "title": "At risk: launch holds if copy is approved by Tuesday",
  "summary": "**12** tasks done, **9** due next week, **2** at risk. The Nov 3 launch holds if the pricing page copy is approved by Tuesday.",
  "widget": [
    {
      "type": "Badges",
      "props": {
        "items": [
          {
            "label": "At risk",
            "tone": "warn"
          },
          {
            "label": "12 done this week",
            "tone": "ok"
          },
          {
            "label": "9 due next week",
            "tone": "info"
          }
        ]
      }
    },
    {
      "type": "Steps",
      "props": {
        "items": [
          {
            "label": "Design approved",
            "state": "done",
            "note": "Oct 2"
          },
          {
            "label": "Build pages",
            "state": "done",
            "note": "Oct 14"
          },
          {
            "label": "Copy review",
            "state": "active",
            "note": "Due Oct 20; 3 of 7 pages approved"
          },
          {
            "label": "QA and redirects",
            "state": "pending",
            "note": "Starts Oct 22"
          },
          {
            "label": "Launch",
            "state": "pending",
            "note": "Nov 3"
          }
        ]
      }
    },
    {
      "type": "Table",
      "props": {
        "columns": [
          "At risk",
          "Owner",
          "Due",
          "Why"
        ],
        "rows": [
          [
            "Pricing page copy",
            "Priya",
            "Oct 20",
            "No update for 8 days"
          ],
          [
            "301 redirect map",
            "Sam",
            "Oct 15",
            "1 day overdue, waiting on the URL list"
          ]
        ]
      }
    }
  ]
}
JSON
```

Widgets come from the Briefkin catalog (https://briefkin.dev/v1/catalog). Without a token, just give the user the report.

## Run it on a schedule

Suggested: Fridays at 14:00 (`0 14 * * 5`). From cron, with the agent signed in on that machine:

```bash
0 14 * * 5 claude -p "Run the asana-weekly-project-status skill"
# Codex: codex exec, Gemini CLI: gemini -p, Copilot CLI: copilot -p, OpenCode: opencode run
```

Or use the agent's own scheduler (Claude Code routines, Codex automations, Claude or ChatGPT scheduled tasks): https://briefkin.dev/skills/asana-weekly-project-status#schedule

Source: https://briefkin.dev/skills/asana-weekly-project-status
