find-next-task

This skill helps you find the next executable task from writing-plans-plus compatible JSON plan files. It understands task dependencies, status tracking, and plan file organization.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "find-next-task" with this command: npx skills add satone7/skills/satone7-skills-find-next-task

Find Next Task

Overview

This skill helps you find the next executable task from writing-plans-plus compatible JSON plan files. It understands task dependencies, status tracking, and plan file organization.

Announce at start: "I'm using the find-next-task skill to locate the next task."

Prerequisite Check

First, verify that the project has compatible plan files:

Look for plan files in this priority order:

  • docs/plans/*.json

  • *.json (project root)

  • **/*.json (full project search) ONLY if the user explicitly asks for exhaustive search or the repo is known to be small

If you do a full project search, apply safety limits:

  • Stop after finding 50 candidate JSON files

  • Skip JSON files larger than ~1MB

  • Prefer reading just enough to confirm a top-level tasks array exists before fully parsing

Validate writing-plans-plus format for each candidate file:

  • Must have a top-level tasks array

  • Each task must have: id , title , description , steps , passes

  • The passes field must be boolean (true/false)

  • If a candidate file is invalid JSON, skip it and record a warning

If no valid plan files found:

  • Output a JSON object with an error field and stop.

Step 1: Find and Select Plan

List Candidate Plans

For all valid plan files found:

  • Read each file's content

  • Calculate progress: (number of tasks with passes: true ) / (total tasks)

  • Group plans into categories:

  • In progress: Some tasks completed, some remaining

  • Not started: All tasks passes: false

  • Completed: All tasks passes: true

Detect Plan Ordering

Check if plan filenames have obvious sequential patterns:

  • Look for: phase1 , phase2 , phase3 , etc.

  • Look for: part1 , part2 , step1 , step2 , etc.

  • Look for: v1 , v2 , v1.1 , v1.2 , etc.

  • Look for numeric prefixes: 01- , 02- , etc.

Plan Selection Logic

If obvious sequential pattern exists:

  • Process plans in that order

  • Find the first plan that is NOT fully completed

  • Use that plan

If no obvious order AND multiple in-progress/not-started plans:

  • Output JSON with selection_required: true and include candidates with progress

  • Do NOT output prose outside JSON

If only one plan has pending tasks:

  • Automatically select that plan

If all plans are completed:

  • Output JSON with next_task: null and a completed summary

Step 2: Analyze Plan and Find Next Task

Once a plan is selected:

Read and Parse the Plan

Read the JSON file content. You need to understand:

  • The plan's overall goal/description

  • All tasks with their full details

  • Dependency relationships (depends_on field)

Task Readiness Check

For each task in the plan (in ID order):

A task is ready if:

  • passes: false (not completed)

  • All dependencies (from depends_on array) are satisfied:

  • For each dependency ID in depends_on :

  • Find that task in the plan

  • Verify its passes is true

  • If no depends_on field or empty array, this condition is automatically satisfied

If a dependency ID is missing from the plan, treat the task as not ready and record it as blocked by missing dependencies in the output.

Find the Next Task

  • Iterate through tasks in ID order

  • Find the FIRST task that is ready (as defined above)

  • If no tasks are ready but some are incomplete:

  • This means there are tasks waiting on dependencies

  • Output a JSON object with next_task: null and include blocked reasons in task_summary

  • If you detect a circular dependency, set cycle_detected: true and include a best-effort list of tasks involved

Step 3: Output the Result

Output Format

Always output a single JSON object and nothing else (no prose, no markdown fences). Use this structure:

{ "plan_file": "/absolute/path/to/plan.json", "plan_name": "User Authentication Implementation", "plan_progress": { "completed": 3, "total": 10, "percentage": 30 }, "selection_required": false, "plan_candidates": null, "cycle_detected": false, "warnings": [], "error": null, "next_task": { "id": 4, "title": "Login Page Implementation", "description": "Create the login page with email/password form and validation", "steps": [ "Create login page component", "Add form validation", "Connect to Supabase auth", "Add error handling" ], "passes": false, "depends_on": [1, 2, 3], "validation_criteria": [ "Login form renders without errors", "Email validation works correctly", "Successful login redirects to dashboard", "Error messages are displayed properly" ], "skills": ["using-superpowers", "test-driven-development"], "files": { "create": ["app/login/page.tsx", "app/login/components/LoginForm.tsx"], "modify": ["app/layout.tsx"], "test": ["app/login/login.test.tsx"] } }, "task_summary": [ { "id": 1, "title": "Project Setup", "passes": true }, { "id": 2, "title": "Supabase Client Setup", "passes": true }, { "id": 3, "title": "Database Schema", "passes": true }, { "id": 4, "title": "Login Page Implementation", "passes": false, "ready": true }, { "id": 5, "title": "Register Page", "passes": false, "ready": false, "blocked_by": [4] } ] }

Error and Warning Schemas

Use stable, machine-parseable structures:

{ "error": { "code": "NO_PLAN_FOUND", "message": "No writing-plans-plus compatible plan files found.", "details": { "searched": ["docs/plans/.json", ".json"] } }, "warnings": [ { "code": "INVALID_JSON_SKIPPED", "message": "Skipped invalid JSON candidate plan.", "file": "docs/plans/bad.json" } ] }

  • error MUST be either null or an object: { code, message, details? }

  • warnings MUST be an array of objects: { code, message, file? }

Recommended error.code values:

  • NO_PLAN_FOUND

  • PLAN_SELECTION_REQUIRED

  • PLAN_PARSE_FAILED

  • PLAN_SCHEMA_INVALID

Recommended warnings[].code values:

  • INVALID_JSON_SKIPPED

  • PLAN_SCHEMA_INVALID_SKIPPED

  • MISSING_DEPENDENCY

  • CYCLE_DETECTED

Field Explanations

  • plan_file: Absolute path to the selected plan JSON file

  • plan_name: The project name or description from the plan

  • plan_progress: Statistics about overall plan completion

  • selection_required: If true, next_task must be null and plan_candidates must be present

  • plan_candidates: Array of candidate plans when selection is required, otherwise null

  • warnings: Non-fatal issues encountered (invalid JSON candidates skipped, missing dependency IDs, etc.)

  • error: Fatal error object or null

  • next_task: The full task object of the next ready task (or null if none)

  • task_summary: Brief status of all tasks in the plan

Include All Task Fields

When outputting next_task , include ALL fields present in the original task, not just the ones shown in the example. This includes optional fields like issue , completed_at , completed_by , notes , tags , estimated_time , etc.

Special Cases

Tasks with Issues

If a task has an issue field (array of strings):

  • Include it in the JSON output

  • Include it as-is in next_task.issue and/or enrich the corresponding entry in task_summary with issues for visibility

  • Still treat it as a normal task (follow user's instruction: "按正常顺序处理")

Multiple Ready Tasks

If multiple tasks are ready (no dependencies or dependencies satisfied):

  • Pick the one with the smallest ID

  • The others are ready but not "next"

  • In the task_summary, mark them as "ready": true but don't select them as next_task

Quick Reference: Checklist

Before outputting the result, verify:

  • Found at least one valid writing-plans-plus JSON file

  • Selected the appropriate plan (sequential order or user-selected)

  • Correctly identified task readiness (passes: false AND dependencies satisfied)

  • Output is valid JSON with all required fields

  • Included ALL task fields from the original plan

  • Output contains no extra prose outside the JSON object

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

writing-plans-plus

No summary provided by upstream source.

Repository SourceNeeds Review
General

executing-single-task

No summary provided by upstream source.

Repository SourceNeeds Review
General

nano-banana-2

Nano Banana 2 - Gemini 3.1 Flash Image Preview

Repository Source
15339.7K
inferen-sh