-
Notifications
You must be signed in to change notification settings - Fork 21
Todolist and Card Table Templates #705
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
62b4a4a
b11401a
54dc286
bc42c33
b9609e9
e7afb6c
eabe8cd
f00614c
d1d1fd0
edc9989
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -40,6 +40,21 @@ the canonical `<group> <action>` form (`cards create`, `todos create`, | |||||||||
| `todos complete`, etc.). Introducing a new top-level verb that shadows an | ||||||||||
| existing group noun is not allowed. | ||||||||||
|
|
||||||||||
| Where a group is split by the kind of thing it holds, every verb lives under the | ||||||||||
| kind it acts on. `templates` has `projects`, `todolists`, and `card-tables`. Use | ||||||||||
| `templates projects delete`, never `templates delete` — a flat verb cannot say | ||||||||||
| which kind it acts on, and the three kinds hit different endpoints. | ||||||||||
|
|
||||||||||
| When a regrouping retires spellings that have shipped, hide and deprecate them | ||||||||||
| rather than removing them: scripts and older skill copies still call them. The | ||||||||||
| flat pre-grouping spellings (`templates list`, `templates show`, `templates | ||||||||||
| create`, `templates update`, `templates delete`, `templates construct`, | ||||||||||
| `templates construction`, `templates library`, `templates copy`, | ||||||||||
| `templates copy-status`) still run their grouped command, hidden from help and | ||||||||||
| completion, and print one deprecation line to stderr naming the replacement. | ||||||||||
| They are out of `.surface` because hidden commands are, so their entries in | ||||||||||
| `.surface-breaking` stay. Never document or suggest a deprecated spelling. | ||||||||||
|
Comment on lines
+55
to
+56
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. P3: Prompt for AI agents
Suggested change
|
||||||||||
|
|
||||||||||
| Shortcut commands without a sibling plural group — `search`, `url`, | ||||||||||
| `recordings`, `timesheet`, `assignments`, `notifications`, `setup`, `completion` | ||||||||||
| — may have both `RunE` and subcommands. | ||||||||||
|
|
||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -15,14 +15,14 @@ setup_file() { | |
| assert_json_not_null '.data[0].id' | ||
| } | ||
|
|
||
| @test "templates list returns templates" { | ||
| run_smoke basecamp templates list --json | ||
| @test "templates projects list returns templates" { | ||
| run_smoke basecamp templates projects list --json | ||
| assert_success | ||
| assert_json_value '.ok' 'true' | ||
| } | ||
|
|
||
| @test "templates library returns to-do list templates" { | ||
| run_smoke basecamp templates library --json | ||
| @test "templates todolists list returns to-do list templates" { | ||
| run_smoke basecamp templates todolists list --json | ||
| [[ "$status" -ne 0 ]] && mark_unverifiable "Template library not available in this account" | ||
| assert_success | ||
| assert_json_value '.ok' 'true' | ||
|
|
@@ -35,14 +35,14 @@ setup_file() { | |
| assert_json_not_null '.data.id' | ||
| } | ||
|
|
||
| @test "templates show returns template detail" { | ||
| @test "templates projects show returns template detail" { | ||
| local out | ||
| out=$(basecamp templates list --json 2>/dev/null) || mark_unverifiable "Cannot list templates" | ||
| out=$(basecamp templates projects list --json 2>/dev/null) || mark_unverifiable "Cannot list templates" | ||
| local tmpl_id | ||
| tmpl_id=$(echo "$out" | jq -r '.data[0].id // empty') | ||
| [[ -n "$tmpl_id" ]] || mark_unverifiable "No templates found" | ||
|
|
||
| run_smoke basecamp templates show "$tmpl_id" --json | ||
| run_smoke basecamp templates projects show "$tmpl_id" --json | ||
| assert_success | ||
| assert_json_value '.ok' 'true' | ||
| assert_json_not_null '.data.id' | ||
|
|
@@ -102,3 +102,10 @@ setup_file() { | |
| @test "account is out of scope" { | ||
| mark_out_of_scope "Alias for accounts — tested via canonical form" | ||
| } | ||
|
|
||
| @test "templates card-tables list returns card table templates" { | ||
| run_smoke basecamp templates card-tables list --json | ||
| [[ "$status" -ne 0 ]] && mark_unverifiable "Card table template library not available in this account" | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. P2: This skips the smoke test for every failure, including CLI regressions and server errors, rather than only an account where card-table templates are unavailable. Skip only for the known unavailable response and let other failures reach Prompt for AI agents |
||
| assert_success | ||
| assert_json_value '.ok' 'true' | ||
| } | ||
Uh oh!
There was an error while loading. Please reload this page.