Skip to content
Merged
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
2 changes: 1 addition & 1 deletion plugins/ditto/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "https://anthropic.com/claude-code/plugin.schema.json",
"name": "ditto",
"name": "heyditto",
"version": "0.4.1",
"description": "Ditto memory through hosted MCP, with 20 skills for life, business and engineering: recall and save context, keep decisions, meetings and weekly reviews, debug, test and review code, plan days, trips and meals, curate music, and hand off chats. Archival and owned workspace cleanup depend on host capabilities and authorization. Sign in through Claude.",
"author": {
Expand Down
21 changes: 21 additions & 0 deletions plugins/ditto/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,27 @@ come first, browser/computer controls next, and web search last for recordings,
official links and an ordered plan. Saving playlists or changing playback requires
separate music capabilities; confirm the actual result before claiming success.

## Other services and host capabilities

The Ditto MCP server supplies memory access. Skills may also use separately
connected services or host tools when available and authorized:

- Music accounts: Spotify, Apple Music, YouTube Music, Tidal, Deezer, Amazon
Music, SoundCloud, or another service the user selects. The music skill may
read a saved library and, with separate capability, create playlists or control
playback.
- Web search for current public facts, sources, travel and meal planning, and
music links; browser or computer control for music sites and other user
requested UI work.
- Connected calendars, task lists, and user named research sources for briefs,
meetings, and daily planning. Connected shopping, booking, publishing, and
messaging services are used only for the corresponding user requested action.
- Host repository, test runner, filesystem, and chat archive controls for
engineering and handoff skills, subject to the host's grants and user approval.

These are host capabilities, not servers or credentials bundled with this plugin.
Availability depends on the host and the user's connections.

Try: "Curate a playlist on my preferred music service using my Ditto memories for
a relaxed evening, with a few discoveries."

Expand Down
2 changes: 1 addition & 1 deletion plugins/ditto/shared-skills.lock.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
"plugins/ditto/skills/plan-trip/SKILL.md": "ed7aac4da4219030b40f50ecbfd726fa3adbf85042387a608f0b0c90984caf3e",
"plugins/ditto/skills/prep-meeting/SKILL.md": "13e49ec46686cee975fb3ab13fc86c8de01378e4a749415efdc0ba9efb08f83a",
"plugins/ditto/skills/research-brief/SKILL.md": "3fa3d9c865b48f7d3a6aa76e5570619983afb8adac783e56c6c9a4438ad31780",
"plugins/ditto/skills/tdd/SKILL.md": "041fd8a54d1abb754a1cbf05ae83bb879e07321977fc3e244c11ca66837d30a2",
"plugins/ditto/skills/tdd/SKILL.md": "02a00cacc62f4c6da9f5add20ff7bce6b8140162021d0af9365dff36887fe6d7",
"plugins/ditto/skills/tdd/references/coding-agent.md": "539a6e52b337f30e9cd458a4dede97e368a4f0c7fadf142a7db3f738e213e457",
"plugins/ditto/skills/tidy-memory/SKILL.md": "496c0cbeabb76e4874f106f91ec14221b80c8111e28af814daa36c52487ea7f9",
"plugins/ditto/skills/verify-done/SKILL.md": "905647d40b04d167d7286c02c001e0107b7aa704f7cdaa4c8042d56d9bc6301d",
Expand Down
5 changes: 5 additions & 0 deletions plugins/ditto/skills/tdd/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ Write the test that describes the behavior, watch it fail for the right reason,
make it pass with the simplest change, then clean up. Repeat in small steps.

Use the bundled `ditto-memory` skill for connection, recall and capture rules.
This skill describes work the host may perform in a user's repository. Running
tests requires a separately available, authorized host execution tool; the
Ditto plugin bundles no executable code or test runner, and its declared MCP
server is used only for memory. If the host lacks execution access, describe
the tests to run and leave their result unverified.
If this host gives you a local shell and a repository you can run, also read
[coding-agent.md](references/coding-agent.md). In a chat app, skip it: give the
user the test first and ask for the runner's red output, then the code and its
Expand Down
5 changes: 3 additions & 2 deletions scripts/validate_package.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,8 +97,9 @@ def check_mcp_file(path, plugin):


def check_manifest(host, manifest, plugin, folder):
if manifest.get("name") != plugin:
raise ValueError(f"{host} manifest name must be {plugin}")
expected_name = "heyditto" if host == "claude" and plugin == "ditto" else plugin
if manifest.get("name") != expected_name:
raise ValueError(f"{host} manifest name must be {expected_name}")
if RUNTIME & manifest.keys():
raise ValueError(f"Unexpected runtime component in MCP-only {host} manifest")
mcp = manifest.get("mcpServers")
Expand Down
Loading