kanban-workflow
Comprehensive guide for using YYLO Ledger task management. Covers all commands (create, list, search, get, mark, update, archive, deps, ready, order…
它会碰到什么
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
YYLO Ledger CLI Reference
Use yy ledger for all commands. YYLO 0.2.2 supports the exact yylo-ledger 0.2.0 task CLI. yy kanban is a labelled compatibility alias for the same controller-routed task runtime.
Supported task contract
- The public Ledger 0.2.0 surface is task-oriented: create, get, update, mark, archive, list/search, dependencies, ordering, history, doctor, compatibility, conversion, rollback, and cold archive operations.
- Do not advertise
record,wiki,workflow, orartifactnamespaces unless the installedyy ledger --helpexplicitly provides them in a future supported release. - Read current task state before mutation, preserve mutation receipts where offered, and never bypass controller routing or lifecycle state with direct file edits.
- Normal discovery is hot-only unless an explicit cold-archive command is used.
Opt-in cross-project routing
Cross-project access is disabled by default. The source .juno_task/config.json must set kanbanRegistry.enabled: true and explicitly list allowedProjects; environment overrides are YYLO_LEDGER_REGISTRY_ENABLED and YYLO_LEDGER_REGISTRY_ALLOWED_PROJECTS. Register with yy ledger project add ALIAS --path /absolute/project, then route any command with --project ALIAS. The destination wrapper/runtime remains authoritative, and routing failures never fall back to the source board.
Legacy Task compatibility commands
CREATE — Add a new task
yy ledger create "Task description here" --status backlog --tags feature,backend
Options: --status (backlog|todo|in_progress|done), --tags (comma/space-separated), --blocked-by (task IDs), --related-tasks (task IDs)
LIST — Browse tasks with summary stats
yy ledger list --limit 5 --sort asc
yy ledger list --status todo --sort asc
yy ledger list --status todo,in_progress --limit 10
SEARCH — Find tasks by criteria
yy ledger search --status todo --tag backend --limit 10
yy ledger search --body "OAuth" --open
yy ledger search --commit abc123
Filters: --status, --tag, --body, --response, --commit, --open (no agent_response), --recent, --exclude (exclude tags)
GET — Full task details (including dependency info and related task details)
yy ledger get TASK_ID
MARK — Update status with required response message
yy ledger mark in_progress --id TASK_ID --response "Starting work on this"
yy ledger mark done --id TASK_ID --response "Completed: implemented X, tested Y" --commit abc123def
yy ledger mark todo --id TASK_ID --response "Reopening: found regression"
Required: --id and --response. Optional: --commit (recommended for done).
UPDATE — Modify task fields
yy ledger update TASK_ID --status todo --tags backend,urgent
yy ledger update TASK_ID --commit abc123def
yy ledger update TASK_ID --response "Additional context"
ARCHIVE — Soft delete (preserves data, sets status to archive)
yy ledger archive TASK_ID
Immutable cold archive packs
Normal list, search, ready, and order are deliberately hot-only. Exact get TASK_ID transparently resolves a hot task or a read-only archived task; use history TASK_ID explicitly for its ledger. Discover cold tasks only with bounded, projected archive-search output:
yy ledger archive-search --tag backend --before 2026-01-01 --limit 20 --projection metadata
Before archive maintenance, preflight the installed version/help and obtain explicit owner authorization. The repository and index must be clean, and reports must be durable new paths outside the repository:
yy ledger --version
yy ledger archive-pack plan --status done,archive --older-than 90d --max-tasks 1000 --target-bytes 26214400 --hard-max-bytes 47185920 --report /external/receipts/archive-plan.json
# Independently inspect selected IDs, revisions, source HEAD, policy, and plan hash.
yy ledger archive-pack create --plan /external/receipts/archive-plan.json --report /external/receipts/archive-create.json
yy ledger archive-pack doctor
yy ledger doctor
A stale plan or selected-task/worktree conflict must fail closed: discard the plan, resolve the conflict, and plan again. Never automate archival, edit/append packs or manifests, restore/reopen an archived ID, use force/lossy controls, or enumerate archive files directly. Create follow-up work as a new hot task related to the archived ID. Production archival, push/deploy, and post-deploy E2E each require separate authorization; agents must not infer it from implementation approval.
Dependency Management
DEPS — View, add, or remove task dependencies
# View dependency info (blockers, dependents, priority score)
yy ledger deps TASK_ID
# Add blockers (TASK_ID cannot start until BLOCKER1 and BLOCKER2 are done)
yy ledger deps add --id TASK_ID --blocked-by BLOCKER1 BLOCKER2
# Remove a blocker
yy ledger deps remove --id TASK_ID --blocked-by BLOCKER1
Cycle detection prevents circular dependencies automatically.
READY — Tasks with all blockers satisfied (safe to work on)
yy ledger ready
yy ledger ready --tag backend --limit 5
Returns tasks where status is backlog/todo/in_progress AND all blocked_by tasks are done/archive.
ORDER — Topological sort of open tasks respecting dependencies
yy ledger order
yy ledger order --scores
Use for determining safe parallel execution order.
Body Markup for Inline Dependencies
Declare dependencies and relations directly in task body text:
[blocked_by]TASK_ID[/blocked_by] — This task is blocked by TASK_ID
[blocked_by]ID1, ID2[/blocked_by] — Blocked by multiple tasks
[task_id]RELATED_ID[/task_id] — Reference a related task
[task_id]ID1 ID2[/task_id] — Multiple related tasks
These are parsed automatically when the task is created/updated.
Merge (Multi-Directory Consolidation)
When tasks get scattered across subdirectories:
# First produce and review a deterministic plan
yy ledger merge ./sub1/.juno_task ./sub2/.juno_task --into ./.juno_task \
--dry-run --plan-file /external/ledger-merge-plan.json
# Apply only that reviewed plan and retain its receipt
yy ledger merge ./sub1/.juno_task ./sub2/.juno_task --into ./.juno_task \
--apply-plan /external/ledger-merge-plan.json \
--receipt-file /external/ledger-merge-receipt.json
Output Formats
All commands support: -f json, -f ndjson (default), -f xml, -f table
Add --raw for compact output. Add -p for pretty print.
Best Practices
- Task sizing: Create tasks small enough to complete in one iteration without filling the context window
- Status flow: backlog → todo → in_progress → done (or archive for abandoned tasks)
- Always include
--responsewhen usingmark— document what you did and how you tested it - Attach commits: Use
--commit HASHwhen marking done, thenupdate TASK_ID --commit HASHto link the git history - Use
readybefore starting work to find unblocked tasks - Use
order --scoresto plan parallel execution pipelines - Use
[blocked_by]markup in task body when creating tasks that depend on others - Use
[task_id]markup in task body to cross-reference related tasks - Use
get TASK_IDto see full task details including resolved dependency and related task info - Concurrent features are supported — start each selected task with
yy task start TASK_ID; each gets a dedicated product worktree, whileyy mergeserializes only target updates
Canonical Controller Routing
YYLO Ledger mutation resolves the controller in this order: explicit JUNO_TASK_ROOT, repository-local registration, then the current project root. Diagnose before orchestration with .juno_task/scripts/controller_resolver.py --cwd "$PWD" --operation kanban. The resolver may bootstrap or idempotently confirm a registration, but changing an existing controller requires yy migrate registration plan followed by a separately authorized apply. Explicit/registered path or branch errors fail closed—YYLO Ledger never switches Git branches or falls back silently.
Run YYLO Ledger and workflows from the controller. A task checkout may implement/test but routes task/session writes to that controller. An integration-owner checkout stays clean and refuses Kanban/orchestration/session writes in strict mode; launch from the controller and pass the product checkout separately as TASK_ROOT.
Environment Variables
JUNO_TASK_ROOT— Explicit canonical controller/task-storage root (not the productTASK_ROOT)JUNO_CONTROLLER_BRANCH— Expected controller branch for environment-based routingJUNO_WORKSPACE_ROLE—controller,task, orintegration-ownerJUNO_WORKSPACE_ENFORCEMENT—off,warn, orstrictJUNO_DEBUG=true— Show diagnostic messagesJUNO_VERBOSE=true— Show informational messagesJUNO_KANBAN_LIST_BODY_TRUNCATE_CHARS=N— Override list body truncation (default: 1200)
$ARGUMENTS
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。
它属于哪个仓库
plugins/yylo-dev/yylo/.claude/skills/kanban-workflow/SKILL.md