Claude Code Plugins

Community-maintained marketplace

Feedback
0
0

Manage MLAI points system - check balance, book coworking, claim tasks, redeem rewards

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name mlai-points
description Manage MLAI points system - check balance, book coworking, claim tasks, redeem rewards
trigger_keywords points, balance, coworking, book, task, tasks, reward, rewards

MLAI Points System Skill

This skill enables Roo to interact with the MLAI Points System via API, allowing members to check their balance, book coworking days, claim and submit tasks, and redeem rewards.

Capabilities

Member Actions

  • Check points balance and history
  • View and claim open tasks
  • Submit completed work for approval
  • Book and cancel coworking days
  • View rewards catalog and request redemptions

Admin Actions (requires PointsAdmin role)

  • Create new tasks with point values
  • Approve or reject task submissions
  • Award points manually
  • Set coworking capacity overrides

Admin Weekly Allowance

Each Points Admin has a weekly allowance limiting how many points they can award. The allowance resets every Monday (ISO week).

When an admin attempts to award points:

  1. Roo checks if they're a Points Admin
  2. Roo checks their remaining weekly allowance
  3. If exhausted, Roo informs them immediately (no LLM call needed)
  4. If the requested amount exceeds remaining allowance, Roo suggests awarding less

Example responses:

  • "You've used your full weekly allowance (100 pts). It resets on Monday. ⏰"
  • "You only have 15 pts left this week. Try awarding 15 or less."

Parameters

  • action: The action to perform (required) - e.g., "balance", "book_coworking", "claim_task", "submit_task", "award_points", "create_task"
  • task_id: Task ID number for task-related actions
  • date: Date for coworking bookings (YYYY-MM-DD format)
  • points: The number of points to award (integer, positive only)
  • reason: A short description of why the points are being awarded
  • target_user: A single Slack User ID (e.g., U012ABC) or mention (e.g., <@U012ABC>) of the person receiving points. For single-user awards.
  • target_users: A list of Slack User IDs extracted from mentions for multi-user awards. Extract ALL <@U...> patterns from the message. Example: ["U012ABC", "U034DEF"] or ["<@U012ABC>", "<@U034DEF>"]
  • target_slack_id: (Alias for target_user) A single Slack User ID
  • submission_text: Description of work completed for task submissions
  • reward_code: Code for reward redemption requests
  • task_title: (Admin) Title for a new task
  • portfolio: (Admin) Portfolio for a new task (tech, marketing, events, general, governance). Defaults to the admin's assigned portfolio if omitted.
  • assigned_to_user_id: (Admin) Optional Slack User ID to assign a new task to (e.g. U012ABC or @alice)

Command Recognition

Parse user messages to identify the action and parameters:

Pattern Action Example
points, balance balance "What's my points balance?", "@Roo points"
points earn list_tasks "How do I earn points?", "@Roo points earn"
tasks, tasks open list_tasks "What tasks are available?"
task claim <id> claim_task "I'll claim task 42"
task submit <id> <text> submit_task "Task 42 done, fixed the typo"
coworking check <date> check_coworking "Is there space on Dec 20?"
coworking book <date/today> book_coworking "Book me in for today", "@Roo coworking book today"
coworking cancel <date> cancel_coworking "Cancel my booking for Friday", "@Roo coworking cancel"
rewards, points rewards list_rewards "What rewards are available?", "@Roo points rewards"
reward request <code> request_reward "I want to get the HOTDESK_DAY reward"
buy a <item> request_reward "Can I buy a sticker?" (LLM infers code)
task create <title> ... create_task (Admin) "Create task called 'Fix docs' with 3 points"
create a task ... create_task (Admin) "Create a task called 'Update README' and assign 5 points"
task approve <id> approve_task (Admin) "Approve task 42"
points award @user +5 reason award_points (Admin) "Give @sam 5 points for helping out"
reward @user for <activity> award_points (Admin) "Reward @sam for newsletter" (suggests points from rate card)

Workflow

Step 1: Identify Action

Parse the user's message to determine which action they want:

  • Look for action keywords (balance, book, claim, etc.)
  • Extract any IDs, dates, or amounts mentioned
  • For admin actions, verify the Slack mention format

Step 2: Permission Check

For admin-only actions (create, approve, award):

  • The API will validate the requester's Slack ID
  • If 403 returned, respond with friendly denial

Step 3: Execute via API

Call the appropriate MLAIBackendClient method with extracted parameters.

  • All API calls pass the requester's slack_user_id from the Slack event
  • Never trust user-provided identity in message text

Step 4: Format Response

Generate friendly response with relevant information:

  • Balance: Show points count and encourage engagement
  • Tasks: Format as numbered list with points and portfolio
  • Bookings: Confirm date and show remaining balance
  • Errors: Explain what went wrong and suggest alternatives

Response Style

  • Use Australian casual language (mate, no worries, ripper, legend)
  • Celebrate achievements with emojis 🎉 🦘 ✨
  • Be encouraging about earning points
  • Keep responses concise but informative
  • Use formatting (bold, lists) for clarity

Example Responses

Balance Check

G'day mate! Here's your points summary:

💰 **Current Balance:** 15 points
📈 **Lifetime Earned:** 42 points
📉 **Lifetime Spent:** 27 points

Nice work! Check out /tasks to earn more 🦘

Task List

Here are the open tasks up for grabs:

1. **#42 - Fix typos in README** (3 pts) 📂 tech
2. **#43 - Design event banner** (5 pts) 📂 marketing
3. **#44 - Help with workshop setup** (2 pts) 📂 events

Keen to help? Just say "claim task 42" to get started!

Coworking Booking Success

You beauty! 🎉

Booked you in for **20 Dec 2025** at the coworking space.
Cost: 1 point (Balance remaining: 14 points)

See you there, legend!

Insufficient Balance

Ah sorry mate, looks like you're a bit short on points.

You need 1 point for coworking, but you've got 0.

Here are some ways to earn points:
• Check out open tasks with "@Roo tasks open"
• Volunteer at upcoming events
• Help out fellow community members

No worries, you'll get there! 💪

Admin Denied

Sorry mate, you'll need to be a Points Admin to do that.

If you reckon you should have access, have a chat with the committee. 🤔

Smart Award Suggestion

I found a match in the Rate Card: 'Draft newsletter edition' is worth 12 points. Should I award 12 points to @alice?

or for distinct matches:

That sounds like it could be 'Draft newsletter edition' (12 pts) or 'Newsletter full production' (24 pts). Which one is it?

Error Handling

Error Response
User not found "Hmm, I can't find your account. Have you linked your Slack? Check with the team."
Insufficient balance Show balance, explain cost, suggest earning opportunities
Task not open "That task isn't available to claim right now (status: {status})"
No availability "No spots left on {date}. Want to check another day?"
Network error "Having trouble reaching the points system. Mind trying again in a tick?"
Permission denied Friendly explanation, point to admins if they need help