From accelerator
Updates status, priority, tags, parent, title, or any frontmatter field on existing work items. Allows arbitrary changes without transition enforcement.
npx claudepluginhub atomicinnovation/accelerator --plugin acceleratorThis skill is limited to using the following tools:
!`${CLAUDE_PLUGIN_ROOT}/scripts/config-read-context.sh`
Updates fields like status, priority, title, tags, dependencies in existing task Markdown files using Glob, Read, and Edit tools. Use for modifying task properties via natural language input.
Updates existing task fields like status, priority, title, tags, dependencies using taskmd CLI for supported fields or direct file edits with Read/Edit tools. Use when modifying task properties.
Interactively refines work items by decomposing into children, enriching with codebase context, sharpening acceptance criteria, sizing, or linking dependencies. Use after drafting, before planning.
Share bugs, ideas, or general feedback.
!${CLAUDE_PLUGIN_ROOT}/scripts/config-read-context.sh
!${CLAUDE_PLUGIN_ROOT}/scripts/config-read-skill-context.sh update-work-item
!${CLAUDE_PLUGIN_ROOT}/scripts/config-read-agents.sh
If no "Agent Names" section appears above, use these defaults: accelerator:reviewer, accelerator:codebase-locator, accelerator:codebase-analyser, accelerator:codebase-pattern-finder, accelerator:documents-locator, accelerator:documents-analyser, accelerator:web-search-researcher.
Work items directory: !${CLAUDE_PLUGIN_ROOT}/scripts/config-read-path.sh work meta/work
The following template defines the work item schema and field defaults.
Hint values are extracted at runtime via work-item-template-field-hints.sh.
!${CLAUDE_PLUGIN_ROOT}/scripts/config-read-template.sh work-item
You are tasked with updating frontmatter fields on an existing work item. This skill supports status transitions, priority changes, tag management, parent assignment, title changes, and any other frontmatter field edit. No status transition logic is enforced — the user decides what's valid. A future feature may add user-configurable transition graphs; this skill predates that feature.
Parse the first argument and resolve via the configured pattern's resolver:
${CLAUDE_PLUGIN_ROOT}/skills/work/scripts/work-item-resolve-id.sh <argument>
The resolver respects work.id_pattern and accepts paths, full IDs
(PROJ-0042), and bare numbers (legacy or pattern-shape).
"Unrecognised input '<argument>' — pass a path, a full ID, or a bare number." and exit."No work item matching <argument>." and
exit.Read the target file. Extract frontmatter between --- delimiters.
---: print "Error: <filename> has no YAML frontmatter. Add a '---' line as the first line of the file, then re-run." and exit. Use the resolved filename, not a glob pattern.--- opens but never closes: print "Error: <filename> has unclosed YAML frontmatter. Add a '---' line after the last frontmatter key, then re-run." and exit.Parse field/value pairs from the frontmatter. Preserve the original key order for diff rendering in Step 4.
Parse the remaining arguments (after the work item reference) as one or more field operations. If no operation arguments were provided, show the current frontmatter and ask which field(s) to change.
Arguments are parsed left-to-right using these rules:
add tag <value> / remove tag <value> — delegate to
work-item-update-tags.sh:
${CLAUDE_PLUGIN_ROOT}/skills/work/scripts/work-item-update-tags.sh <path> add|remove <value>
The script handles parsing, mutation, canonical re-serialisation, and
no-op detection. If it exits 1 (e.g. block-style tags), print the
stderr message and exit without writing. If it prints no-change,
report "No change needed" and exit cleanly.
<field> <value> where <field> is a known frontmatter field name
from the template (e.g. status ready, priority high, parent 0001,
title "New title"). The next token after the field name is consumed
as the value. Quoted strings are treated as a single value.
A known field name as the last token with no following value
triggers hint elicitation. Call work-item-template-field-hints.sh:
${CLAUDE_PLUGIN_ROOT}/skills/work/scripts/work-item-template-field-hints.sh <field>
Present the returned values as examples: "Common statuses: draft, ready, in-progress, review, done, blocked, abandoned. What would you like to set?" Accept any value the user provides, including values not in the hint list. If the script returns no hints, skip the hint list and simply ask for a value.
Anything that does not match rules 3.1–3.3 (e.g. "mark as done",
"set priority to high", "add backend tag") — interpret into one of the
structured shapes above and echo the interpretation explicitly:
"Interpreted as: status → done" so the user can correct before
confirming.
If the token sequence is ambiguous, ask the user for clarification rather than guessing. Present the possible interpretations and let the user choose.
work_item_id — hard-blocked: print "Error: work_item_id cannot be changed — the filename prefix is the authoritative work item ID. To renumber a work item, rename the file (e.g. jj mv) and update work_item_id to match. The work_item_id field is always a quoted string." No diff, no write, no confirmation prompt.
date — warned: print "date records the work item's creation time and is typically not edited. Proceed anyway? (y/n)". If the user confirms,
proceed through the normal diff-and-confirm flow. If declined, print
"No changes applied." and exit.
parent — canonicalised: normalise the value via
work-item-common.sh:wip_canonicalise_id before writing. The
canonicaliser produces the full ID under the configured pattern,
quoted as a string. Examples:
{number:04d}: 1 → "0001", 42 → "0042".{project}-{number:04d} with default_project_code: PROJ:
1 → "PROJ-0001", PROJ-0042 → "PROJ-0042",
0042 (legacy) → "PROJ-0042" (canonical form).If the computed new value equals the current value:
"No change needed: <field> is already '<value>'." and exit. No diff, no write."status is already 'ready' — skipping"), exclude it from the diff, and continue with
the remaining changes. If ALL operations are no-ops, print the
combined "no change needed" message and exit.If a value is not one of the template's default hints, add a
single-line informational note above the diff: "Note: '<value>' is not one of the template's default statuses; proceeding anyway." No
enforcement — the user confirms, the skill writes.
Produce a diff showing only the lines that change, before and after:
-status: draft
+status: ready
-priority: medium
+priority: high
When a field that has a corresponding body label changes, scan the body
for the first line outside any code fence (between ``` delimiters)
whose text starts with the matching label. If found, include the body
line change in the diff preview. If no such line exists, do not inject
one.
Field-to-label mapping:
status ↔ **Status**: type ↔ **Type**: priority ↔ **Priority**: author ↔ **Author**: Convert the frontmatter value to display text using this deterministic
rule: replace hyphens with spaces and apply title case (capitalise each
word, keeping small words lowercase unless they open the phrase). Small
words: a, an, and, as, at, but, by, for, in, nor, of, on, or, so, the, to, up, vs, yet. Single words are simply capitalised
(draft → Draft). Multi-word hyphenated values become spaced title
case (waiting-on-legal → Waiting on Legal,
in-progress → In Progress).
If the title is changing, include the body H1 change in the diff too.
The H1 is the first # line in the body after the frontmatter.
Preserve any prefix before the first : in the existing H1 (e.g.
# 0042: Old title or # ADR Work item: Old title) and substitute
the new title after the prefix:
-# 0042: Old title
+# 0042: New title
If the existing H1 has no : separator, replace the full heading text
after # with the new title. Only the first H1 is touched.
Print the diff and "Apply these changes? (y/n)". Wait for user
response. Accepted affirmatives: case-insensitive y or yes. On n
or no: print "No changes applied." and exit without writing. On any
other input: re-prompt once. If the second response is still
unrecognised, treat as decline.
When a field does not exist in the target work item's frontmatter (e.g.
adding priority: to a legacy work item), the diff preview shows a pure
addition: +priority: high.
Apply edits using the Edit tool:
--- delimiter.If a body sync Edit fails after frontmatter was already written, print:
"Warning: frontmatter updated but body sync failed for **<Label>**: — check the file manually. To revert, run: jj restore <filename>". Do
not attempt to revert the frontmatter change.
After writing, print a confirmation:
Updated <filename>:
status: draft → ready
work-item-template-field-hints.sh, present them as
examples. Accept any value the user provides.work_item_id is immutable: hard-block edits with an error pointing
to file rename (jj mv) as the correct approach.date is guarded: warn before editing the creation timestamp;
allow if the user confirms.work-item-update-tags.sh. The script owns parsing, mutation, and
canonical re-serialisation. If the script exits 1 (block-style),
print stderr and exit. If it prints no-change, report "No change
needed" and exit.**Status**:, **Type**:, **Priority**:, or
**Author**:. Do not inject labels into work items that lack them.
Do not update occurrences inside code fences.work-item-read-field.sh phrasing.type: adr-creation-task, status: todo) are fully
updatable. No migration is offered or required.work_item_id edits are hard-blocked. Point the
user to jj mv + manual frontmatter edit for renumbering.!${CLAUDE_PLUGIN_ROOT}/scripts/config-read-skill-instructions.sh update-work-item