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