{"owner":"laurent22","repo":"joplin","hasSkills":true,"totalSkillsCount":4,"totalTokensCount":1387,"categories":["claude-rule","mcp-config","marketplace","plugin-manifest"],"hasMcp":true,"mcpConfig":{"mcpServers":{"joplin":{"command":"npx","args":["-y","@modelcontextprotocol/server-joplin"]}}},"found":["CLAUDE.md",".cursor/mcp.json",".claude-plugin/marketplace.json",".claude-plugin/plugin.json"],"skills":{"CLAUDE.md":"# Joplin Guidelines\n\n## Quick Reference\n\n- Tabs for indentation\n- Single quotes for strings  \n- Proper TypeScript types (avoid `any`)\n- Don't annotate return types or const types when TypeScript can infer them. Annotate only when TypeScript would otherwise infer `any`.\n- Comments should be only with `//` and should not contain jsdoc syntax\n- If you duplicate a substantial block of code, add a comment above it noting the duplication and referencing the original location.\n- When creating Jest tests, there should be only one `describe()` statement in the file.\n- Focus on testing essential behaviour and edge cases — avoid adding tests for every minor detail.\n- Avoid duplicating code in tests; when testing the same logic with different inputs, use `test.each` or shared helpers instead of repeating similar test blocks.\n- Do not make white space changes - do not add unnecessary new lines, or spaces to existing code, or wrap existing code.\n- If you add a new TypeScript file, run `yarn updateIgnored` from the root.\n- When an unknown word is detected by cSpell, handle it as per the specification in `readme/dev/spellcheck.md`\n- To compile TypeScript, use `yarn tsc`. To type-check without emitting files, use `yarn tsc --noEmit`.\n- Default to no comments. Only add one when the why is non-obvious (workaround, hidden constraint, subtle invariant). Never explain what the code does — names handle that. Keep necessary comments to one or two line where possible.\n- SQL queries should only be done from within models (in packages/lib/models).\n- In markdown files, do not hard-wrap paragraphs. Let the renderer wrap lines; only insert newlines for actual paragraph or list breaks.\n\n## Styling (desktop app)\n\nUse RSCSS + SCSS files for the desktop app, never inline `style={{...}}` or styled-components — see readme/dev/spec/desktop_styling.md. Inline `style` is only for genuinely dynamic per-instance values (computed width, position). Use `var(--joplin-*)` CSS variables for theme colours instead of reading the theme in JS.\n\n## Full Documentation\n\n- Coding style: [readme/dev/coding_style.md](readme/dev/coding_style.md)\n- Contributing: [CONTRIBUTING.md](CONTRIBUTING.md)\n",".cursor/mcp.json":"# Model Context Protocol (MCP) Configuration\n\nPath: `.cursor/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/laurent22/joplin/HEAD/.cursor/mcp.json)",".claude-plugin/marketplace.json":"# Claude Plugin Marketplace Catalog\n\nPath: `.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/laurent22/joplin/HEAD/.claude-plugin/marketplace.json)",".claude-plugin/plugin.json":"# claude-plugin Plugin Manifest\n\nPath: `.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/laurent22/joplin/HEAD/.claude-plugin/plugin.json)"},"files":{"CLAUDE.md":"# Joplin Guidelines\n\n## Quick Reference\n\n- Tabs for indentation\n- Single quotes for strings  \n- Proper TypeScript types (avoid `any`)\n- Don't annotate return types or const types when TypeScript can infer them. Annotate only when TypeScript would otherwise infer `any`.\n- Comments should be only with `//` and should not contain jsdoc syntax\n- If you duplicate a substantial block of code, add a comment above it noting the duplication and referencing the original location.\n- When creating Jest tests, there should be only one `describe()` statement in the file.\n- Focus on testing essential behaviour and edge cases — avoid adding tests for every minor detail.\n- Avoid duplicating code in tests; when testing the same logic with different inputs, use `test.each` or shared helpers instead of repeating similar test blocks.\n- Do not make white space changes - do not add unnecessary new lines, or spaces to existing code, or wrap existing code.\n- If you add a new TypeScript file, run `yarn updateIgnored` from the root.\n- When an unknown word is detected by cSpell, handle it as per the specification in `readme/dev/spellcheck.md`\n- To compile TypeScript, use `yarn tsc`. To type-check without emitting files, use `yarn tsc --noEmit`.\n- Default to no comments. Only add one when the why is non-obvious (workaround, hidden constraint, subtle invariant). Never explain what the code does — names handle that. Keep necessary comments to one or two line where possible.\n- SQL queries should only be done from within models (in packages/lib/models).\n- In markdown files, do not hard-wrap paragraphs. Let the renderer wrap lines; only insert newlines for actual paragraph or list breaks.\n\n## Styling (desktop app)\n\nUse RSCSS + SCSS files for the desktop app, never inline `style={{...}}` or styled-components — see readme/dev/spec/desktop_styling.md. Inline `style` is only for genuinely dynamic per-instance values (computed width, position). Use `var(--joplin-*)` CSS variables for theme colours instead of reading the theme in JS.\n\n## Full Documentation\n\n- Coding style: [readme/dev/coding_style.md](readme/dev/coding_style.md)\n- Contributing: [CONTRIBUTING.md](CONTRIBUTING.md)\n",".cursor/mcp.json":"# Model Context Protocol (MCP) Configuration\n\nPath: `.cursor/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/laurent22/joplin/HEAD/.cursor/mcp.json)",".claude-plugin/marketplace.json":"# Claude Plugin Marketplace Catalog\n\nPath: `.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/laurent22/joplin/HEAD/.claude-plugin/marketplace.json)",".claude-plugin/plugin.json":"# claude-plugin Plugin Manifest\n\nPath: `.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/laurent22/joplin/HEAD/.claude-plugin/plugin.json)"},"items":[{"name":"CLAUDE.md","path":"CLAUDE.md","rawUrl":"https://raw.githubusercontent.com/laurent22/joplin/HEAD/CLAUDE.md","title":"Claude Agent Guidelines & System Prompt","category":"claude-rule","format":"markdown","content":"# Joplin Guidelines\n\n## Quick Reference\n\n- Tabs for indentation\n- Single quotes for strings  \n- Proper TypeScript types (avoid `any`)\n- Don't annotate return types or const types when TypeScript can infer them. Annotate only when TypeScript would otherwise infer `any`.\n- Comments should be only with `//` and should not contain jsdoc syntax\n- If you duplicate a substantial block of code, add a comment above it noting the duplication and referencing the original location.\n- When creating Jest tests, there should be only one `describe()` statement in the file.\n- Focus on testing essential behaviour and edge cases — avoid adding tests for every minor detail.\n- Avoid duplicating code in tests; when testing the same logic with different inputs, use `test.each` or shared helpers instead of repeating similar test blocks.\n- Do not make white space changes - do not add unnecessary new lines, or spaces to existing code, or wrap existing code.\n- If you add a new TypeScript file, run `yarn updateIgnored` from the root.\n- When an unknown word is detected by cSpell, handle it as per the specification in `readme/dev/spellcheck.md`\n- To compile TypeScript, use `yarn tsc`. To type-check without emitting files, use `yarn tsc --noEmit`.\n- Default to no comments. Only add one when the why is non-obvious (workaround, hidden constraint, subtle invariant). Never explain what the code does — names handle that. Keep necessary comments to one or two line where possible.\n- SQL queries should only be done from within models (in packages/lib/models).\n- In markdown files, do not hard-wrap paragraphs. Let the renderer wrap lines; only insert newlines for actual paragraph or list breaks.\n\n## Styling (desktop app)\n\nUse RSCSS + SCSS files for the desktop app, never inline `style={{...}}` or styled-components — see readme/dev/spec/desktop_styling.md. Inline `style` is only for genuinely dynamic per-instance values (computed width, position). Use `var(--joplin-*)` CSS variables for theme colours instead of reading the theme in JS.\n\n## Full Documentation\n\n- Coding style: [readme/dev/coding_style.md](readme/dev/coding_style.md)\n- Contributing: [CONTRIBUTING.md](CONTRIBUTING.md)\n","isInternal":false,"tokens":487,"sizeBytes":2184},{"name":"marketplace.json","path":".claude-plugin/marketplace.json","rawUrl":"https://raw.githubusercontent.com/laurent22/joplin/HEAD/.claude-plugin/marketplace.json","title":"Claude Plugin Marketplace Catalog","category":"marketplace","format":"json","content":"# Claude Plugin Marketplace Catalog\n\nPath: `.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/laurent22/joplin/HEAD/.claude-plugin/marketplace.json)","tokens":300,"sizeBytes":195},{"name":"plugin.json","path":".claude-plugin/plugin.json","rawUrl":"https://raw.githubusercontent.com/laurent22/joplin/HEAD/.claude-plugin/plugin.json","title":"claude-plugin Plugin Manifest","category":"plugin-manifest","format":"json","content":"# claude-plugin Plugin Manifest\n\nPath: `.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/laurent22/joplin/HEAD/.claude-plugin/plugin.json)","tokens":300,"sizeBytes":181},{"name":"mcp.json","path":".cursor/mcp.json","rawUrl":"https://raw.githubusercontent.com/laurent22/joplin/HEAD/.cursor/mcp.json","title":"Model Context Protocol (MCP) Configuration","category":"mcp-config","format":"json","content":"# Model Context Protocol (MCP) Configuration\n\nPath: `.cursor/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/laurent22/joplin/HEAD/.cursor/mcp.json)","tokens":300,"sizeBytes":174}],"systemPromptSnippet":"<yakaai_skills repo=\"laurent22/joplin\">\n<!-- File: CLAUDE.md (Tokens: ~487 | Category: claude-rule) -->\n# Joplin Guidelines\n\n## Quick Reference\n\n- Tabs for indentation\n- Single quotes for strings  \n- Proper TypeScript types (avoid `any`)\n- Don't annotate return types or const types when TypeScript can infer them. Annotate only when TypeScript would otherwise infer `any`.\n- Comments should be only with `//` and should not contain jsdoc syntax\n- If you duplicate a substantial block of code, add a comment above it noting the duplication and referencing the original location.\n- When creating Jest tests, there should be only one `describe()` statement in the file.\n- Focus on testing essential behaviour and edge cases — avoid adding tests for every minor detail.\n- Avoid duplicating code in tests; when testing the same logic with different inputs, use `test.each` or shared helpers instead of repeating similar test blocks.\n- Do not make white space changes - do not add unnecessary new lines, or spaces to existing code, or wrap existing code.\n- If you add a new TypeScript file, run `yarn updateIgnored` from the root.\n- When an unknown word is detected by cSpell, handle it as per the specification in `readme/dev/spellcheck.md`\n- To compile TypeScript, use `yarn tsc`. To type-check without emitting files, use `yarn tsc --noEmit`.\n- Default to no comments. Only add one when the why is non-obvious (workaround, hidden constraint, subtle invariant). Never explain what the code does — names handle that. Keep necessary comments to one or two line where possible.\n- SQL queries should only be done from within models (in packages/lib/models).\n- In markdown files, do not hard-wrap paragraphs. Let the renderer wrap lines; only insert newlines for actual paragraph or list breaks.\n\n## Styling (desktop app)\n\nUse RSCSS + SCSS files for the desktop app, never inline `style={{...}}` or styled-components — see readme/dev/spec/desktop_styling.md. Inline `style` is only for genuinely dynamic per-instance values (computed width, position). Use `var(--joplin-*)` CSS variables for theme colours instead of reading the theme in JS.\n\n## Full Documentation\n\n- Coding style: [readme/dev/coding_style.md](readme/dev/coding_style.md)\n- Contributing: [CONTRIBUTING.md](CONTRIBUTING.md)\n\n<!-- File: .claude-plugin/marketplace.json (Tokens: ~300 | Category: marketplace) -->\n# Claude Plugin Marketplace Catalog\n\nPath: `.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/laurent22/joplin/HEAD/.claude-plugin/marketplace.json)\n\n<!-- File: .claude-plugin/plugin.json (Tokens: ~300 | Category: plugin-manifest) -->\n# claude-plugin Plugin Manifest\n\nPath: `.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/laurent22/joplin/HEAD/.claude-plugin/plugin.json)\n\n<!-- File: .cursor/mcp.json (Tokens: ~300 | Category: mcp-config) -->\n# Model Context Protocol (MCP) Configuration\n\nPath: `.cursor/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/laurent22/joplin/HEAD/.cursor/mcp.json)\n</yakaai_skills>"}