Automated summary
Writes well-structured work items with categorized acceptance criteria and progress tracking via journal entries.
Strengths
- Standardized format with category prefixes for automatic changelog generation.
- Separates scope, progress, and durable learnings clearly.
- Links to external artifacts (RFCs, notes).
- Supports marking criteria done and moving work items through states.
Limitations
- Requires learning the syntax and govctl commands.
- May be overkill for very simple or informal tasks.
- Depends on the govctl CLI tool, which is not universally available.
When creating or updating work items that need clear acceptance criteria and progress tracking.
For informal notes or quick todos that don't require structured tracking.
Security analysis
SafeThe skill provides documentation and examples for using the 'govctl' CLI tool to manage work items. No destructive commands, exfiltration, or obfuscated payloads are present. All commands are benign and operate within a work item management context.
No concerns found
How this analysis is madeExamples
Create a work item for adding user authentication with acceptance criteria including add, change, and chore categories.Add a journal entry to work item WI-1234 saying the validation logic is complete and tests pass.Tick off the 'add: Implement login endpoint' criterion on WI-1234 as done.name: wi-writer description: "Write well-structured work items with proper acceptance criteria. Use when: (1) Creating work items, (2) Adding acceptance criteria, (3) User mentions work item, task, WI, or ticket"
Work Item Writer
Write work items with clear descriptions and actionable acceptance criteria.
Quick Reference
govctl work new --active "<title>"
govctl work set <WI-ID> description "Task scope description"
govctl work add <WI-ID> acceptance_criteria "<category>: <description>"
govctl work add <WI-ID> journal "Progress update" --scope module
govctl work add <WI-ID> notes "Key observation"
govctl work add <WI-ID> refs RFC-NNNN
govctl work tick <WI-ID> acceptance_criteria "<pattern>" -s done
govctl work move <WI-ID> done
Work Item Structure
Title
Concise, action-oriented. Describes what will be done.
- Good: "Add validation for clause cross-references"
- Bad: "Fix stuff" or "Work on the thing"
Description
Purpose: Task scope declaration — what needs to be done.
Replace the placeholder immediately. One paragraph explaining:
- What the work accomplishes
- Why it's needed
- Any relevant context
Important: Description is for task scope, NOT execution tracking. Use journal for progress and outcomes, and notes for durable learnings.
Journal
Purpose: Execution process tracking — how the work is progressing.
Journal entries record progress updates, bug fixes, and verification results during execution. Each entry has:
date(required): ISO date "YYYY-MM-DD"scope(optional): Topic/module identifiercontent(required): Markdown text with details
# Add journal entry (date is auto-filled to today)
govctl work add <WI-ID> journal "Added journal section rendering to work item output."
# With scope (topic/module tag)
govctl work add <WI-ID> journal "Fixed parser edge case" --scope parser
# Multi-line via stdin
govctl work add <WI-ID> journal --scope render --stdin <<'EOF'
Completed the rendering pipeline.
All snapshot tests updated.
EOF
When to add journal entries:
- After completing a significant chunk of work
- When fixing bugs during implementation
- After running verification gates
- After a failed attempt that changed the next step
Notes
Purpose: Durable learnings — constraints, decisions, and retry rules to remember before the next step.
Notes are concise points recorded anytime, not just at completion. Use for:
- Why an approach failed
- What not to retry
- Constraints or decisions future steps must obey
govctl work add <WI-ID> notes "Remember to update migration guide"
govctl work add <WI-ID> notes "API is now async"
Acceptance Criteria
Every criterion MUST have a category prefix for changelog generation:
| Prefix | Changelog Section | Aliases |
| ------------ | ----------------- | --------------------------------- |
| add: | Added | feat:, feature:, added: |
| fix: | Fixed | fixed: |
| change: | Changed | changed:, refactor:, perf: |
| remove: | Removed | removed: |
| deprecate: | Deprecated | deprecated: |
| security: | Security | sec: |
| chore: | (excluded) | test:, docs:, ci:, build: |
# Feature work
govctl work add <WI-ID> acceptance_criteria "add: Implement clause validation"
govctl work add <WI-ID> acceptance_criteria "add: Error messages include clause ID"
# Bug fix
govctl work add <WI-ID> acceptance_criteria "fix: Duplicate clause detection"
# Internal
govctl work add <WI-ID> acceptance_criteria "chore: All tests pass"
govctl work add <WI-ID> acceptance_criteria "chore: govctl check passes"
References
Link to governing artifacts:
govctl work add <WI-ID> refs RFC-0001
govctl work add <WI-ID> refs ADR-0023
Field Semantics Summary
| Field | Purpose | Update Pattern |
| --------------------- | -------------------------- | --------------------------------------------- |
| description | Task scope declaration | Define once, rarely change |
| journal | Execution process tracking | Append on each progress |
| notes | Durable learnings | Add when future steps must remember something |
| acceptance_criteria | Completion criteria | Define then tick |
Per ADR-0026: Keep description focused on "what", journal on "what happened", and notes on "what to remember next".
Writing Rules
Acceptance Criteria Quality
Each criterion should be:
- Specific — "Add
validate_refs()function" not "Add validation" - Testable — Can be verified as done/not-done with no ambiguity
- Independent — Each criterion stands alone
- Categorized — Always include the category prefix
Completion Flow
Work items cannot be marked done without ticking all criteria:
# Tick criteria as you complete them
govctl work tick <WI-ID> acceptance_criteria "<pattern>" -s done
# When all criteria are done, close the work item
govctl work move <WI-ID> done
The chore: Pattern
Always add at least one chore: criterion for validation:
govctl work add <WI-ID> acceptance_criteria "chore: govctl check passes"
This ensures validation is an explicit gate, not an afterthought.
Common Mistakes
| Mistake | Fix |
| -------------------------------- | ----------------------------------------------------------- |
| Missing category prefix | Always use add:, fix:, chore:, etc. |
| Placeholder description left in | Replace immediately with real description |
| Vague criteria: "Feature works" | Specific: "add: CLI returns exit code 0 on success" |
| No chore: criterion | Add "chore: govctl check passes" or "chore: all tests pass" |
| No refs to governing artifacts | Link RFCs/ADRs with work add <WI-ID> refs |
| Description used for tracking | Use journal field for execution progress per ADR-0026 |
| No journal entries for long task | Add journal entries for significant progress updates |
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/work-item-writer-mmk3nh85/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/work-item-writer-mmk3nh85' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/work-item-writer-mmk3nh85/download' --output '.skill-downloads/work-item-writer-mmk3nh85/SKILL.md.part' && mv '.skill-downloads/work-item-writer-mmk3nh85/SKILL.md.part' '.skill-downloads/work-item-writer-mmk3nh85/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
Original excerpt: Quick Reference
govctl work new --active "<title>"
govctl work set <WI-ID> description "Task scope description"
govctl work add <WI-ID> acceptance_criteria "<category>: <description>"
govctl work add <WI-ID> journal "Progress update" --scope module
govctl work add <WI-ID> notes "Key observation"
govctl work add <WI-ID> refs RFC-NNNN
govctl work tick <WI-ID> acceptance_criteria "<pattern>" -s done
govctl work move <WI-ID> done
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/work-item-writer-mmk3nh85/SKILL.md' && test -s '.skill-downloads/work-item-writer-mmk3nh85/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/wi-writer' && cp -R '.skill-downloads/work-item-writer-mmk3nh85' '.claude/skills/wi-writer'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/work-item-writer-mmk3nh85'openskills read 'work-item-writer-mmk3nh85'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/work-item-writer-mmk3nh85/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
React Hook Form Best Practices
Development
Master React Hook Form: avoid anti-patterns, manage subscriptions, and handle reset, dirty state, and controlled inputs correctly.
Emotion to Mantine Migration
Development
Migrate Emotion styled-components to Mantine components with style props and CSS modules. Use when converting .styled.tsx files or removing @emotion imports.
Scope Creep Detector
Development
Analyzes git diffs against a stated intent to detect scope creep, unrelated files, broad PRs, and oversized changes, then suggests keep, split, or justify actions.