From agent-atelier
Work item planning — list all work items, show details of one, or create/update work items. Use for backlog management, viewing work item details, creating new work items, or updating existing ones. Triggers on 'work item', 'WI', 'backlog', 'list items', 'show WI-NNN', 'create work item', 'update work item', or 'upsert'. For execution-phase operations (claim, heartbeat, complete), use the execute skill instead.
npx claudepluginhub ether-moon/agent-atelier --plugin agent-atelierThis skill uses the workspace's default tool permissions.
- Listing the backlog or checking work item status
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Guides code writing, review, and refactoring with Karpathy-inspired rules to avoid overcomplication, ensure simplicity, surgical changes, and verifiable success criteria.
Share bugs, ideas, or general feedback.
/agent-atelier:init)One of three subcommands:
list — show all work itemsshow <WI-ID> — show one work item in detailupsert <json-or-fields> — create or update a work itemFor upsert, the caller provides either:
upsert {"id": "WI-015", "title": "...", "status": "ready"}/agent-atelier:wi list
/agent-atelier:wi show WI-014
/agent-atelier:wi upsert {"id": "WI-016", "title": "Add retry logic", "status": "ready", "depends_on": ["WI-014"], "complexity": "simple"}
/agent-atelier:wi upsert WI-015 set status to ready and complexity to complex
list.agent-atelier/work-items.json.| ID | Title | Status | Owner |
|--------|--------------------------------|--------------|----------------|
| WI-014 | Checkout empty/loading states | implementing | exec-WI-014-02 |
| WI-015 | Payment retry logic | ready | — |
Store revision: 42show <WI-ID>.agent-atelier/work-items.json.upsertThis is the only subcommand that writes. Every upsert requires a request_id (unique string for idempotency) and a based_on_revision (the store revision observed when reading). Follow these steps carefully because the work item store uses revision-based concurrency control.
Read current store. Read .agent-atelier/work-items.json. Note the current revision.
Validate the payload. The payload must have an id field. Read references/wi-schema.md in this plugin for the full schema and normalization rules.
Merge and normalize. Apply the merge logic from references/wi-schema.md:
Bump store revision. Increment the store's revision by 1 and set updated_at to now.
Commit via state-commit. Build a transaction and pipe it to the state-commit script. This ensures atomic writes and revision checking. The script rejects the entire transaction if any revision is stale.
echo '{"writes":[{"path":".agent-atelier/work-items.json","expected_revision":<current>,"content":<new-store>}]}' \
| <plugin-root>/scripts/state-commit --root <repo-root>
Check the result. If committed: true, report success. If committed: false with reason: stale_revision, re-read the store and retry.
After a successful state-commit, sync the work item to the native Agent Teams task list. Sync failures are non-fatal -- log a warning but do not fail the upsert. See reference/native-task-sync.md for the full deduplication, creation, and dependency-wiring protocol.
All mutations to .agent-atelier/** go through the state-commit script, which is the sole writer for orchestration state. This maintains cross-file consistency and provides crash recovery via a write-ahead log.
The script validates all revision checks before any write happens. If a revision is stale, the entire transaction is rejected — no partial writes.
Revision checking is always enforced. The skill reads the current store revision and passes it as expected_revision. There is no escape hatch — even in interactive use, the skill must read-then-write with the observed revision. This prevents lost updates in multi-agent scenarios.
| Code | Meaning |
|---|---|
0 | Success |
1 | Usage or validation error (missing id in upsert, malformed JSON) |
2 | Stale revision on upsert |
3 | Work item not found for show |
4 | Runtime or environment failure |
list: JSON with revision and items array (each item has id, title, status, owner_session_id).show: Full work item JSON object.upsert: {"request_id": "...", "accepted": true, "committed_revision": N, "changed": true, "artifacts": [".agent-atelier/work-items.json"]}.When presenting to a human user, render a readable table (list) or detail view (show). Diagnostic messages go to stderr.
For upsert:
request_id + same payload → return previous result with "changed": false, "replayed": truerequest_id + different payload → reject with exit code 1based_on_revision → reject with exit code 2| Condition | Exit Code | Action |
|---|---|---|
Missing id in upsert payload | 1 | Reject and explain |
Work item not found for show | 3 | List available IDs |
| Malformed JSON | 1 | Report the parse error clearly |
| Stale revision on upsert | 2 | Report current vs expected, ask caller to re-read |
wi skill handles planning operations only. For execution lifecycle (claim, heartbeat, requeue, complete), use /agent-atelier:execute.