npx claudepluginhub nudesk/nudesk-os-plugin --plugin nudesk-os/weekly-reportGenerates a structured Korean weekly work report from task summary, with achievements, next-week plans, and issues in boxed markdown format. Optionally outputs .docx or .hwpx.
/weekly-report製造業向けの週報を作成します。生産実績をQCD(品質・コスト・納期)の観点で整理し、グラフ付きのHTMLレポートとして出力します。「週報」「週次報告」「生産報告」「生産実績」などのキーワードで使用してください。
/weekly-reportGenerate a comprehensive weekly ad performance report with MER, ROAS, top campaigns, anomalies, and Diana AI recommendations
Generate the user's weekly executive progress report. Full inline workflow — gather data, draft, and post to Asana.
Read ~/.claude/CLAUDE.md to load:
Read ~/.claude/memory/asana-config.md to load all Asana GIDs.
Calculate the reporting period based on the current day:
If today is Sunday:
If today is Monday:
Other days:
Confirm with user: "Preparing report for [Start Date] - [End Date]. Correct?"
Wait for confirmation before proceeding.
Check if previous report goals are available:
Present to user:
"Last week you planned to focus on:
- [Priority 1]
- [Priority 2]
- [Priority 3]
Did these hold, or did priorities shift?"
Fallback: If no prior report is found, ask: "What were your main goals this week?"
Wait for response before proceeding.
Use asana_search_tasks with:
completed: truecompleted_at_after: Start of reporting period (ISO 8601)completed_at_before: End of reporting period (ISO 8601)assignee_any: "me"workspace: workspace GID from configopt_fields: name, completed_at, notes, projects.nameUse asana_search_tasks with:
completed: falsedue_on_before: 7 days from today (ISO 8601)assignee_any: "me"workspace: workspace GID from configopt_fields: name, due_on, projects.nameFlag concerns:
Use fireflies_get_transcripts with:
fromDate: Start of reporting periodtoDate: End of reporting periodFilter results to meetings where the user participated (match against user's email addresses from CLAUDE.md).
Extract from each relevant meeting:
Act as Kenny's chief of staff — not a reporter. Analyze all gathered data (Asana, Fireflies, prior week goals from Step 3) and surface the 1-2 questions the data actually demands. Do not ask a fixed set of questions. Do not ask for information already visible in the data.
Always ask (mandatory): "For Champions Funding, what are your MTD Fundings and Submissions vs. budget?" — even if no other questions are needed.
Then look for and ask about the 1-2 most important gaps:
Ask one question at a time. Wait for each response before asking the next.
Instead of asking a blank question, synthesize a data-driven priority suggestion from everything gathered so far (Asana tasks, Fireflies action items, user input from Step 6) plus forward-looking signals. This follows the same pattern as /daily-plan Step 3 but scoped to the upcoming week.
Pull three additional data sources to inform next-week priorities. Each has a graceful fallback — never block the report on a missing connector.
Filter all HubSpot queries to the user's deals/tasks only (use hubspot_owner_id from CLAUDE.md).
Use HubSpot MCP tools to check for:
Keep this lightweight — only surface items needing CEO attention.
If HubSpot MCP is not available: Note "HubSpot data unavailable" and continue.
Use the gws CLI via Bash. Run:
gws calendar events list --params '{"calendarId": "primary", "timeMin": "<next-monday>T00:00:00Z", "timeMax": "<next-friday>T23:59:59Z", "maxResults": 100, "singleEvents": true, "orderBy": "startTime"}'
Map committed time blocks and identify:
If auth fails: Note "Calendar data unavailable — run gws auth login -s calendar to re-auth." and continue.
Use the gws CLI via Bash. Run:
gws gmail users messages list --params '{"userId": "me", "q": "is:important newer_than:7d", "maxResults": 20}'
Then fetch individual message details with:
gws gmail users messages get --params '{"userId": "me", "id": "<messageId>"}'
Focus on threads >24hrs old without a response. Prioritize messages from known contacts in CLAUDE.md Working Memory.
If gws auth fails: Note "Gmail data unavailable" and continue.
Apply the 4-tier prioritization framework below, adapted for weekly scope. Cross-reference all gathered data against CLAUDE.md priorities and strategic goals.
Assign one tag to each priority theme:
| Tag | Duration | Example |
|---|---|---|
| Quick | Under 1 hour | Reply, approval, short follow-up |
| Half-day | 2-4 hours | Focused deliverable, strategy session |
| Multi-day | Spans multiple days | Major project milestone, complex creation |
| Ongoing | Continuous through the week | Client management, recurring process |
Present the tiered priority suggestion list to the user in a clean, scannable format:
SUGGESTED PRIORITIES — [Next Week Date Range]
TIER 1: CARRY-FORWARD COMMITMENTS
- [Theme]: [Key actions] — [source] — [effort tag]
TIER 2: STRATEGIC PRIORITIES
- [Theme]: [Key actions] — [source] — [effort tag]
TIER 3: OPERATIONAL
- [Theme]: [Key actions] — [source] — [effort tag]
TIER 4: DELEGATE OR PARK
- [Item] → [Delegate to whom / Park reason]
Then ask: "These are the suggested priorities for next week based on this week's data. Would you like to approve as-is, adjust the order, add/remove items, or reassign anything?"
Wait for the user to confirm or adjust before proceeding to the report draft.
After priorities are confirmed in Step 7c, help spread next week's tasks across the week based on priorities, effort, and calendar load. This prevents pile-ups on Monday or Friday.
Using data already gathered (Step 4 upcoming tasks + Step 7a calendar):
Map each open task due in the next 7 days against the calendar:
Cross-reference against confirmed priorities from Step 7c:
Present a table — only include tasks that would benefit from moving (cap at 5-7 suggestions):
TASK SCHEDULE REVIEW — [Next Week Date Range]
Task | Current Due | Suggested Due | Reason
-------------------------|-------------|---------------|---------------------------
[Task name] | Monday | Wednesday | Monday heavy (3 meetings)
[Task name] | Friday | Tuesday | High priority, clear slot
Ask: "Approve all, review one by one, or skip?"
Execute approved changes via asana_update_task (set due_on). Confirm each change.
STOP — wait for user response before proceeding to Step 7e.
After synthesizing priorities, gather a lightweight compliance snapshot for the report.
Load ~/.claude/memory/compliance-config.md. If it exists with real GIDs:
asana_search_tasks — count tasks completed this reporting period, count tasks with incomplete checklistsasana_search_tasks — count open incidents by severityasana_search_tasks — count active risks by levelRead the Scheduled Reviews table from compliance-config.md:
If Vanta API access is confirmed:
If Vanta is UI-only: note "Check Vanta dashboard for control test status"
Add a "Compliance Pulse" section to the report draft:
COMPLIANCE PULSE
Production changes logged: [N] (this period)
Incomplete checklists: [N]
Open incidents: [N] (P0: [N], P1: [N])
Active risks: [N] (Critical: [N], High: [N])
Reviews due (14 days): [list or "None"]
Overdue reviews: [list or "None"]
Vanta controls passing: [N]% (or "Check Vanta dashboard")
If compliance-config.md is not configured: skip this section entirely.
Generate the report using this template. Target 500-800 words.
🗓 Week of [Start Date – End Date] – KKS Weekly Update
Summary: [One paragraph, 3-5 sentences. Cover the week at a high level across all active initiatives. Be candid — name wins and misses. Do not list tasks; synthesize themes and outcomes.]
[Emoji] [Client or Initiative Name]
Status: [Short health descriptor — e.g., "Active — strong progress", "Behind — competing priorities", "On track"]
Progress:
- [Narrative bullet: explain what happened AND why, with context and rationale]
- [Include data points or metrics inline where available]
- [Flag decisions made, pivots taken, or risks identified]
Next Steps:
- [Specific forward action for next week]
- [Continue as needed]
[Repeat for each active initiative]
[Optional — include only if relevant:]
⚠️ Flag for review: [One item needing attention or a decision]
🎯 Key Milestones Going Into Next Week
[Emoji] [Initiative]: [One-line directional milestone]
[Repeat for each active initiative]
Always use this fixed section order:
Champions Funding always includes a metrics block immediately after the Status line:
🏢 Champions Funding
Status: [descriptor]
MTD Fundings: $[actual] / $[budget] ([X]% to budget)
MTD Submissions: [actual] / [budget] ([X]% to budget)
Progress:
- [narrative bullet]
Next Steps:
- [forward action]
AI Development & Enablement — agent builds, training programs, internal tools, AI rollouts across clients
nuDesk Management — Prime Nexus, operations, finance, compliance (SOC 2), team/admin, business development
The report is written for Sean as co-founder — not as an internal status update. Apply this filter to every bullet and Next Step before including it:
Do include:
Do not include:
Next Steps should be 1-2 lines per section maximum — the top-level strategic action only, not the task list behind it.
After user approves the draft:
Create a new Asana task using mcp__claude_ai_Asana__create_task_confirm:
widget_id: model-generated-widget-idworkspace: 1211894317926172taskName: KKS Weekly Milestones & Report — Week of [Start Date]isComplete: falsestartDate: start of reporting period (YYYY-MM-DD)dueDate: next Monday from today (YYYY-MM-DD)assignee: {"gid": "1211894317926159", "name": "Kenny Salas", "email": "kenny@nudesk.ai"}description: Weekly executive progress report for the period [Start Date] - [End Date].Set custom fields using asana_update_task on the newly created task GID:
custom_fields (JSON string):
{"1211903626313619": "1211903626313621"}{"1211907135805437": "1211907135805442"}{"1211907466745700": "1211907466745701"}Post the report as a comment using asana_create_task_story on the newly created task:
1211913018942721)Remind the user to add the task to the Executive Management project in Asana:
Confirm: "Report posted to Asana. Task created — In Progress, due [next Monday date]."
After posting, check if the "Upcoming Week Priorities" from the report differ from the current Priorities section in ~/.claude/CLAUDE.md.
If they differ:
last_updated date