Skip to content

Add sawala tugasna CLI command group#89

Merged
sutisnamulyana merged 1 commit into
mainfrom
claude/tugasna-cli-mcp-too3y6
Jul 23, 2026
Merged

Add sawala tugasna CLI command group#89
sutisnamulyana merged 1 commit into
mainfrom
claude/tugasna-cli-mcp-too3y6

Conversation

@sutisnamulyana

Copy link
Copy Markdown
Member

Summary

Adds a sawala tugasna command group to the platform CLI (@sawala/cli), giving Tugasna work-tracking boards a CLI surface for the first time. Commands call the gateway's /cli/tugasna/* prefix, scoped to the active project (sawala project use <slug>).

This is the core-CRUD, CLI-only pass. MCP tools and the remaining resources (labels, custom fields, checklists, item assignees, assignee-labels) are intentionally deferred to a follow-up.

Requires the companion gateway change in sawala-cloud-core (adds the /cli/tugasna/* forwarding line) before these commands work end-to-end.

What's included

New packages/sawala/src/commands/tugasna.ts (modeled on datana.ts), registered in src/cli.ts:

Group Commands
board list [--archived], get, create, update, delete, archive, unarchive
board status create, update, delete, reorder
item (board-scoped) list [--status --assignee], get, create, update, delete, move
backlog (project-scoped) list, create, get, update, children, place, unplace
comment (item-scoped) list, create, update, delete
reads tag list, timeline

House style matches datana.ts: apiFetch to /cli/tugasna/projects/:projId/… using ctx.activeProjectId; request bodies via -f/--file (- = stdin) or -d/--data; --dry-run prints { wouldSend } and writes nothing; destructive verbs require -y/--yes (refuse without a TTY).

Testing

  • npm run typecheck — passes (all workspaces)
  • npm run test — passes; adds test/tugasna.test.ts (23 tests) asserting method/path/body, --dry-run, and the non-TTY confirmation refusal
  • Extends test/cli.test.ts to assert the tugasna command registers

Changeset

.changeset/tugasna-cli.md@sawala/cli minor.

🤖 Generated with Claude Code

https://claude.ai/code/session_01QGdUAa2d3N3vDXrtLB7ZKM


Generated by Claude Code

Introduces the Tugasna work-tracking surface to the platform CLI, calling the
gateway's /cli/tugasna/* prefix. Covers the core CRUD:

- board: list/get/create/update/delete/archive/unarchive + status
  create/update/delete/reorder
- item (board-scoped): list/get/create/update/delete/move
- backlog (project-scoped): list/create/get/update/children/place/unplace
- comment (item-scoped): list/create/update/delete
- tag list and timeline reads

Follows the datana.ts house style: apiFetch to /cli/tugasna/projects/:projId,
-f/--file or -d/--data bodies, --dry-run, and -y/--yes on destructive verbs.
Registered in cli.ts; adds tests asserting method/path/body, --dry-run and the
non-TTY confirmation refusal, plus a changeset.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QGdUAa2d3N3vDXrtLB7ZKM
@sutisnamulyana
sutisnamulyana merged commit 91c31fc into main Jul 23, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants