/work Skill
Manages per-project work items via script calls. Most subcommands are a single bash call — run the script and show the output.
Route $ARGUMENTS
Match the first word of $ARGUMENTS to a command below. If no command matches but a name/slug is given, treat it as load. If $ARGUMENTS is empty, see No arguments.
create <name>
lore work create "<name>"
Show the script output. If it exits non-zero, show the error.
list
lore work list
Show the script output directly.
<name> (load/resume — default when name given but no command matches)
lore work show "<slug>"
Before calling the script, resolve the name to an exact slug using fuzzy matching (see below). Show the script output, then add a brief summary: current phase, next steps, and whether /spec is available.
update
Capture session progress — this requires judgment (session summarization).
- •Determine the work item: if one was loaded earlier in this conversation, use it. Otherwise, infer from git branch (
git rev-parse --abbrev-ref HEAD 2>/dev/null). If ambiguous, ask the user. - •Summarize the session — review conversation context for:
- •Focus: main topic
- •Decisions: key choices made
- •Progress: what was accomplished
- •Next: what to pick up next
- •Related:
[[knowledge:file#heading]]links if relevant
- •Present the summary for user review before writing.
- •Append timestamped entry to
notes.md:markdown## YYYY-MM-DDTHH:MM **Focus:** ... **Decisions:** ... **Progress:** ... **Next:** ... **Related:** ...
- •Update
_meta.jsonupdatedtimestamp. - •If
plan.mdexists and tasks were completed, check them off (- [ ]→- [x]). - •Run
lore work heal.
archive [name]
Resolve name to slug (fuzzy match), then confirm with user: "Archive '<title>'? This moves it to _archive/."
After confirmation:
lore work archive "<slug>"
Show the script output.
search <query>
lore work search "<query>"
Show the script output. For the top matches, briefly summarize the relevant context.
tasks [name]
Resolve name to slug (fuzzy match). If no plan.md exists, tell the user to run /spec first.
Check for pre-computed tasks first:
- •Look for
tasks.jsonin the work item directory ($WORK_DIR/<slug>/tasks.json) - •If
tasks.jsonexists:- •Compute SHA256 of
plan.md:shasum -a 256 "$WORK_DIR/<slug>/plan.md" | cut -d' ' -f1 - •Compare with
plan_checksumfield intasks.json - •Checksum matches: Load tasks directly from
tasks.json. For each task in each phase, executeTaskCreatewith the pre-computedsubject,description,activeForm, andblockedByfields. Report: "Loaded N tasks across M phases from tasks.json." - •Checksum mismatch: Warn user: "plan.md was edited after tasks.json was generated (checksum mismatch). Run
/work regen-tasks <slug>to regenerate tasks, or proceed with current tasks.json." Wait for user decision.
- •Compute SHA256 of
- •If
tasks.jsondoes not exist (backward compatibility): fall back to generating tasks from plan.md:Parse the JSON output. For each task object, executebashlore work tasks "<slug>"
TaskCreatewith thesubject,description, andactiveFormfields. Set up phase dependencies: Phase N+1 tasks getaddBlockedByreferencing Phase N task IDs.
Report: "Generated N tasks across M phases with dependencies."
regen-tasks [name]
Resolve name to slug (fuzzy match). Regenerate tasks.json from the current plan.md.
lore work regen-tasks "<slug>"
This calls generate-tasks.py on the work item's plan.md, overwrites tasks.json with a fresh checksum and timestamp, then runs lore work heal to update the work index.
Show the script output. Report: "Regenerated N tasks across M phases. New checksum: [first 8 chars]"
heal
lore work heal
Show the script output directly.
No arguments
Run list. Show the script output directly — no additional processing or summarization.
Fuzzy Matching (for load, archive, tasks, regen-tasks)
When a subcommand needs a slug but the user provided a name, resolve it:
- •Exact slug — exists in
_work/ - •Substring on title — case-insensitive unique match
- •Substring on slug — unique match
- •Tag match — matches a tag value
- •Branch match — current git branch matches a work item's
branches - •Recency — most recently updated active item
- •Ambiguous — list candidates, ask user to pick
Read _work/_index.json for resolution. Scripts accept exact slugs only.