{"owner":"slopus","repo":"happy","hasSkills":true,"totalSkillsCount":4,"totalTokensCount":1313,"categories":["root-instruction","mcp-config","marketplace","plugin-manifest"],"hasMcp":true,"mcpConfig":{"mcpServers":{"happy":{"command":"npx","args":["-y","@modelcontextprotocol/server-happy"]}}},"found":["AGENTS.md",".cursor/mcp.json",".claude-plugin/marketplace.json",".claude-plugin/plugin.json"],"skills":{"AGENTS.md":"# Agent Workflow\n\n## Releasing anything\n\nEvery release goes through the `release` skill: `.agents/skills/release/SKILL.md`.\nRead it in full before running `eas update`, `eas build`, `eas submit`, any\n`pnpm ota*` or `pnpm release:*` script, or dispatching a release workflow.\nThat covers preview and production OTA updates, native builds, store\nsubmissions, and CLI publishes.\n\nThe rule the skill opens with is the one that is never skipped: **release from\na local `main` that is exactly `origin/main`, checked against a fetch made right\nthen, with a clean tree.** Not from a worktree. Not from a branch. Not from a\n`main` that is ahead or behind. The mobile release scripts refuse anything else\n(`packages/happy-app/sources/scripts/releasePreflight.mjs`).\n\nThe only exception is one the user asks for by name in the current\nconversation. A standing instruction from an earlier session is not that, and\nneither is your own judgement that it is probably fine. When they do ask, the\nskill says how: show what `main` commits the release will lack, get a yes, run\nwith `HAPPY_RELEASE_ALLOW_OFF_MAIN=1`, and say it was off-main in the report.\n\nWhy: an OTA channel serves whatever was published last, not whatever is on\n`main`. On 2026-09-20 a preview OTA from a stale worktree silently rolled four\nshipped fixes off every preview phone for hours. Git looked fine the whole time.\n\n## Sync To Main\n\nWhen the user says `sync to main` or `synt to main`, they mean:\n\n1. Fetch `origin/main`.\n2. Rebase the current branch on `origin/main`.\n3. Push the current HEAD directly to `main` with a normal push, for example:\n   `git push origin HEAD:main`\n\nDo not force push for this workflow.\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/slopus/happy/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/slopus/happy/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/slopus/happy/HEAD/.claude-plugin/plugin.json)"},"files":{"AGENTS.md":"# Agent Workflow\n\n## Releasing anything\n\nEvery release goes through the `release` skill: `.agents/skills/release/SKILL.md`.\nRead it in full before running `eas update`, `eas build`, `eas submit`, any\n`pnpm ota*` or `pnpm release:*` script, or dispatching a release workflow.\nThat covers preview and production OTA updates, native builds, store\nsubmissions, and CLI publishes.\n\nThe rule the skill opens with is the one that is never skipped: **release from\na local `main` that is exactly `origin/main`, checked against a fetch made right\nthen, with a clean tree.** Not from a worktree. Not from a branch. Not from a\n`main` that is ahead or behind. The mobile release scripts refuse anything else\n(`packages/happy-app/sources/scripts/releasePreflight.mjs`).\n\nThe only exception is one the user asks for by name in the current\nconversation. A standing instruction from an earlier session is not that, and\nneither is your own judgement that it is probably fine. When they do ask, the\nskill says how: show what `main` commits the release will lack, get a yes, run\nwith `HAPPY_RELEASE_ALLOW_OFF_MAIN=1`, and say it was off-main in the report.\n\nWhy: an OTA channel serves whatever was published last, not whatever is on\n`main`. On 2026-09-20 a preview OTA from a stale worktree silently rolled four\nshipped fixes off every preview phone for hours. Git looked fine the whole time.\n\n## Sync To Main\n\nWhen the user says `sync to main` or `synt to main`, they mean:\n\n1. Fetch `origin/main`.\n2. Rebase the current branch on `origin/main`.\n3. Push the current HEAD directly to `main` with a normal push, for example:\n   `git push origin HEAD:main`\n\nDo not force push for this workflow.\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/slopus/happy/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/slopus/happy/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/slopus/happy/HEAD/.claude-plugin/plugin.json)"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","rawUrl":"https://raw.githubusercontent.com/slopus/happy/HEAD/AGENTS.md","title":"AI Agent Protocol & Instructions","category":"root-instruction","format":"markdown","content":"# Agent Workflow\n\n## Releasing anything\n\nEvery release goes through the `release` skill: `.agents/skills/release/SKILL.md`.\nRead it in full before running `eas update`, `eas build`, `eas submit`, any\n`pnpm ota*` or `pnpm release:*` script, or dispatching a release workflow.\nThat covers preview and production OTA updates, native builds, store\nsubmissions, and CLI publishes.\n\nThe rule the skill opens with is the one that is never skipped: **release from\na local `main` that is exactly `origin/main`, checked against a fetch made right\nthen, with a clean tree.** Not from a worktree. Not from a branch. Not from a\n`main` that is ahead or behind. The mobile release scripts refuse anything else\n(`packages/happy-app/sources/scripts/releasePreflight.mjs`).\n\nThe only exception is one the user asks for by name in the current\nconversation. A standing instruction from an earlier session is not that, and\nneither is your own judgement that it is probably fine. When they do ask, the\nskill says how: show what `main` commits the release will lack, get a yes, run\nwith `HAPPY_RELEASE_ALLOW_OFF_MAIN=1`, and say it was off-main in the report.\n\nWhy: an OTA channel serves whatever was published last, not whatever is on\n`main`. On 2026-09-20 a preview OTA from a stale worktree silently rolled four\nshipped fixes off every preview phone for hours. Git looked fine the whole time.\n\n## Sync To Main\n\nWhen the user says `sync to main` or `synt to main`, they mean:\n\n1. Fetch `origin/main`.\n2. Rebase the current branch on `origin/main`.\n3. Push the current HEAD directly to `main` with a normal push, for example:\n   `git push origin HEAD:main`\n\nDo not force push for this workflow.\n","isInternal":false,"tokens":413,"sizeBytes":1673},{"name":"marketplace.json","path":".claude-plugin/marketplace.json","rawUrl":"https://raw.githubusercontent.com/slopus/happy/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/slopus/happy/HEAD/.claude-plugin/marketplace.json)","tokens":300,"sizeBytes":191},{"name":"plugin.json","path":".claude-plugin/plugin.json","rawUrl":"https://raw.githubusercontent.com/slopus/happy/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/slopus/happy/HEAD/.claude-plugin/plugin.json)","tokens":300,"sizeBytes":177},{"name":"mcp.json","path":".cursor/mcp.json","rawUrl":"https://raw.githubusercontent.com/slopus/happy/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/slopus/happy/HEAD/.cursor/mcp.json)","tokens":300,"sizeBytes":170}],"systemPromptSnippet":"<yakaai_skills repo=\"slopus/happy\">\n<!-- File: AGENTS.md (Tokens: ~413 | Category: root-instruction) -->\n# Agent Workflow\n\n## Releasing anything\n\nEvery release goes through the `release` skill: `.agents/skills/release/SKILL.md`.\nRead it in full before running `eas update`, `eas build`, `eas submit`, any\n`pnpm ota*` or `pnpm release:*` script, or dispatching a release workflow.\nThat covers preview and production OTA updates, native builds, store\nsubmissions, and CLI publishes.\n\nThe rule the skill opens with is the one that is never skipped: **release from\na local `main` that is exactly `origin/main`, checked against a fetch made right\nthen, with a clean tree.** Not from a worktree. Not from a branch. Not from a\n`main` that is ahead or behind. The mobile release scripts refuse anything else\n(`packages/happy-app/sources/scripts/releasePreflight.mjs`).\n\nThe only exception is one the user asks for by name in the current\nconversation. A standing instruction from an earlier session is not that, and\nneither is your own judgement that it is probably fine. When they do ask, the\nskill says how: show what `main` commits the release will lack, get a yes, run\nwith `HAPPY_RELEASE_ALLOW_OFF_MAIN=1`, and say it was off-main in the report.\n\nWhy: an OTA channel serves whatever was published last, not whatever is on\n`main`. On 2026-09-20 a preview OTA from a stale worktree silently rolled four\nshipped fixes off every preview phone for hours. Git looked fine the whole time.\n\n## Sync To Main\n\nWhen the user says `sync to main` or `synt to main`, they mean:\n\n1. Fetch `origin/main`.\n2. Rebase the current branch on `origin/main`.\n3. Push the current HEAD directly to `main` with a normal push, for example:\n   `git push origin HEAD:main`\n\nDo not force push for this workflow.\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/slopus/happy/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/slopus/happy/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/slopus/happy/HEAD/.cursor/mcp.json)\n</yakaai_skills>"}