Tasks as Code: Move Your Tickets into the Repository

(typemill.net)

39 points | by trendschau 3 hours ago

27 comments

  • weinzierl 31 minutes ago
    Life used to be simple.

    Client wrote down what they wanted, programmers translated it to code, testers validated that against what clients had written down.

    Now we have tickets, where BA's (but most of the time developers, really) write down the lore that is told in numerous meetings.

    Tickets are supposed to be ephemeral but never really are, that's why we keep some of the lore in Wikis. Except Wikis are good for text, not so good for everything else, that's why the lore spreads to Figma, Excalidraw and Google Sheets (if you are lucky, xls documents on Sharepoint if you are not).

    Now we start coding. Some of the lore get's solidified into code, which is good, some turns into tests which is good too, if you are lucky some turns into formal spec a tool can check.

    But, there is always something left that gets spread evenly - more or less - across regular comment, doc comments, commit messages and various md files, most notoriously the README.md.

    Which brings me to user documentation which again is often spread over the whole oeuvre of documents and systems we mentioned. Not to mention the confusion of most documentation about its intended target group. Is it user documentation for the enduser, really? Rarely!

    Oh, and then the CHANGELOG that really wants to be release notes, but isn't, at least not entirely. Which is generated automatically, but isn't, at least not entirely.

    Finally comes QA (but most of the time developers, really) but it doesn't have anything to validate against, so all they do is compare the faint memory of the lore they had heard in numerous meetings against what they have written down themselves in numerous places and are mostly content with the results most of the time.

    • robofanatic 22 minutes ago
      > Client wrote down what they wanted

      I have never seen this. Most of the time clients don't know what they really want.

      • weinzierl 8 minutes ago
        That is often said and there is truth to it, but not universal truth.

        I worked with many clients that knew exactly what they wanted and (very importantly) could write it down in a way that they could validate. That is often not the perfect spec from an implementation point of view but by and large a solid aporoach.

    • jareklupinski 26 minutes ago
      > The gods confound the man who first found out how to distinguish hours!
    • esafak 29 minutes ago
      And then you get enterprise search to tie them all. Slap an MCP on it and all your tools can talk to each other again.
  • philipp-gayret 1 hour ago
    I'm curious in what is the value of this kind of solution. Having run my own software factory for just a week or two, I'm at well over 1000 agent jobs (; a more flexible variant of what a swimlane on a scrum board represents). If I did a year of having the factory running, I would end up with 10~50K tickets across my repo's, then what? Do you keep them forever?

    I don't follow what the value is in putting all that in a Git repo, let alone putting everything through a cycle of git/commit/push. The source of truth is the code, so if you're capturing this for additional context about why things were built, then you may as well follow the path of Entire; former GitHub CEO's company, and record the entire agent session to get the full context.

    • pgross 16 minutes ago
      This is a milestone on the journey for sure. If people could jump all the way to the end right into Software Factory Mode, they would. But people must practice the skill to get there. Part of that practice for me was tasks within the repository.

      It's a way to share the context between team members and agents before it is built. You can refine it and transform it as you adjust it. I do the same thing now, even with a software factory, at an epic/initiative level. The only difference is the altitude at which we operate.

      There is also something to say about having git history that shows the tasks change from scaffold -> refinement -> pristine. Frontier agents can see how the human in the loop operated during that period and translate it into human-on-the-loop policy.

    • sroerick 45 minutes ago
      Yep, this isn't a great solution for software factories.

      As I see it - you need to track spec (a declarative process) and also tasks/progress (an imperative process). You do need to manage blockers so tasks should largely be a dependent graph.

      There's also a third thing which emerges - which is "design decisions along the way". I do actually keep this in the repo as well, but I'm not sure this is correct.

      Beads combines all three, which I'm not sure is correct, but seems quite brilliant.

    • trendschau 58 minutes ago
      But someone still has to write the requirements? I am not familiar with software factories like this to be honest...
  • bunderbunder 45 minutes ago
    Just shooting from the hip, I don’t see this scaling super well. As the number of tickets grows you’ll need some way to efficiently track WIP, filter tickets by status, etc. Jamming it all into LLM context won’t do, and relying on the agent harness to automatically sort it out will be unreliable.

    So you’ll eventually want a more formal way to track and query everything, and to route the coding agents through that API to ensure consistency and reliability. At which point you’ve basically just reinvented the ticketing system that you originally sought to eliminate. Only it might still be flaky because every source control branch introduces a secondary source of truth for ticket status.

    • ilivethere 31 minutes ago
      For a solo dev, this solution works great.

      For a multi-dev team, I tried it and ended up migrating to GitHub issues: They are easily queryable/filterable from the cli, can be attached to milestones, and automatically closed by attaching a PR to it. No need for expensive mcps, just the github cli tool.

  • godzillafarts 2 hours ago
    This doesn’t work in an org with stakeholders that don’t have access to the code base, I.e. most of the other company. You still need tickets, a way for stakeholders to follow, update, etc. those tickets, and a way to prioritize the tasks those tickets represent.
    • Cthulhu_ 1 hour ago
      Nothing a front-end can't solve. To the end user it doesn't matter if data is stored in a database or git, as long as it just works.

      But counterpoint, an AI / machines can talk to Jira and other ticket management systems just fine, they have REST APIs and MCP servers nowadays.

    • trendschau 1 hour ago
      Totally agree that stakeholders need access, but I think that’s solvable with an interface layer on top of the repo rather than a reason to avoid the workflow.
      • el_blargos 1 hour ago
        Or the other way around. An API for the robot to read tickets
    • perrygeo 1 hour ago
      [dead]
  • jurgenburgen 1 hour ago
    Tickets change faster than code. Having to create a PR to update a ticket sounds like a bureaucratic nightmare.
    • jm4 50 minutes ago
      It works great as a solo developer. I've been doing the same thing for the past several months. I couldn't imagine doing it with a team.
    • Squeeeez 1 hour ago
      Then you go the nanoservice route, with double the repos!
    • moron4hire 1 hour ago
      This is a problem of requiring PRs for everything, not of putting tasks in the repo.
      • Cthulhu_ 1 hour ago
        Counterpoint, many updates would also cause many commits just for keeping tasks updated, adding noise to the project history.

        Nothing stopping people from keeping tasks in a separate repository, of course - this would also make it simpler to just allow commits straight to `main`.

      • paxy 59 minutes ago
        PRs or not, git workflows are always going to be many orders of magnitude slower than simple database reads/writes.
  • gatinsama 1 hour ago
    While I understand the appeal of having local files that agents can read, I think the best way to do it might be pulling the needed files from a database. By its nature, tasks are linked in relationships of parenthood and sequence, so databases are naturally suited for storage. Plus, they need ownership relations. So, something like Jira but please oh god not Jira, where you can pull a subset of the DB (for example a project) locally and have some script generate the needed files (requirements) from what would be a Jira description.
  • asdfsa32 2 hours ago
    When someone sells hammers, they want you to hammer screws. Typemill is a document product and naturally, they want you to use that. It looks very polished and nice though, shame not packaged for distro though.
    • gatinsama 1 hour ago
      That's true, but it might also be the case that they think this is a good way to work and that's why they built the product in the first place. (I don't agree, though, I think tasks are more suited for DB storage).
    • trendschau 2 hours ago
      Typemill is open source with some paid plugins, I totally agree that a Markdown CMS is not the right solution, but it is an easy way to experiment with new workflows like this. I guess we will see other software in future if tasks will make the journey into the repos.
  • paxy 1 hour ago
    Relational databases exist for a reason. Every effort that starts with “I really want to use this tool so let me shove a use case into it” always ends in disaster. Git has a purpose, and building an information management system is not one of them.

    To start, how are you going to run queries on this bug tracker? How are you going to make sure it stays up to date for everyone at the company with sub-second latency? How are you managing access control? How do you keep the size under control over time?

  • crossroadsguy 2 hours ago
    These kinds of things are an EM’s wet dream. Especially an EM who knows they are not adding anything to the team but are capable of putting together a slide, mentioning “productivity reached X” without mentioning the baseline, and still being able to sell that improvement.
  • biglyburrito 2 hours ago
    Nah. There's a manager at my company that's pushing this, and it sucks for pretty much everyone except him. I suppose it's fine if you're delegating sprint management to AI agents, but everyone except the manager is going to be using this tool to manage sprints.
    • actionfromafar 2 hours ago
      Funny that you and vhodges say basically the same thing, mirrored. :)
  • yard2010 1 hour ago
    Tangibly related - I use Linear for ticket management and I'm in love with this. After being defiled by Jira in my $dayjob, I couldn't believe I'll find a ticket management app I would love so much I literally advertise for free.
  • ActionHank 2 hours ago
    "AI coding agents work best when everything they need lives in the repository" honestly not true, they work best if they have all the information up front, local filesystem is pretty cheap path to that.

    Better path is an orchestration agent that composes a short spec with the slice of the details for a slice of the work. Tickets end up being too verbose as people try to cover every potential aspect / use LLMs to generate them.

  • sroerick 51 minutes ago
    I'm not a beads user - but it rather brilliantly solves a lot of problems in this space
  • vhodges 3 hours ago
    Yes! There are some existing projects and posts on the idea of tickets in-the-repo.

    Usually the problem is that it's not very friendly for Product Folks and SMEs so I've been working on a local first, git backed project management and documentation tool (Think Jira and Confluence).

    So as to not hijack this post, I won't paste a link here (not to mention it's ready for prime time yet) but send me a message if you're interested (it's open source and visible so it's not too hard to find either)

  • antoineMoPa 1 hour ago
    I kind of fear this would cause agents to get lost in previous outdated context, ultimately wasting time and tokens.
  • samuelec 2 hours ago
    It's a very bad idea! ticket managers do more than just store ticket text! also duplicating a ticket text in the repo it's just wrong.. then why don't you put your db data into the repo too ?
  • CharlieDigital 44 minutes ago
    Terrible idea because these two artifacts (ticket and code) have different lifecycles, different participants, different rates of churn, different needs from a reporting perspective, and different rules/workflows.

    Tickets being external to source decouples the systems, parties, and lifecycles.

  • mlaretallack 1 hour ago
    A lot of the tools we have to use are designed for meat proxy's (JIRA etc...) yes, you can allow the agents access to the task repo via api or MCP, but at the end of the day, the tool starts to become the bottleneck, Iike the idea of putting the tasks and issues into git, it means all info for why a change was made is in one place, accessable forever, just need to expand agents to non-software dev world.
  • el_blargos 1 hour ago
    I have a rest API client for linear and the robot can read the ticket this way ? And comments made by Products and Design folks.
  • gosugdr 2 hours ago
    Nope, you're breaking Git history with that.

    You should think about what your history represents. Just move the task manager somewhere else and track it there.

    • svartskogen 2 hours ago
      I was doing something like this manually, but for my own solo-dev projects. I wonder if your opinion is still the same for this case. I totally understand this is not really working when working on a team, but for planning -> delegating to LLMs this works really well for me
      • gosugdr 1 hour ago
        Better to keep tasks in a separate repo imo, or at least make sure they aren't committed.

        I always follow one rule: looking at the git history should tell me what each change did, and the commit message alone should be enough to understand what actually changed.

        If you mix tasks with code changes, you will just confuse your future self.

        Moreover, you can set up something like beads to handle task delegation and status updates for your agents.

        https://github.com/gastownhall/beads

  • KetoManx64 50 minutes ago
    I actually did something similar with my team a few months ago. We exported all our confluence articles and all our Jira tasks into Obsidian and then made a few simple extensions to replace the functionality we needed from them (sharing links to pages, ability to make comments on pages, creating new tasks, using bases as a way to organize our todo tasks, use git for file history), for a DevOps team of 4 it has gone very well and it has made an massive improvement for giving our AI agents up to date docs on whatever we're working on.
  • gauravsharmaGG 12 minutes ago
    [flagged]
  • usefulbasis 30 minutes ago
    [flagged]
  • chelseahermes 37 minutes ago
    [flagged]
  • arbor-group 1 hour ago
    [flagged]
  • locitra 1 hour ago
    [flagged]
  • cyjsyc 2 hours ago
    [flagged]