File-Based Tracking
How FlyDocs manages issues as local markdown files with full workflow enforcement.
In local mode, issues are stored as markdown files managed by the local
backend (_local/file_store.py). The same commands that create
and transition issues in Linear or Jira work identically here. The
difference is storage, not workflow.
Creating Issues
Use /capture or the issues.py create script to
create a local issue. The same template structure applies: title,
description, type, priority, and estimate.
python3 .claude/skills/flydocs-workflow/scripts/issues.py create \
--title "Add dark mode support" \
--type feature \
--priority 2 \
--estimate 3 This creates a markdown file in the local issue store with the full issue template, including sections for description, acceptance criteria, and status history.
Issue file structure
# Add dark mode support
**Type:** feature
**Priority:** 2 (High)
**Estimate:** 3
**Status:** Triage
**Created:** 2026-03-29
## Description
(Add description here)
## Acceptance Criteria
- [ ] (Define criteria)
## Status History
- 2026-03-29: Created (Triage) Transitioning Issues
The same slash commands drive the workflow. Each transition requires a comment, just like the cloud tier. No silent moves.
| Command | Transition | What Happens |
|---|---|---|
/capture | Creates in Triage | New issue file created with template |
/refine | Triage → Ready | Spec completed, acceptance criteria defined |
/activate | Ready → Implementing | Assignment set, work begins |
/implement | Works in Implementing | Build according to spec, post progress |
/review | Implementing → Review | Code quality check against criteria |
/validate | Review → Testing/QA | User acceptance testing |
/close | Testing → Done | Issue archived, work complete |
Example transition
python3 .claude/skills/flydocs-workflow/scripts/issues.py transition \
LOCAL-1 IMPLEMENTING "Starting work — branch created, spec reviewed" The local backend updates the issue file's status and appends the transition comment to the status history section.
Status Flow
Local issues use the same status flow as the cloud tier. The lifecycle is identical.
Triage → Ready → Implementing → Review → Testing/QA → Done
↕ ↓
Blocked Cancelled Workflow Enforcement
All enforcement is active in local mode. The same hooks and gates that run in the cloud tier run locally.
- Stop gate: blocks the agent from finishing if work is incomplete or a transition was missed
- Transition comments: every status change requires a comment, enforced by the script
- Assignment rules: assignment is required before moving to Implementing
- Acceptance criteria: checkboxes live in the issue description, never in comments
- Session wrap: posts a project update summarizing progress at session end
Querying Issues
List and filter issues using the same commands as the cloud tier.
# List all active issues
python3 .claude/skills/flydocs-workflow/scripts/issues.py list --active
# List issues in a specific status
python3 .claude/skills/flydocs-workflow/scripts/issues.py list --status IMPLEMENTING
# Get full details for an issue
python3 .claude/skills/flydocs-workflow/scripts/issues.py get LOCAL-1 --fields full Limitations vs Cloud
Local mode provides the full workflow but without the connected layer. Here is what differs:
| Feature | Local | Cloud |
|---|---|---|
| Issue storage | Local markdown files | Synced with PM tool |
| Relay API | Not available | Active |
| Dashboard | Not available | Full portal access |
| Team sync | Not available | Shared workspace |
| Multi-project | Single project | Multiple projects |
| PM integration | Not available | Linear, Jira, and more |
| Workflow enforcement | Full | Full |
| Skills and hooks | Full | Full |
Next
- Upgrading to Cloud: migrate from local to cloud when you are ready
- Local Installation: install and configure for local-only use
- Commands: the full command reference for all workflow stages