Issue Driven Workflow logo

Issue Driven Workflow

Organization
appautomaton
issue-driven-workflow

Turn a large task into a persistent plan file and a trackable Issue CSV (local files, not an external issue tracker), then execute the issues autonomously with per-row status updates. Use when work must survive across sessions or hand off between agents, when you need an auditable record of multi-step execution, or to resume a plans/ and issues/ pair from an earlier session. Do not use for single-session tasks that your harness's built-in plan or todo tracking already covers.

Overview

Publisherappautomaton
Repositoryagent-designer
Skill nameissue-driven-workflow
Stars
133
Forks
17
Bundled files
12
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 12 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by appautomaton on GitHub. Read the source before you install it.

Installation

Install the Issue Driven Workflow AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/appautomaton/agent-designer/tree/main/skills/issue-driven-workflow
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/appautomaton/agent-designer.git /tmp/agent-designer
mkdir -p .claude/skills
cp -r /tmp/agent-designer/skills/issue-driven-workflow .claude/skills/issue-driven-workflow
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Issue Driven Workflow in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Issue Driven Workflow on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Issue Driven Workflow is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Issue-Driven Workflow

Philosophy

The plan and Issue CSV are a work amplifier. Front-load the thinking so the agent has a full plate of actionable work to execute autonomously. More rows means more useful work per run.

  1. Planning (interactive): search the web, read docs, ask questions, gather context. A thorough plan means more work the agent can do without stopping.
  2. Execution (autonomous): be proactive, not passive. Work through the CSV end to end and do not wait for permission on routine decisions.

The quality bar: every CSV row is completable, testable, and markable DONE without further clarification.

E2E loop

plan → issues → implement → test → review

Paths

Commands below write <skill_dir> for the absolute path of the directory containing this SKILL.md. Your harness usually reports that path when it loads the skill. If it does not, use this SKILL.md's own location. Substitute it before running.

Run the scripts from inside the target project. They resolve the project root from the working directory (nearest .git, then AGENTS.md), and artifacts land at that root: plans in plans/, issue CSVs in issues/.

Planning (interactive)

  1. Restate the task and assumptions.
  2. Gather context: search the web, read project files, inspect dependencies. Make every plan section concrete, not aspirational.
  3. Ask up to 2 clarification questions if unclear, then proceed with stated assumptions.
  4. Draft the plan body using the structure of assets/_template.md and choose a complexity tier.
  5. Get the plan approved before writing it. Use the host's plan approval mechanism when one exists. In an interactive session without one, ask once in conversation. In a headless or autonomous run, proceed and record the assumptions in the plan's Assumptions section.
  6. Save the drafted body to a temp file, then write the plan:
    bash
    python3 <skill_dir>/scripts/create_plan.py \
      --task "<title>" --complexity <simple|medium|complex> --body-file <tmpfile>
    A single-quoted heredoc piped to stdin also works. Use --template only to start from the blank scaffold. The script prints the plan path. Keep it for the next step.
  7. Do not edit code while planning.

Creating the CSV (interactive)

  1. Generate after the plan is approved.
  2. Break the plan into granular, independently actionable rows. Fill all required columns per references/issue-csv-spec.md, order rows by dependency chain, and set Dependencies so execution order is unambiguous.
  3. Draft the rows, canonical header included, to a temp file, then:
    bash
    python3 <skill_dir>/scripts/create_issues.py --plan <plan-path> --rows-file <tmpfile>
    The script derives issues/<timestamp>-<slug>.csv from the plan filename, validates every row, and writes nothing on any error.

Executing the CSV (autonomous)

The CSV is your execution state. Read it and update it through the scripts, and keep driving forward. Never string-edit the CSV: quoting rules and repeated status cells make hand edits corruption-prone. If validation reports the file itself as broken, rebuild it instead: correct the drafted rows and rerun create_issues.py with --overwrite.

  1. Pick work: python3 <skill_dir>/scripts/update_issue.py <csv> --next
  2. Mark it started: python3 <skill_dir>/scripts/update_issue.py <csv> --id A2 --dev-status DOING
  3. Complete the row. Search, read, write, test, whatever it requires.
  4. When Acceptance is met and Test_Method passes, set --id A2 --dev-status DONE.
  5. Self-review, then set --id A2 --review-status DONE. The script rejects incoherent transitions, for example review marked DONE before implementation.
  6. Immediately pick the next row with --next and keep going.
  7. After all rows are DONE, run the regression pass and set --id <ID> --regression-status DONE per row.
  8. Report progress briefly as you complete rows.
  9. Only stop for genuinely blocking unknowns that affect correctness, safety, or irreversible actions.

If a row is too large, split it. If a row fails, fix it or flag it with --note. If in a git repo, commit at natural boundaries.

Scripts

ScriptPurposeKey flags
create_plan.pyWrite a plan file with frontmatter under plans/--task, --complexity, --body-file, --template, --overwrite
create_issues.pyWrite the paired Issue CSV, fully validated--plan, --rows-file, --overwrite
update_issue.pyRow-addressable status and note updates, plus queries<csv>, --id, --dev-status, --review-status, --regression-status, --note, --next, --show, --json
validate_issues_csv.pyValidate schema and semantics, all errors in one run<csv>
list_plans.pyList existing plans--query, --json
read_plan_frontmatter.pyRead one plan's frontmatter<plan-path>, --json

Every script prints usage with --help.

Naming and persistence

Plans: plans/YYYY-MM-DD_HH-mm-ss-<slug>.md. Issue CSVs: issues/YYYY-MM-DD_HH-mm-ss-<slug>.csv with the same timestamp and slug, enforced by create_issues.py. A project with an existing plan/ directory from older runs keeps using it. Commit plans/ and issues/ in the consuming repo when tracking should survive sessions or hand off between agents. Gitignore them for scratch work.

References

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Issue Driven Workflow AI skill do?

Turn a large task into a persistent plan file and a trackable Issue CSV (local files, not an external issue tracker), then execute the issues autonomously with per-row status updates. Use when work must survive across sessions or hand off between agents, when you need an auditable record of multi-step execution, or to resume a plans/ and issues/ pair from an earlier session. Do not use for single-session tasks that your harness's built-in plan or todo tracking already covers.

Why use Issue Driven Workflow on TypingMind?

Because you install it once and use it with any model. Issue Driven Workflow is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Issue Driven Workflow in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/appautomaton/agent-designer/tree/main/skills/issue-driven-workflow. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Issue Driven Workflow?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Issue Driven Workflow?

As many as you like. As long as a model supports skills, you can use Issue Driven Workflow with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Issue Driven Workflow AI skill free?

It is published on GitHub by appautomaton. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇