open source · MIT · Go

Team memory for coding agents, shipped in the same PR as the code.

IssueOps is a local agent harness. When an agent hits a pitfall or makes a design decision, it writes a record into the repository with the change. The next agent on your team reads it before related work.

issueops next · one issue, ten stagesopen

    01 / record

    Pitfalls and decisions become files, reviewed with the code

    A caution records a pitfall and its fix. An ADR records a design decision. Both are plain Markdown under .issueops/. These are real records from this repository; pick a field to see what it carries.

      real record

      02 / route

      The next task gets the right records first

      Before work starts, route-docs picks up to five past records that share at least two terms with the task. Type a task and watch it choose.

      try:
        Runs the route-docs record-matching rule in your browser over the 172 caution and ADR records in this repository (snapshot 2026-11-03). Rare shared terms weigh more: each adds ln(N/df).

        03 / enforce

        Gates, not good intentions

        Records are written inside a ten-stage cycle. The docs verdict is bound to the change set, so a PR cannot ship knowledge that is out of date. Try to publish before recording the verdict, or change the diff after it.

        stage 6 → 9 · docs gateillustration
        change set
        docs verdict
        pull request

          04 / integrate

          Five hosts, one core, one contract

          Codex, Claude Code, Omo native, omp, and opencode share one Go core, one CLI/MCP response contract, one command policy, and one skills/ tree. Install writes only to your home directory; a repository changes only on explicit bootstrap.

          05 / compare

          How this differs from AGENTS.md and agent memory

          IssueOps does not replace AGENTS.md. Rules every session needs stay there; pitfalls and decisions that matter only for some tasks become records.

          AGENTS.md / CLAUDE.mdBuilt-in agent memoryIssueOps records
          Who writes itA person, by handThe agent, from your conversationsThe agent, reviewed by people in the PR
          Where it livesOne file in the repositoryEach person's machine.issueops/, one file per record
          Reaches teammatesThrough gitNoThrough git
          What the agent readsThe whole file at session startWhatever the tool picksOnly records related to the task
          When it gets writtenWhen someone remembersWhen the tool decidesAs soon as it is learned, at the latest at the docs stage

          06 / install

          Build from source

          You need Git, Go 1.26.6 or later, and at least one supported host. There is no public binary release yet.

          install.sh
          $ git clone https://github.com/m16khb-org/issueops.git
          $ cd issueops
          $ ./install.sh --dry-run --json   # review the plan first
          $ ./install.sh
          $ ./bin/issueops doctor --repo . --json

          Then ask your agent: "Use issueops to fix the login error. Reproduce it with an expired session and add a test. Go as far as opening a draft PR." Skills and issue/PR templates are currently Korean. See the full README.