PM Tools
Navigator can tie its task docs to an external project-management tool, so a
ticket flows in as an implementation plan and the result flows back as a comment
or closed issue. If you don’t use a tracker, Navigator works fully on local
Markdown docs — "none" is the default.
Supported tools
project_management | How it connects | What’s wired |
|---|---|---|
"linear" | Linear MCP server | Read issue, comment back on the issue |
"github" | gh CLI | Read issue, comment / close via gh issue |
"jira" | Jira REST API | Read ticket, update via API |
"gitlab" | glab CLI | Read issue, update via glab |
"none" | — | Local .agent/tasks/ docs only (default) |
GitHub is the most directly exercised path — nav-task and nav-pilot both
shell out to gh issue (comment, create, close). Linear connects through its
MCP server. Jira and GitLab are wired through their respective API/CLI; confirm
auth (glab auth status, Jira token) before relying on them.
How tasks flow
The PM tool and .agent/tasks/ stay in sync at two points:
PM ticket ──read──▶ .agent/tasks/TASK-XX-<slug>.md (nav-task generates plan)
│
implement
│
.agent/tasks doc ──comment/close──▶ PM ticket (finish protocol)- The PM ticket is the source of intent; the task doc is the working spec and historical record.
nav-tasknames the doc usingtask_prefix, so set the prefix to match your tracker’s IDs when you want them aligned (e.g.GH-123).- On completion, the configured tool gets a comment linking the implementation
plan, or the issue is closed — Linear via
create_comment, GitHub viagh issue comment.
Configuration
{
"project_management": "github",
"task_prefix": "GH"
}Set project_management to your tracker and task_prefix to the ID scheme you
want for generated docs. Leave both unset (or "none" / "TASK") for a pure
local-docs flow.
Example
User: "Start TASK from GH-142"
→ gh issue view 142 (read ticket)
→ nav-task writes .agent/tasks/GH-142-rate-limiting.md
→ implement against the plan
→ gh issue comment 142 -b "Implementation plan: .agent/tasks/GH-142-rate-limiting.md"