Token导航 LogoToken导航TokenDH.com
研究检索敏感数据github未标认证来源可访问clear审计通过

jj-todo-workflowjj 待办事项工作流程

Agent Skill

jj-todo-workflow 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

1,098

周安装

44

GitHub Stars

24

下载量

356
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:jj-todo-workflow(jj 待办事项工作流程)
来源仓库:https://github.com/ypares/agent-skills
仓库路径:skills/jj-todo-workflow
安装命令:
npx skills add https://github.com/ypares/agent-skills --skill jj-todo-workflow
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/ypares/agent-skills --skill jj-todo-workflow

简介

用于查找、检索和筛选相关信息,支持关键词和任务场景定位。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中快速获取候选结果。
  • 结合来源仓库和 README 核验具体用法,确保功能匹配需求。
  • 安装命令:npx skills add https://github.com/ypares/agent-skills --skill jj-todo-workflow。
  • 建议确认权限范围和维护状态,避免触发不必要的联网或文件操作。

SKILL.md

JJ TODO Workflow

The core idea is to use a DAG of empty revisions as TODO markers, representing tasks to be done, and then come back later to edit these revisions to actually do the tasks. This enables structured development with clear milestones. Revision descriptions (i.e. commit messages) act as specifications for what to implement. JJ makes it easy to create such a structure, and then to fill each revision afterwards.

For more information on JJ basics, see the working-with-jj skill. We reuse scripts from that skill here.

This skill talks about two roles: Planners (who lay out the empty revisions and their specs) and Workers (who implement them). Depending on the situation, you may be acting as just Planner, just Worker, or both. It is better to have a good idea of the whole process, but section titles make it explicit which role is most concerned by each section.

Quick Start (Planners & Workers)

Here's a complete cycle from planning to completion (full paths to helper scripts not written):

# 1. Plan: Create a simple TODO chain
jj-todo-create @ "Add user validation" "Check email format and password strength"
# Created: abc123 (stays on current @)

jj-todo-create abc123 "Add validation tests" "Test valid/invalid emails and passwords"
# Created: def456 (@ still hasn't moved)

# 2. Start working on first TODO
jj edit abc123
jj-flag-update @ wip   # Now [task:wip]

# ... implement validation ...

# 3. Verify ALL acceptance criteria met
make test  # Or equivalent in your project

# 4. Ask to move to next task
jj-todo-next
### ... review current specs (to ensure compliance) and next possible TODOs ...

# 5. Once we're sure everything is properly done, move to next TODO
jj-todo-next --mark-as done def456   # Marks abc123 as [task:done], starts def456 as [task:wip]

That's it! Empty commits as specs, edit to work on them, jj-todo-next --mark-as done <next-step> when FULLY complete.

Status Flags (Planners & Workers)

We use description prefixes to track status at a glance. The [task:*] namespace makes them greppable and avoids conflicts with other conventions.

Here are the ONLY allowed status flags:

FlagMeaning
[task:draft]Placeholder created, needs full specification
[task:todo]Not started, empty revision with complete specs
[task:wip]Work in progress
[task:blocked]Waiting on external dependency
[task:standby]Awaits some decision (broken and hard to fix, usefulness called into question, etc.)
[task:untested]Implementation done, but not tested enough to be validated
[task:review]Needs review (tricky code, design choice)
[task:done]Complete, all acceptance criteria met

This order is indicative: not every task has to go through all these steps, and not necessarily in the order above.

NOTE: In previous versions of this Skill, standby was called "broken". It got renamed to make this status more broadly applicable.

When to Use draft vs todo (Planners)

Use [task:draft] when:

  • Creating placeholder tasks to establish the DAG structure
  • The task title/concept is clear but details aren't worked out yet
  • You want to defer writing full acceptance criteria
  • Planning at a high level before diving into specifics

Use [task:todo] when:

  • The task has complete specifications (context, requirements, acceptance criteria)
  • A Worker could pick it up and implement it without clarification
  • All dependencies and approach are clearly documented

Updating Flags (Workers & Planners)

jj-flag-update @ draft     # Mark as needing specification (Planners)
jj-flag-update @ todo      # Mark as ready to work on (Planners)
jj-flag-update @ wip       # Start work (Workers)
jj-flag-update @ untested  # Implementation done, tests missing (Workers)
jj-flag-update @ done      # Complete (Workers)

Finding Flagged Revisions (Planners & Workers)

jj-find-flagged                     # All tasks
jj-find-flagged draft               # Only [task:draft]
jj-find-flagged todo                # Only [task:todo]
jj-find-flagged wip                 # Only [task:wip]
jj-find-flagged done                # Only [task:done]

# Manual - all tasks
jj log -r 'description(substring:"[task:")'

# Incomplete tasks only (excludes done)
jj log -r 'description(substring:"[task:") & ~description(substring:"[task:done]")'

Basic Workflow (Planners & Workers)

1. Plan: Create TODO Chain (Planners)

# Create linear chain of tasks
jj-todo-create @ "Task 1: Setup data model" "...details..."
jj-todo-create <T1-id> "Task 2: Implement core logic" "..."
jj-todo-create <T2-id> "Task 3: Add API endpoints" "..."
jj-todo-create <T3-id> "Task 4: Write tests" "..."

2. Work: Edit Each TODO (Workers)

# Read the specs
jj-show-desc <task-id>    # BEWARE: Script from the `working-with-jj` skill

# Start working on it
jj edit <task-id>
jj-flag-update @ wip

# ... implement ...

# Mark progress
jj-flag-update @ untested

3. Complete and Move to Next (Workers)

jj-todo-next script is there to smooth out the "transition to next task" process.

Without args

  • Print out current task's description so you can review and make sure everything is implemented as planned
  • Print out next possible task(s)
# Review current specs and see what's next
jj-todo-next
# Shows:
#   📋 Current task specs for review:
#   ─────────────────────
#   ...
#   ─────────────────────
#
#   Current task status: [task:wip]
#   Mark as [task:done] only if FULLY COMPLIANT with specs above.
#
#   ✅ Available next tasks:
#     abc123  [task:todo] Feature B
#     def456  [task:todo] Feature C
#
#   ⚠️ Child tasks with unmet dependencies:
#     xyz789  [task:todo] Integration
#             Blocked by: abc123

With args

  • Update the flag of current task
  • Move (jj edit) to the next task
  • Update new task's flag to [task:wip]
# Actually mark current done and start editing next:
jj-todo-next --mark-as done abc123
# Does the `jj edit abc123` and shows its description

Planning Parallel Tasks (DAG) (Planners)

Create branches that can be worked independently. Example:

# Linear foundation
jj-todo-create @ "Task 1: Core infrastructure"
jj-todo-create <T1-id> "Task 2: Base components"

# Parallel branches from Task 2
jj-parallel-todos <T2-id> "Widget A" "Widget B" "Widget C"

# ... edit their descriptions to add more details ...

# Merge point (all three parents must complete first)
jj new --no-edit <A-id> <B-id> <C-id> -m "[task:todo] Integration of widgets\n\n..."

Result:

          Integration
       /      |        \
   Widget A  Widget B  Widget C
       \      |        /
          Task 2: Base
              |
          Task 1: Core

No rebasing needed - parents specified directly!

Writing Good TODO Descriptions (Planners)

Structure

Short title (< 50 chars)

## Context
Why this task exists, what problem it solves.

## Requirements
- Specific requirement 1
- Specific requirement 2

## Implementation notes
Any hints, constraints, or approaches to consider.

## Acceptance criteria
How to know when this is FULLY DONE (not just "good enough"):
- Criterion 1
- Criterion 2

Important: Acceptance criteria define when you can mark as [task:done]. Be specific and testable.

The description should overall be as self-sufficient as possible. It should provide an agent with little context to have every information needed to start working without having to take last-minute decisions that should have been specified before.

Avoid redundancy by linking whenever possible to:

  • pre-existing spec documents
  • relevant examples in the codebase

When including such links, avoid unstable references like line numbers which can become invalid with simple reformattings. Prefer e.g. section names, or label refs if linking to a spec in a format that supports them (like Markdown #stuff, LaTeX \ref{stuff} or Typst @stuff), or function/class names when referring to code.

Example

Implement user authentication

## Context
Users need to log in to access their data. Using JWT tokens
for stateless auth.

## Requirements
- POST /auth/login accepts email + password
- Returns JWT token valid for 24h
- POST /auth/refresh extends token
- Invalid credentials return 401

## Implementation notes
- Use bcrypt for password hashing (see src/auth/admin.py::AdminLogin::hash_passwd which already uses it)
- Store refresh tokens in Redis
- See auth.md (#about-tokens) for token format spec

## Acceptance criteria
- All auth endpoints return correct status codes
- Tokens expire correctly
- Rate limiting prevents brute force

AI-Assisted TODO Workflow

TODOs work great with AI sub-agents:

  • Supervisor Agent does the initial planning and creates the graph of TODO revisions
  • Supervisor Agent ensures all [task:draft] tasks are filled in and marked as [task:todo] before workers start
  • Sub-agent(s) just "run" through the graph, following the structure and requirements, implementing each revision sequentially
  • Sub-agents should only work on [task:todo] tasks (with complete specs), never on [task:draft] tasks
  • Supervisor Agent can review the diffs and notes, and switch back tasks to e.g. [task:wip] or [task:draft] when necessary

IMPORTANT: Sub-agents MUST work sequentially through tasks, not in parallel. Running multiple agents concurrently on the same repository causes conflicts as they fight over the working copy (@).

IF parallel work is truly needed, you must use JJ workspaces (equivalent to git worktrees) to isolate each agent. See references/parallel-agents.md for detailed guide on using JJ workspaces for parallel execution. However, do not create workspaces unless the human user explicitly agrees to it, as:

  • it adds significant complexity,
  • this part of the skill is still beta.

Whatever the case, you will have to choose between giving ONE TODO to an agent, or a SEQUENCE of TODOs. When assigning just ONE todo to a sub-agent, it is better to abstract JJ away from them, so they do not have to load this skill. Prepare the scene for them by jj edit-ing into the correct revision, and deal with general JJ bookkeeping yourself. This way they can truly focus on the task they are given, and not be distracted by JJ specifics.

When to Stop and Report (Workers)

Follow the prescribed workflow only. If you encounter any issues, STOP and report to the user, notably if:

  • Made changes in wrong revision
  • Notice that previous work needs fixes and should be amended
  • Uncertain about how to proceed
  • Dependencies or requirements unclear

DO NOT attempt to fix issues using any JJ operation not explicitly present in this workflow. Let the user handle recovery operations. Your job is to follow the process or report when you can't.

Documenting Implementation Deviations (Workers)

When implementation differs from specs, whatever the reason DOCUMENT IT and JUSTIFY IT:

# After implementing, add notes
jj desc -r @ -m "$(jj-show-desc @)

## Post-Implementation notes
- Used argon2 instead of bcrypt. That's because contrary to admin case, here we also needed to comply with...
- Added /auth/logout endpoint. Not in original spec but necessary because...
- Set Rate limit to 5 attempts per minute. Was unspecified, had to make a choice.
"

REMINDER: jj-show-desc if from the working-with-jj skill.

This creates an audit trail of decisions.

Tips

Keep TODOs Small (Planners)

Each TODO should be completable in one focused session. If it's too big, split into multiple TODOs.

Use --no-edit Religiously (Planners & Workers)

When creating TODOs, always use jj-todo-create or jj new --no-edit. Otherwise @ moves and you lose your place.

Completion Discipline: No "Good Enough" (Workers)

Do NOT mark a task as done unless ALL acceptance criteria are met.

Mark as done when:

  • Every requirement implemented
  • All acceptance criteria pass
  • Tests pass (if applicable)
  • No known issues remain

Never mark as done when:

  • "Good enough" or "mostly works"
  • Tests failing
  • Partial implementation
  • Workarounds instead of proper fixes
  • Planning to "come back to it later"

If incomplete:

  • Use --mark-as review if needs feedback
  • Use --mark-as blocked if waiting on external dependency
  • Use --mark-as untested if some parts could not be tested for some reason
  • Use --mark-as standby for any other reason
  • Stay on [task:wip] and keep working
# FIRST: Verify the work
make check        # or: cargo build, pnpm tsc, uv run pytest

# ONLY if all checks pass:
jj-todo-next --mark-as done <next-id>

Check Dependencies Before Starting (Workers)

If working with parallel branches or complex DAGs, when starting on a new TODO:

# Check what a task depends on (its immediate ancestors)
jj log -r 'ancestors(<rev-id>,2)'  # 2 for parents, 3 for parents + grandparents, etc.

# Check what depends on a task (its immediate descendants)
jj log -r 'descendants(<rev-id>,2)'  # 2 for children, 3 for children + grandchildren, etc.

If any dependency (ancestor) has a [task:*] flag which is still draft, todo, wip or blocked: STOP AND WARN THE USER. Wait for their approval before continuing.

Note: jj-todo-next checks dependencies automatically to indicate which children tasks aren't ready, but it's just here to smooth things out, not to abstract from jj. Inspect the graph yourself with jj log whenever needed.

Helper Scripts (Planners & Workers)

Helper scripts in scripts/. Invoke with full path to avoid PATH setup.

ScriptPurpose
jj-todo-create [--draft] <PARENT> <TITLE> [DESC]Create TODO (stays on @). Use --draft for placeholder tasks
jj-parallel-todos [--draft] <PARENT> <T1> <T2>...Create parallel TODOs. Use --draft for placeholder tasks
jj-todo-next [--mark-as STATUS] [REV]Review specs, check dependencies, mark & optionally move
jj-flag-update <REV> <TO_FLAG>Update status flag (auto-detects current)
jj-find-flagged [FLAG]Find flagged revisions

Additional useful scripts from the working-with-jj skill:

ScriptPurpose
jj-show-desc [REV]Print description of a revision

References

Advanced topics and detailed guides:

  • references/parallel-agents.md - Using JJ workspaces for parallel agent execution (Planners)

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Claude Code

26.28%
按下载量换算94

windsurf

21.92%
按下载量换算78

trae

19.51%
按下载量换算69

OpenCode

13.81%
按下载量换算49

Codex

7.99%
按下载量换算28

Antigravity

3.59%
按下载量换算13

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

来源信息

继续浏览同类 Skills