{"owner":"YishenTu","repo":"claudian","hasSkills":true,"totalSkillsCount":3,"totalTokensCount":1190,"categories":["anthropic-skill","root-instruction"],"hasMcp":false,"mcpConfig":null,"found":["tests/fixtures/providers/grok/extensions/ask-user-question.json","AGENTS.md","tests/fixtures/providers/grok/extensions/exit-plan-mode.json"],"skills":{"tests/fixtures/providers/grok/extensions/ask-user-question.json":"{\n  \"grokVersion\": \"0.2.106\",\n  \"request\": {\n    \"jsonrpc\": \"2.0\",\n    \"id\": \"<request-id>\",\n    \"method\": \"_x.ai/ask_user_question\",\n    \"params\": {\n      \"sessionId\": \"<session-id>\",\n      \"toolCallId\": \"<tool-call-id>\",\n      \"questions\": [\n        {\n          \"question\": \"Choose a smoke-test option?\",\n          \"options\": [\n            {\n              \"label\": \"Alpha\",\n              \"description\": \"First harmless value\"\n            },\n            {\n              \"label\": \"Beta\",\n              \"description\": \"Second harmless value\"\n            }\n          ],\n          \"multiSelect\": false\n        }\n      ],\n      \"mode\": \"default\"\n    }\n  },\n  \"acceptedResponse\": {\n    \"outcome\": \"accepted\",\n    \"answers\": {\n      \"Choose a smoke-test option?\": [\"Alpha\"]\n    }\n  },\n  \"cancelledResponse\": {\n    \"outcome\": \"cancelled\"\n  }\n}\n","AGENTS.md":"# AGENTS.md\n\n## Loading and verification\n\n- For test changes or changes to the code they cover, follow `tests/AGENTS.md`, even when no test edit is planned.\n- Tests follow the guides of the source they cover; they do not inherit `src/` instructions automatically.\n- Build, dependency, lockfile, locale/static-asset import, and `esbuild.config.mjs` changes also require `scripts/AGENTS.md`. Composition changes require the guides of the services being wired.\n- Use the Node version in `.node-version`. For code changes, the full verification command is:\n\n```bash\nnpm run typecheck && npm run lint && npm run test && npm run build && npm run check:performance\n```\n\n- For focused changes, `npm run test:affected -- --base origin/main` selects related tests; it does not replace typecheck, lint, build, or performance checks. Documentation-only changes need `git diff --check` (CI enforces it on every pull request) and their affected documentation tests, not a production build.\n- Dev and production builds load `.env.local` and may copy artifacts into the configured `OBSIDIAN_VAULT`, including removal of its old `.codex-vendor`. Check that destination before building; clearing the shell variable does not prevent reloading it from the file.\n\n## Architectural constraints\n\n- `src/main.ts` is the sole concrete composition root and lifecycle publisher. App subcomposition returns complete domains, never a second root or service locator.\n- `src/composition/` holds main-owned wiring that must reach both `app/` and `features/`. Only `main.ts` and other composition modules import it; it never imports `main.ts` or concrete providers, and `main.ts` still constructs, registers, and tears it down.\n- App repositories/settings/storage depend on core contracts, not feature orchestration or provider-native protocols. Concrete provider imports are confined to `main.ts` and provider-default assembly.\n- Features use `FeatureHost` and core registries, never concrete app/provider implementations. `FeatureHost` stays feature-neutral; chat-only capabilities belong in chat's `ChatFeatureHost` extension. Providers use `ProviderHost`, never feature orchestration. Core imports none of these implementations.\n- Shared ACP code contains protocol mechanics and protocol-level normalization only; provider launch policy, extensions, provider-specific normalization, and history stay provider-owned.\n- Each piece of mutable state or policy has one authoritative owner; other modules read derived projections or call the owner's API. Do not add parallel flags, maps, or guards that must be kept in sync; consolidate into the owner instead. Code that only looks alike under different provider semantics is not shared policy.\n\n## Local conventions\n\n- Use English for code/comments/identifiers/commits/code blocks. Soft-wrap Markdown. Put uncommitted notes, traces, and throwaway scripts in `.context/`. No production `console.*`.\n- TypeScript files use PascalCase for their main concept, camelCase for utility bags, and kebab-case for external package names. Preserve `index.ts` barrels, `types.ts` buckets, and source-mirrored test names; this does not require creating new barrels or type buckets. No interface `I` prefix. Preserve acronym capitals in filenames and matching owned identifiers (`ACPClientConnection`, `buildACPUsageInfo`, `URLs`); leading acronyms remain lowercase in camelCase (`acpConnection`). Preserve external API names and serialized keys. Folders use kebab-case; imports omit `.ts` and prefer `@/`.\n- UI actions use native controls. Buttons that do not submit a form declare `type=\"button\"`; non-native controls need equivalent accessible names, roles, and keyboard behavior.\n\n## Regression verification\n\n- For behavior changes, demonstrate the intended failing regression before implementation and rerun it afterward. Documentation/mechanical changes are exempt; when automation is infeasible, record a repeatable reproduction and verify the nearest stable contract.\n\n## Instruction maintenance\n\n- Keep non-obvious constraints at their narrowest common scope, with one authoritative home and explicit exceptions. Remove implementation inventories, generic advice, inherited duplicates, and retired decisions.\n- Each guide has a sibling `CLAUDE.md` containing only `@AGENTS.md`.\n","tests/fixtures/providers/grok/extensions/exit-plan-mode.json":"{\n  \"grokVersion\": \"0.2.106\",\n  \"request\": {\n    \"jsonrpc\": \"2.0\",\n    \"id\": \"<request-id>\",\n    \"method\": \"_x.ai/exit_plan_mode\",\n    \"params\": {\n      \"sessionId\": \"<session-id>\",\n      \"toolCallId\": \"<tool-call-id>\",\n      \"planContent\": \"<sanitized-nonempty-plan>\"\n    }\n  },\n  \"response\": {\n    \"outcome\": \"abandoned\"\n  }\n}\n"},"files":{"tests/fixtures/providers/grok/extensions/ask-user-question.json":"{\n  \"grokVersion\": \"0.2.106\",\n  \"request\": {\n    \"jsonrpc\": \"2.0\",\n    \"id\": \"<request-id>\",\n    \"method\": \"_x.ai/ask_user_question\",\n    \"params\": {\n      \"sessionId\": \"<session-id>\",\n      \"toolCallId\": \"<tool-call-id>\",\n      \"questions\": [\n        {\n          \"question\": \"Choose a smoke-test option?\",\n          \"options\": [\n            {\n              \"label\": \"Alpha\",\n              \"description\": \"First harmless value\"\n            },\n            {\n              \"label\": \"Beta\",\n              \"description\": \"Second harmless value\"\n            }\n          ],\n          \"multiSelect\": false\n        }\n      ],\n      \"mode\": \"default\"\n    }\n  },\n  \"acceptedResponse\": {\n    \"outcome\": \"accepted\",\n    \"answers\": {\n      \"Choose a smoke-test option?\": [\"Alpha\"]\n    }\n  },\n  \"cancelledResponse\": {\n    \"outcome\": \"cancelled\"\n  }\n}\n","AGENTS.md":"# AGENTS.md\n\n## Loading and verification\n\n- For test changes or changes to the code they cover, follow `tests/AGENTS.md`, even when no test edit is planned.\n- Tests follow the guides of the source they cover; they do not inherit `src/` instructions automatically.\n- Build, dependency, lockfile, locale/static-asset import, and `esbuild.config.mjs` changes also require `scripts/AGENTS.md`. Composition changes require the guides of the services being wired.\n- Use the Node version in `.node-version`. For code changes, the full verification command is:\n\n```bash\nnpm run typecheck && npm run lint && npm run test && npm run build && npm run check:performance\n```\n\n- For focused changes, `npm run test:affected -- --base origin/main` selects related tests; it does not replace typecheck, lint, build, or performance checks. Documentation-only changes need `git diff --check` (CI enforces it on every pull request) and their affected documentation tests, not a production build.\n- Dev and production builds load `.env.local` and may copy artifacts into the configured `OBSIDIAN_VAULT`, including removal of its old `.codex-vendor`. Check that destination before building; clearing the shell variable does not prevent reloading it from the file.\n\n## Architectural constraints\n\n- `src/main.ts` is the sole concrete composition root and lifecycle publisher. App subcomposition returns complete domains, never a second root or service locator.\n- `src/composition/` holds main-owned wiring that must reach both `app/` and `features/`. Only `main.ts` and other composition modules import it; it never imports `main.ts` or concrete providers, and `main.ts` still constructs, registers, and tears it down.\n- App repositories/settings/storage depend on core contracts, not feature orchestration or provider-native protocols. Concrete provider imports are confined to `main.ts` and provider-default assembly.\n- Features use `FeatureHost` and core registries, never concrete app/provider implementations. `FeatureHost` stays feature-neutral; chat-only capabilities belong in chat's `ChatFeatureHost` extension. Providers use `ProviderHost`, never feature orchestration. Core imports none of these implementations.\n- Shared ACP code contains protocol mechanics and protocol-level normalization only; provider launch policy, extensions, provider-specific normalization, and history stay provider-owned.\n- Each piece of mutable state or policy has one authoritative owner; other modules read derived projections or call the owner's API. Do not add parallel flags, maps, or guards that must be kept in sync; consolidate into the owner instead. Code that only looks alike under different provider semantics is not shared policy.\n\n## Local conventions\n\n- Use English for code/comments/identifiers/commits/code blocks. Soft-wrap Markdown. Put uncommitted notes, traces, and throwaway scripts in `.context/`. No production `console.*`.\n- TypeScript files use PascalCase for their main concept, camelCase for utility bags, and kebab-case for external package names. Preserve `index.ts` barrels, `types.ts` buckets, and source-mirrored test names; this does not require creating new barrels or type buckets. No interface `I` prefix. Preserve acronym capitals in filenames and matching owned identifiers (`ACPClientConnection`, `buildACPUsageInfo`, `URLs`); leading acronyms remain lowercase in camelCase (`acpConnection`). Preserve external API names and serialized keys. Folders use kebab-case; imports omit `.ts` and prefer `@/`.\n- UI actions use native controls. Buttons that do not submit a form declare `type=\"button\"`; non-native controls need equivalent accessible names, roles, and keyboard behavior.\n\n## Regression verification\n\n- For behavior changes, demonstrate the intended failing regression before implementation and rerun it afterward. Documentation/mechanical changes are exempt; when automation is infeasible, record a repeatable reproduction and verify the nearest stable contract.\n\n## Instruction maintenance\n\n- Keep non-obvious constraints at their narrowest common scope, with one authoritative home and explicit exceptions. Remove implementation inventories, generic advice, inherited duplicates, and retired decisions.\n- Each guide has a sibling `CLAUDE.md` containing only `@AGENTS.md`.\n","tests/fixtures/providers/grok/extensions/exit-plan-mode.json":"{\n  \"grokVersion\": \"0.2.106\",\n  \"request\": {\n    \"jsonrpc\": \"2.0\",\n    \"id\": \"<request-id>\",\n    \"method\": \"_x.ai/exit_plan_mode\",\n    \"params\": {\n      \"sessionId\": \"<session-id>\",\n      \"toolCallId\": \"<tool-call-id>\",\n      \"planContent\": \"<sanitized-nonempty-plan>\"\n    }\n  },\n  \"response\": {\n    \"outcome\": \"abandoned\"\n  }\n}\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","rawUrl":"https://raw.githubusercontent.com/YishenTu/claudian/HEAD/AGENTS.md","title":"AI Agent Protocol & Instructions","category":"root-instruction","format":"markdown","content":"# AGENTS.md\n\n## Loading and verification\n\n- For test changes or changes to the code they cover, follow `tests/AGENTS.md`, even when no test edit is planned.\n- Tests follow the guides of the source they cover; they do not inherit `src/` instructions automatically.\n- Build, dependency, lockfile, locale/static-asset import, and `esbuild.config.mjs` changes also require `scripts/AGENTS.md`. Composition changes require the guides of the services being wired.\n- Use the Node version in `.node-version`. For code changes, the full verification command is:\n\n```bash\nnpm run typecheck && npm run lint && npm run test && npm run build && npm run check:performance\n```\n\n- For focused changes, `npm run test:affected -- --base origin/main` selects related tests; it does not replace typecheck, lint, build, or performance checks. Documentation-only changes need `git diff --check` (CI enforces it on every pull request) and their affected documentation tests, not a production build.\n- Dev and production builds load `.env.local` and may copy artifacts into the configured `OBSIDIAN_VAULT`, including removal of its old `.codex-vendor`. Check that destination before building; clearing the shell variable does not prevent reloading it from the file.\n\n## Architectural constraints\n\n- `src/main.ts` is the sole concrete composition root and lifecycle publisher. App subcomposition returns complete domains, never a second root or service locator.\n- `src/composition/` holds main-owned wiring that must reach both `app/` and `features/`. Only `main.ts` and other composition modules import it; it never imports `main.ts` or concrete providers, and `main.ts` still constructs, registers, and tears it down.\n- App repositories/settings/storage depend on core contracts, not feature orchestration or provider-native protocols. Concrete provider imports are confined to `main.ts` and provider-default assembly.\n- Features use `FeatureHost` and core registries, never concrete app/provider implementations. `FeatureHost` stays feature-neutral; chat-only capabilities belong in chat's `ChatFeatureHost` extension. Providers use `ProviderHost`, never feature orchestration. Core imports none of these implementations.\n- Shared ACP code contains protocol mechanics and protocol-level normalization only; provider launch policy, extensions, provider-specific normalization, and history stay provider-owned.\n- Each piece of mutable state or policy has one authoritative owner; other modules read derived projections or call the owner's API. Do not add parallel flags, maps, or guards that must be kept in sync; consolidate into the owner instead. Code that only looks alike under different provider semantics is not shared policy.\n\n## Local conventions\n\n- Use English for code/comments/identifiers/commits/code blocks. Soft-wrap Markdown. Put uncommitted notes, traces, and throwaway scripts in `.context/`. No production `console.*`.\n- TypeScript files use PascalCase for their main concept, camelCase for utility bags, and kebab-case for external package names. Preserve `index.ts` barrels, `types.ts` buckets, and source-mirrored test names; this does not require creating new barrels or type buckets. No interface `I` prefix. Preserve acronym capitals in filenames and matching owned identifiers (`ACPClientConnection`, `buildACPUsageInfo`, `URLs`); leading acronyms remain lowercase in camelCase (`acpConnection`). Preserve external API names and serialized keys. Folders use kebab-case; imports omit `.ts` and prefer `@/`.\n- UI actions use native controls. Buttons that do not submit a form declare `type=\"button\"`; non-native controls need equivalent accessible names, roles, and keyboard behavior.\n\n## Regression verification\n\n- For behavior changes, demonstrate the intended failing regression before implementation and rerun it afterward. Documentation/mechanical changes are exempt; when automation is infeasible, record a repeatable reproduction and verify the nearest stable contract.\n\n## Instruction maintenance\n\n- Keep non-obvious constraints at their narrowest common scope, with one authoritative home and explicit exceptions. Remove implementation inventories, generic advice, inherited duplicates, and retired decisions.\n- Each guide has a sibling `CLAUDE.md` containing only `@AGENTS.md`.\n","isInternal":false,"tokens":875,"sizeBytes":4288},{"name":"ask-user-question.json","path":"tests/fixtures/providers/grok/extensions/ask-user-question.json","rawUrl":"https://raw.githubusercontent.com/YishenTu/claudian/HEAD/tests/fixtures/providers/grok/extensions/ask-user-question.json","title":"Extensions Skill","category":"anthropic-skill","format":"json","content":"{\n  \"grokVersion\": \"0.2.106\",\n  \"request\": {\n    \"jsonrpc\": \"2.0\",\n    \"id\": \"<request-id>\",\n    \"method\": \"_x.ai/ask_user_question\",\n    \"params\": {\n      \"sessionId\": \"<session-id>\",\n      \"toolCallId\": \"<tool-call-id>\",\n      \"questions\": [\n        {\n          \"question\": \"Choose a smoke-test option?\",\n          \"options\": [\n            {\n              \"label\": \"Alpha\",\n              \"description\": \"First harmless value\"\n            },\n            {\n              \"label\": \"Beta\",\n              \"description\": \"Second harmless value\"\n            }\n          ],\n          \"multiSelect\": false\n        }\n      ],\n      \"mode\": \"default\"\n    }\n  },\n  \"acceptedResponse\": {\n    \"outcome\": \"accepted\",\n    \"answers\": {\n      \"Choose a smoke-test option?\": [\"Alpha\"]\n    }\n  },\n  \"cancelledResponse\": {\n    \"outcome\": \"cancelled\"\n  }\n}\n","frontmatter":{"grokVersion":"0.2.106","request":{"jsonrpc":"2.0","id":"<request-id>","method":"_x.ai/ask_user_question","params":{"sessionId":"<session-id>","toolCallId":"<tool-call-id>","questions":[{"question":"Choose a smoke-test option?","options":[{"label":"Alpha","description":"First harmless value"},{"label":"Beta","description":"Second harmless value"}],"multiSelect":false}],"mode":"default"}},"acceptedResponse":{"outcome":"accepted","answers":{"Choose a smoke-test option?":["Alpha"]}},"cancelledResponse":{"outcome":"cancelled"}},"isInternal":false,"tokens":210,"sizeBytes":837},{"name":"exit-plan-mode.json","path":"tests/fixtures/providers/grok/extensions/exit-plan-mode.json","rawUrl":"https://raw.githubusercontent.com/YishenTu/claudian/HEAD/tests/fixtures/providers/grok/extensions/exit-plan-mode.json","title":"Extensions Skill","category":"anthropic-skill","format":"json","content":"{\n  \"grokVersion\": \"0.2.106\",\n  \"request\": {\n    \"jsonrpc\": \"2.0\",\n    \"id\": \"<request-id>\",\n    \"method\": \"_x.ai/exit_plan_mode\",\n    \"params\": {\n      \"sessionId\": \"<session-id>\",\n      \"toolCallId\": \"<tool-call-id>\",\n      \"planContent\": \"<sanitized-nonempty-plan>\"\n    }\n  },\n  \"response\": {\n    \"outcome\": \"abandoned\"\n  }\n}\n","frontmatter":{"grokVersion":"0.2.106","request":{"jsonrpc":"2.0","id":"<request-id>","method":"_x.ai/exit_plan_mode","params":{"sessionId":"<session-id>","toolCallId":"<tool-call-id>","planContent":"<sanitized-nonempty-plan>"}},"response":{"outcome":"abandoned"}},"isInternal":false,"tokens":105,"sizeBytes":329}],"systemPromptSnippet":"<yakaai_skills repo=\"YishenTu/claudian\">\n<!-- File: AGENTS.md (Tokens: ~875 | Category: root-instruction) -->\n# AGENTS.md\n\n## Loading and verification\n\n- For test changes or changes to the code they cover, follow `tests/AGENTS.md`, even when no test edit is planned.\n- Tests follow the guides of the source they cover; they do not inherit `src/` instructions automatically.\n- Build, dependency, lockfile, locale/static-asset import, and `esbuild.config.mjs` changes also require `scripts/AGENTS.md`. Composition changes require the guides of the services being wired.\n- Use the Node version in `.node-version`. For code changes, the full verification command is:\n\n```bash\nnpm run typecheck && npm run lint && npm run test && npm run build && npm run check:performance\n```\n\n- For focused changes, `npm run test:affected -- --base origin/main` selects related tests; it does not replace typecheck, lint, build, or performance checks. Documentation-only changes need `git diff --check` (CI enforces it on every pull request) and their affected documentation tests, not a production build.\n- Dev and production builds load `.env.local` and may copy artifacts into the configured `OBSIDIAN_VAULT`, including removal of its old `.codex-vendor`. Check that destination before building; clearing the shell variable does not prevent reloading it from the file.\n\n## Architectural constraints\n\n- `src/main.ts` is the sole concrete composition root and lifecycle publisher. App subcomposition returns complete domains, never a second root or service locator.\n- `src/composition/` holds main-owned wiring that must reach both `app/` and `features/`. Only `main.ts` and other composition modules import it; it never imports `main.ts` or concrete providers, and `main.ts` still constructs, registers, and tears it down.\n- App repositories/settings/storage depend on core contracts, not feature orchestration or provider-native protocols. Concrete provider imports are confined to `main.ts` and provider-default assembly.\n- Features use `FeatureHost` and core registries, never concrete app/provider implementations. `FeatureHost` stays feature-neutral; chat-only capabilities belong in chat's `ChatFeatureHost` extension. Providers use `ProviderHost`, never feature orchestration. Core imports none of these implementations.\n- Shared ACP code contains protocol mechanics and protocol-level normalization only; provider launch policy, extensions, provider-specific normalization, and history stay provider-owned.\n- Each piece of mutable state or policy has one authoritative owner; other modules read derived projections or call the owner's API. Do not add parallel flags, maps, or guards that must be kept in sync; consolidate into the owner instead. Code that only looks alike under different provider semantics is not shared policy.\n\n## Local conventions\n\n- Use English for code/comments/identifiers/commits/code blocks. Soft-wrap Markdown. Put uncommitted notes, traces, and throwaway scripts in `.context/`. No production `console.*`.\n- TypeScript files use PascalCase for their main concept, camelCase for utility bags, and kebab-case for external package names. Preserve `index.ts` barrels, `types.ts` buckets, and source-mirrored test names; this does not require creating new barrels or type buckets. No interface `I` prefix. Preserve acronym capitals in filenames and matching owned identifiers (`ACPClientConnection`, `buildACPUsageInfo`, `URLs`); leading acronyms remain lowercase in camelCase (`acpConnection`). Preserve external API names and serialized keys. Folders use kebab-case; imports omit `.ts` and prefer `@/`.\n- UI actions use native controls. Buttons that do not submit a form declare `type=\"button\"`; non-native controls need equivalent accessible names, roles, and keyboard behavior.\n\n## Regression verification\n\n- For behavior changes, demonstrate the intended failing regression before implementation and rerun it afterward. Documentation/mechanical changes are exempt; when automation is infeasible, record a repeatable reproduction and verify the nearest stable contract.\n\n## Instruction maintenance\n\n- Keep non-obvious constraints at their narrowest common scope, with one authoritative home and explicit exceptions. Remove implementation inventories, generic advice, inherited duplicates, and retired decisions.\n- Each guide has a sibling `CLAUDE.md` containing only `@AGENTS.md`.\n\n<!-- File: tests/fixtures/providers/grok/extensions/ask-user-question.json (Tokens: ~210 | Category: anthropic-skill) -->\n{\n  \"grokVersion\": \"0.2.106\",\n  \"request\": {\n    \"jsonrpc\": \"2.0\",\n    \"id\": \"<request-id>\",\n    \"method\": \"_x.ai/ask_user_question\",\n    \"params\": {\n      \"sessionId\": \"<session-id>\",\n      \"toolCallId\": \"<tool-call-id>\",\n      \"questions\": [\n        {\n          \"question\": \"Choose a smoke-test option?\",\n          \"options\": [\n            {\n              \"label\": \"Alpha\",\n              \"description\": \"First harmless value\"\n            },\n            {\n              \"label\": \"Beta\",\n              \"description\": \"Second harmless value\"\n            }\n          ],\n          \"multiSelect\": false\n        }\n      ],\n      \"mode\": \"default\"\n    }\n  },\n  \"acceptedResponse\": {\n    \"outcome\": \"accepted\",\n    \"answers\": {\n      \"Choose a smoke-test option?\": [\"Alpha\"]\n    }\n  },\n  \"cancelledResponse\": {\n    \"outcome\": \"cancelled\"\n  }\n}\n\n<!-- File: tests/fixtures/providers/grok/extensions/exit-plan-mode.json (Tokens: ~105 | Category: anthropic-skill) -->\n{\n  \"grokVersion\": \"0.2.106\",\n  \"request\": {\n    \"jsonrpc\": \"2.0\",\n    \"id\": \"<request-id>\",\n    \"method\": \"_x.ai/exit_plan_mode\",\n    \"params\": {\n      \"sessionId\": \"<session-id>\",\n      \"toolCallId\": \"<tool-call-id>\",\n      \"planContent\": \"<sanitized-nonempty-plan>\"\n    }\n  },\n  \"response\": {\n    \"outcome\": \"abandoned\"\n  }\n}\n</yakaai_skills>"}