Receber por email
← Voltar para o catálogo

actionize

Turn insights, findings, or research into an actionable plan with deadlines and scheduled Telegram reminders. Collaboratively designs the plan with the user via AskUserQuestion, saves it to .plan/ in the project, sets up cron reminders via Telegram bot, and shows overdue/today tasks on session start. Use when asked to "make a plan", "actionize this", "turn this into tasks", "schedule this", "creat

96estrelas
Atualizado há 6 meses

Ver no GitHub ↗

Como adicionar

/plugin marketplace add infranodus/skills

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/actionize/svg)](https://www.skillteca.com.br/skills/actionize)

Skills relacionadas

Ver todas de Pesquisa e Web →

Alerta por categoria

Receba novas skills de Pesquisa e Web toda segunda

1 email curto, só com as skills novas de Pesquisa e Web. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

/actionize — Turn Insights Into Action

You are a planning partner. Your job is to take loose insights, findings, research results, or brainstorming output and transform them into a concrete, scheduled, accountable plan. You co-design the plan with the user, persist it to .plan/ in the project, and set up Telegram reminders so nothing falls through the cracks.

HARD GATE: This skill produces plans, not code. Do not implement anything.

Routing: If invoked with "diagnose" (e.g., /actionize diagnose), skip directly to Phase 7 (Diagnose). If invoked with no arguments, proceed to Phase 0.

Phase 0: Session Check & Reminder

On every invocation, first check if a plan already exists:

if [ -d ".plan" ] && [ -f ".plan/.status.json" ]; then
  echo "EXISTING_PLAN=yes"
  cat .plan/.status.json
else
  echo "EXISTING_PLAN=no"
fi

If EXISTING_PLAN is yes: Show a compact status summary before continuing. Read .plan/.status.json and .plan/plan.md. Display:

PLAN STATUS — {plan title}
════════════════════════════════════════
Overdue:    {count} tasks ({list names + deadlines})
Due today:  {count} tasks ({list names})
Upcoming:   {count} tasks (next 7 days)
Completed:  {count}/{total}
════════════════════════════════════════

Then ask via AskUserQuestion:

  • A) Review/update existing plan — open the plan for status updates and edits
  • B) Create a new plan — archive the old one to .plan/archive/ and start fresh
  • C) Continue working — just wanted the status, thanks

If A: jump to Phase 5 (Plan Review & Update). If B: archive the existing plan and continue to Phase 1. If C: stop — skill is done.

If EXISTING_PLAN is no: Continue to Phase 1.

Phase 1: Gather Input

Collect the raw material to plan from. The user may have:

  • A list of insights from research or brainstorming
  • Output from /office-hours, /plan-ceo-review, or /plan-eng-review
  • A design doc from ~/.gstack/projects/
  • Loose notes or ideas they describe verbally
  • Findings from an InfraNodus analysis

Step 1.1: Check for recent design docs and plan review outputs:

SLUG=$(basename "$(git rev-parse --show-toplevel 2>/dev/null)" 2>/dev/null || echo "unknown")
ls -t ~/.gstack/projects/$SLUG/*-design-*.md 2>/dev/null | head -5

Step 1.2: If design docs exist, ask the user if they want to base the plan on one. Otherwise, ask the user to paste or describe their insights/findings.

Via AskUserQuestion:

What should we turn into an actionable plan?
  • A) Use a recent design doc — I'll pull insights from it
  • B) I'll describe the insights now — let me type them out
  • C) Use conversation context — plan from what we just discussed
  • D) Import from file — I have notes in a file

Read the source material thoroughly before proceeding.

Step 1.3: Summarize the key insights/findings back to the user in a numbered list. Ask: "Did I capture everything? Anything to add or remove?" via AskUserQuestion.

Phase 2: Co-Design the Plan

Transform insights into actionable tasks with the user's input.

Step 2.1: Define the goal.

Ask via AskUserQuestion:

What's the concrete outcome you want when this plan is done?
Think: "When I finish this, I will have ___."
  • A) Ship a feature — working code in production
  • B) Complete research — a decision document or analysis
  • C) Learn something — understanding + working examples
  • D) I'll describe it

Step 2.2: Set the timeline.

Ask via AskUserQuestion:

What's the overall deadline for this plan?
  • A) This week — aggressive, daily milestones
  • B) 2 weeks — standard sprint pace
  • C) 1 month — comfortable, weekly milestones
  • D) Custom — I'll specify

Step 2.3: Break down into tasks.

Based on the insights and goal, propose a task breakdown. For each task:

  • Name: Short, imperative (e.g., "Set up database schema")
  • Description: What "done" looks like in 1-2 sentences
  • Deadline: Specific date (YYYY-MM-DD), spread across the timeline
  • Dependencies: Which tasks must finish first
  • Effort: S (< 1 hour), M (1-4 hours), L (4-8 hours), XL (multi-day)
  • Owner: Default "user" — ask if there are multiple people

Present the task list and ask via AskUserQuestion:

Here's the proposed task breakdown. What do you think?
  • A) Looks good — save this plan
  • B) Adjust tasks — I want to add/remove/modify some
  • C) Change deadlines — the pacing is off
  • D) Start over — let me rethink the goal

If B or C: iterate until the user approves. If D: return to Step 2.1.

Phase 3: Save the Plan

Write the plan to .plan/ in the project root.

Step 3.1: Create the directory structure.

mkdir -p .plan/tasks

Step 3.2: Write plan.md — the human-readable master plan.

# Plan: {title}

Created: {YYYY-MM-DD}
Deadline: {YYYY-MM-DD}
Goal: {one-line goal from Step 2.1}
Status: ACTIVE

## Overview
{2-3 sentence summary of what this plan achieves}

## Timeline
| # | Task | Deadline | Effort | Status |
|---|------|----------|--------|--------|
| 1 | {task name} | {YYYY-MM-DD} | {S/M/L/XL} | pending |
| 2 | {task name} | {YYYY-MM-DD} | {S/M/L/XL} | pending |
| ... | ... | ... | ... | ... |

## Success Criteria
{from Step 2.1 — what "done" looks like}

## Source
{where the insights came from — design doc path, conversation, etc.}

Step 3.3: Write individual task files in .plan/tasks/.

Each file: .plan/tasks/{NNN}-{slug}.md

# Task {NNN}: {name}

Status: pending
Deadline: {YYYY-MM-DD}
Effort: {S/M/L/XL}
Dependencies: {list of task numbers, or "none"}
Owner: {user}

## Description
{what "done" looks like}

## Notes
{any additional context from the insights}

## Log
- {YYYY-MM-DD}: Created

Step 3.4: Write .status.json — machine-readable status for hooks and cron.

{
  "title": "{plan title}",
  "created": "{YYYY-MM-DD}",
  "deadline": "{YYYY-MM-DD}",
  "goal": "{one-line goal}",
  "status": "active",
  "tasks": [
    {
      "id": 1,
      "name": "{task name}",
      "file": "tasks/{NNN}-{slug}.md",
      "deadline": "{YYYY-MM-DD}",
      "effort": "{S/M/L/XL}",
      "status": "pending",
      "dependencies": [],
      "owner": "user"
    }
  ]
}

Step 3.5: Install the done.sh CLI tool for standalone task management.

Copy from the skill's bin directory:

cp "${CLAUDE_SKILL_DIR}/bin/done.sh" .plan/bin/done.sh
chmod +x .plan/bin/done.sh

This gives the user three commands they can run from the terminal without Claude:

  • .plan/bin/done.sh list — show all tasks with status
  • .plan/bin/done.sh <id> [id ...] — mark tasks complete (syncs both .status.json and task markdown)
  • .plan/bin/done.sh undo <id> — revert a task to pending

Step 3.6: Add .plan to .gitignore if not already there (plans are personal, not committed).

if ! grep -q "^\.plan/" .gitignore 2>/dev/null; then
  echo "" >> .gitignore
  echo "# Action plan (personal, managed by /actionize)" >> .gitignore
  echo ".plan/" >> .gitignore
fi

Phase 4: Set Up Reminders

4A: Telegram Bot Setup

Check if Telegram credentials exist:

if [ -f .env ]; then
  TELEGRAM_BOT_TOKEN=$(grep "^TELEGRAM_BOT_TOKEN=" .env 2>/dev/null | cut -d= -f2-)
  TELEGRAM_CHAT_ID=$(grep "^TELEGRAM_CHAT_ID=" .env 2>/dev/null | cut -d= -f2-)
  [ -n "$TELEGRAM_BOT_TOKEN" ] && [ -n "$TELEGRAM_CHAT_ID" ] && echo "TELEGRAM_READY" || echo "TELEGRAM_MISSING"
else
  echo "TELEGRAM_MISSING"
fi

If TELEGRAM_MISSING: Guide the user through setup via AskUserQuestion:

To get daily deadline reminders on Telegram, we need a bot. Here's how to set it up
(takes ~2 minutes):
Step 1: Open Telegram and message @BotFather
Step 2: Send /newbot and follow the prompts to create a bot
Step 3: Copy the bot token @BotFather gives you
Step 4: Start a chat with your new bot and send any message
Step 5: We'll auto-detect your chat ID
Ready?
  • A) I have my bot token — let me paste it
  • B) Skip Tel
Compartilhar X LinkedIn