[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71BC20MB7BEXWHMGHECXBTE":3,"skill-same:01M71BC20MB7BEXWHMGHECXBTE":75},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":26,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":57,"ownerHtmlUrl":58,"ownerBlogUrl":59,"ownerDescription":6,"updatedAt":60,"install":61,"resources":74},"01M71BC20MB7BEXWHMGHECXBTE","company-knowledge-connect",null,"Register company-internal knowledge sources (internal frameworks, platform docs, Spring Boot wrappers, etc.) accessible via URL or MCP server. Use when the user says 'add company docs', 'register internal framework', 'connect knowledge source', or 'add company knowledge'.","superMLdev\u002Fsmart-sdlc","superMLdev","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F214327565?v=4","01M71B92B8VKCZZ0YCSNAJ9CB1","superML.dev","01M71B92BVCWP4F23ANQ0ZKF6S",8,"MIT","https:\u002F\u002Fgithub.com\u002FsuperMLdev\u002Fsmart-sdlc\u002Fblob\u002Fmaster\u002Fskills\u002Fintegrations\u002Fcompany-knowledge\u002Fconnect\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"knowledge","connect","company knowledge connect","company","docs","source","via","server","mcp server","URL","when","boot","spring","use","MCP","spring boot","frameworks","platform","register","sources","2026-11-10 10:12:30",false,"---\nname: company-knowledge-connect\ndescription: \"Register company-internal knowledge sources (internal frameworks, platform docs, Spring Boot wrappers, etc.) accessible via URL or MCP server. Use when the user says 'add company docs', 'register internal framework', 'connect knowledge source', or 'add company knowledge'.\"\n---\n\n# Company Knowledge — Connect a Knowledge Source\n\n## Goal\n\nRegister one or more company-internal knowledge sources so AI agents can fetch examples, documentation, and guidelines directly in chat — without needing to leave the IDE.\n\nExamples of what this covers:\n- Internal Spring Boot wrapper \u002F platform library docs\n- Company-specific framework guidelines and examples\n- Internal API catalogs or developer portals\n- Architecture decision records hosted on an internal server\n- Design system component libraries\n\nSources can be fetched in two ways:\n- **Direct URL** — HTTP endpoint returning JSON, Markdown, HTML, or plain text\n- **MCP Server** — a company-hosted or npm-based MCP server exposing knowledge as tools\n\n---\n\n## Security Check First\n\nConfirm `_superml\u002Fconfig.yml` is in `.gitignore`:\n```bash\ncat {project-root}\u002F.gitignore | grep _superml\n```\n\nIf not present: `echo \"_superml\u002Fconfig.yml\" >> {project-root}\u002F.gitignore`\n\n⏸️ **STOP** — confirm before collecting any internal URLs or tokens.\n\n---\n\n## Step 1: How Many Sources?\n\nAsk:\n> \"How many company knowledge sources would you like to register? (you can add more later)\"\n\nThen for each source, run Steps 2–4.\n\n---\n\n## Step 2: Name and Describe the Source\n\nAsk:\n1. **Short name** (used in config and skill commands): e.g., `spring-platform`, `design-system`, `internal-api-catalog`\n2. **Display name**: e.g., `Company Spring Boot Platform`\n3. **Description** (one line — what it contains): e.g., `Internal Spring Boot wrapper with custom starters, annotations, and security modules`\n4. **Which personas use this most?**\n   - `all` — every persona (default)\n   - Specific roles: `architect`, `developer`, `modernization`, `product`, `team_lead`\n\n---\n\n## Step 3: Choose Access Method\n\nAsk:\n> \"How is this knowledge source accessed?\n> 1. **Direct URL** — HTTP endpoint you can call to get docs or examples\n> 2. **MCP Server** — a company-hosted or npm-based MCP server\n>\n> Which? (1 or 2)\"\n\n### Path A: Direct URL\n\nAsk:\n1. **Base URL**: the root endpoint (e.g., `https:\u002F\u002Finternal-dev-portal.corp\u002Fapi\u002Fdocs`)\n2. **Auth type**: None \u002F Bearer token \u002F Basic auth \u002F Custom header\n   - If Bearer: ask for token\n   - If Basic: ask for username + password\n   - If Custom: ask for header name and value\n3. **Response format**: JSON \u002F Markdown \u002F HTML \u002F Plain text\n4. **Notes for AI** (optional): e.g., \"Append `?format=markdown` to get Markdown output\" or \"Use the `?component={name}` param to fetch specific component docs\"\n\nTest the endpoint:\n```bash\ncurl -s {auth_flags} \"{base_url}\" | head -50\n```\n\nShow the first 50 lines and ask: \"Does this look right? (y\u002Fn)\"\n\n⏸️ **STOP** — confirm before saving.\n\nSave to config:\n```yaml\ncompany_knowledge:\n  sources:\n    - key: \"{short_name}\"\n      name: \"{display_name}\"\n      description: \"{description}\"\n      personas: [{personas_list}]   # all | architect | developer | etc.\n      access:\n        type: url\n        base_url: \"{base_url}\"\n        auth:\n          type: \"{none | bearer | basic | header}\"\n          token: \"{token_if_bearer}\"           # omit if not bearer\n          username: \"{username_if_basic}\"      # omit if not basic\n          password: \"{password_if_basic}\"      # omit if not basic\n          header_name: \"{name_if_custom}\"      # omit if not custom\n          header_value: \"{value_if_custom}\"    # omit if not custom\n        response_format: \"{json | markdown | html | text}\"\n        notes: \"{ai_usage_notes_if_any}\"\n```\n\n### Path B: MCP Server\n\nAsk:\n1. **MCP server type**:\n   - `npm_package` — runs locally via npx\n   - `url` — hosted MCP endpoint (HTTP or SSE)\n   - `command` — arbitrary shell command that speaks MCP\n\n2. **Server name** (key in `.vscode\u002Fmcp.json`): e.g., `company-docs`\n\n**If `npm_package`:**\n\nAsk:\n- Package name: e.g., `@corp\u002Fknowledge-mcp-server`\n- Any env vars needed (name + value pairs)\n\nAdd to `.vscode\u002Fmcp.json`:\n```json\n{\n  \"servers\": {\n    \"{server_name}\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"{package_name}\"],\n      \"env\": {\n        \"{ENV_VAR_NAME}\": \"{env_var_value}\"\n      }\n    }\n  }\n}\n```\n\n**If `url`:**\n\nAsk:\n- MCP endpoint URL\n- Auth header (if any)\n\nAdd to `.vscode\u002Fmcp.json`:\n```json\n{\n  \"servers\": {\n    \"{server_name}\": {\n      \"url\": \"{mcp_url}\",\n      \"headers\": {\n        \"{auth_header}\": \"{auth_value}\"\n      }\n    }\n  }\n}\n```\n\n**If `command`:**\n\nAsk:\n- Full command string (e.g., `\u002Fusr\u002Flocal\u002Fbin\u002Fcorp-mcp-server`)\n- Any args\n- Any env vars\n\n⚠️ **Security**: `.vscode\u002Fmcp.json` may contain credentials:\n```bash\necho \".vscode\u002Fmcp.json\" >> {project-root}\u002F.gitignore\n```\n\nTest the MCP server:\n> \"In a Copilot chat, type: `@{server_name} help` or ask it to describe available tools.\n> Confirm it responds with tool descriptions.\"\n\n⏸️ **STOP** — confirm test passed.\n\nSave to config:\n```yaml\ncompany_knowledge:\n  sources:\n    - key: \"{short_name}\"\n      name: \"{display_name}\"\n      description: \"{description}\"\n      personas: [{personas_list}]\n      access:\n        type: mcp\n        server_name: \"{server_name}\"   # matches key in .vscode\u002Fmcp.json\n        notes: \"{any_usage_notes}\"\n```\n\n---\n\n## Step 4: Add More Sources?\n\nAsk: \"Would you like to add another knowledge source? (y\u002Fn)\"\n\nIf yes, repeat Steps 2–4 and append to `company_knowledge.sources[]`.\n\n---\n\n## Step 5: Confirm and Summary\n\nShow all registered sources:\n\n```\n✅ Company Knowledge sources registered:\n\n  1. {display_name}  [{short_name}]\n     Access: {url | mcp}  — {base_url or server_name}\n     Personas: {all | list}\n     Description: {description}\n\n  2. ...\n\nUse `\u002Fcompany-knowledge-fetch` to pull a source into your AI context.\n```\n\nRemind the user to run `npx @supermldev\u002Fsmart-sdlc init` again if they want these sources available in the `\u002Fsml-help` skill index, **or** simply add the source config entries to `_superml\u002Fconfig.yml` manually.\n","# Company Knowledge — Connect a Knowledge Source\n\n## Goal\n\nRegister one or more company-internal knowledge sources so AI agents can fetch examples, documentation, and guidelines directly in chat — without needing to leave the IDE.\n\nExamples of what this covers:\n- Internal Spring Boot wrapper \u002F platform library docs\n- Company-specific framework guidelines and examples\n- Internal API catalogs or developer portals\n- Architecture decision records hosted on an internal server\n- Design system component libraries\n\nSources can be fetched in two ways:\n- **Direct URL** — HTTP endpoint returning JSON, Markdown, HTML, or plain text\n- **MCP Server** — a company-hosted or npm-based MCP server exposing knowledge as tools\n\n---\n\n## Security Check First\n\nConfirm `_superml\u002Fconfig.yml` is in `.gitignore`:\n```bash\ncat {project-root}\u002F.gitignore | grep _superml\n```\n\nIf not present: `echo \"_superml\u002Fconfig.yml\" >> {project-root}\u002F.gitignore`\n\n⏸️ **STOP** — confirm before collecting any internal URLs or tokens.\n\n---\n\n## Step 1: How Many Sources?\n\nAsk:\n> \"How many company knowledge sources would you like to register? (you can add more later)\"\n\nThen for each source, run Steps 2–4.\n\n---\n\n## Step 2: Name and Describe the Source\n\nAsk:\n1. **Short name** (used in config and skill commands): e.g., `spring-platform`, `design-system`, `internal-api-catalog`\n2. **Display name**: e.g., `Company Spring Boot Platform`\n3. **Description** (one line — what it contains): e.g., `Internal Spring Boot wrapper with custom starters, annotations, and security modules`\n4. **Which personas use this most?**\n   - `all` — every persona (default)\n   - Specific roles: `architect`, `developer`, `modernization`, `product`, `team_lead`\n\n---\n\n## Step 3: Choose Access Method\n\nAsk:\n> \"How is this knowledge source accessed?\n> 1. **Direct URL** — HTTP endpoint you can call to get docs or examples\n> 2. **MCP Server** — a company-hosted or npm-based MCP server\n>\n> Which? (1 or 2)\"\n\n### Path A: Direct URL\n\nAsk:\n1. **Base URL**: the root endpoint (e.g., `https:\u002F\u002Finternal-dev-portal.corp\u002Fapi\u002Fdocs`)\n2. **Auth type**: None \u002F Bearer token \u002F Basic auth \u002F Custom header\n   - If Bearer: ask for token\n   - If Basic: ask for username + password\n   - If Custom: ask for header name and value\n3. **Response format**: JSON \u002F Markdown \u002F HTML \u002F Plain text\n4. **Notes for AI** (optional): e.g., \"Append `?format=markdown` to get Markdown output\" or \"Use the `?component={name}` param to fetch specific component docs\"\n\nTest the endpoint:\n```bash\ncurl -s {auth_flags} \"{base_url}\" | head -50\n```\n\nShow the first 50 lines and ask: \"Does this look right? (y\u002Fn)\"\n\n⏸️ **STOP** — confirm before saving.\n\nSave to config:\n```yaml\ncompany_knowledge:\n  sources:\n    - key: \"{short_name}\"\n      name: \"{display_name}\"\n      description: \"{description}\"\n      personas: [{personas_list}]   # all | architect | developer | etc.\n      access:\n        type: url\n        base_url: \"{base_url}\"\n        auth:\n          type: \"{none | bearer | basic | header}\"\n          token: \"{token_if_bearer}\"           # omit if not bearer\n          username: \"{username_if_basic}\"      # omit if not basic\n          password: \"{password_if_basic}\"      # omit if not basic\n          header_name: \"{name_if_custom}\"      # omit if not custom\n          header_value: \"{value_if_custom}\"    # omit if not custom\n        response_format: \"{json | markdown | html | text}\"\n        notes: \"{ai_usage_notes_if_any}\"\n```\n\n### Path B: MCP Server\n\nAsk:\n1. **MCP server type**:\n   - `npm_package` — runs locally via npx\n   - `url` — hosted MCP endpoint (HTTP or SSE)\n   - `command` — arbitrary shell command that speaks MCP\n\n2. **Server name** (key in `.vscode\u002Fmcp.json`): e.g., `company-docs`\n\n**If `npm_package`:**\n\nAsk:\n- Package name: e.g., `@corp\u002Fknowledge-mcp-server`\n- Any env vars needed (name + value pairs)\n\nAdd to `.vscode\u002Fmcp.json`:\n```json\n{\n  \"servers\": {\n    \"{server_name}\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"{package_name}\"],\n      \"env\": {\n        \"{ENV_VAR_NAME}\": \"{env_var_value}\"\n      }\n    }\n  }\n}\n```\n\n**If `url`:**\n\nAsk:\n- MCP endpoint URL\n- Auth header (if any)\n\nAdd to `.vscode\u002Fmcp.json`:\n```json\n{\n  \"servers\": {\n    \"{server_name}\": {\n      \"url\": \"{mcp_url}\",\n      \"headers\": {\n        \"{auth_header}\": \"{auth_value}\"\n      }\n    }\n  }\n}\n```\n\n**If `command`:**\n\nAsk:\n- Full command string (e.g., `\u002Fusr\u002Flocal\u002Fbin\u002Fcorp-mcp-server`)\n- Any args\n- Any env vars\n\n⚠️ **Security**: `.vscode\u002Fmcp.json` may contain credentials:\n```bash\necho \".vscode\u002Fmcp.json\" >> {project-root}\u002F.gitignore\n```\n\nTest the MCP server:\n> \"In a Copilot chat, type: `@{server_name} help` or ask it to describe available tools.\n> Confirm it responds with tool descriptions.\"\n\n⏸️ **STOP** — confirm test passed.\n\nSave to config:\n```yaml\ncompany_knowledge:\n  sources:\n    - key: \"{short_name}\"\n      name: \"{display_name}\"\n      description: \"{description}\"\n      personas: [{personas_list}]\n      access:\n        type: mcp\n        server_name: \"{server_name}\"   # matches key in .vscode\u002Fmcp.json\n        notes: \"{any_usage_notes}\"\n```\n\n---\n\n## Step 4: Add More Sources?\n\nAsk: \"Would you like to add another knowledge source? (y\u002Fn)\"\n\nIf yes, repeat Steps 2–4 and append to `company_knowledge.sources[]`.\n\n---\n\n## Step 5: Confirm and Summary\n\nShow all registered sources:\n\n```\n✅ Company Knowledge sources registered:\n\n  1. {display_name}  [{short_name}]\n     Access: {url | mcp}  — {base_url or server_name}\n     Personas: {all | list}\n     Description: {description}\n\n  2. ...\n\nUse `\u002Fcompany-knowledge-fetch` to pull a source into your AI context.\n```\n\nRemind the user to run `npx @supermldev\u002Fsmart-sdlc init` again if they want these sources available in the `\u002Fsml-help` skill index, **or** simply add the source config entries to `_superml\u002Fconfig.yml` manually.\n",{"name":5,"description":7},"master","86f9b15bf32a913d78f2dce364b9fe56e53ddf12","skills\u002Fintegrations\u002Fcompany-knowledge\u002Fconnect",1,"https:\u002F\u002Fgithub.com\u002FsuperMLdev\u002Fsmart-sdlc","https:\u002F\u002Fsupermldev.github.io\u002Fsmart-sdlc\u002F","https:\u002F\u002Fgithub.com\u002FsuperMLdev","https:\u002F\u002Fsuperml.dev","2026-05-12 11:55:28",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add superMLdev\u002Fsmart-sdlc --skill company-knowledge-connect",{"tool":67,"command":68},"bunx","bunx skills add superMLdev\u002Fsmart-sdlc --skill company-knowledge-connect",{"tool":70,"command":71},"pnpm","pnpm dlx skills add superMLdev\u002Fsmart-sdlc --skill company-knowledge-connect","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FsuperMLdev\u002Fsmart-sdlc\u002Fblob\u002Fmaster\u002Fskills\u002Fintegrations\u002Fcompany-knowledge\u002Fconnect\u002FSKILL.md",true,[],[76,94,107,119,134,147],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":47},"01M71BD2HCRX8SP34Y37NZGVX2","jira-sync","Bulk sync all epics and stories from the local backlog to JIRA. Use when the user says 'sync to JIRA', 'push everything to JIRA', or 'create all JIRA tickets'.","https:\u002F\u002Fgithub.com\u002FsuperMLdev\u002Fsmart-sdlc\u002Fblob\u002Fmaster\u002Fskills\u002Fintegrations\u002Fjira\u002Fsync\u002FSKILL.md",[],[83,84,85,86,87,88,89,90,40,37,91,92,93],"jira sync","jira","sync","user","bulk","push","backlog","local","stories","create","tickets",{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":100,"publishedAt":47},"01M71BD0C5A3A3J7WF4YCGJJPY","jira-create-story","Create a single story ticket in JIRA from a local story file. Use when the user says 'create this story in JIRA' or 'push story to JIRA'.","https:\u002F\u002Fgithub.com\u002FsuperMLdev\u002Fsmart-sdlc\u002Fblob\u002Fmaster\u002Fskills\u002Fintegrations\u002Fjira\u002Fcreate-story\u002FSKILL.md",[],[101,84,92,102,103,88,104,90,105,40,37,106,86],"Story","create story","jira create story","ticket","single","file",{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":113,"publishedAt":47},"01M71BCYVDM32DNS0XJAKTHRZ1","jira-create-epic","Create an epic in JIRA from a planning artifact. Use when the user says 'create this epic in JIRA' or 'push epic to JIRA'.","https:\u002F\u002Fgithub.com\u002FsuperMLdev\u002Fsmart-sdlc\u002Fblob\u002Fmaster\u002Fskills\u002Fintegrations\u002Fjira\u002Fcreate-epic\u002FSKILL.md",[],[92,114,84,115,116,86,37,40,117,88,118],"create epic","EPIC","jira create epic","planning","artifact",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":126,"publishedAt":47},"01M71BCWGYW8T1TD07JJ1G12G9","jira-connect","Set up and verify JIRA integration. Use when the user says 'connect to JIRA', 'set up JIRA', or 'configure JIRA'.","https:\u002F\u002Fgithub.com\u002FsuperMLdev\u002Fsmart-sdlc\u002Fblob\u002Fmaster\u002Fskills\u002Fintegrations\u002Fjira\u002Fconnect\u002FSKILL.md",[125],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[127,84,28,128,129,40,37,130,131,132,133,86],"jira connect","SET","up","configure","verify","jira integration","integration",{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":140,"publishedAt":47},"01M71BCTZ1EW31JHP6AMBHEM9G","jira-conflict-detect","Check if a story is already being worked on by another team member. Use before starting any story implementation.","https:\u002F\u002Fgithub.com\u002FsuperMLdev\u002Fsmart-sdlc\u002Fblob\u002Fmaster\u002Fskills\u002Fintegrations\u002Fjira\u002Fconflict-detect\u002FSKILL.md",[],[141,84,142,143,144,40,145,146,101],"jira conflict detect","detect","conflict","check","team","implementation",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":153,"publishedAt":47},"01M71BCRX4ZHQ60DXGRAEECHB9","gitlab-create-mr","Create a GitLab Merge Request for the current story branch. Use when the user says 'create an MR', 'open a merge request', or 'ready for review' in a GitLab project.","https:\u002F\u002Fgithub.com\u002FsuperMLdev\u002Fsmart-sdlc\u002Fblob\u002Fmaster\u002Fskills\u002Fintegrations\u002Fgitlab\u002Fcreate-mr\u002FSKILL.md",[],[92,154,155,156,157,158,159,160,161,162,40,37,163,164,165,101,86],"mr","gitlab create mr","create mr","gitlab","ready","branch","for","project","open","review","merge","request"]