Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Open Issue Format (OIF)

Issues as files. A directory of Markdown files that any agent or human can run as a board with ls, cat and git mv. No tool required.

Sixty-second tour

board.md
issues/
├── backlog/
│   ├── column.md
│   └── add-jira-importer-nkhnsk.md
├── doing/
│   ├── column.md
│   └── fix-login-redirect-loop-7k2x9m.md
└── done/
    ├── column.md
    └── write-spec-outline-h87456.md

The directory is the status. The filename is the identity. Moving an issue is git mv issues/doing/fix-login-redirect-loop-7k2x9m.md issues/done/.

issues/doing/fix-login-redirect-loop-7k2x9m.md:

---
type: issue
resource: oif:app/7k2x9m
title: Login form rejects passwords containing "!"
kind: bug
priority: high
assignees: [coder/1.4]
requested_by: human:sam
tags: [auth]
created: 2026-09-13T03:10:00Z
---

Submitting a correct password with `!` clears the form and shows
"invalid credentials". Expected: login succeeds.

## Acceptance Criteria

- [x] Reproduce with a failing test
- [ ] Fix without changing the hashing path

Comments are separate files, one per comment, keyed by the issue's id:

comments/7k2x9m/k3n2wp.md

---
type: comment
at: 2026-09-13T04:12:00Z
by: human:sam
kind: verdict
result: changes_requested
---

Keep the strip for whitespace only.

Read an issue and its whole history with one command:

cat issues/*/*-7k2x9m.md comments/7k2x9m/*.md

Why

Every git-native tracker (Backlog.md, git-issues, beaver-backlog, beads) converged on Markdown plus frontmatter, one file per issue. None published the format separately from the tool. OIF is the format, written down, with a validator, so issues outlive whichever tool wrote them and any agent can read them cold.

Design rules that fall out of being agent-first and git-native:

  • State is the directory. A move is one atomic rename, not a read-modify-write that two agents can trample.
  • Identity is a random six-character id in the filename. Two branches can create issues at once and merge with no counter, no scan, no renumbering. Sequential keys like APP-2753 survive as aliases.
  • One comment is one file, keyed by the issue's id. Two agents commenting at once write two different paths, so nothing conflicts and nothing is lost. Appending to a shared file does not survive concurrent writers; see the changelog.
  • Unknown keys are preserved. Your tracker's extra fields round-trip.
  • Every column has a column.md. It keeps empty columns in git and tells an arriving agent what belongs there and how to leave.
  • The board declares its own vocabulary. board.md lists the columns and, optionally, the kinds an issue may have and which kinds may contain which. Epic, story and task are one team's words, not the format's. Ready board.md files for Kanban, Scrum and Shape Up are in profiles/.

An OIF board is a conforming Open Knowledge Format bundle: same substrate, same actor convention, type: issue on every file. The one deliberate divergence, identity by id rather than by path, is spelled out in SPEC.md section 9. Trackers are platforms, OIF is the file.

This repository

The roadmap for OIF itself lives in board/, in OIF. GitHub Issues stays open for conversation; accepted work lands in board/issues/ with the GitHub number kept in external_ids.

Status

0.1 is a draft. Expect 0.x to move.

License

Apache-2.0.

Metadata

Release files for oifmd 0.1.0.dev0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for oifmd 0.1.0.dev0
File Size Uploaded
oifmd-0.1.0.dev0.tar.gz 14.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for oifmd 0.1.0.dev0
File Interpreter ABI Platform
oifmd-0.1.0.dev0-py3-none-any.whl Python 3 none any Details

Total release size: 27.6 kB

Release files / oifmd-0.1.0.dev0.tar.gz

Download URL oifmd-0.1.0.dev0.tar.gz
Size 14.5 kB
Tags Source
SHA-256 checksum
How to use checksums
d1887e6bcfb97f08a9e99ec3ad054e4c3809bc2bd7b1794459341e66196470f0
BLAKE2b-256 checksum
How to use checksums
19a4ecdf791ff0510fa66927e3044dd9d35c48413ddc88cf5138445ff6212687
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / oifmd-0.1.0.dev0-py3-none-any.whl

Download URL oifmd-0.1.0.dev0-py3-none-any.whl
Size 13.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8e9c242af6b9596557f104938f4138da90976a13b73def3f13b5a20fcbff4832
BLAKE2b-256 checksum
How to use checksums
7be8576591cd576dc91d7c5dc8a4262ed3a505bb2b6cfc789b00ebef4f54e101
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release history Release notifications | RSS feed

This release

0.1.0.dev0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page