Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -1403,6 +1403,12 @@
"description": "Create, edit, run, save, and checkpoint Jupyter notebooks in an interactive Copilot canvas.",
"version": "1.0.0"
},
{
"name": "kanvasban",
"source": "plugins/kanvasban",
"description": "A local Copilot canvas for humans and agents to manage projects, features, and user stories.",
"version": "1.0.0"
},
{
"name": "keep-the-why",
"description": "Preserves or recovers the reasoning behind a codebase — architectural decisions, rejected alternatives, workarounds, incident learnings, operational constraints, and historical context the code itself cannot explain.",
Expand Down
1 change: 1 addition & 0 deletions docs/README.plugins.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-plugins) for guidelines on how t
| [java-mcp-development](../plugins/java-mcp-development/README.md) | Build Model Context Protocol (MCP) servers in Java with the official MCP Java SDK 2.x. Includes a skill that generates a server project and an expert agent for guidance. | 2 items | java, mcp, model-context-protocol, mcp-java-sdk, server-development, spring-ai |
| [java-modernization-studio](../plugins/java-modernization-studio/README.md) | Drive the GitHub Copilot App Modernization for Java workflow from an interactive canvas: environment readiness, repo assessment, prioritized plan and progress, validation gates, and one-click predefined-task runs grounded in the repo's real artifacts. | 1 items | app-modernization, assessment-dashboard, azure-migration, java-modernization, legacy-java, modernization-cockpit, validation-gates |
| [jupyter-notebooks](../plugins/jupyter-notebooks/README.md) | Create, edit, run, save, and checkpoint Jupyter notebooks in an interactive Copilot canvas. | 1 items | data-analysis, interactive-notebooks, jupyter, python |
| [kanvasban](../plugins/kanvasban/README.md) | A local Copilot canvas for humans and agents to manage projects, features, and user stories. | 1 items | kanban, project-management, user-stories, canvas |
| [kotlin-mcp-development](../plugins/kotlin-mcp-development/README.md) | Complete toolkit for building Model Context Protocol (MCP) servers in Kotlin using the official io.modelcontextprotocol:kotlin-sdk library. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance. | 2 items | kotlin, mcp, model-context-protocol, kotlin-multiplatform, server-development, ktor |
| [mcp-m365-copilot](../plugins/mcp-m365-copilot/README.md) | Comprehensive collection for building declarative agents with Model Context Protocol integration for Microsoft 365 Copilot | 4 items | mcp, m365-copilot, declarative-agents, api-plugins, model-context-protocol, adaptive-cards |
| [modernization-workflow](../plugins/modernization-workflow/README.md) | Visualize and guide the GitHub Copilot Modernize CLI Assess, Plan, and Execute workflow for .NET, Java, and C++ application repositories. | 1 items | app-modernization, assessment-dashboard, azure-migration, cpp-modernization, dotnet-modernization, java-modernization, modernization-canvas, modernize-cli |
Expand Down
4 changes: 4 additions & 0 deletions extensions/kanvasban/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/backlog.json
/backlog.json.*
/.backlog.json.*.tmp
/extension-data/
76 changes: 76 additions & 0 deletions extensions/kanvasban/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# Kanvasban agent workflow

Use the shared Kanvasban canvas to coordinate implementation work with humans
and other agents. Do not maintain a separate backlog or overwrite its JSON file.

This guide accompanies the Kanvasban plugin; it is not a global instruction
file. All repositories using the same Copilot home share one personal board.
Choose the appropriate project explicitly rather than assuming the active
workspace or human-selected project determines action scope.

1. Discover `kanvasban` with `list_canvas_capabilities`.
2. Open it with `open_canvas` and a stable instance ID for your session. It takes no input.
3. Call `listProjects` using `invoke_canvas_action`, then
`listStories` with `{ "projectId": "<project UUID>" }` before choosing work.
Omitting projectId lists all projects, not just the human's selected project.
Use `createProject` with `name` and optional `description`, or `updateProject`
with `id`, `name`, and optional `description`. Project deletion is not exposed.
4. Use `addStory` for new work (title, description, acceptanceCriteria, priority,
type, parentFeatureId, projectId). `type` is `feature` or `user-story` (default).
User stories may optionally reference a Feature's full UUID in
`parentFeatureId`; standalone stories are valid. Features cannot have parents.
Always include projectId from listProjects; it is required when multiple
projects exist. Parent Features must belong to the same project.
Item projectId is immutable. `listStories` returns both item types. The action names remain compatible.
5. Use `updateStory` with the full story UUID to mark work `in-progress` before
implementing it and `done` only after verification. Status values are
`backlog`, `ready`, `in-progress`, `done`, and `cancelled`; priorities are
`low`, `medium`, and `high`. Ready is between Backlog and In progress;
the far-right Cancel column uses `cancelled`.
Use `parentFeatureId: null` to unlink a story. Cancelling a Feature does not
cancel its children; coordinate those decisions explicitly.
6. Re-read `listStories` at task boundaries to see human and other agent changes.
Do not take over an in-progress story without coordination. These actions do
not implement exclusive assignment or automatic task claiming.
7. Normally use `updateStory` with `status: "cancelled"` instead of deletion.
Use `deleteStory` only when explicitly requested or to remove your own test data.
A Feature with children cannot be deleted or converted to a user story until
the children are unlinked or reassigned.
8. `listStories` returns shared manual order (filter by status for column order).
Use `reorderStory` with `id`, `beforeId` (another item in the destination
column, or null for the bottom), optional `status`, and optional `actor`.
Reordering and column changes are atomic and recorded in history.
Do not rewrite the full array or use priority to simulate ordering.
Human Group by None/Feature is view-only: Features and stories can mix in
None, while Feature nests linked stories in their own status columns.
Reordering does not change parent links or move a Feature's children.
Reorder targets must belong to the same project as the moved item.

Humans see action changes automatically through the board's live stream.
Use `changeComment` with item `id`, `operation` (`add`, `edit`, `delete`),
`body` for add/edit, and `commentId` for edit/delete. Supply `actor` to identify
your agent; canvas actions default to `Agent`, browser comments to `Human`.
These are editable display labels, not authenticated identities or permissions.
`listStories` includes comments and read-only history. Item creation, actual field
changes and comment changes are recorded automatically; no-op updates are not.
Comment deletion is soft deletion; previous text remains visible in history.
Legacy items start with empty activity: past changes cannot be reconstructed. Agents
get current state when calling `listStories`; canvas updates do not automatically
wake agents or inject new messages into their conversations.

The canonical, versioned data is
`extension-data/kanvasban/backlog.json` under Copilot home: use nonempty
`COPILOT_HOME` exactly as provided, otherwise `~/.copilot`. Canvas instances and
repositories using that home are views of the same personal file, not separate
boards. Code is shipped separately by the Kanvasban plugin.
If the store is missing, first use creates a Hello world project, one Feature,
and one linked user story. Existing stores are never reseeded; invalid or
unreadable stores produce errors instead of being overwritten.
Format `kanvasban`, version 2 stores `projects` and project-scoped `stories`.
Archived items remain in action results and snapshots with an `archivedAt`
timestamp but are hidden on the board. Use `updateStory` with `archived: true`
to archive or `archived: false` to restore. Archiving is not deletion and does
not change status or archive a Feature's children.
Copilot hosts must
support SDK canvas extensions to use these tools. If the canvas is
unavailable, report that limitation rather than claiming a board update succeeded.
Loading
Loading