中文文档 | English
Track code comments as real tasks, style them richly, and export AI-ready context without leaving VS Code.
TaskVision turns TODO-style comments into a task board inside the Explorer. It still does the classic work well — highlight tags, show them in a tree, jump back to code — but now it also supports inline task states, priority and note metadata, AI context export, status reports, and state-aware filtering.
code --install-extension A-Znk.taskvisionImportant
TaskVision 2.0 uses a four-channel highlight model. Styling scopes are now split into colorType, glowType, glassType, and fontType.
|
Task Management
|
AI Integration
|
TaskVision supports these built-in task states:
| State | Meaning | State | Meaning |
|---|---|---|---|
todo |
Planned work that should be addressed | review |
Implemented, waiting for confirmation |
doing |
Work currently in progress | done |
Completed |
blocked |
Waiting on an external dependency | wontdo |
Explicitly declined |
paused |
Intentionally deferred | idea |
Observation or future direction |
// TODO [todo] refactor cache invalidation
// TODO [blocked] waiting for the API schema
// TODO [review] retry flow rewritten, pending QA
// NOTE [idea] split parser and rendererCompatibility rules:
| Shorthand | Resolves to |
|---|---|
[ ] |
todo |
[x] / [ x] |
done |
NOTE / IDEA |
idea |
plain TODO (no state) |
todo |
TaskVision supports a full task workflow directly from the tree:
| Action | What it does |
|---|---|
| Set Task Status | Rewrites the inline [status] token in source |
| Set Task Priority | Stores priority in .taskvision/tasks-meta.json |
| Edit Task Note | Stores extra context for summaries and handoff |
| Add Missing Inline Statuses | Backfills status tokens for visible tasks without one |
| Filter By Status | Filters the tree by one or more states |
| Clear Status Filter | Resets the state filter |
Note
- Bulk backfill works on the current visible scope.
- When triggered from a context menu (folder / file / tag / todo), only that subtree is affected.
- Generated AI files are ignored by scans, so opening them will not pollute the tree.
TaskVision exports a stable handoff bundle for any external coding assistant:
.taskvision/
├── ai-context.md # Human-readable task list
├── ai-context.json # Machine-readable task data
└── ai-status-report.md # Status change summary
Exported data includes: workspace root, export scope, allowed statuses & priorities, task IDs, file paths, lines, status, priority, notes, source excerpts, and workflow rules.
Recommended AI Contract
| Rule | Description |
|---|---|
| Edit source only | Only modify inline status tokens in source comments |
Prefer review |
Use review over done when verification is incomplete |
| Hands off metadata | Do not edit .taskvision/tasks-meta.json directly |
| Report changes | Report which task IDs changed and why |
TaskVision uses four independent styling channels:
┌─────────────────────────────────────────────────┐
│ colorType → where text color applies │
│ glowType → where neon glow applies │
│ glassType → where background glass applies │
│ fontType → where weight / italic / deco │
└─────────────────────────────────────────────────┘
Supported scopes: tag · text · tag-and-comment · text-and-comment · tag-and-subTag · line · whole-line · none
Scheme rules:
| Scheme | Effect |
|---|---|
"neon" |
Enables glow preset |
"glass" |
Enables glass preset |
"neon+glass" |
Enables both |
schemecontrols presets only — it no longer decides scope.
Add a minimal setup to settings.json:
Then try these comments:
// TODO [todo] ship the new onboarding
// TODO [blocked] waiting for legal copy
// TODO [review] shortcut handler updated
// NOTE [idea] split command and render layers| Setting | Default | Purpose |
|---|---|---|
taskvision.tree.showStatusPrefix |
true |
Prefix default labels with [status] |
taskvision.tasks.defaultPriority |
normal |
Default priority for tasks without metadata |
taskvision.aiContext.outputDir |
.taskvision |
Output folder for AI context files |
taskvision.aiContext.respectCurrentFilters |
true |
Export only the currently visible tree scope |
Why did my generated AI context stop showing up in the tree?
TaskVision intentionally excludes the output folder from scans to prevent self-reference loops.
Why did a task get a status even though I never wrote one?
TaskVision derives a default state from the tag. Use
Add Missing Inline Statuses if you want those defaults written back into source.
Why do appearance changes sometimes seem to ignore user settings?
Workspace settings in
.vscode/settings.json override global settings, and TaskVision writes appearance changes to workspace settings first when possible.
src/
├── extension.js # Main extension entry
├── tree.js # Tree provider
├── taskState.js # Task state model
├── taskMetaStore.js # Task metadata store
└── aiContext.js # AI export renderer
MIT License © 2026 TaskVision
