I threw Claude Code at an existing codebase a few months back and quickly quit—
untangling its output was slower than writing from scratch. The fix turned out
to be process, not model horsepower.
Iteration timeline
==================
• 50 % task success - added README.md + CLAUDE.md so the model knew the project.
• 75 % - wrote one markdown file per task; Codex plans, Claude codes.
• 95 %+ - built Backlog.md, a CLI that turns a high-level spec into those task files automatically (yes, using Claude/Codex to build the tool).
Three step loop that works for me
1. Generate tasks - Codex / Claude Opus → self-review.
2. Generate plan - same agent, “plan” mode → tweak if needed.
Is there an alternative that integrates with a Jira instance?
Many of my tasks already exists in forms of a Jira ticket, would be interesting to prompt it to take over a specific ticket & update its ticket progress as well.
Backlog.md is still a bit rough on the edges but is definitely a proof that markdown files and AI Agents work really well together. I started working on it exactly a month ago
Ooh, definitely trying this out! I ended up homebrewing a whole context maintainance ritual, but that was a pain to get an AI agent to consistently apply, so it spun out into building a whole project management... thing.
This looks much more thought out, thanks for sharing!
Seems like a great idea. How would that work with multiple branches ? One task might be implemented in a different branch, we might want to have a global overview of all the tasks being coded in the main branch
All data is saved under backlog folder as human‑readable Markdown with the following format task-<task-id> - <task-title>.md (e.g. task-12 - Fix typo.md).
If every "task" is one .md file, I believe AI have issues editing big files, it can't easily append text to a big file due to context window, we need to force a workaround launching a command line to append text instead of editing a file. So this means the tasks have to remain small, or we have to avoid putting too much information in each task.
This is a good idea. But the screenshots you have show lots of tasks in a project; how are you dispatching tasks (once planned) to an agent, and how are agents navigating the large number of markdown task content you're producing without blowing out their context budget?
You can use this perfectly fine without AI agents, it just so happens to produce output which is easily ingestable by LLMs. It also has drag and drop visualisation and simple syntax for creating and tracking tasks in your codebase.
I built myself a tool that does something quite similar. It's a single no-dependency Python script that parses "tasks.md" in the root of the repo which contains a Markdown table of tasks, then has basic support for BLOCKED/READY/DONE/CANCELLED, dependencies, titles, tags, etc.
For a project that is just for me, it's exactly what I need – dependency tracking and not much more, stored offline with the code. Almost all of the code for it was written by Gemini.
With aider you can run a second instance along with --watch-files and if you in your tasks do // #AI it will be added to the chat and with // !AI AI will then respond
so you can do
`backlog task create "Feature" --plan "1. Research\n2. Suggest Implementation// #AI AI!"` (yes weird order with the !)
and in the background aider will propose solutions.
I’m not sure how this compares to Claude Code or Codex, but its LLM-flexible. Downside is it doesn’t create a pull request. So it’s more helpful for local code.
I would probably add some Readme.md files to the --watch-files session and I think you need to click once [D]ont ask again so it wont keep asking you to add files
Is there a proper way to use this project without commiting files to git ? I just want to try it out in a project I'm working on, but don't want to put it in the history.
What I did is to add the backlog folder into the .gitignore file, but after every command I get a lengthy error about a git command error.
And even if I were to add these files to my repository, I would want to add them manually.
Neat! I am going to check this out.
I recently built an MCP system similar to this called Nonlinear (so clever) that uses SQLite for storage that lives outside the repo.
Honestly though, in repo is the better option.
38 comments
[ 2.8 ms ] story [ 74.1 ms ] threadIteration timeline
==================
• 50 % task success - added README.md + CLAUDE.md so the model knew the project.
• 75 % - wrote one markdown file per task; Codex plans, Claude codes.
• 95 %+ - built Backlog.md, a CLI that turns a high-level spec into those task files automatically (yes, using Claude/Codex to build the tool).
Three step loop that works for me 1. Generate tasks - Codex / Claude Opus → self-review.
2. Generate plan - same agent, “plan” mode → tweak if needed.
3. Implement - Claude Sonnet / Codex → review & merge.
For simple features I can even run this from my phone: ChatGPT app (Codex) → GitHub app → ChatGPT app → GitHub merge.
Repo: https://github.com/MrLesk/Backlog.md
Would love feedback and happy to answer questions!
I see its a TS app so I am sure the bun bundle is the install, but always good to include in your 5 min intro.
Many of my tasks already exists in forms of a Jira ticket, would be interesting to prompt it to take over a specific ticket & update its ticket progress as well.
Had similar success with making some more markdown files to help guide the agent but never would have thought of something this useful.
Will try your workflow and backlog on a build this week.
This looks much more thought out, thanks for sharing!
The tagline from the repo seems fine: "A tool for managing project collaboration between humans and AI Agents in a git ecosystem"
For a project that is just for me, it's exactly what I need – dependency tracking and not much more, stored offline with the code. Almost all of the code for it was written by Gemini.
so you can do
`backlog task create "Feature" --plan "1. Research\n2. Suggest Implementation// #AI AI!"` (yes weird order with the !)
and in the background aider will propose solutions.
I’m not sure how this compares to Claude Code or Codex, but its LLM-flexible. Downside is it doesn’t create a pull request. So it’s more helpful for local code.
I would probably add some Readme.md files to the --watch-files session and I think you need to click once [D]ont ask again so it wont keep asking you to add files
What I did is to add the backlog folder into the .gitignore file, but after every command I get a lengthy error about a git command error.
And even if I were to add these files to my repository, I would want to add them manually.
> Rich query commands -- view, list, filter, or archive tasks with ease
If these things appeal to you and you haven’t already looked at it, the GitHub CLI tool gh is very useful. For instance:
— https://cli.github.comYou can do things like fork repos, open pull requests from your current branch, etc.