From 791d34730687532b6a19ed7d4f8dd5946ee24798 Mon Sep 17 00:00:00 2001 From: Chris Date: Thu, 3 Sep 2026 16:44:08 +0200 Subject: [PATCH] compile: write copies instead of symlinks so Windows checkouts install --- .claude-plugin/marketplace.json | 320 +- .../.claude-plugin/plugin.json | 18 +- .../.cursor-plugin/plugin.json | 18 +- .../skills/create-shareable-skill | 1 - .../create-shareable-skill/.plugin.json | 17 + .../skills/create-shareable-skill/SKILL.md | 182 + .../references/placement.md | 79 + .../references/quality-bar.md | 124 + .../.claude-plugin/plugin.json | 19 +- .../.cursor-plugin/plugin.json | 19 +- .../skills/creative-productivity | 1 - .../skills/creative-productivity/.plugin.json | 18 + .../skills/creative-productivity/SKILL.md | 277 + .../references/drawio-guide.md | 112 + .../references/excalidraw/color-palette.md | 41 + .../references/excalidraw/guide.md | 62 + .../references/marp-guide.md | 140 + .../references/mermaid-patterns.md | 127 + .../references/revealjs-guide.md | 115 + .../.claude-plugin/plugin.json | 19 +- .../.cursor-plugin/plugin.json | 19 +- .../skills/excalidraw-diagram | 1 - .../skills/excalidraw-diagram/.plugin.json | 18 + .../skills/excalidraw-diagram/SKILL.md | 658 ++ .../excalidraw-diagram/references/.gitignore | 2 + .../references/color-palette.md | 188 + .../references/element-templates.md | 182 + .../examples/dark-agent-memory.excalidraw | 1 + .../references/examples/dark-agent-memory.png | Bin 0 -> 376756 bytes .../examples/dark-inference-grid.excalidraw | 1 + .../examples/dark-inference-grid.png | Bin 0 -> 152017 bytes .../examples/innovation-pipeline.excalidraw | 1 + .../examples/innovation-pipeline.png | Bin 0 -> 235934 bytes .../examples/micro-venture-studio.excalidraw | 1 + .../examples/micro-venture-studio.png | Bin 0 -> 257076 bytes .../examples/rag-infographic.excalidraw | 1 + .../references/examples/rag-infographic.png | Bin 0 -> 283709 bytes .../examples/set-diagram.excalidraw | 1 + .../references/examples/set-diagram.png | Bin 0 -> 196939 bytes .../examples/three-exit-framework.excalidraw | 1 + .../examples/three-exit-framework.png | Bin 0 -> 214388 bytes .../examples/typography-grid.excalidraw | 1 + .../references/examples/typography-grid.png | Bin 0 -> 298531 bytes .../yesterday-ci-infographic.excalidraw | 1 + .../examples/yesterday-ci-infographic.png | Bin 0 -> 196531 bytes .../references/font-catalog.png | Bin 0 -> 412223 bytes .../references/infographic_builder.py | 286 + .../references/json-schema.md | 71 + .../references/libraries/README.md | 130 + .../libraries/awesome-icons-preview.png | Bin 0 -> 791103 bytes .../libraries/awesome-icons.excalidrawlib | 4081 +++++++ .../references/libraries/bubbles-preview.png | Bin 0 -> 113232 bytes .../libraries/bubbles.excalidrawlib | 1250 +++ .../cloud-design-patterns-preview.png | Bin 0 -> 171191 bytes .../cloud-design-patterns.excalidrawlib | 6804 ++++++++++++ .../references/libraries/emojis-preview.png | Bin 0 -> 1041918 bytes .../references/libraries/emojis.excalidrawlib | 9782 ++++++++++++++++ .../infographic-elements-preview.png | Bin 0 -> 285575 bytes .../infographic-elements.excalidrawlib | 1 + .../lo-fi-wireframing-kit-preview.png | Bin 0 -> 129926 bytes .../lo-fi-wireframing-kit.excalidrawlib | 9488 ++++++++++++++++ .../libraries/stick-figures-preview.png | Bin 0 -> 225226 bytes .../libraries/stick-figures.excalidrawlib | 3390 ++++++ .../libraries/sticky-notes-preview.png | Bin 0 -> 127084 bytes .../libraries/sticky-notes.excalidrawlib | 518 + .../libraries/system-design-preview.png | Bin 0 -> 270370 bytes .../libraries/system-design.excalidrawlib | 8096 ++++++++++++++ .../libraries/technology-logos-preview.png | Bin 0 -> 190660 bytes .../libraries/technology-logos.excalidrawlib | 9892 +++++++++++++++++ .../references/pyproject.toml | 8 + .../references/render_excalidraw.py | 303 + .../references/render_template.html | 69 + .../references/signature-elements.md | 158 + .../excalidraw-diagram/references/uv.lock | 202 + .../.claude-plugin/plugin.json | 19 +- .../.cursor-plugin/plugin.json | 19 +- .../skills/figma-console-mcp | 1 - .../skills/figma-console-mcp/.plugin.json | 18 + .../skills/figma-console-mcp/SKILL.md | 343 + .../miro-board/.claude-plugin/plugin.json | 19 +- .../miro-board/.cursor-plugin/plugin.json | 19 +- .../miro-board/skills/miro-board | 1 - .../miro-board/skills/miro-board/.plugin.json | 18 + .../miro-board/skills/miro-board/SKILL.md | 175 + .../paperclip-api/.claude-plugin/plugin.json | 18 +- .../paperclip-api/.cursor-plugin/plugin.json | 18 +- .../paperclip-api/skills/paperclip-api | 1 - .../skills/paperclip-api/.plugin.json | 17 + .../skills/paperclip-api/SKILL.md | 1353 +++ .../paperclip-api/references/api-notes.md | 325 + .../skills/paperclip-api/scripts/paperclip.sh | 1905 ++++ .../.claude-plugin/plugin.json | 19 +- .../.cursor-plugin/plugin.json | 19 +- .../skills/para-memory-files | 1 - .../skills/para-memory-files/.plugin.json | 18 + .../skills/para-memory-files/SKILL.md | 106 + .../para-memory-files/references/schemas.md | 35 + .../.claude-plugin/plugin.json | 19 +- .../.cursor-plugin/plugin.json | 19 +- .../voxtral-tts-api/skills/voxtral-tts-api | 1 - .../skills/voxtral-tts-api/.plugin.json | 18 + .../skills/voxtral-tts-api/SKILL.md | 199 + .../vrr-efa-api/.claude-plugin/plugin.json | 19 +- .../vrr-efa-api/.cursor-plugin/plugin.json | 19 +- .../vrr-efa-api/skills/vrr-efa-api | 1 - .../skills/vrr-efa-api/.plugin.json | 18 + .../vrr-efa-api/skills/vrr-efa-api/SKILL.md | 184 + .../web-design/.claude-plugin/plugin.json | 19 +- .../web-design/.cursor-plugin/plugin.json | 19 +- .../web-design/skills/web-design | 1 - .../web-design/skills/web-design/.plugin.json | 18 + .../web-design/skills/web-design/SKILL.md | 486 + .../references/yesterday-ci-briefing.md | 202 + .../wrapup/.claude-plugin/plugin.json | 19 +- .../wrapup/.cursor-plugin/plugin.json | 19 +- .compiled/skill-plugins/wrapup/skills/wrapup | 1 - .../wrapup/skills/wrapup/.plugin.json | 18 + .../wrapup/skills/wrapup/SKILL.md | 91 + .cursor-plugin/marketplace.json | 320 +- .ytstack/DECISIONS.md | 27 +- .ytstack/KNOWLEDGE.md | 6 +- .ytstack/PROJECT.md | 2 +- .ytstack/STATE.md | 17 +- AGENTS.md | 6 +- CONTRIBUTING.md | 2 +- README.md | 8 +- clean.mjs | 3 +- compile.mjs | 66 +- .../office-extras/.claude-plugin/plugin.json | 24 +- .../office-extras/.cursor-plugin/plugin.json | 24 +- plugins/office/.claude-plugin/plugin.json | 25 +- plugins/office/.cursor-plugin/plugin.json | 25 +- .../personal-agent/.claude-plugin/plugin.json | 23 +- .../personal-agent/.cursor-plugin/plugin.json | 23 +- .../.claude-plugin/plugin.json | 22 +- .../.cursor-plugin/plugin.json | 22 +- plugins/webflow/.claude-plugin/plugin.json | 19 +- plugins/webflow/.cursor-plugin/plugin.json | 19 +- plugins/y-context7/.claude-plugin/plugin.json | 18 +- plugins/y-context7/.cursor-plugin/plugin.json | 18 +- plugins/y-exa/.claude-plugin/plugin.json | 26 +- plugins/y-exa/.cursor-plugin/plugin.json | 26 +- 142 files changed, 63845 insertions(+), 98 deletions(-) mode change 120000 => 100644 .claude-plugin/marketplace.json mode change 120000 => 100644 .compiled/skill-plugins/create-shareable-skill/.claude-plugin/plugin.json mode change 120000 => 100644 .compiled/skill-plugins/create-shareable-skill/.cursor-plugin/plugin.json delete mode 120000 .compiled/skill-plugins/create-shareable-skill/skills/create-shareable-skill create mode 100644 .compiled/skill-plugins/create-shareable-skill/skills/create-shareable-skill/.plugin.json create mode 100644 .compiled/skill-plugins/create-shareable-skill/skills/create-shareable-skill/SKILL.md create mode 100644 .compiled/skill-plugins/create-shareable-skill/skills/create-shareable-skill/references/placement.md create mode 100644 .compiled/skill-plugins/create-shareable-skill/skills/create-shareable-skill/references/quality-bar.md mode change 120000 => 100644 .compiled/skill-plugins/creative-productivity/.claude-plugin/plugin.json mode change 120000 => 100644 .compiled/skill-plugins/creative-productivity/.cursor-plugin/plugin.json delete mode 120000 .compiled/skill-plugins/creative-productivity/skills/creative-productivity create mode 100644 .compiled/skill-plugins/creative-productivity/skills/creative-productivity/.plugin.json create mode 100644 .compiled/skill-plugins/creative-productivity/skills/creative-productivity/SKILL.md create mode 100644 .compiled/skill-plugins/creative-productivity/skills/creative-productivity/references/drawio-guide.md create mode 100644 .compiled/skill-plugins/creative-productivity/skills/creative-productivity/references/excalidraw/color-palette.md create mode 100644 .compiled/skill-plugins/creative-productivity/skills/creative-productivity/references/excalidraw/guide.md create mode 100644 .compiled/skill-plugins/creative-productivity/skills/creative-productivity/references/marp-guide.md create mode 100644 .compiled/skill-plugins/creative-productivity/skills/creative-productivity/references/mermaid-patterns.md create mode 100644 .compiled/skill-plugins/creative-productivity/skills/creative-productivity/references/revealjs-guide.md mode change 120000 => 100644 .compiled/skill-plugins/excalidraw-diagram/.claude-plugin/plugin.json mode change 120000 => 100644 .compiled/skill-plugins/excalidraw-diagram/.cursor-plugin/plugin.json delete mode 120000 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/.plugin.json create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/SKILL.md create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/.gitignore create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/color-palette.md create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/element-templates.md create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/examples/dark-agent-memory.excalidraw create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/examples/dark-agent-memory.png create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/examples/dark-inference-grid.excalidraw create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/examples/dark-inference-grid.png create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/examples/innovation-pipeline.excalidraw create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/examples/innovation-pipeline.png create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/examples/micro-venture-studio.excalidraw create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/examples/micro-venture-studio.png create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/examples/rag-infographic.excalidraw create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/examples/rag-infographic.png create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/examples/set-diagram.excalidraw create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/examples/set-diagram.png create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/examples/three-exit-framework.excalidraw create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/examples/three-exit-framework.png create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/examples/typography-grid.excalidraw create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/examples/typography-grid.png create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/examples/yesterday-ci-infographic.excalidraw create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/examples/yesterday-ci-infographic.png create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/font-catalog.png create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/infographic_builder.py create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/json-schema.md create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/libraries/README.md create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/libraries/awesome-icons-preview.png create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/libraries/awesome-icons.excalidrawlib create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/libraries/bubbles-preview.png create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/libraries/bubbles.excalidrawlib create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/libraries/cloud-design-patterns-preview.png create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/libraries/cloud-design-patterns.excalidrawlib create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/libraries/emojis-preview.png create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/libraries/emojis.excalidrawlib create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/libraries/infographic-elements-preview.png create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/libraries/infographic-elements.excalidrawlib create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/libraries/lo-fi-wireframing-kit-preview.png create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/libraries/lo-fi-wireframing-kit.excalidrawlib create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/libraries/stick-figures-preview.png create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/libraries/stick-figures.excalidrawlib create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/libraries/sticky-notes-preview.png create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/libraries/sticky-notes.excalidrawlib create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/libraries/system-design-preview.png create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/libraries/system-design.excalidrawlib create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/libraries/technology-logos-preview.png create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/libraries/technology-logos.excalidrawlib create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/pyproject.toml create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/render_excalidraw.py create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/render_template.html create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/signature-elements.md create mode 100644 .compiled/skill-plugins/excalidraw-diagram/skills/excalidraw-diagram/references/uv.lock mode change 120000 => 100644 .compiled/skill-plugins/figma-console-mcp/.claude-plugin/plugin.json mode change 120000 => 100644 .compiled/skill-plugins/figma-console-mcp/.cursor-plugin/plugin.json delete mode 120000 .compiled/skill-plugins/figma-console-mcp/skills/figma-console-mcp create mode 100644 .compiled/skill-plugins/figma-console-mcp/skills/figma-console-mcp/.plugin.json create mode 100644 .compiled/skill-plugins/figma-console-mcp/skills/figma-console-mcp/SKILL.md mode change 120000 => 100644 .compiled/skill-plugins/miro-board/.claude-plugin/plugin.json mode change 120000 => 100644 .compiled/skill-plugins/miro-board/.cursor-plugin/plugin.json delete mode 120000 .compiled/skill-plugins/miro-board/skills/miro-board create mode 100644 .compiled/skill-plugins/miro-board/skills/miro-board/.plugin.json create mode 100644 .compiled/skill-plugins/miro-board/skills/miro-board/SKILL.md mode change 120000 => 100644 .compiled/skill-plugins/paperclip-api/.claude-plugin/plugin.json mode change 120000 => 100644 .compiled/skill-plugins/paperclip-api/.cursor-plugin/plugin.json delete mode 120000 .compiled/skill-plugins/paperclip-api/skills/paperclip-api create mode 100644 .compiled/skill-plugins/paperclip-api/skills/paperclip-api/.plugin.json create mode 100644 .compiled/skill-plugins/paperclip-api/skills/paperclip-api/SKILL.md create mode 100644 .compiled/skill-plugins/paperclip-api/skills/paperclip-api/references/api-notes.md create mode 100755 .compiled/skill-plugins/paperclip-api/skills/paperclip-api/scripts/paperclip.sh mode change 120000 => 100644 .compiled/skill-plugins/para-memory-files/.claude-plugin/plugin.json mode change 120000 => 100644 .compiled/skill-plugins/para-memory-files/.cursor-plugin/plugin.json delete mode 120000 .compiled/skill-plugins/para-memory-files/skills/para-memory-files create mode 100644 .compiled/skill-plugins/para-memory-files/skills/para-memory-files/.plugin.json create mode 100644 .compiled/skill-plugins/para-memory-files/skills/para-memory-files/SKILL.md create mode 100644 .compiled/skill-plugins/para-memory-files/skills/para-memory-files/references/schemas.md mode change 120000 => 100644 .compiled/skill-plugins/voxtral-tts-api/.claude-plugin/plugin.json mode change 120000 => 100644 .compiled/skill-plugins/voxtral-tts-api/.cursor-plugin/plugin.json delete mode 120000 .compiled/skill-plugins/voxtral-tts-api/skills/voxtral-tts-api create mode 100644 .compiled/skill-plugins/voxtral-tts-api/skills/voxtral-tts-api/.plugin.json create mode 100644 .compiled/skill-plugins/voxtral-tts-api/skills/voxtral-tts-api/SKILL.md mode change 120000 => 100644 .compiled/skill-plugins/vrr-efa-api/.claude-plugin/plugin.json mode change 120000 => 100644 .compiled/skill-plugins/vrr-efa-api/.cursor-plugin/plugin.json delete mode 120000 .compiled/skill-plugins/vrr-efa-api/skills/vrr-efa-api create mode 100644 .compiled/skill-plugins/vrr-efa-api/skills/vrr-efa-api/.plugin.json create mode 100644 .compiled/skill-plugins/vrr-efa-api/skills/vrr-efa-api/SKILL.md mode change 120000 => 100644 .compiled/skill-plugins/web-design/.claude-plugin/plugin.json mode change 120000 => 100644 .compiled/skill-plugins/web-design/.cursor-plugin/plugin.json delete mode 120000 .compiled/skill-plugins/web-design/skills/web-design create mode 100644 .compiled/skill-plugins/web-design/skills/web-design/.plugin.json create mode 100644 .compiled/skill-plugins/web-design/skills/web-design/SKILL.md create mode 100644 .compiled/skill-plugins/web-design/skills/web-design/references/yesterday-ci-briefing.md mode change 120000 => 100644 .compiled/skill-plugins/wrapup/.claude-plugin/plugin.json mode change 120000 => 100644 .compiled/skill-plugins/wrapup/.cursor-plugin/plugin.json delete mode 120000 .compiled/skill-plugins/wrapup/skills/wrapup create mode 100644 .compiled/skill-plugins/wrapup/skills/wrapup/.plugin.json create mode 100644 .compiled/skill-plugins/wrapup/skills/wrapup/SKILL.md mode change 120000 => 100644 .cursor-plugin/marketplace.json mode change 120000 => 100644 plugins/office-extras/.claude-plugin/plugin.json mode change 120000 => 100644 plugins/office-extras/.cursor-plugin/plugin.json mode change 120000 => 100644 plugins/office/.claude-plugin/plugin.json mode change 120000 => 100644 plugins/office/.cursor-plugin/plugin.json mode change 120000 => 100644 plugins/personal-agent/.claude-plugin/plugin.json mode change 120000 => 100644 plugins/personal-agent/.cursor-plugin/plugin.json mode change 120000 => 100644 plugins/systems-operations/.claude-plugin/plugin.json mode change 120000 => 100644 plugins/systems-operations/.cursor-plugin/plugin.json mode change 120000 => 100644 plugins/webflow/.claude-plugin/plugin.json mode change 120000 => 100644 plugins/webflow/.cursor-plugin/plugin.json mode change 120000 => 100644 plugins/y-context7/.claude-plugin/plugin.json mode change 120000 => 100644 plugins/y-context7/.cursor-plugin/plugin.json mode change 120000 => 100644 plugins/y-exa/.claude-plugin/plugin.json mode change 120000 => 100644 plugins/y-exa/.cursor-plugin/plugin.json diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json deleted file mode 120000 index 5fe7af5..0000000 --- a/.claude-plugin/marketplace.json +++ /dev/null @@ -1 +0,0 @@ -../.compiled/marketplace.json \ No newline at end of file diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json new file mode 100644 index 0000000..d1a324f --- /dev/null +++ b/.claude-plugin/marketplace.json @@ -0,0 +1,319 @@ +{ + "name": "yesterday-public-plugins", + "description": "Yesterday's PUBLIC plugin catalog.", + "owner": { + "name": "Yesterday" + }, + "allowCrossMarketplaceDependenciesOn": [ + "claude-plugins-official" + ], + "plugins": [ + { + "name": "ytstack", + "description": "BUNDLE: Yesterday Technologies Stack -- opinionated software-development OS for AI agents. Curated superpowers + gstack skills plus Project-OS artifact discipline (PROJECT.md, DECISIONS.md, KNOWLEDGE.md, milestone/slice/task hierarchy), orchestrated via SessionStart hooks.", + "source": { + "source": "github", + "repo": "Yesterday-AI/ytstack" + }, + "author": { + "name": "Yesterday" + }, + "homepage": "https://github.com/Yesterday-AI/ytstack", + "repository": "https://github.com/Yesterday-AI/ytstack", + "license": "MIT", + "keywords": [ + "claude-code", + "agentic", + "development-methodology", + "project-management", + "artifact-discipline", + "yesterday" + ] + }, + { + "name": "office", + "description": "BUNDLE: Daily-work core tier. Generic productivity, creative, and knowledge skills for daily work; nothing requires external SaaS keys at install time. Optional SaaS integrations (Figma, Miro, Voxtral TTS, VRR transit) live in office-extras.", + "source": "./plugins/office", + "author": { + "name": "Yesterday" + }, + "keywords": [ + "claude-code", + "yesterday", + "productivity", + "daily-work", + "knowledge-management", + "creative" + ] + }, + { + "name": "office-extras", + "description": "BUNDLE: Daily-work extras tier. Optional integrations needing external SaaS accounts/keys (Figma, Miro, Voxtral TTS, VRR transit). Install alongside office when you actually use these services.", + "source": "./plugins/office-extras", + "author": { + "name": "Yesterday" + }, + "keywords": [ + "claude-code", + "yesterday", + "productivity", + "daily-work", + "extras" + ] + }, + { + "name": "personal-agent", + "description": "BUNDLE: Yesterday Agent Stack -- generic skills for AI agents in human-AI collaboration and AI-as-expert workflows (Levels of AGI 3-4). Stateful patrols, agent-to-agent orchestration, self-improvement, durable infra ops. No Yesterday-infra dependencies; works for any team running long-running Claude Code agents.", + "source": "./plugins/personal-agent", + "author": { + "name": "Yesterday" + }, + "keywords": [ + "claude-code", + "agentic", + "autonomous-agents", + "agent-orchestration", + "yesterday" + ] + }, + { + "name": "systems-operations", + "description": "BUNDLE: SysOps -- generic infrastructure-provisioning, deployment, and observability skills for agents. opentofu + railway-deploy + butler-deploy + land-and-deploy + canary + setup-deploy.", + "source": "./plugins/systems-operations", + "author": { + "name": "Yesterday" + }, + "keywords": [ + "claude-code", + "ops", + "deployment", + "infrastructure", + "observability", + "opentofu", + "railway", + "itch.io", + "yesterday" + ] + }, + { + "name": "webflow", + "description": "Ships the Webflow MCP server (remote HTTP, OAuth at mcp.webflow.com) plus the `webflow` skill, so any project or bundle can declare a single dependency to read and edit Webflow sites -- pages, CMS, assets, components, styles, variables, custom code, comments, localization, and publishing.", + "source": "./plugins/webflow", + "author": { + "name": "Yesterday" + }, + "keywords": [ + "claude-code", + "yesterday", + "webflow", + "mcp", + "cms", + "web" + ] + }, + { + "name": "y-context7", + "description": "Single-source MCP plugin that adds the Context7 server (npx @upstash/context7-mcp) for live, version-accurate library documentation lookups. Lets any bundle depend on one shared definition instead of redeclaring the server (avoids the Claude Code MCP-name dedupe warning). No API key required.", + "source": "./plugins/y-context7", + "author": { + "name": "Yesterday" + }, + "keywords": [ + "claude-code", + "yesterday", + "context7", + "mcp", + "docs" + ] + }, + { + "name": "y-exa", + "description": "Single-source MCP plugin that adds the Exa semantic-web-search server (npx exa-mcp-server), giving agents full-text web search and content retrieval. Lets any bundle depend on one shared definition instead of redeclaring the server (avoids the Claude Code MCP-name dedupe warning). Prompts for an Exa API key on enable via userConfig; get one at https://exa.ai/.", + "source": "./plugins/y-exa", + "author": { + "name": "Yesterday" + }, + "keywords": [ + "claude-code", + "yesterday", + "exa", + "mcp", + "web-search" + ] + }, + { + "name": "create-shareable-skill", + "description": "Turn an existing skill or a fresh idea into a catalog-ready shareable skill -- run the quality gate, decide catalog and standalone-vs-bundle placement, pick the category, scaffold SKILL.md (+ optional .plugin.json), update the catalog docs, and open a PR. Use when adding a new skill to the catalog or promoting a personal skill into a shareable one.", + "source": "./.compiled/skill-plugins/create-shareable-skill", + "author": { + "name": "Yesterday" + }, + "keywords": [ + "claude-code", + "yesterday", + "skill-authoring", + "meta", + "contributing" + ] + }, + { + "name": "creative-productivity", + "description": "Generate professional consulting deliverables: Excalidraw diagrams, Mermaid visualizations, Reveal.js/Marp presentations, draw.io architecture diagrams, one-pagers, proposal documents. Orchestrator with enriched assets over the underlying tool plugins.", + "source": "./.compiled/skill-plugins/creative-productivity", + "author": { + "name": "Yesterday" + }, + "keywords": [ + "claude-code", + "yesterday", + "deliverables", + "consulting", + "diagrams", + "presentations" + ] + }, + { + "name": "excalidraw-diagram", + "description": "Generate Excalidraw diagrams. Create various types of diagrams, such as flowcharts, wireframes, infographics, and mind maps, to help visualize ideas and concepts.", + "source": "./.compiled/skill-plugins/excalidraw-diagram", + "author": { + "name": "Yesterday" + }, + "keywords": [ + "claude-code", + "yesterday", + "excalidraw", + "diagram", + "mcp", + "ui" + ] + }, + { + "name": "figma-console-mcp", + "description": "Connect AI agents to Figma via the Figma Console MCP server. Design system extraction, UI component creation, variable/token management, visual debugging, FigJam boards, Slides presentations.", + "source": "./.compiled/skill-plugins/figma-console-mcp", + "author": { + "name": "Yesterday" + }, + "keywords": [ + "claude-code", + "yesterday", + "figma", + "design-system", + "mcp", + "ui" + ] + }, + { + "name": "miro-board", + "description": "Create and read Miro board content via MCP tools. Diagrams (flowcharts, mindmaps, UML, ER), documents (markdown), tables, and context extraction.", + "source": "./.compiled/skill-plugins/miro-board", + "author": { + "name": "Yesterday" + }, + "keywords": [ + "claude-code", + "yesterday", + "miro", + "diagrams", + "mcp", + "whiteboard" + ] + }, + { + "name": "paperclip-api", + "description": "Manage Paperclip AI companies, agents, issues, projects, goals, routines, costs, and secrets via REST API. Use when creating companies, hiring agents, assigning tasks, managing budgets, or checking dashboards on a Paperclip instance.", + "source": "./.compiled/skill-plugins/paperclip-api", + "author": { + "name": "Yesterday" + }, + "keywords": [ + "claude-code", + "yesterday", + "paperclip", + "agents", + "api-client" + ] + }, + { + "name": "para-memory-files", + "description": "File-based memory system using Tiago Forte's PARA method. Agent-side persistence across sessions: knowledge graph in PARA folders, working memory, journal entries.", + "source": "./.compiled/skill-plugins/para-memory-files", + "author": { + "name": "Yesterday" + }, + "keywords": [ + "claude-code", + "yesterday", + "memory", + "persistence", + "para", + "knowledge-management" + ] + }, + { + "name": "voxtral-tts-api", + "description": "Mistral Voxtral TTS API client. Natural, emotionally expressive speech in 9 languages. Voice cloning from 3s samples, preset voices, streaming, cross-lingual synthesis.", + "source": "./.compiled/skill-plugins/voxtral-tts-api", + "author": { + "name": "Yesterday" + }, + "keywords": [ + "claude-code", + "yesterday", + "tts", + "voice", + "mistral", + "api-client" + ] + }, + { + "name": "vrr-efa-api", + "description": "VRR (Verkehrsverbund Rhein-Ruhr) live transit API client. Departures, connections, stops via EFA API -- real-time, free, no API key. Niche regional vertical (German public transit).", + "source": "./.compiled/skill-plugins/vrr-efa-api", + "author": { + "name": "Yesterday" + }, + "keywords": [ + "claude-code", + "yesterday", + "transit", + "vrr", + "germany", + "api-client" + ] + }, + { + "name": "web-design", + "description": "Build distinctive, production-grade frontend interfaces with high design quality. Use when building websites, landing pages, dashboards, web apps, or any UI that should look polished and modern.", + "source": "./.compiled/skill-plugins/web-design", + "author": { + "name": "Yesterday" + }, + "keywords": [ + "claude-code", + "yesterday", + "design", + "frontend", + "ui", + "ux" + ] + }, + { + "name": "wrapup", + "description": "Wrapup of the conversation -- memorize features and requirements, extend roadmap / changelog / planning / agent context / decisions / specs, distill learnings, and prepare a resume prompt for after /compact. Lightweight, project-agnostic counterpart to ytstack:summarize-task / ytstack:handoff-session.", + "source": "./.compiled/skill-plugins/wrapup", + "author": { + "name": "Yesterday" + }, + "keywords": [ + "claude-code", + "yesterday", + "session-lifecycle", + "wrapup", + "documentation", + "compact" + ] + } + ] +} diff --git a/.compiled/skill-plugins/create-shareable-skill/.claude-plugin/plugin.json b/.compiled/skill-plugins/create-shareable-skill/.claude-plugin/plugin.json deleted file mode 120000 index 6a3e9ac..0000000 --- a/.compiled/skill-plugins/create-shareable-skill/.claude-plugin/plugin.json +++ /dev/null @@ -1 +0,0 @@ -../../../../skills/operations/create-shareable-skill/.plugin.json \ No newline at end of file diff --git a/.compiled/skill-plugins/create-shareable-skill/.claude-plugin/plugin.json b/.compiled/skill-plugins/create-shareable-skill/.claude-plugin/plugin.json new file mode 100644 index 0000000..f069719 --- /dev/null +++ b/.compiled/skill-plugins/create-shareable-skill/.claude-plugin/plugin.json @@ -0,0 +1,17 @@ +{ + "name": "create-shareable-skill", + "description": "Turn an existing skill or a fresh idea into a catalog-ready shareable skill -- run the quality gate, decide catalog and standalone-vs-bundle placement, pick the category, scaffold SKILL.md (+ optional .plugin.json), update the catalog docs, and open a PR. Use when adding a new skill to the catalog or promoting a personal skill into a shareable one.", + "author": { + "name": "Yesterday" + }, + "homepage": "https://github.com/Yesterday-AI/skills/tree/main/.compiled/skill-plugins/create-shareable-skill", + "repository": "https://github.com/Yesterday-AI/skills", + "license": "MIT", + "keywords": [ + "claude-code", + "yesterday", + "skill-authoring", + "meta", + "contributing" + ] +} diff --git a/.compiled/skill-plugins/create-shareable-skill/.cursor-plugin/plugin.json b/.compiled/skill-plugins/create-shareable-skill/.cursor-plugin/plugin.json deleted file mode 120000 index 6a3e9ac..0000000 --- a/.compiled/skill-plugins/create-shareable-skill/.cursor-plugin/plugin.json +++ /dev/null @@ -1 +0,0 @@ -../../../../skills/operations/create-shareable-skill/.plugin.json \ No newline at end of file diff --git a/.compiled/skill-plugins/create-shareable-skill/.cursor-plugin/plugin.json b/.compiled/skill-plugins/create-shareable-skill/.cursor-plugin/plugin.json new file mode 100644 index 0000000..f069719 --- /dev/null +++ b/.compiled/skill-plugins/create-shareable-skill/.cursor-plugin/plugin.json @@ -0,0 +1,17 @@ +{ + "name": "create-shareable-skill", + "description": "Turn an existing skill or a fresh idea into a catalog-ready shareable skill -- run the quality gate, decide catalog and standalone-vs-bundle placement, pick the category, scaffold SKILL.md (+ optional .plugin.json), update the catalog docs, and open a PR. Use when adding a new skill to the catalog or promoting a personal skill into a shareable one.", + "author": { + "name": "Yesterday" + }, + "homepage": "https://github.com/Yesterday-AI/skills/tree/main/.compiled/skill-plugins/create-shareable-skill", + "repository": "https://github.com/Yesterday-AI/skills", + "license": "MIT", + "keywords": [ + "claude-code", + "yesterday", + "skill-authoring", + "meta", + "contributing" + ] +} diff --git a/.compiled/skill-plugins/create-shareable-skill/skills/create-shareable-skill b/.compiled/skill-plugins/create-shareable-skill/skills/create-shareable-skill deleted file mode 120000 index bec6e0c..0000000 --- a/.compiled/skill-plugins/create-shareable-skill/skills/create-shareable-skill +++ /dev/null @@ -1 +0,0 @@ -../../../../skills/operations/create-shareable-skill \ No newline at end of file diff --git a/.compiled/skill-plugins/create-shareable-skill/skills/create-shareable-skill/.plugin.json b/.compiled/skill-plugins/create-shareable-skill/skills/create-shareable-skill/.plugin.json new file mode 100644 index 0000000..f069719 --- /dev/null +++ b/.compiled/skill-plugins/create-shareable-skill/skills/create-shareable-skill/.plugin.json @@ -0,0 +1,17 @@ +{ + "name": "create-shareable-skill", + "description": "Turn an existing skill or a fresh idea into a catalog-ready shareable skill -- run the quality gate, decide catalog and standalone-vs-bundle placement, pick the category, scaffold SKILL.md (+ optional .plugin.json), update the catalog docs, and open a PR. Use when adding a new skill to the catalog or promoting a personal skill into a shareable one.", + "author": { + "name": "Yesterday" + }, + "homepage": "https://github.com/Yesterday-AI/skills/tree/main/.compiled/skill-plugins/create-shareable-skill", + "repository": "https://github.com/Yesterday-AI/skills", + "license": "MIT", + "keywords": [ + "claude-code", + "yesterday", + "skill-authoring", + "meta", + "contributing" + ] +} diff --git a/.compiled/skill-plugins/create-shareable-skill/skills/create-shareable-skill/SKILL.md b/.compiled/skill-plugins/create-shareable-skill/skills/create-shareable-skill/SKILL.md new file mode 100644 index 0000000..e4762a5 --- /dev/null +++ b/.compiled/skill-plugins/create-shareable-skill/skills/create-shareable-skill/SKILL.md @@ -0,0 +1,182 @@ +--- +name: create-shareable-skill +description: Turn an existing skill or a fresh idea into a catalog-ready shareable skill -- run the quality gate, decide public-vs-private catalog and standalone-vs-bundle placement, pick the category, scaffold SKILL.md (+ optional .plugin.json), update the catalog docs, and open a PR to main. Use when adding a new skill to this repo, promoting a personal or ad-hoc skill into a shareable one, or routing a skill into the right catalog. +metadata: + category: skill-authoring +--- + +# create-shareable-skill + +The authoring counterpart to `audit-skills` (`.agents/skills/audit-skills/SKILL.md`): `audit-skills` verifies what is already in the catalog, `create-shareable-skill` gets a skill *into* the catalog correctly. It walks one skill end to end -- intake, quality gate, placement decision, scaffold, compile + audit, docs, PR -- and refuses to scaffold a skill that cannot meet the bar. + +`create-shareable-skill` is itself a standalone skill in the catalog (`skills/operations/create-shareable-skill/`), discovered and compiled by `compile.mjs` like any other. `audit-skills` stays repo-local tooling under `.agents/skills/` because it is pure verification machinery; this skill is the user-facing authoring workflow, so it ships in the catalog. + +## When to use + +- Adding a brand-new skill to this repo or the private `yesterday-skills` repo +- Promoting a personal / ad-hoc skill (from `~/.claude/skills/`, another repo, or invented in a conversation) into a shareable one +- You have a skill and are unsure which catalog, form (standalone vs bundle), or category it belongs in +- Before a skill PR, to make sure the skill clears the quality bar instead of finding out in review + +For the inverse -- checking skills already in the tree for leaks, drift, and spec violations -- use `audit-skills`. + +## The two catalogs + +| Catalog | Repo | Marketplace name | Audience | +| --- | --- | --- | --- | +| Public | `Yesterday-AI/skills` (this repo) | `yesterday-public-plugins` | every Claude Code / Cursor user worldwide | +| Private | `Yesterday-AI/yesterday-skills` | `yesterday-private-plugins` | Yesterday team; may depend on internal infra | + +A skill belongs in the **public** catalog only if BOTH hold (acceptance criterion, `.ytstack/DECISIONS.md` 2026-05-08): + +1. It is installable and -- for the no-key paths -- usable by anyone with a stock public Claude Code / Cursor install. SaaS-key-gated skills are fine as long as the SaaS itself is publicly available (Figma, Mistral, ...). +2. It does NOT depend on private hostnames, private package registries, internal-only auth providers, or services that are not publicly reachable. + +Anything that fails either test goes in the **private** catalog. Full routing logic, including standalone-vs-bundle and category selection, is in [`references/placement.md`](references/placement.md). + +## Procedure + +You MUST create a TodoWrite entry for each step and complete them in order. Do not skip the quality gate. + +### 1. Intake + +Establish three things before touching any files: + +- **Source.** Existing skill being made shareable, or new from scratch? If existing: read its current `SKILL.md` + every asset (`references/`, `scripts/`). If new: gather the workflow / knowledge / tool usage from the user until you can write a self-contained `SKILL.md`. +- **Capability.** A one-line statement of what the skill makes an agent able to do. If you cannot write this line, the skill is not ready -- the description frontmatter depends on it. +- **Origin facts.** Where the source lives, whether it carries personal paths / tokens / handles, whether it references private infra. These feed the quality gate and the catalog decision. + +### 2. Quality gate + +Apply [`references/quality-bar.md`](references/quality-bar.md) -- the "shareable by default" standard. In short: + +- **Depersonalize.** Strip usernames in paths, personal hostnames, personal tokens/keys, personal handles. (Blocking in *both* catalogs.) +- **Self-contained.** The skill carries its own knowledge in `SKILL.md` + `references/`. No links to private notes, no un-shared paths, no "ask ". +- **No internal-perspective framing** in user-facing fields (description, README, frontmatter, `.plugin.json`). Write from the user's vantage ("install with X", "requires SaaS Y"), not the maintainer org's (infra-dependency disclaimers, rename / migration history). Migration / org framing belongs in `.ytstack/DECISIONS.md`. +- **Description line.** One paragraph, says what the skill does AND when to invoke it. Routing depends entirely on this line (Anthropic Progressive Disclosure level 1) -- vague description = the skill never fires. +- **Slug.** Specific, self-explanatory, kebab-case, collision-free. Names the concrete capability, not the tool or domain in general (`github-worktrees`, not `github`). Slug = folder name = `.plugin.json` `name`. + +If the skill cannot clear the bar, STOP. Report what is missing and what it would take to fix. Do not scaffold a substandard skill into the tree. + +### 3. Placement decision + +Use [`references/placement.md`](references/placement.md). Three questions: + +1. **Which catalog?** Public `skills` vs private `yesterday-skills` -- apply the acceptance criterion above. +2. **Standalone or bundle?** A standalone skill lives at `skills///` and is also installable as its own plugin. Joining a bundle (adding it to a `plugins//skills/` folder or to a bundle's `dependencies[]`) changes what *every existing installer of that bundle* receives -- so bundle extension **requires explicit user confirmation**. Ask before extending a bundle; never do it silently. +3. **Which category?** Standalone only. Pick from the categories that already exist in the target repo; propose a new category only if nothing fits, and confirm it with the user. + +### 4. Scaffold + +- Write `SKILL.md` with valid frontmatter (`name`, `description`; optional `metadata`) into the chosen path. Template + `.plugin.json` template are in [`references/quality-bar.md`](references/quality-bar.md). +- Add `.plugin.json` next to it for a richer manifest (`author`, `homepage`, `repository`, `license`, `keywords`) -- recommended for standalone skills so the marketplace listing is complete. Without it, `compile.mjs` generates a minimal manifest from frontmatter. +- Place assets under `references/` (knowledge loaded on demand) and `scripts/` (executable helpers). +- **Never add a `version` field** -- the catalog resolves plugins by git SHA on purpose (`.ytstack/DECISIONS.md`, CONTRIBUTING "Versioning"). + +### 5. Compile + audit + +```bash +node compile.mjs +``` + +Verify the skill appears at `.compiled/skill-plugins//` and the marketplace plugin count went up by one: + +```bash +node -e "console.log(JSON.parse(require('fs').readFileSync('.compiled/marketplace.json','utf8')).plugins.length, 'plugins')" +``` + +Then run `audit-skills` (`.agents/skills/audit-skills/SKILL.md`). Zero blocking findings (LEAK / SPEC) is required before the PR. JARGON / INCONSISTENCY findings must be resolved or explicitly justified. + +### 6. Docs update + +Documentation is part of "done", not a follow-up: + +- **Standalone added to a catalog** -> bump the README plugin counts (`N plugins total`, the per-section count) and add a row to the correct category table in that repo's `README.md`. +- **Bundle extended** -> update that bundle's `README.md` "What's in it" section and its `dependencies[]` rationale. +- **New convention introduced** (a new category, a new manifest field, a pipeline change) -> record it in `.ytstack/DECISIONS.md` and, if it affects contributors, `CONTRIBUTING.md` / `AGENTS.md`. +- **Sister-repo parity** -> `skills` and `yesterday-skills` share `compile.mjs`, `clean.mjs`, the OSS scaffold, and the folder/name parity rule. If the change touches any shared file or convention, state in the PR that the sister repo needs the same change. + +### 7. PR to main + +New skills enter the catalog **only via PR to `main`** -- never a direct push. + +```bash +git checkout -b add- # branch first; never commit a new skill on main +git add <.ytstack/...> +git commit # message: "add " (CONTRIBUTING commit format) +git push -u origin add- +gh pr create --base main --title "add " --body "" +``` + +CI (`.github/workflows/compile.yml` + `secret-scan.yml`) re-runs compile + a gitleaks scan on the PR. **Never self-merge** -- a new catalog entry needs human signoff. Report the PR link and stop. + +## Decision flow + +```dot +digraph create_shareable_skill { + "Intake: source + capability" [shape=box]; + "Quality gate" [shape=box]; + "Clears the bar?" [shape=diamond]; + "STOP: report gaps" [shape=doublecircle]; + "Needs private infra?" [shape=diamond]; + "Private catalog (yesterday-skills)" [shape=box]; + "Public catalog (skills)" [shape=box]; + "Standalone or bundle?" [shape=diamond]; + "Confirm bundle extension" [shape=box]; + "Pick category" [shape=box]; + "Scaffold SKILL.md (+ .plugin.json)" [shape=box]; + "compile.mjs + audit-skills" [shape=box]; + "Docs update" [shape=box]; + "Branch + commit + PR to main" [shape=doublecircle]; + + "Intake: source + capability" -> "Quality gate"; + "Quality gate" -> "Clears the bar?"; + "Clears the bar?" -> "STOP: report gaps" [label="no"]; + "Clears the bar?" -> "Needs private infra?" [label="yes"]; + "Needs private infra?" -> "Private catalog (yesterday-skills)" [label="yes"]; + "Needs private infra?" -> "Public catalog (skills)" [label="no"]; + "Private catalog (yesterday-skills)" -> "Standalone or bundle?"; + "Public catalog (skills)" -> "Standalone or bundle?"; + "Standalone or bundle?" -> "Confirm bundle extension" [label="bundle"]; + "Standalone or bundle?" -> "Pick category" [label="standalone"]; + "Confirm bundle extension" -> "Scaffold SKILL.md (+ .plugin.json)"; + "Pick category" -> "Scaffold SKILL.md (+ .plugin.json)"; + "Scaffold SKILL.md (+ .plugin.json)" -> "compile.mjs + audit-skills"; + "compile.mjs + audit-skills" -> "Docs update"; + "Docs update" -> "Branch + commit + PR to main"; +} +``` + +## Output format + +Report each phase as you complete it. End with a summary block: + +``` +create-shareable-skill: + Catalog: public skills | private yesterday-skills + Form: standalone (skills///) | bundle member of + Quality: issues found, fixed (depersonalization, framing, description, slug) + Compile: plugins in marketplace (was ) + Audit: LEAK, SPEC, JARGON, INCONSISTENCY + Docs: README counts bumped | bundle README updated | DECISIONS.md entry + PR: (not merged -- awaiting human signoff) +``` + +## What this skill does NOT do + +- **Does not self-merge.** A new catalog entry always needs human signoff. It opens the PR and stops. +- **Does not extend a bundle silently.** Bundle membership changes every existing installer's payload -- it asks first. +- **Does not invent a category to avoid a decision.** Prefers an existing category; a new one is a deliberate, confirmed choice. +- **Does not write the skill's domain content for you.** For a new-from-scratch skill it gathers the knowledge from the user; it will not fabricate a workflow it does not have. +- **Does not edit `.compiled/`.** That tree is regenerated by `compile.mjs` on every run. +- **Does not replace `audit-skills`.** It runs `audit-skills` as step 5; it does not duplicate the leak/consistency/spec scan. + +## See also + +- [`references/placement.md`](references/placement.md) -- public-vs-private, standalone-vs-bundle, category selection, with the current repo facts +- [`references/quality-bar.md`](references/quality-bar.md) -- the shareable-by-default checklist, the `SKILL.md` + `.plugin.json` templates, the depersonalization checklist +- `audit-skills` (`.agents/skills/audit-skills/SKILL.md`) -- the verification counterpart; run it as step 5 +- `CONTRIBUTING.md` -- adding a standalone skill / bundle / external; commit message format; versioning policy +- `AGENTS.md` -- hard rules for agents working on this repo +- `.ytstack/DECISIONS.md` -- public-installability acceptance criterion; the internal-perspective-framing rule; no-`version` policy +- company-orga `03_technologies/32_strategy/04_ai-skills-und-plugins.md` -- the "shareable by default" quality standard and the two-catalog strategy diff --git a/.compiled/skill-plugins/create-shareable-skill/skills/create-shareable-skill/references/placement.md b/.compiled/skill-plugins/create-shareable-skill/skills/create-shareable-skill/references/placement.md new file mode 100644 index 0000000..f2b6008 --- /dev/null +++ b/.compiled/skill-plugins/create-shareable-skill/skills/create-shareable-skill/references/placement.md @@ -0,0 +1,79 @@ +# Placement -- where a shareable skill goes + +Three decisions, in order: **which catalog**, **standalone or bundle**, **which category**. Each one narrows the path the skill lands at. + +## Decision 1 -- which catalog + +| | Public `Yesterday-AI/skills` | Private `Yesterday-AI/yesterday-skills` | +| --- | --- | --- | +| Marketplace name | `yesterday-public-plugins` | `yesterday-private-plugins` | +| Audience | anyone with Claude Code / Cursor | Yesterday team | +| May depend on private infra | no | yes | +| Cross-marketplace deps | avoid (see below) | allowed -- depends on `yesterday-public-plugins` | + +A skill goes **public** only if BOTH hold: + +1. Installable and -- for the no-key paths -- usable by anyone with a stock public Claude Code / Cursor install. SaaS-key-gated skills are fine when the SaaS is publicly available (Figma, Mistral, ...). +2. No dependency on private hostnames, private package registries, internal-only auth providers, or services that are not publicly reachable. + +Fail either test -> the skill goes **private**. Examples that force private placement: a skill that talks to an internal LLM gateway hostname, one that needs an internal-only auth provider, one whose `references/` carry internal service topology. + +Borderline calls: + +- **Documents a Yesterday-built but publicly reachable API** (e.g. a hosted product API anyone can sign up for) -> public is fine; treat the API like any third-party SaaS and document the key requirement from the user's perspective. +- **Generic workflow, no infra at all** (a methodology, a code pattern) -> public. +- **Needs an internal package registry or a repo ending in `-internal`** -> private, no exceptions. + +Cross-marketplace dependency rule: `allowCrossMarketplaceDependenciesOn` is a *permission whitelist, not an installer*. A public-catalog bundle that declares a cross-marketplace dep errors in `/doctor` on a clean install because the user never added the other marketplace. So **public bundles must be installable + `/doctor`-clean with a single `/plugin install`** -- avoid cross-marketplace deps entirely. The private catalog intentionally cross-depends on the public one; that is expected there. + +## Decision 2 -- standalone or bundle + +### Standalone skill + +Lives at `skills///SKILL.md` (+ optional `.plugin.json`). `compile.mjs` discovers it, scaffolds a per-skill plugin under `.compiled/skill-plugins//`, and lists it in the marketplace as its own installable plugin. This is the default for a single, self-contained capability. + +### Bundle member + +A bundle (`plugins//plugin.json`) composes several skills. A skill becomes part of a bundle one of two ways: + +- it is dropped into `plugins//skills//SKILL.md`, or +- it is a standalone skill and the bundle lists it in `dependencies[]`. + +Either way, **extending a bundle changes the payload that every existing installer of that bundle already receives.** That is a user-visible change to a shipped product surface. + +> **Bundle extension requires explicit user confirmation.** Never add a skill to a bundle's `skills/` folder or `dependencies[]` silently. Ask: "this will add `` to everyone who has `` installed -- confirm?" Only proceed on an explicit yes. + +Prefer standalone unless the skill is genuinely part of a coherent set the bundle already represents. When unsure, ship standalone first; it can be added to a bundle later (with confirmation). + +## Decision 3 -- which category (standalone only) + +Slug = parent folder name = `.plugin.json` `name` field. Pick a category folder under `skills/`. + +**Use a category that already exists in the target repo.** Check the live tree before deciding: + +```bash +find skills -maxdepth 2 -type d | sort +``` + +In this repo the category folders that currently exist are `capabilities`, `operations`, `productivity`, and `travel` (nested grouping under a category is allowed -- e.g. `skills/capabilities/memory//`). The README's "What's in the catalog" section groups some skills under headings that do not match the on-disk folder (`concepts`, `development-operations`) -- that is pre-existing README drift, not a set of real folders. **Route by the actual on-disk folders, and flag the README/folder mismatch as an `audit-skills` INCONSISTENCY finding rather than perpetuating it.** + +Propose a **new category** only when no existing one is a reasonable fit, and confirm it with the user before creating the folder. A new category is a deliberate taxonomy decision -- record it in `.ytstack/DECISIONS.md`. + +Naming rules for the slug (also enforced by `audit-skills`): + +- Names the concrete capability, not the tool or domain in general: `github-worktrees`, not `github`; `web-design`, not `wd`; `paperclip-api`, not `pc`. +- Self-explanatory in a `/skills` list with no conversation context. +- kebab-case, no spaces, collision-free across all of `skills/**` (a collision makes `compile.mjs` skip one skill with a warning). + +## Resulting paths + +| Decision | Path | +| --- | --- | +| Public standalone | `skills///SKILL.md` (+ `.plugin.json`) in `Yesterday-AI/skills` | +| Public bundle member (folder) | `plugins//skills//SKILL.md` in `Yesterday-AI/skills` -- **confirm first** | +| Public bundle member (dependency) | standalone path above + `` added to `plugins//plugin.json` `dependencies[]` -- **confirm first** | +| Private standalone | `skills///SKILL.md` in `Yesterday-AI/yesterday-skills` | +| Private bundle member | `plugins//...` in `Yesterday-AI/yesterday-skills` -- **confirm first** | +| Repo-local tooling (pure verification / build machinery) | `.agents/skills//SKILL.md` -- not compiled, not published | + +The last row is where `audit-skills` lives -- it is pure verification machinery, not a user-facing capability, so it stays repo-local. `create-shareable-skill` itself ships in the catalog as a standalone skill (`skills/operations/create-shareable-skill/`): authoring a shareable skill *is* a user-facing capability. diff --git a/.compiled/skill-plugins/create-shareable-skill/skills/create-shareable-skill/references/quality-bar.md b/.compiled/skill-plugins/create-shareable-skill/skills/create-shareable-skill/references/quality-bar.md new file mode 100644 index 0000000..d08cf01 --- /dev/null +++ b/.compiled/skill-plugins/create-shareable-skill/skills/create-shareable-skill/references/quality-bar.md @@ -0,0 +1,124 @@ +# Quality bar -- shareable by default + +A skill is only a good skill if someone else -- a colleague, a customer, a stranger's Claude Code -- can install and use it with no follow-up questions. Every item below is a gate, not a suggestion. If a skill cannot pass, `create-shareable-skill` stops and reports the gap instead of scaffolding it. + +## The gates + +### 1. Depersonalized (blocking in BOTH catalogs) + +No personal data survives into a shared skill -- not even in the private catalog. + +- No usernames in paths -- `/Users//...`, `/home//...`, `C:\Users\\...` -> replace the username with a placeholder or strip the path entirely +- No personal hostnames / machine names / LAN IPs (RFC1918 ranges like 192.168/16 or 10/8, `*.local`, `*.lan`, personal NAS names) +- No personal tokens / keys (`sk-…`, `ghp_…`, `xox[baprs]-…`, `AKIA…`) -- revoke and remove +- No personal handles, real contributor names (other than the `Yesterday` org / public author handles), private emails +- No browser bookmarks, session cookies, OAuth callback URLs with state tokens + +### 2. Self-contained + +The skill carries everything it needs. + +- Knowledge lives in `SKILL.md` + `references/*.md`, not in the author's Confluence / Notion / private notes +- No links to un-shared paths or private docs +- No "ask " / "see the channel" -- if the agent needs it, it is in the skill +- `scripts/` are runnable as shipped; no assumed local state + +### 3. No internal-perspective framing (blocking in PUBLIC; keep org framing in `.ytstack/`) + +User-facing fields -- `description`, `SKILL.md` body, `README.md`, `.plugin.json` -- speak from the *user's* vantage, not Yesterday's. + +- Write "install with X", "requires a SaaS account for Y" -- not "no Yesterday-infra deps", "generic-tauglich", "Yesterday team needs ..." +- No migration / refactor history: `formerly X`, `previously lived in`, `promoted from`, `(renamed: X)`, predecessor repo names +- No `-internal` repo names, internal Slack channels, Linear/Jira ticket codes +- Org / migration framing that has to be recorded somewhere goes in `.ytstack/DECISIONS.md`, never a user-facing file + +### 4. Sharp description line + +The frontmatter `description` is the single thing the model routes on (Anthropic Progressive Disclosure level 1). A vague description means the skill never fires. + +- One paragraph. States WHAT the skill does AND WHEN it should be invoked. +- Concrete triggers: "Use when asked to build websites, landing pages, dashboards ..." beats "helps with web stuff". +- No internal jargon (it is a user-facing field). + +### 5. Non-ambiguous slug + +- Names the concrete capability, not the tool or domain in general: `github-worktrees` not `github`, `web-design` not `wd`, `paperclip-api` not `pc`. +- Self-explanatory in a bare `/skills` list with no conversation context. +- kebab-case, no spaces, collision-free across `skills/**`. +- Slug = folder name = `.plugin.json` `name`. Drift between the three is caught by `audit-skills`. + +### 6. Spec-compliant manifest + +- `.plugin.json` `name` is required, kebab-case, matches the folder. +- `author` may carry `name` (required) + `email` (optional) only -- `url` is not in the schema. +- Optional: `$schema`, `description`, `homepage`, `repository`, `license`, `keywords`, `dependencies`. +- **No `version` field** -- the catalog resolves by git SHA on purpose. A pinned `version` that is never bumped makes `/plugin update` a no-op. +- `.claude-plugin/` and `.cursor-plugin/` hold only `plugin.json`. Skills, agents, commands, hooks live at plugin root. + +## `SKILL.md` template + +```markdown +--- +name: +description: +metadata: + category: +--- + +# + + + +## When to use + +- +- + +## Procedure + +1. +2. + +## + +## Limits + +- + +## See also + +- `references/.md` -- +``` + +If the skill carries source attribution (composed from other open-source skills), add a `## Sources & Attribution` table right after the title -- see `skills/productivity/web-design/SKILL.md` for the pattern. + +## `.plugin.json` template + +Recommended for every standalone skill so the marketplace listing is complete. Without it, `compile.mjs` generates a minimal manifest from frontmatter (`name` + `description` only). + +```json +{ + "name": "", + "description": "", + "author": { "name": "Yesterday" }, + "homepage": "https://github.com/Yesterday-AI/skills/tree/main/.compiled/skill-plugins/", + "repository": "https://github.com/Yesterday-AI/skills", + "license": "MIT", + "keywords": ["claude-code", "yesterday", "", ""] +} +``` + +For the private catalog, swap the `homepage` / `repository` URLs to `Yesterday-AI/yesterday-skills`. + +## Depersonalization pass (for an existing skill being promoted) + +Run this before scaffolding when the source is a personal or ad-hoc skill: + +1. `grep -rnE '/Users/[a-z]+/|/home/[a-z]+/' ` -- paths with usernames +2. `grep -rnE 'sk-[A-Za-z0-9]{20,}|ghp_[A-Za-z0-9]{20,}|xox[baprs]-' ` -- tokens +3. `grep -rnE '\b\w*-internal\b|\.internal\b|192\.168\.|10\.0\.' ` -- internal infra +4. `grep -rniE 'formerly|previously|promoted from|renamed|migrated from' ` -- migration framing +5. Read the `description` -- rewrite from the user's perspective if it leaks Yesterday's vantage. +6. Read every `references/` file -- the same gates apply there; references are loaded into agent context just like the body. + +After scaffolding, `audit-skills` (step 5 of the main procedure) is the authoritative re-check. This pass is the cheap pre-filter so the skill is already close to clean when it gets there. diff --git a/.compiled/skill-plugins/creative-productivity/.claude-plugin/plugin.json b/.compiled/skill-plugins/creative-productivity/.claude-plugin/plugin.json deleted file mode 120000 index 934e034..0000000 --- a/.compiled/skill-plugins/creative-productivity/.claude-plugin/plugin.json +++ /dev/null @@ -1 +0,0 @@ -../../../../skills/productivity/creative-productivity/.plugin.json \ No newline at end of file diff --git a/.compiled/skill-plugins/creative-productivity/.claude-plugin/plugin.json b/.compiled/skill-plugins/creative-productivity/.claude-plugin/plugin.json new file mode 100644 index 0000000..b851818 --- /dev/null +++ b/.compiled/skill-plugins/creative-productivity/.claude-plugin/plugin.json @@ -0,0 +1,18 @@ +{ + "name": "creative-productivity", + "description": "Generate professional consulting deliverables: Excalidraw diagrams, Mermaid visualizations, Reveal.js/Marp presentations, draw.io architecture diagrams, one-pagers, proposal documents. Orchestrator with enriched assets over the underlying tool plugins.", + "author": { + "name": "Yesterday" + }, + "homepage": "https://github.com/Yesterday-AI/skills/tree/main/.compiled/skill-plugins/creative-productivity", + "repository": "https://github.com/Yesterday-AI/skills", + "license": "MIT", + "keywords": [ + "claude-code", + "yesterday", + "deliverables", + "consulting", + "diagrams", + "presentations" + ] +} diff --git a/.compiled/skill-plugins/creative-productivity/.cursor-plugin/plugin.json b/.compiled/skill-plugins/creative-productivity/.cursor-plugin/plugin.json deleted file mode 120000 index 934e034..0000000 --- a/.compiled/skill-plugins/creative-productivity/.cursor-plugin/plugin.json +++ /dev/null @@ -1 +0,0 @@ -../../../../skills/productivity/creative-productivity/.plugin.json \ No newline at end of file diff --git a/.compiled/skill-plugins/creative-productivity/.cursor-plugin/plugin.json b/.compiled/skill-plugins/creative-productivity/.cursor-plugin/plugin.json new file mode 100644 index 0000000..b851818 --- /dev/null +++ b/.compiled/skill-plugins/creative-productivity/.cursor-plugin/plugin.json @@ -0,0 +1,18 @@ +{ + "name": "creative-productivity", + "description": "Generate professional consulting deliverables: Excalidraw diagrams, Mermaid visualizations, Reveal.js/Marp presentations, draw.io architecture diagrams, one-pagers, proposal documents. Orchestrator with enriched assets over the underlying tool plugins.", + "author": { + "name": "Yesterday" + }, + "homepage": "https://github.com/Yesterday-AI/skills/tree/main/.compiled/skill-plugins/creative-productivity", + "repository": "https://github.com/Yesterday-AI/skills", + "license": "MIT", + "keywords": [ + "claude-code", + "yesterday", + "deliverables", + "consulting", + "diagrams", + "presentations" + ] +} diff --git a/.compiled/skill-plugins/creative-productivity/skills/creative-productivity b/.compiled/skill-plugins/creative-productivity/skills/creative-productivity deleted file mode 120000 index a975af0..0000000 --- a/.compiled/skill-plugins/creative-productivity/skills/creative-productivity +++ /dev/null @@ -1 +0,0 @@ -../../../../skills/productivity/creative-productivity \ No newline at end of file diff --git a/.compiled/skill-plugins/creative-productivity/skills/creative-productivity/.plugin.json b/.compiled/skill-plugins/creative-productivity/skills/creative-productivity/.plugin.json new file mode 100644 index 0000000..b851818 --- /dev/null +++ b/.compiled/skill-plugins/creative-productivity/skills/creative-productivity/.plugin.json @@ -0,0 +1,18 @@ +{ + "name": "creative-productivity", + "description": "Generate professional consulting deliverables: Excalidraw diagrams, Mermaid visualizations, Reveal.js/Marp presentations, draw.io architecture diagrams, one-pagers, proposal documents. Orchestrator with enriched assets over the underlying tool plugins.", + "author": { + "name": "Yesterday" + }, + "homepage": "https://github.com/Yesterday-AI/skills/tree/main/.compiled/skill-plugins/creative-productivity", + "repository": "https://github.com/Yesterday-AI/skills", + "license": "MIT", + "keywords": [ + "claude-code", + "yesterday", + "deliverables", + "consulting", + "diagrams", + "presentations" + ] +} diff --git a/.compiled/skill-plugins/creative-productivity/skills/creative-productivity/SKILL.md b/.compiled/skill-plugins/creative-productivity/skills/creative-productivity/SKILL.md new file mode 100644 index 0000000..c1ca401 --- /dev/null +++ b/.compiled/skill-plugins/creative-productivity/skills/creative-productivity/SKILL.md @@ -0,0 +1,277 @@ +--- +name: creative-productivity +description: > + Generate professional consulting deliverables: Excalidraw diagrams, Mermaid visualizations, + Reveal.js/Marp presentations, draw.io architecture diagrams, one-pagers, and proposal documents. + Use when a user asks for visual artifacts, slides, diagrams, architecture visuals, consulting + documents, pitch decks, workshop materials, or any creative deliverable for client-facing or + internal use. Covers the full "Consulting as Code" creative pipeline. +metadata: + author: Yesterday + version: "1.0" + category: design +compatibility: Any agent with file access and shell execution. Optional dependencies per tool (see Setup section). +--- + +# Creative Productivity -- Consulting Deliverables Pipeline + +Turn ideas into polished, client-ready artifacts. This skill bundles the best open-source tools for agentically generating visual and written deliverables -- diagrams, presentations, architecture visuals, and documents. + +## When to Use + +- Creating *diagrams* (architecture, flow, sequence, ERD, system design) +- Building *presentations* (pitch decks, QBRs, workshop slides, training materials) +- Drafting *documents* (one-pagers, proposals, executive summaries, workshop handouts) +- Producing *visual arguments* that communicate strategy, not just data +- Any task where the deliverable must look professional and be editable + +## Tool Selection Guide + +Pick the right tool for the job: + +| Need | Tool | Output | Best For | +|------|------|--------|----------| +| Visual argument, conceptual diagram | **Excalidraw** | `.excalidraw` + PNG | Architecture overviews, concept maps, strategy visuals | +| Quick flowchart, sequence, ERD | **Mermaid** | `.md` with mermaid blocks | Documentation, README diagrams, inline visuals | +| Editable architecture diagram | **draw.io** | `.drawio` XML + PNG | AWS/cloud architectures, detailed technical docs | +| Slide deck (web, interactive) | **Reveal.js** | Single HTML file | Pitch decks, conferences, interactive presentations | +| Slide deck (markdown, fast) | **Marp** | `.md` → PDF/PPTX/HTML | Internal decks, quick iterations, dev-friendly slides | +| Written deliverable | **Markdown** | `.md` → PDF | Proposals, one-pagers, executive summaries | + +**Decision flow:** +1. Is it a diagram? → How complex? Simple inline → *Mermaid*. Visual argument → *Excalidraw*. Detailed architecture → *draw.io*. +2. Is it a presentation? → Interactive/branded → *Reveal.js*. Fast/iterative → *Marp*. +3. Is it a document? → *Markdown* with structured templates. + +## Setup (Per Tool) + +Each tool has optional dependencies. Install only what you need. + +### Excalidraw (Diagrams that argue) +```bash +# Render pipeline (validates output visually) +cd /references/excalidraw && uv sync && uv run playwright install chromium +``` +- Generates `.excalidraw` JSON → rendered to PNG via Playwright +- Brand colors in `references/excalidraw/color-palette.md` +- See `references/excalidraw/guide.md` for full methodology + +### Mermaid (Inline diagrams) +```bash +npm install -g @mermaid-js/mermaid-cli # optional: for PNG/SVG export +``` +- Write mermaid blocks directly in Markdown -- most renderers (GitHub, Obsidian, Notion) handle them natively +- For PNG export: `mmdc -i input.md -o output.png` +- See `references/mermaid-patterns.md` for consulting-specific patterns + +### Reveal.js (Interactive presentations) +```bash +npm install -g reveal.js # optional: for local preview +``` +- Generates single self-contained HTML files (no build step) +- Themes, Chart.js, Font Awesome built-in +- Speaker notes, animations, PDF export via DeckTape +- See `references/revealjs-guide.md` for templates + +### Marp (Markdown slides) +```bash +npm install -g @marp-team/marp-cli # required for export +``` +- Write slides in Markdown with `---` separators +- Export: `marp --pdf deck.md` or `marp --pptx deck.md` +- Themes via CSS, Marp directives for layout +- See `references/marp-guide.md` for patterns + +### draw.io (Architecture diagrams) +```bash +# CLI for PNG conversion (optional) +# Install draw.io desktop or use drawio-cli +pip install drawio-batch # or use the desktop app +``` +- Generates `.drawio` XML files (editable in draw.io/diagrams.net) +- AWS/Azure/GCP icon support +- See `references/drawio-guide.md` for XML patterns + +## Workflow + +### 1. Understand the Brief +Before creating anything: +- **Audience:** Who will see this? (Client exec, dev team, workshop participants) +- **Purpose:** Inform, persuade, teach, or decide? +- **Format:** Where will it be shown? (Screen share, print, embedded in docs, posted in Slack) +- **Brand:** Does the client or company have specific colors/fonts? Check `references/` for palettes. + +### 2. Choose the Right Tool +Use the Tool Selection Guide above. When in doubt: +- For *persuasion* → Excalidraw (visual arguments win hearts) +- For *precision* → draw.io or Mermaid (technical accuracy wins minds) +- For *presenting* → Reveal.js or Marp (structured narrative) +- For *reading* → Markdown document (depth and detail) + +### 3. Create the Artifact +Follow the tool-specific guide in `references/`. Key principles across all tools: + +**Structure First:** +1. Outline the argument or narrative before touching any tool +2. Each section/slide/region should answer ONE question +3. Flow: Context → Problem → Solution → Evidence → Next Steps + +**Visual Hierarchy:** +- Most important element = largest / most isolated +- Use color semantically (not decoratively) +- Whitespace signals importance + +**Consulting Standard:** +- Every diagram tells a story, not just shows a structure +- Every slide has a "so what?" takeaway +- Every document has an executive summary +- Numbers and claims have sources + +### 4. Validate +- Diagrams: Render to PNG → visually inspect → fix → repeat +- Slides: Preview in browser → check overflow → fix → repeat +- Documents: Read the executive summary aloud -- does it stand alone? + +### 5. Deliver +- Save artifacts in the project's `deliverables/` or `docs/` directory +- Include source files (`.excalidraw`, `.drawio`, `.md`) alongside exports (PNG, PDF, HTML) +- Source files ensure editability; exports ensure portability + +## Consulting Document Templates + +### One-Pager +```markdown +# [Title] + +## Executive Summary +[2-3 sentences: What, Why, Impact] + +## Context +[Current situation, pain points] + +## Recommendation +[What we propose, with rationale] + +## Expected Outcomes +- [Metric 1]: [Target] +- [Metric 2]: [Target] + +## Next Steps +1. [Action] -- [Owner] -- [Date] +``` + +### Workshop Handout +```markdown +# [Workshop Title] -- [Date] + +## Objectives +- [What participants will learn/decide] + +## Agenda +| Time | Topic | Format | +|------|-------|--------| +| 09:00 | Intro & Context | Presentation | +| 09:30 | Deep Dive | Interactive | +| 10:30 | Workshop | Hands-on | +| 11:30 | Wrap-up & Actions | Discussion | + +## Key Takeaways +[Filled in after the workshop] + +## Action Items +| Action | Owner | Due | +|--------|-------|-----| +``` + +### Proposal Structure +```markdown +# [Proposal Title] + +## 1. Understanding +[Client's situation and challenges -- show you listened] + +## 2. Approach +[How we'll solve it -- methodology, phases] + +## 3. Deliverables +[What the client gets -- be specific] + +## 4. Timeline & Investment +[Phases, milestones, cost] + +## 5. Why Us +[Team, experience, differentiators] + +## Appendix +[Technical details, references, case studies] +``` + +## Mermaid Quick Patterns + +For common consulting scenarios, use these Mermaid patterns inline: + +**Process Flow:** +```mermaid +graph LR + A[Current State] -->|Assessment| B[Gap Analysis] + B -->|Design| C[Target Architecture] + C -->|Implement| D[Rollout] + D -->|Measure| E[Optimization] +``` + +**Decision Matrix:** +```mermaid +quadrantChart + title Technology Selection + x-axis Low Effort --> High Effort + y-axis Low Impact --> High Impact + Quick Wins: [0.2, 0.8] + Strategic Bets: [0.8, 0.9] + Low Priority: [0.3, 0.2] + Avoid: [0.9, 0.1] +``` + +**Timeline / Gantt:** +```mermaid +gantt + title Project Roadmap + dateFormat YYYY-MM-DD + section Phase 1 + Discovery :a1, 2026-01-01, 2w + Assessment :a2, after a1, 2w + section Phase 2 + Design :b1, after a2, 3w + Implementation:b2, after b1, 4w +``` + +**Architecture (C4-style):** +```mermaid +C4Context + title System Context + Person(user, "User", "End user") + System(app, "Application", "Core system") + System_Ext(ext, "External API", "Third-party service") + Rel(user, app, "Uses") + Rel(app, ext, "Calls") +``` + +## Best Practices + +1. **Source files always accompany exports.** Never deliver only a PNG -- include the `.excalidraw`, `.drawio`, or `.md` source so clients can edit. +2. **One artifact, one message.** Each deliverable should communicate a single clear argument or narrative. +3. **Brand before beauty.** Client colors and fonts trump your aesthetic preferences. +4. **Validate visually.** Always render and inspect before delivering. JSON/XML/Markdown previews lie. +5. **Progressive disclosure.** Start with the summary view. Offer detail on demand (appendix, thread, drill-down diagram). +6. **Platform-aware formatting.** Slack uses `*bold*`, Discord uses `**bold**`, PDF needs proper headings. Adapt. + +## References + +Detailed guides for each tool live in the `references/` directory: +- `references/excalidraw/` -- Full Excalidraw methodology, color palette, element templates, render script +- `references/mermaid-patterns.md` -- Consulting-specific Mermaid diagram patterns +- `references/revealjs-guide.md` -- Reveal.js presentation templates and workflow +- `references/marp-guide.md` -- Marp slide creation patterns +- `references/drawio-guide.md` -- draw.io XML generation and AWS icons + +--- +*"Make the invisible visible. Make the complex clear. Make the argument irresistible."* 🐾 diff --git a/.compiled/skill-plugins/creative-productivity/skills/creative-productivity/references/drawio-guide.md b/.compiled/skill-plugins/creative-productivity/skills/creative-productivity/references/drawio-guide.md new file mode 100644 index 0000000..d76802f --- /dev/null +++ b/.compiled/skill-plugins/creative-productivity/skills/creative-productivity/references/drawio-guide.md @@ -0,0 +1,112 @@ +# draw.io Diagram Guide + +Generate editable `.drawio` XML files for architecture diagrams, flowcharts, and technical documentation. + +## When to Use + +- Detailed technical/cloud architecture diagrams +- Diagrams that need to be edited by non-technical stakeholders (draw.io is free and visual) +- AWS/Azure/GCP architecture with official icons +- Diagrams embedded in Confluence, Notion, or other wikis + +## Recommended Skill + +For full draw.io generation with AWS icons and automated PNG conversion: +- **Source:** [softaworks/agent-toolkit — draw-io](https://github.com/softaworks/agent-toolkit/tree/main/skills/draw-io) +- **Features:** XML editing, AWS icon search, layout calculations, pre-commit PNG conversion + +## Quick Start — XML Structure + +```xml + + + + + + + + + + + + + + + + + + + + + + + + + +``` + +## Common Style Patterns + +### Shape Styles +``` +# Rounded rectangle (service/component) +rounded=1;whiteSpace=wrap;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=14; + +# Database cylinder +shape=cylinder3;whiteSpace=wrap;fillColor=#f5f5f5;strokeColor=#666;size=15;fontSize=14; + +# Cloud shape (external service) +ellipse;shape=cloud;whiteSpace=wrap;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=14; + +# Group/container +rounded=1;whiteSpace=wrap;fillColor=none;strokeColor=#999;dashed=1;fontSize=16;fontStyle=1;verticalAlign=top; +``` + +### Arrow Styles +``` +# Standard +edgeStyle=orthogonalEdgeStyle;rounded=1;strokeColor=#666; + +# Dashed (async/optional) +edgeStyle=orthogonalEdgeStyle;rounded=1;strokeColor=#999;dashed=1; + +# Thick (primary flow) +edgeStyle=orthogonalEdgeStyle;rounded=1;strokeColor=#333;strokeWidth=2; +``` + +### Color Palette (Semantic) +| Purpose | Fill | Stroke | +|---------|------|--------| +| Compute/Service | `#dae8fc` | `#6c8ebf` | +| Data/Storage | `#d5e8d4` | `#82b366` | +| External/3rd Party | `#fff2cc` | `#d6b656` | +| User/Client | `#f8cecc` | `#b85450` | +| Network/API | `#e1d5e7` | `#9673a6` | +| Neutral/Container | `#f5f5f5` | `#666666` | + +## Layout Guidelines + +- **Minimum margins:** 30px from container boundaries +- **Element spacing:** 40px minimum between elements +- **Arrow labels:** 20px clearance from elements +- **Font sizes:** 14px for elements, 16-18px for group titles, 12px for annotations +- **Canvas:** Set `page="0"` (no background) for transparent export + +## PNG Conversion + +```bash +# Using draw.io CLI (if installed) +drawio -x -f png -s 2 -o output.png input.drawio + +# Using the softaworks script +bash scripts/convert-drawio-to-png.sh architecture.drawio +``` + +## Tips + +- Place arrows on back layer (define before shape elements in XML) +- Use `verticalAlign=top` for container/group labels +- Set `whiteSpace=wrap` on all text-containing elements +- For AWS icons: use `mxgraph.aws4.*` shapes (e.g., `mxgraph.aws4.compute.ec2_instance`) +- Test by opening the `.drawio` file at [app.diagrams.net](https://app.diagrams.net) diff --git a/.compiled/skill-plugins/creative-productivity/skills/creative-productivity/references/excalidraw/color-palette.md b/.compiled/skill-plugins/creative-productivity/skills/creative-productivity/references/excalidraw/color-palette.md new file mode 100644 index 0000000..695eac4 --- /dev/null +++ b/.compiled/skill-plugins/creative-productivity/skills/creative-productivity/references/excalidraw/color-palette.md @@ -0,0 +1,41 @@ +# Excalidraw Color Palette — Yesterday Brand + +Default color palette for diagrams. Edit this file to match client branding. + +## Semantic Shape Colors + +| Purpose | Fill | Stroke | Use For | +|---------|------|--------|---------| +| Primary | `#dbeafe` | `#2563eb` | Main concepts, core services | +| Secondary | `#fef3c7` | `#d97706` | Supporting concepts, alternatives | +| Success/Start | `#dcfce7` | `#16a34a` | Entry points, positive outcomes | +| Danger/End | `#fee2e2` | `#dc2626` | Errors, risks, blockers | +| Neutral | `#f3f4f6` | `#6b7280` | Containers, backgrounds | +| Accent | `#ede9fe` | `#7c3aed` | Highlights, special elements | +| AI/Tech | `#cffafe` | `#0891b2` | AI components, automation | + +## Text Colors + +| Level | Color | Size | Use | +|-------|-------|------|-----| +| Title | `#1e293b` | 28-32px | Main headings | +| Subtitle | `#334155` | 20-24px | Section headings | +| Body | `#475569` | 14-16px | Descriptions, labels | +| Detail | `#94a3b8` | 12px | Annotations, metadata | + +## Evidence Artifact Colors + +| Element | Background | Text | Use | +|---------|-----------|------|-----| +| Code block | `#1e293b` | `#e2e8f0` | Code snippets | +| JSON data | `#1e293b` | `#67e8f9` | Data examples | +| Keyword | — | `#f472b6` | Syntax highlights | + +## Arrow Colors + +| Type | Color | Width | +|------|-------|-------| +| Primary flow | `#2563eb` | 2 | +| Secondary flow | `#6b7280` | 1 | +| Data flow | `#0891b2` | 2 | +| Error path | `#dc2626` | 2 (dashed) | diff --git a/.compiled/skill-plugins/creative-productivity/skills/creative-productivity/references/excalidraw/guide.md b/.compiled/skill-plugins/creative-productivity/skills/creative-productivity/references/excalidraw/guide.md new file mode 100644 index 0000000..17cb925 --- /dev/null +++ b/.compiled/skill-plugins/creative-productivity/skills/creative-productivity/references/excalidraw/guide.md @@ -0,0 +1,62 @@ +# Excalidraw Diagram Guide + +For the full methodology, render pipeline, and element templates, see the dedicated Excalidraw skill: +- **Source:** [coleam00/excalidraw-diagram-skill](https://github.com/coleam00/excalidraw-diagram-skill) + +This file summarizes the key principles. Install the full skill for render validation. + +## Core Philosophy + +**Diagrams should ARGUE, not DISPLAY.** The shape should BE the meaning. + +- **Isomorphism Test:** Remove all text — does the structure alone communicate the concept? +- **Education Test:** Could someone learn something concrete, or does it just label boxes? + +## Visual Patterns + +| Concept | Pattern | +|---------|---------| +| One-to-many (source, hub) | Fan-out (radial arrows) | +| Many-to-one (aggregation) | Convergence (funnel) | +| Hierarchy | Tree (lines + free text) | +| Sequence | Timeline (line + dots + labels) | +| Feedback loop | Spiral/cycle | +| Abstract state | Cloud (overlapping ellipses) | +| Transformation | Assembly line (before → process → after) | +| Comparison | Side-by-side parallel | + +## Key Rules + +1. **Default to free-floating text.** Only add containers when the shape carries meaning. +2. **Each concept gets a different visual pattern.** No uniform card grids. +3. **Color encodes meaning, not decoration.** Use the color palette consistently. +4. **Evidence artifacts** (code snippets, JSON, real data) make technical diagrams educational. +5. **Build large diagrams section by section** — never generate all JSON in one pass. +6. **Always render and validate** — JSON previews lie. Use the Playwright render pipeline. + +## Quick JSON Structure + +```json +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [], + "appState": { "viewBackgroundColor": "#ffffff", "gridSize": 20 }, + "files": {} +} +``` + +## Setup + +```bash +cd references/excalidraw && uv sync && uv run playwright install chromium +``` + +## Render + +```bash +uv run python render_excalidraw.py +``` + +Then visually inspect the PNG. Fix issues. Repeat until clean. diff --git a/.compiled/skill-plugins/creative-productivity/skills/creative-productivity/references/marp-guide.md b/.compiled/skill-plugins/creative-productivity/skills/creative-productivity/references/marp-guide.md new file mode 100644 index 0000000..7d19dba --- /dev/null +++ b/.compiled/skill-plugins/creative-productivity/skills/creative-productivity/references/marp-guide.md @@ -0,0 +1,140 @@ +# Marp Slide Guide + +Create slide decks in Markdown — export to PDF, PPTX, or HTML. + +## When to Use + +- Internal presentations (fast iteration, version-controlled) +- Developer-friendly slide authoring +- When content matters more than animation +- Quick workshop/meeting slides + +## Basic Syntax + +```markdown +--- +marp: true +theme: default +paginate: true +header: "Company Name" +footer: "Confidential" +--- + +# Title Slide + +Subtitle — Date + +--- + +## Key Point + +- Bullet one +- Bullet two +- Bullet three + + + +--- + +## Two Columns + +
+
+ +### Option A +- Fast to market +- Lower cost +- Less customization + +
+
+ +### Option B +- Fully custom +- Higher investment +- Long-term flexibility + +
+
+ +--- + +## Image Slide + +![bg right:40%](https://example.com/image.png) + +Content goes on the left side when using background images. + +--- + + + +# Thank You + +Next steps and contact info + +``` + +## Directives + +| Directive | Effect | +|-----------|--------| +| `` | Centered, large text | +| `` | Dark background | +| `![bg](url)` | Full background image | +| `![bg right:40%](url)` | Split layout with image | +| `![bg left:50%](url)` | Split layout, image left | +| `` | Hide page number | +| `` | Hide header on this slide | + +## Custom Theme (CSS) + +```css +/* custom-theme.css */ +@import 'default'; + +section { + font-family: 'Inter', sans-serif; + color: #1a1a2e; +} +section h1, section h2 { + color: #0066cc; +} +section.lead { + background: #1a1a2e; + color: white; +} +section.lead h1 { + color: #4ecdc4; +} +``` + +Use with: `marp --theme custom-theme.css deck.md` + +## Export + +```bash +# PDF (best for sharing) +marp --pdf deck.md + +# PPTX (editable in PowerPoint) +marp --pptx deck.md + +# HTML (web viewing) +marp deck.md + +# With custom theme +marp --theme ./theme.css --pdf deck.md + +# Watch mode (live preview) +marp -w deck.md +``` + +## Tips + +- `---` separates slides (three dashes on their own line) +- Max 5-7 bullet points per slide +- Use `![w:300](image.png)` to control image width +- Tables work but keep them small (3-4 columns max) +- Code blocks render with syntax highlighting +- Use `_class: lead` for section dividers diff --git a/.compiled/skill-plugins/creative-productivity/skills/creative-productivity/references/mermaid-patterns.md b/.compiled/skill-plugins/creative-productivity/skills/creative-productivity/references/mermaid-patterns.md new file mode 100644 index 0000000..fa6f9c2 --- /dev/null +++ b/.compiled/skill-plugins/creative-productivity/skills/creative-productivity/references/mermaid-patterns.md @@ -0,0 +1,127 @@ +# Mermaid Patterns for Consulting + +Quick-reference for common consulting diagram types using Mermaid syntax. + +## When to Use Mermaid + +- Diagrams embedded in Markdown docs (GitHub, Obsidian, Notion render natively) +- Quick iteration — no external tools needed +- Version-controlled diagrams (text-based diffs) +- Documentation-first workflows + +## Supported Diagram Types + +### Flowchart (Process, Decision Trees) +```mermaid +graph TD + A[Start] --> B{Decision?} + B -->|Yes| C[Action A] + B -->|No| D[Action B] + C --> E[Result] + D --> E +``` + +### Sequence (API Calls, User Journeys) +```mermaid +sequenceDiagram + participant U as User + participant A as App + participant DB as Database + U->>A: Request + A->>DB: Query + DB-->>A: Result + A-->>U: Response +``` + +### State (Lifecycle, Status Machines) +```mermaid +stateDiagram-v2 + [*] --> Draft + Draft --> Review: Submit + Review --> Approved: Accept + Review --> Draft: Reject + Approved --> Published: Deploy + Published --> [*] +``` + +### Entity-Relationship (Data Models) +```mermaid +erDiagram + CLIENT ||--o{ PROJECT : has + PROJECT ||--|{ DELIVERABLE : produces + CONSULTANT }|--|| PROJECT : works_on +``` + +### Gantt (Timelines, Roadmaps) +```mermaid +gantt + title Project Phases + dateFormat YYYY-MM-DD + section Discovery + Interviews :a1, 2026-01-06, 5d + Analysis :a2, after a1, 5d + section Design + Architecture :b1, after a2, 10d + Prototyping :b2, after b1, 10d +``` + +### Quadrant (Prioritization, Effort/Impact) +```mermaid +quadrantChart + title Initiative Prioritization + x-axis Low Effort --> High Effort + y-axis Low Impact --> High Impact + Automate Onboarding: [0.2, 0.85] + Rebuild Dashboard: [0.75, 0.9] + Update Docs: [0.15, 0.3] + Custom CRM: [0.85, 0.25] +``` + +### Mindmap (Brainstorming, Topic Exploration) +```mermaid +mindmap + root((Strategy)) + Growth + New Markets + Partnerships + Efficiency + Automation + Process Optimization + Innovation + R&D + AI Integration +``` + +### C4 Context (System Architecture) +```mermaid +C4Context + title System Context Diagram + Person(user, "End User") + System(core, "Core Platform", "Main application") + System_Ext(payment, "Payment Gateway", "Stripe") + System_Ext(email, "Email Service", "SendGrid") + Rel(user, core, "Uses", "HTTPS") + Rel(core, payment, "Processes payments") + Rel(core, email, "Sends notifications") +``` + +## Styling Tips + +- Use `classDef` for semantic coloring: + ``` + classDef highlight fill:#e1f5fe,stroke:#0288d1 + class A,B highlight + ``` +- Keep labels short (max 4-5 words per node) +- Use `:::` for inline classes: `A[Start]:::highlight` +- Vertical (`TD`) for hierarchies, horizontal (`LR`) for processes + +## PNG Export + +```bash +# Single file +mmdc -i diagram.md -o diagram.png -t dark -b transparent + +# With custom width +mmdc -i diagram.md -o diagram.png -w 1200 +``` diff --git a/.compiled/skill-plugins/creative-productivity/skills/creative-productivity/references/revealjs-guide.md b/.compiled/skill-plugins/creative-productivity/skills/creative-productivity/references/revealjs-guide.md new file mode 100644 index 0000000..5f33fc5 --- /dev/null +++ b/.compiled/skill-plugins/creative-productivity/skills/creative-productivity/references/revealjs-guide.md @@ -0,0 +1,115 @@ +# Reveal.js Presentation Guide + +Generate self-contained HTML presentations with Reveal.js — no build step required. + +## When to Use + +- Client-facing presentations (pitch decks, QBRs, strategy reviews) +- Conference talks and workshops +- Interactive demos with live code or charts +- When you need animations, transitions, and speaker notes + +## Recommended Skill + +For full Reveal.js generation with visual validation, use the dedicated skill: +- **Source:** [ryanbbrown/revealjs-skill](https://github.com/ryanbbrown/revealjs-skill) +- **Features:** Themes, Chart.js, overflow detection, screenshot review, PDF export + +## Quick Start (Without Dedicated Skill) + +Generate a single HTML file with embedded CSS and JS: + +```html + + + + + + + + +
+
+ +
+

Title

+

Subtitle — Date

+ +
+ +
+

Key Point

+
+ Insight: The main takeaway for this slide. +
+
+ +
+
+ + + + +``` + +## Slide Types + +| Type | Use For | Pattern | +|------|---------|---------| +| Title | Opening, section breaks | Large heading + subtitle | +| Content | Key points, arguments | Heading + bullet list or highlight box | +| Two-Column | Comparisons, before/after | CSS grid or flexbox layout | +| Chart | Data visualization | Chart.js canvas element | +| Image | Visual evidence | Full-bleed or centered image | +| Quote | Testimonials, key statements | `
` with attribution | +| Agenda | Workshop/meeting flow | Numbered list with timing | +| CTA | Closing, next steps | Bold action items | + +## Chart.js Integration + +```html +
+

Growth Metrics

+ + +
+``` + +## PDF Export + +```bash +# Via DeckTape +npx decktape reveal presentation.html output.pdf + +# Via browser print (Ctrl+P with ?print-pdf query param) +# Open: presentation.html?print-pdf +``` + +## Tips + +- One idea per slide — if you need a scroll bar, split the slide +- Use `
` nesting for vertical slide groups (drill-down) +- Fragment animations: `
  • Appears on click
  • ` +- Dark themes for screen, light themes for print +- Always include `