Create a new CLI command with planning and implementation for the Prolific CLI.
Invoke this skill when the user:
Create a new CLI command for the Prolific CLI from start to finish.
Arguments may be provided via $ARGUMENTS or gathered interactively.
Expected arguments:
ticket - Jira ticket number (e.g., DCP-2154)resource - Resource name (e.g., collection, study, workspace)command - Command name (e.g., list, get, create, update)command-type - Optional: LIST | VIEW | CREATE | UPDATE | ACTION (will infer if not provided)If arguments are missing or $ARGUMENTS is empty, use the AskUserQuestion tool to gather them:
Ask the user to provide ONE of:
path/to/request.bruAlso ask if they have any acceptance criteria (optional):
If not provided, infer from command name:
list → LIST (paginated results, multiple renderers)get, view → VIEW (single resource, one renderer)create → CREATE (accepts template file)update → UPDATE (modifies existing resource)Based on command type, confirm which flags are needed:
| Flag | LIST | VIEW | CREATE | UPDATE | ACTION |
|------|------|------|--------|--------|--------|
| --workspace / -w | Often | Often | Often | Often | Rare |
| --non-interactive / -n | Yes | No | No | No | No |
| --csv / -c | Yes | No | No | No | No |
| --json | Optional | Optional | No | No | No |
| --limit / --offset | Yes | No | No | No | No |
| --web / -W | No | Yes | No | No | No |
| --template / -t | No | No | Yes | Yes | No |
Ask user to confirm or add custom flags.
Before proceeding, present:
Ask for explicit approval before Phase 2.
Create/update model/{resource}.go:
FilterValue(), Title(), Description() for bubbleteaclient/responses.goAPI interface in client/client.goClient structcmd/{resource}/{resource}.go (if new resource)cmd/{resource}/{command}.go:
New{Command}Command(client client.API, w io.Writer) *cobra.CommandLIST commands:
ui/{resource}/list.go with:
ListStrategy interfaceInteractiveRenderer (bubbletea)NonInteractiveRenderer (table)CsvRendererJSONRendererVIEW commands:
ui/{resource}/view.go with single Render{Resource}() functionAdd command to cmd/root.go:
rootCmd.AddCommand({resource}.New{Resource}Command(c, os.Stdout))
Run: make test-gen-mock
Create cmd/{resource}/{command}_test.go:
gomock with mock_client.NewMockAPI(ctrl)defer ctrl.Finish() and writer.Flush()For LIST commands only: Create ui/{resource}/list_test.go
make build - ensure it compilesmake test - ensure all tests passmake lint - ensure no lint errorsPROLIFIC_TOKEN set)Report results and any issues found.
| Pattern | Reference File |
|---------|----------------|
| LIST command | cmd/collection/list.go |
| LIST renderers | ui/collection/list.go |
| VIEW command | cmd/project/view.go |
| CREATE command | cmd/project/create.go |
| UPDATE command | cmd/credentials/update.go |
| ACTION command | cmd/study/transition.go |
| Parent command | cmd/collection/collection.go |
| Model | model/collection.go |
| Client method | client/client.go:GetCollections |
| Test pattern | cmd/workspace/list_test.go |
$ARGUMENTS
npx skills add prolific-oss/cli-command-create下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer