|
| 1 | +# Agent Workflow Guide: .issues File Format |
| 2 | + |
| 3 | +**Version:** v0.1.0 |
| 4 | +**Date:** 2026-02-13 |
| 5 | +**Status:** Active |
| 6 | + |
| 7 | +## Overview |
| 8 | + |
| 9 | +The `.issues` flat file format enables AI agents to manage issue tracking |
| 10 | +directly through text files, without requiring CLI commands or API calls. |
| 11 | +Files live in the `.issues/` directory and are version-controlled with Git. |
| 12 | + |
| 13 | +## File Format |
| 14 | + |
| 15 | +Each `.issues` file contains one issue per line in pipe-delimited format: |
| 16 | + |
| 17 | +``` |
| 18 | +{Type}-{Number} | {status} | {description} |
| 19 | +``` |
| 20 | + |
| 21 | +### Examples |
| 22 | + |
| 23 | +``` |
| 24 | +Task-1 | todo | Enable CloudFront logging |
| 25 | +Bug-3 | confirmed | Login page returns 500 on empty email |
| 26 | +Workstream-1 | in-progress | Observability improvements |
| 27 | +``` |
| 28 | + |
| 29 | +### Hierarchy (tab-indented children) |
| 30 | + |
| 31 | +``` |
| 32 | +Workstream-1 | in-progress | Observability |
| 33 | + Task-1 | todo | CloudFront logs |
| 34 | + Task-2 | done | S3 logging |
| 35 | + Task-3 | todo | Dashboards |
| 36 | +``` |
| 37 | + |
| 38 | +Parent nodes automatically get `has-task` links to their children. |
| 39 | + |
| 40 | +### Cross-References |
| 41 | + |
| 42 | +``` |
| 43 | +Task-1 | todo | Fix login -> Bug-3 |
| 44 | +``` |
| 45 | + |
| 46 | +The `->` syntax creates a `relates-to` link from Task-1 to Bug-3. |
| 47 | + |
| 48 | +### Comments |
| 49 | + |
| 50 | +Lines starting with `#` are comments: |
| 51 | + |
| 52 | +``` |
| 53 | +# Sprint 4 tasks |
| 54 | +Task-1 | todo | API endpoints |
| 55 | +``` |
| 56 | + |
| 57 | +## Label Format |
| 58 | + |
| 59 | +Labels follow the pattern `{Type}-{Number}`: |
| 60 | + |
| 61 | +| Pattern | Type | Example | |
| 62 | +|---------|------|---------| |
| 63 | +| `Task-N` | task | Task-1, Task-42 | |
| 64 | +| `Bug-N` | bug | Bug-1, Bug-99 | |
| 65 | +| `Workstream-N` | workstream | Workstream-1 | |
| 66 | +| `Feature-N` | feature | Feature-3 | |
| 67 | +| `Question-N` | question | Question-1 | |
| 68 | +| `Risk-N` | risk | Risk-5 | |
| 69 | +| `User-Journey-N` | user-journey | User-Journey-1 | |
| 70 | + |
| 71 | +The type is inferred from the label prefix (everything before the final `-N`). |
| 72 | + |
| 73 | +## Valid Statuses by Type |
| 74 | + |
| 75 | +| Type | Valid Statuses | |
| 76 | +|------|---------------| |
| 77 | +| task | backlog, todo, in-progress, review, done | |
| 78 | +| bug | backlog, confirmed, in-progress, testing, resolved, closed | |
| 79 | +| workstream | todo, in-progress, done, blocked | |
| 80 | +| feature | proposed, approved, in-progress, released | |
| 81 | +| question | open, answered, closed | |
| 82 | +| risk | identified, mitigated, accepted, closed | |
| 83 | +| user-journey | draft, in-progress, done | |
| 84 | + |
| 85 | +## Agent Workflow |
| 86 | + |
| 87 | +### 1. Creating a Workstream |
| 88 | + |
| 89 | +Create a new `.issues` file in `.issues/`: |
| 90 | + |
| 91 | +``` |
| 92 | +# .issues/workstream-auth.issues |
| 93 | +Workstream-1 | todo | Implement authentication |
| 94 | + Task-1 | todo | Add login endpoint |
| 95 | + Task-2 | todo | Add token validation |
| 96 | + Task-3 | todo | Add logout endpoint |
| 97 | +``` |
| 98 | + |
| 99 | +### 2. Updating Progress |
| 100 | + |
| 101 | +Edit the file to change statuses as work progresses: |
| 102 | + |
| 103 | +``` |
| 104 | +Workstream-1 | in-progress | Implement authentication |
| 105 | + Task-1 | done | Add login endpoint |
| 106 | + Task-2 | in-progress | Add token validation |
| 107 | + Task-3 | todo | Add logout endpoint |
| 108 | +``` |
| 109 | + |
| 110 | +### 3. Tracking Bugs |
| 111 | + |
| 112 | +Create a separate bugs file or add to existing files: |
| 113 | + |
| 114 | +``` |
| 115 | +# .issues/bugs-auth.issues |
| 116 | +Bug-1 | confirmed | Token refresh fails silently |
| 117 | +Bug-2 | resolved | Login returns 500 on empty password |
| 118 | +``` |
| 119 | + |
| 120 | +### 4. Validating Files |
| 121 | + |
| 122 | +Use the check service to validate files: |
| 123 | + |
| 124 | +```bash |
| 125 | +issues-fs check # check all .issues files |
| 126 | +issues-fs check auth.issues # check specific file |
| 127 | +``` |
| 128 | + |
| 129 | +### 5. Exporting to JSON |
| 130 | + |
| 131 | +Use normalise to export to the JSON issue structure: |
| 132 | + |
| 133 | +```bash |
| 134 | +issues-fs normalise --dry-run # preview what would be written |
| 135 | +issues-fs normalise # write JSON files |
| 136 | +``` |
| 137 | + |
| 138 | +### 6. Schema Validation |
| 139 | + |
| 140 | +The schema service validates statuses against predefined type schemas. |
| 141 | +Unknown types are flagged but not treated as errors. |
| 142 | + |
| 143 | +## File Organisation |
| 144 | + |
| 145 | +Recommended structure for the `.issues/` directory: |
| 146 | + |
| 147 | +``` |
| 148 | +.issues/ |
| 149 | +├── workstream-feature-a.issues # workstream with child tasks |
| 150 | +├── workstream-feature-b.issues # another workstream |
| 151 | +├── bugs-sprint-4.issues # bugs from current sprint |
| 152 | +├── questions.issues # open questions/decisions |
| 153 | +└── guide__agent-workflow.md # this guide |
| 154 | +``` |
| 155 | + |
| 156 | +## Integration with Graph__Repository |
| 157 | + |
| 158 | +The `Graph__Repository` automatically discovers and loads `.issues` files: |
| 159 | + |
| 160 | +- `nodes_list_all()` includes nodes from `.issues` files |
| 161 | +- JSON `issue.json` files take precedence over `.issues`-sourced nodes |
| 162 | +- Cache is invalidated when `.issues` files change |
| 163 | + |
| 164 | +This means `.issues` files and JSON files coexist. The `.issues` format |
| 165 | +is the lightweight authoring format; JSON is the canonical storage. |
0 commit comments