cli-command-create
Create a new CLI command with planning and implementation for the Prolific CLI.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Create a new CLI command with planning and implementation for the Prolific CLI.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | cli-command-create |
| description | Create a new CLI command with planning and implementation for the Prolific CLI. |
| argument-hint | [ticket] [resource] [command] [command-type] |
| user-invocable | true |
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