{
  "slug": "focus-picker",
  "name": "gizza-ai/focus-picker",
  "version": "0.1.0",
  "title": "Focus Picker — Choose One Task by Priority, Due Date and Effort — gizza.ai",
  "description": "Pick the single task to focus on next from a pasted to-do list. Scores priority, due dates, effort, overdue work and Eisenhower or WSJF methods locally.",
  "tags": [
    "tasks",
    "priority",
    "focus",
    "todo",
    "productivity",
    "eisenhower",
    "wsjf",
    "quick wins",
    "deadline",
    "planning"
  ],
  "category": "utilities",
  "urls": {
    "page": "https://gizza.ai/tools/focus-picker/",
    "markdown": "https://gizza.ai/tools/focus-picker/index.md",
    "descriptor": "https://gizza.ai/tools/focus-picker/tool.json",
    "deep_link_example": "https://gizza.ai/tools/focus-picker/?tasks=Fix%20login%20redirect%20%21p1%20due%3Atomorrow%20est%3A90m%0AWrite%20release%20notes%20%21p2%20due%3A%2B3d%20est%3A2h%0ARefactor%20settings%20page%20%21p3%20est%3A1d%0ABook%20retro%20room%20%21p4%20due%3Afriday%20est%3A15m&method=balanced&today=2026-08-21&default_priority=p3&default_effort=2&overdue_boost=true&format=text&show_ranking=true"
  },
  "cli": "gizza tool focus-picker \"Fix login redirect !p1 due:tomorrow est:90m\nWrite release notes !p2 due:+3d est:2h\nRefactor settings page !p3 est:1d\nBook retro room !p4 due:friday est:15m\"",
  "tool": {
    "description": "Choose the single most important next task from a pasted list, using deterministic local scoring. Each task can carry `!p0`-`!p4` priority, `due:` dates such as ISO dates, today/tomorrow, weekdays or +Nd/+Nw offsets, and `est:` effort such as 90m, 2h or 1d; pipe/tab columns are accepted too. Methods include balanced, deadline, WSJF, quick-wins and Eisenhower quadrants. The output names the top pick, explains why with score/priority/due/effort facts, optionally lists the full ranking, and can be text, Markdown or JSON. Caps: 500 tasks.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "default_effort": {
          "default": 2.0,
          "description": "Default effort in hours for rows without `est:` or an effort column. Effort lowers scores, especially WSJF and quick-wins. Default 2 hours.",
          "maximum": 40,
          "minimum": 0.25,
          "type": "number"
        },
        "default_priority": {
          "default": "p3",
          "description": "Priority assigned to rows that do not say `!p0` through `!p4` or include a priority column. Lower numbers mean more important; default p3.",
          "enum": [
            "p0",
            "p1",
            "p2",
            "p3",
            "p4"
          ],
          "type": "string"
        },
        "format": {
          "default": "text",
          "description": "Output format: readable text, a Markdown ranking table, or machine-readable JSON.",
          "enum": [
            "text",
            "markdown",
            "json"
          ],
          "type": "string"
        },
        "method": {
          "default": "balanced",
          "description": "Scoring method. `balanced` blends priority, due-date urgency and effort ease; `deadline` favors urgent due dates; `wsjf` divides value/urgency by job size; `quick-wins` favors small tasks; `eisenhower` ranks urgent/important quadrants.",
          "enum": [
            "balanced",
            "deadline",
            "wsjf",
            "quick-wins",
            "eisenhower"
          ],
          "type": "string"
        },
        "overdue_boost": {
          "default": true,
          "description": "When true, overdue tasks are pinned above non-overdue work before score tie-breaking. Turn off to rank everything strictly by the selected formula.",
          "type": "boolean"
        },
        "show_ranking": {
          "default": true,
          "description": "When true, include the full ranked list after the single focus pick. Set false for a terse answer with only the top task, reason and summary.",
          "type": "boolean"
        },
        "tasks": {
          "description": "One task per line. Add optional inline tags such as `!p1`, `due:2026-08-25`, `due:tomorrow`, `due:+3d`, `est:90m`, `est:2h` or `est:1d`; or paste pipe/tab columns as `task | priority | due | effort`. Up to 500 tasks.",
          "type": "string"
        },
        "today": {
          "default": "",
          "description": "Optional ISO date (YYYY-MM-DD) used as 'today' for relative due dates and reproducible examples. Leave blank to use the current date.",
          "type": "string"
        }
      },
      "required": [
        "tasks"
      ],
      "type": "object"
    }
  }
}