diff --git a/.github/plugin/marketplace.json b/.github/plugin/marketplace.json index cd19cc914..13f2b21ce 100644 --- a/.github/plugin/marketplace.json +++ b/.github/plugin/marketplace.json @@ -976,6 +976,12 @@ "description": "Create, edit, run, save, and checkpoint Jupyter notebooks in an interactive Copilot canvas.", "version": "1.0.0" }, + { + "name": "juvina-memory", + "source": "plugins/juvina-memory", + "description": "Persistent, team-shared memory for Copilot agents — encode decisions and recall project knowledge across repositories, sessions, and time via the Juvina memory engine's MCP tools.", + "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.", diff --git a/docs/README.plugins.md b/docs/README.plugins.md index 274783eff..18d5e6295 100644 --- a/docs/README.plugins.md +++ b/docs/README.plugins.md @@ -74,6 +74,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-plugins) for guidelines on how t | [java-mcp-development](../plugins/java-mcp-development/README.md) | Complete toolkit for building Model Context Protocol servers in Java using the official MCP Java SDK with reactive streams and Spring Boot integration. | 2 items | java, mcp, model-context-protocol, server-development, sdk, reactive-streams, spring-boot, reactor | | [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 | +| [juvina-memory](../plugins/juvina-memory/README.md) | Persistent, team-shared memory for Copilot agents — encode decisions and recall project knowledge across repositories, sessions, and time via the Juvina memory engine's MCP tools. | 1 items | memory, persistent-memory, team-memory, mcp, agent-memory, knowledge-management | | [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 | | [napkin](../plugins/napkin/README.md) | Visual whiteboard collaboration for Copilot CLI. Opens an interactive whiteboard in your browser where you can draw, sketch, and add sticky notes — then share everything back with Copilot. Copilot sees your drawings and responds with analysis, suggestions, and ideas. | 1 items | whiteboard, visual, collaboration, brainstorming, non-technical, drawing, sticky-notes, accessibility, copilot-cli, ux | diff --git a/docs/README.skills.md b/docs/README.skills.md index a18e2d489..a3a64f7b3 100644 --- a/docs/README.skills.md +++ b/docs/README.skills.md @@ -250,6 +250,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-skills) for guidelines on how to | [java-springboot](../skills/java-springboot/SKILL.md)
`gh skills install github/awesome-copilot java-springboot` | Get best practices for developing applications with Spring Boot. | None | | [javascript-typescript-jest](../skills/javascript-typescript-jest/SKILL.md)
`gh skills install github/awesome-copilot javascript-typescript-jest` | Best practices for writing JavaScript/TypeScript tests using Jest, including mocking strategies, test structure, and common patterns. | None | | [javax-to-jakarta-migration](../skills/javax-to-jakarta-migration/SKILL.md)
`gh skills install github/awesome-copilot javax-to-jakarta-migration` | Migrate Java code from javax.* to jakarta.* namespace. Use when upgrading to Tomcat 11, Jakarta EE 10, or when javax imports are detected in the codebase. | None | +| [juvina-memory](../skills/juvina-memory/SKILL.md)
`gh skills install github/awesome-copilot juvina-memory` | Encode team decisions and recall project knowledge from a persistent Juvina memory environment via the juvina_recall and juvina_encode MCP tools. Use when the answer may predate this session, span other repositories, or concern why a decision was made. | None | | [kotlin-mcp-server-generator](../skills/kotlin-mcp-server-generator/SKILL.md)
`gh skills install github/awesome-copilot kotlin-mcp-server-generator` | Generate a complete Kotlin MCP server project with proper structure, dependencies, and implementation using the official io.modelcontextprotocol:kotlin-sdk library. | None | | [kotlin-springboot](../skills/kotlin-springboot/SKILL.md)
`gh skills install github/awesome-copilot kotlin-springboot` | Get best practices for developing applications with Spring Boot and Kotlin. | None | | [landing-page-conversion-audit](../skills/landing-page-conversion-audit/SKILL.md)
`gh skills install github/awesome-copilot landing-page-conversion-audit` | Audit a landing page, sales page or checkout page for conversion leaks and return a fix list ordered by expected revenue impact. Use when asked to review, critique or improve a landing page, sales page, opt-in page, product page or checkout flow, when conversion rate is low, when paid traffic is not converting, or when someone asks "why isn't this page converting" or wants a CRO / landing page review. | None | diff --git a/plugins/juvina-memory/README.md b/plugins/juvina-memory/README.md new file mode 100644 index 000000000..02b95409d --- /dev/null +++ b/plugins/juvina-memory/README.md @@ -0,0 +1,33 @@ +# Juvina Memory Plugin + +Persistent, team-shared memory for Copilot agents — encode decisions and recall project knowledge across repositories, sessions, and time via the Juvina memory engine's MCP tools. + +## Installation + +```bash +# Using Copilot CLI +copilot plugin install juvina-memory@awesome-copilot +``` + +## What's Included + +### Skills + +| Skill | Description | +|-------|-------------| +| `juvina-memory` | Encode team decisions and recall project knowledge from a persistent Juvina memory environment via the `juvina_recall` and `juvina_encode` MCP tools | + +## Requirements + +This plugin requires a running Juvina memory engine exposing the `juvina_recall` and +`juvina_encode` MCP tools. The engine installs via the free Juvina Light VS Code +extension ([juvina.ai](https://juvina.ai)) and runs locally: memory is stored locally on +the machine running the engine, and model calls go to your own endpoint on your own key. + +## Source + +This plugin is part of [Awesome Copilot](https://github.com/github/awesome-copilot), a community-driven collection of GitHub Copilot extensions. + +## License + +MIT diff --git a/plugins/juvina-memory/plugin.json b/plugins/juvina-memory/plugin.json new file mode 100644 index 000000000..2c9c8dc80 --- /dev/null +++ b/plugins/juvina-memory/plugin.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", + "name": "juvina-memory", + "description": "Persistent, team-shared memory for Copilot agents — encode decisions and recall project knowledge across repositories, sessions, and time via the Juvina memory engine's MCP tools.", + "version": "1.0.0", + "author": { + "name": "juvina.ai", + "url": "https://juvina.ai" + }, + "repository": "https://github.com/github/awesome-copilot", + "license": "MIT", + "keywords": [ + "memory", + "persistent-memory", + "team-memory", + "mcp", + "agent-memory", + "knowledge-management" + ], + "extensions": { + "com.github.awesome-copilot": { + "skills": [ + "./skills/juvina-memory/" + ] + } + } +} diff --git a/skills/juvina-memory/SKILL.md b/skills/juvina-memory/SKILL.md new file mode 100644 index 000000000..786acacd3 --- /dev/null +++ b/skills/juvina-memory/SKILL.md @@ -0,0 +1,54 @@ +--- +name: juvina-memory +description: Encode team decisions and recall project knowledge from a persistent Juvina memory environment via the juvina_recall and juvina_encode MCP tools. Use when the answer may predate this session, span other repositories, or concern why a decision was made. +compatibility: Requires a running Juvina memory engine and its MCP tools (juvina_recall, juvina_encode). The engine installs via the free Juvina Light VS Code extension (juvina.ai) and runs locally. +metadata: + author: juvina.ai + version: "1.0" +--- + +# Juvina Memory + +This skill connects the agent to a Juvina engine — persistent, associative memory that +survives context resets, session ends, and time. Memory is shared per environment, so a +team pointing at one environment shares one memory. + +## Setup + +The Juvina engine installs via the free Juvina Light VS Code extension +([juvina.ai](https://juvina.ai)), which registers the `juvina_recall` and `juvina_encode` +MCP tools. Memory is stored locally on the machine running the engine; model calls go to +your own endpoint on your own key. Team configurations point multiple agents at a shared +environment. + +## When to recall + +Call the `juvina_recall` MCP tool BEFORE answering when: + +- the question concerns decisions, rationale, or history ("why did we…", "who decided…", + "what happened when…") +- the answer may predate the current session or live in another repository +- the user references past work you have no context for + +Query in natural language, wide rather than narrow. If recall returns nothing relevant, +say so — do not fill the gap from the current context alone. + +## When to encode + +Call the `juvina_encode` MCP tool AFTER significant moments: + +- a decision is made (record the decision AND the reasoning) +- a bug's root cause is found (record cause and fix) +- a convention or constraint is established + +Write full sentences with names, dates, and the why — rich memories recall well; terse +notes recall poorly. + +## Notes + +- Both tools take an `environment` name — your team's Juvina configuration provides it. + Juvina Light local installs always use `local`. Never invent an environment name. +- One topic per encode call. Dates in DD/MM/YYYY. +- The memory is durable and shared: do not encode secrets, credentials, or personal data. +- Recall constructs answers from woven facts across sessions — treat returned memory as + team knowledge, and attribute it as such.