Data Structure
Understanding the archive format and directory layout
Directory Layout
data/
├── index.json # Index of all archived issues
├── archive.log # Execution log
└── issues/
└── CT-123/
├── issue.json # Full issue data (JSON)
├── README.md # Human-readable format
└── attachments/ # Downloaded files
└── screenshot.pngindex.json
Quick lookup of all archived issues:
[
{
"identifier": "CT-123",
"title": "Example issue",
"status": "Archive",
"exportedAt": "2025-12-26T00:00:00Z",
"deletedFromLinear": true
}
]issue.json
Full issue data:
{
"id": "abc-123",
"identifier": "CT-123",
"title": "Example issue",
"description": "Issue description in markdown",
"priority": 2,
"priorityLabel": "High",
"status": "Archive",
"team": "CT-CROP",
"project": "My Project",
"labels": ["bug", "backend"],
"assignee": "John Doe",
"creator": "Jane Smith",
"createdAt": "2025-01-01T00:00:00Z",
"updatedAt": "2025-12-01T00:00:00Z",
"completedAt": "2025-12-01T00:00:00Z",
"comments": [
{
"id": "comment-1",
"body": "Comment text",
"user": "John Doe",
"createdAt": "2025-01-02T00:00:00Z"
}
],
"attachments": [
{
"id": "att-1",
"title": "screenshot.png",
"url": "https://...",
"localPath": "attachments/screenshot.png"
}
],
"exportedAt": "2025-12-26T00:00:00Z"
}README.md
Human-readable Markdown version:
# CT-123: Example issue
**Status:** Archive
**Priority:** High
**Team:** CT-CROP
**Assignee:** John Doe
---
## Description
Issue description here...
## Comments
### John Doe - 2025-01-02
Comment text...
## Attachments
- [screenshot.png](attachments/screenshot.png)
---
_Exported: 2025-12-26_Searching Archives
Find by identifier
cat data/issues/CT-123/issue.jsonSearch in index
cat data/index.json | jq '.[] | select(.title | contains("search term"))'Search all issues
grep -r "search term" data/issues/