Conversation
There was a problem hiding this comment.
Pull request overview
Adds a dedicated basecamp cards done <id|url> command to complete Kanban cards by automatically resolving the owning card table and moving the card into its Kanban::DoneColumn.
Tip
If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or run gh pr ready --undo.
Click "Ready for review" or run gh pr ready to reengage.
Changes:
- Introduces
cards donesubcommand (and breadcrumbs) to move cards to the Done column, with multi-board inference support. - Refactors card-table listing/formatting helpers and adds unit tests for
cards done. - Updates docs, command catalog, CLI surface snapshot, and smoke coverage.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| skills/basecamp/SKILL.md | Documents the new basecamp cards done workflow and examples. |
| internal/commands/commands.go | Adds done to the cards command action catalog. |
| internal/commands/cards_test.go | Adds unit tests and transport mocks for cards done; updates card-table formatting test types. |
| internal/commands/cards.go | Implements cards done, breadcrumbs, and card-table/table-resolution helpers. |
| e2e/smoke/smoke_cards_write.bats | Adds a smoke test for completing a card via cards done. |
| README.md | Adds a quick-start example for basecamp cards done. |
| .surface | Updates the CLI surface snapshot to include the new command and flags. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
2 issues found across 7 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="skills/basecamp/SKILL.md">
<violation number="1" location="skills/basecamp/SKILL.md:462">
P2: Document the `cards done` argument as `<id|url>` instead of only `<id>` to match the command behavior.</violation>
</file>
<file name="internal/commands/cards.go">
<violation number="1" location="internal/commands/cards.go:909">
P2: Operator precedence makes this evaluate as `(Parent != nil && Parent.Type == DoneColumn) || Completed`. A card can be `Completed` without residing in a `Kanban::DoneColumn`, so the summary `"is already in 'Done'"` is misleading in that case. Add explicit parentheses and split the messaging for the two distinct scenarios (already in Done column vs. already marked completed).</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
|
Fixed — split the already-in-Done vs already-completed summaries and reduced multi-board resolution to a parent-column lookup before any fallback scan. |
|
Fixed — cubic identified the |
There was a problem hiding this comment.
2 issues found across 3 files (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="internal/commands/cards_test.go">
<violation number="1" location="internal/commands/cards_test.go:1250">
P3: Decode the JSON response and assert `summary` via structured lookup instead of substring matching.
(Based on your team's feedback about parsing JSON output in tests instead of substring assertions.) [FEEDBACK_USED]</violation>
<violation number="2" location="internal/commands/cards_test.go:1266">
P3: Decode the JSON response and assert `summary` via structured lookup instead of substring matching.
(Based on your team's feedback about parsing JSON output in tests instead of substring assertions.) [FEEDBACK_USED]</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
|
Fixed — cubic identified the JSON assertion style issue in the new tests, and I switched both summary checks to decode the response and assert the |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Summary
Adds an explicit
basecamp cards done <id|url>command so users can complete Kanban cards without manually looking up a board’s Done column and moving the card themselves. This keeps card completion clear and discoverable while avoiding the ambiguity and alias issues we’ve had with overloading top-level shortcuts.Closes #423
What changed
basecamp cards done <id|url>Kanban::DoneColumninstead of matching the title"Done"--card-tablewhen providedcards showbreadcrumbsNotes
basecamp doneis unchangedSummary by cubic
Adds
basecamp cards done <id|url>to move a Kanban card to its Done column automatically. Improves discoverability and sharpens validation and errors for multi-board projects.basecamp cards done <id|url>.Kanban::DoneColumn), not by title.--card-tableand rejects invalid IDs; shows available tables when ambiguous.cards showincludes a Done action;cards doneoutputs links to view the card and list the Done column.skills/basecamp/SKILL.md, and smoke tests; tighter JSON assertions.Written for commit f08301e. Summary will update on new commits.