[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71V5AFS98MSXZTJEFXHDF8D":3,"skill-same:01M71V5AFS98MSXZTJEFXHDF8D":73},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":46,"commitSha":47,"skillDirectory":48,"forksCount":49,"repositoryHtmlUrl":50,"repositoryHomepageUrl":6,"ownerHtmlUrl":51,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":52,"install":53,"resources":66},"01M71V5AFS98MSXZTJEFXHDF8D","job-match",null,"Matches candidate CVs to job openings using hybrid search (vector + full-text) on the jobs collection, and provides interview preparation questions from the interview_prep collection. Use this skill when a candidate submits their CV, asks about job matches, wants job recommendations, or requests interview prep questions for a specific role.","mongodb-partners\u002FMulti-Agent-Architectural-Guidance-Bedrock-AgentCore","mongodb-partners","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F9803686?v=4","01M71V4VSPZ03KW81YPCH5X0TW","01M71V4VT9HSQY1MYK6BRYR1CK",19,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fmongodb-partners\u002FMulti-Agent-Architectural-Guidance-Bedrock-AgentCore\u002Fblob\u002Fmain\u002Fconfig\u002Fskills\u002Fjob-match\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"job match","match","questions","when","hybrid","candidate","for","requests","cvs","interview preparation","search","Hybrid Search","cv","recommendations","recruitment","use","interview","text","collection","vector","2026-11-10 13:02:02",false,"---\nname: job-match\ndescription: >-\n  Matches candidate CVs to job openings using hybrid search (vector + full-text)\n  on the jobs collection, and provides interview preparation questions from the\n  interview_prep collection. Use this skill when a candidate submits their CV,\n  asks about job matches, wants job recommendations, or requests interview prep\n  questions for a specific role.\nmetadata:\n  author: anujpanchal\n  version: \"1.0\"\n  domain: recruitment\n---\n\n# Job Match Skill\n\n## What You Can Do\n\n1. **Parse and store candidate CVs** — extract structured profile data from raw CV text, generate an embedding, and store the candidate document in the `candidates` collection.\n2. **Hybrid job search** — run a combined vector search + full-text search against the `jobs` collection and return the top 5 ranked matches with scores.\n3. **Interview preparation** — retrieve targeted interview tips and questions from the `interview_prep` collection using vector search.\n\n---\n\n## Step 1 — Storing a Candidate's CV\n\nWhen a candidate pastes their CV text:\n\n1. Parse the raw CV text to extract structured profile fields:\n   - `name`, `email`, `phone`, `location`, `headline`, `summary`\n   - `yearsExperience` (integer), `seniority` (`junior` | `mid` | `senior` | `staff`)\n   - `skills` (array of lowercase strings)\n   - `experience` (array of `{ title, company, startDate, endDate, highlights[] }`)\n   - `education` (array of `{ degree, field, institution, year }`)\n   - `certifications` (array of strings)\n\n2. Build an `embeddingText` string from the parsed fields in this format:\n   ```\n   \u003Cname>\n   \u003Cheadline>\n   Seniority: \u003Cseniority>\n   Years of experience: \u003CyearsExperience>\n   Skills: \u003Ccomma-separated skills>\n   \u003Csummary>\n   \u003Cexperience highlights joined by newlines>\n   ```\n\n3. Generate a `candidateId` in the format `cand-\u003C8 random hex chars>` (e.g. `cand-2ee32acd`).\n\n4. **In the same model turn**, issue two parallel tool calls:\n\n   **Call A — `mongodb_query` → `insertOne`** on the `candidates` collection. The search in Call B does not depend on this result — both calls can run concurrently.\n\n   ```json\n   {\n     \"collection\": \"candidates\",\n     \"operation\": \"insertOne\",\n     \"document\": {\n       \"candidateId\": \"\u003Cgenerated>\",\n       \"rawCv\": \"\u003Cfirst 500 characters of original CV text>\",\n       \"profile\": {\n         \"name\": \"\u003Cname>\",\n         \"email\": \"\u003Cemail>\",\n         \"phone\": \"\u003Cphone or null>\",\n         \"location\": \"\u003Clocation or null>\",\n         \"headline\": \"\u003Cheadline or null>\",\n         \"summary\": \"\u003Csummary or null>\",\n         \"yearsExperience\": \"\u003Cinteger or null>\",\n         \"seniority\": \"\u003Cjunior|mid|senior|staff>\",\n         \"skills\": [\"\u003Cskill1>\", \"\u003Cskill2>\"],\n         \"experience\": [{ \"title\": \"\", \"company\": \"\", \"startDate\": \"\", \"endDate\": \"\", \"highlights\": [] }],\n         \"education\": [{ \"degree\": \"\", \"field\": \"\", \"institution\": \"\", \"year\": \"\" }],\n         \"certifications\": [\"\u003Ccert1>\"]\n       }\n     }\n   }\n   ```\n\n   **Call B — `mongodb_vector_search` hybrid call** as described in Step 2 below, using `embeddingText` as `queryText`.\n\n5. Once both calls return, confirm to the candidate that their profile has been saved and present the job matches together.\n\n---\n\n## Step 2 — Hybrid Job Search\n\nWhen triggered as part of Step 1 CV ingestion, issue this search as **Call B in the same parallel turn as the `mongodb_query` upsert** (Step 1.4). When re-running matching for a returning candidate, issue it as a standalone call. Either way, perform a hybrid search against the `jobs` collection in **a single tool call**. The MCP runtime executes the vector and lexical legs in parallel and merges them with Reciprocal Rank Fusion server-side, so the model does **not** run a separate `$search` aggregation or compute RRF in-band.\n\n### Single hybrid call\n\nCall `mongodb_vector_search` with:\n- `collection`: `jobs`\n- `queryText`: the candidate's `embeddingText` (or their raw CV text if embeddingText is unavailable). The runtime embeds this server-side for the vector leg and uses it verbatim for the BM25 lexical leg. **Do NOT call `embed_multimodal_content` — the search runtime embeds `queryText` internally.**\n- `indexName`: `jobs_vector_index`\n- `hybrid`: `true`\n- `lexicalIndex`: `jobs_text_index`\n- `lexicalPath`: `description` — single text-indexed field the BM25 leg searches. `description` is chosen because it carries the densest mix of title\u002Fskills\u002Fseniority signal. (Atlas Search hybrid mode is single-path; multi-field recall is recovered by the vector leg.)\n- `limit`: 5 — final fused result count.\n- `fetchK`: 10 — per-leg over-fetch before RRF merge (preserves the previous 10+10 → top-5 behaviour).\n\nThe result documents come back with a `_score` field carrying the RRF score and a `_sources` array listing which legs each hit appeared in (`[\"vector\"]`, `[\"lexical\"]`, or both). You do **not** need to re-rank, re-fuse, or call `$search` separately.\n\n### Output format\n\nPresent results as a ranked list (already ordered by `_score` descending). For each job include:\n- Rank number and job title\n- Company, location, salary range, and remote flag\n- Required seniority and minimum years of experience\n- Key skills\n- A 1–2 sentence explanation of why the candidate's profile matches this role\n- Match confidence: High \u002F Medium \u002F Low (based on skill overlap, seniority alignment, and whether the hit came from both legs — `_sources` of length 2 → stronger signal)\n\n---\n\n## Step 3 — Interview Preparation\n\nWhen a candidate expresses interest in a specific job and asks for interview questions or prep material:\n\n1. Identify the target role from the conversation context (title, company, or jobId).\n\n2. Build a query string combining the role title, key skills, and any stated focus areas (e.g. \"behavioral\", \"system design\", \"machine learning\").\n\n3. Call `mongodb_vector_search` with:\n   - `collection`: `interview_prep`\n   - `queryText`: the combined query string\n   - `indexName`: `prep_vector_index`\n   - `limit`: 5\n\n4. Present the retrieved prep material as structured advice. Include the title, category, and the full content of each result.\n\n5. **Critical constraint**: Only respond with information found in the `interview_prep` collection. Do not generate interview questions or advice from your own knowledge. If vector search returns no results for a query, say: \"I don't have specific prep material for that topic yet — try rephrasing or asking about a different aspect of the role.\"\n\n---\n\n## References\n\n**References** (on demand): the API only serves files for skills that are **allowed for this agent** and **already activated** (`activate_skill`, or pre-activation for specialists). Call **`read_skill_resource`** with **`skillName`** `job-match` and **`path`** (relative to that skill folder), e.g.:\n\n- `references\u002Fcollections-schema.md` — Full document schemas, index definitions, and field notes for `jobs`, `candidates`, and `interview_prep` collections. Load this when you need to verify field names, filter parameters, or construct precise aggregation queries.\n\nFor the **job-match** specialist agent, this skill is **pre-activated** at turn start, so `read_skill_resource` works immediately. If you see `skill_not_activated`, run **`activate_skill`** with `job-match` first.\n\n---\n\n## Edge Cases\n\n**Incomplete CV text:** If the raw text is missing key fields (e.g. no skills listed), extract what is available, set missing fields to `null` or `[]`, and proceed. Tell the candidate which fields were missing and suggest they add them for better matches.\n\n**No job matches returned:** If both search legs return empty results, tell the candidate honestly and suggest they broaden their skills description.\n\n**Returning candidate (profile already exists):** Use `insertOne` as in Step 1 — a new candidate record will be created. Do not issue a `findOne` check before inserting.\n\n**Candidate asks about a job not in the results:** Perform a direct `mongodb_query` → `findOne` on `jobs` by `jobId` if provided, always passing `\"projection\": { \"embedding\": 0, \"embeddingText\": 0 }` to keep the result compact. Then describe the role and offer to compare it against the candidate's profile.\n\n## Boundaries\n\n- This skill handles CV parsing, job matching, and interview prep only.\n- Do not answer questions about salary negotiation, HR policies, or hiring timelines — these are outside the available data.\n- Never reveal raw MongoDB `_id` values to the candidate; use `jobId`, `prepId`, or `candidateId` instead.\n- Never fabricate job listings or interview questions. All responses must be grounded in collection data.\n","# Job Match Skill\n\n## What You Can Do\n\n1. **Parse and store candidate CVs** — extract structured profile data from raw CV text, generate an embedding, and store the candidate document in the `candidates` collection.\n2. **Hybrid job search** — run a combined vector search + full-text search against the `jobs` collection and return the top 5 ranked matches with scores.\n3. **Interview preparation** — retrieve targeted interview tips and questions from the `interview_prep` collection using vector search.\n\n---\n\n## Step 1 — Storing a Candidate's CV\n\nWhen a candidate pastes their CV text:\n\n1. Parse the raw CV text to extract structured profile fields:\n   - `name`, `email`, `phone`, `location`, `headline`, `summary`\n   - `yearsExperience` (integer), `seniority` (`junior` | `mid` | `senior` | `staff`)\n   - `skills` (array of lowercase strings)\n   - `experience` (array of `{ title, company, startDate, endDate, highlights[] }`)\n   - `education` (array of `{ degree, field, institution, year }`)\n   - `certifications` (array of strings)\n\n2. Build an `embeddingText` string from the parsed fields in this format:\n   ```\n   \u003Cname>\n   \u003Cheadline>\n   Seniority: \u003Cseniority>\n   Years of experience: \u003CyearsExperience>\n   Skills: \u003Ccomma-separated skills>\n   \u003Csummary>\n   \u003Cexperience highlights joined by newlines>\n   ```\n\n3. Generate a `candidateId` in the format `cand-\u003C8 random hex chars>` (e.g. `cand-2ee32acd`).\n\n4. **In the same model turn**, issue two parallel tool calls:\n\n   **Call A — `mongodb_query` → `insertOne`** on the `candidates` collection. The search in Call B does not depend on this result — both calls can run concurrently.\n\n   ```json\n   {\n     \"collection\": \"candidates\",\n     \"operation\": \"insertOne\",\n     \"document\": {\n       \"candidateId\": \"\u003Cgenerated>\",\n       \"rawCv\": \"\u003Cfirst 500 characters of original CV text>\",\n       \"profile\": {\n         \"name\": \"\u003Cname>\",\n         \"email\": \"\u003Cemail>\",\n         \"phone\": \"\u003Cphone or null>\",\n         \"location\": \"\u003Clocation or null>\",\n         \"headline\": \"\u003Cheadline or null>\",\n         \"summary\": \"\u003Csummary or null>\",\n         \"yearsExperience\": \"\u003Cinteger or null>\",\n         \"seniority\": \"\u003Cjunior|mid|senior|staff>\",\n         \"skills\": [\"\u003Cskill1>\", \"\u003Cskill2>\"],\n         \"experience\": [{ \"title\": \"\", \"company\": \"\", \"startDate\": \"\", \"endDate\": \"\", \"highlights\": [] }],\n         \"education\": [{ \"degree\": \"\", \"field\": \"\", \"institution\": \"\", \"year\": \"\" }],\n         \"certifications\": [\"\u003Ccert1>\"]\n       }\n     }\n   }\n   ```\n\n   **Call B — `mongodb_vector_search` hybrid call** as described in Step 2 below, using `embeddingText` as `queryText`.\n\n5. Once both calls return, confirm to the candidate that their profile has been saved and present the job matches together.\n\n---\n\n## Step 2 — Hybrid Job Search\n\nWhen triggered as part of Step 1 CV ingestion, issue this search as **Call B in the same parallel turn as the `mongodb_query` upsert** (Step 1.4). When re-running matching for a returning candidate, issue it as a standalone call. Either way, perform a hybrid search against the `jobs` collection in **a single tool call**. The MCP runtime executes the vector and lexical legs in parallel and merges them with Reciprocal Rank Fusion server-side, so the model does **not** run a separate `$search` aggregation or compute RRF in-band.\n\n### Single hybrid call\n\nCall `mongodb_vector_search` with:\n- `collection`: `jobs`\n- `queryText`: the candidate's `embeddingText` (or their raw CV text if embeddingText is unavailable). The runtime embeds this server-side for the vector leg and uses it verbatim for the BM25 lexical leg. **Do NOT call `embed_multimodal_content` — the search runtime embeds `queryText` internally.**\n- `indexName`: `jobs_vector_index`\n- `hybrid`: `true`\n- `lexicalIndex`: `jobs_text_index`\n- `lexicalPath`: `description` — single text-indexed field the BM25 leg searches. `description` is chosen because it carries the densest mix of title\u002Fskills\u002Fseniority signal. (Atlas Search hybrid mode is single-path; multi-field recall is recovered by the vector leg.)\n- `limit`: 5 — final fused result count.\n- `fetchK`: 10 — per-leg over-fetch before RRF merge (preserves the previous 10+10 → top-5 behaviour).\n\nThe result documents come back with a `_score` field carrying the RRF score and a `_sources` array listing which legs each hit appeared in (`[\"vector\"]`, `[\"lexical\"]`, or both). You do **not** need to re-rank, re-fuse, or call `$search` separately.\n\n### Output format\n\nPresent results as a ranked list (already ordered by `_score` descending). For each job include:\n- Rank number and job title\n- Company, location, salary range, and remote flag\n- Required seniority and minimum years of experience\n- Key skills\n- A 1–2 sentence explanation of why the candidate's profile matches this role\n- Match confidence: High \u002F Medium \u002F Low (based on skill overlap, seniority alignment, and whether the hit came from both legs — `_sources` of length 2 → stronger signal)\n\n---\n\n## Step 3 — Interview Preparation\n\nWhen a candidate expresses interest in a specific job and asks for interview questions or prep material:\n\n1. Identify the target role from the conversation context (title, company, or jobId).\n\n2. Build a query string combining the role title, key skills, and any stated focus areas (e.g. \"behavioral\", \"system design\", \"machine learning\").\n\n3. Call `mongodb_vector_search` with:\n   - `collection`: `interview_prep`\n   - `queryText`: the combined query string\n   - `indexName`: `prep_vector_index`\n   - `limit`: 5\n\n4. Present the retrieved prep material as structured advice. Include the title, category, and the full content of each result.\n\n5. **Critical constraint**: Only respond with information found in the `interview_prep` collection. Do not generate interview questions or advice from your own knowledge. If vector search returns no results for a query, say: \"I don't have specific prep material for that topic yet — try rephrasing or asking about a different aspect of the role.\"\n\n---\n\n## References\n\n**References** (on demand): the API only serves files for skills that are **allowed for this agent** and **already activated** (`activate_skill`, or pre-activation for specialists). Call **`read_skill_resource`** with **`skillName`** `job-match` and **`path`** (relative to that skill folder), e.g.:\n\n- `references\u002Fcollections-schema.md` — Full document schemas, index definitions, and field notes for `jobs`, `candidates`, and `interview_prep` collections. Load this when you need to verify field names, filter parameters, or construct precise aggregation queries.\n\nFor the **job-match** specialist agent, this skill is **pre-activated** at turn start, so `read_skill_resource` works immediately. If you see `skill_not_activated`, run **`activate_skill`** with `job-match` first.\n\n---\n\n## Edge Cases\n\n**Incomplete CV text:** If the raw text is missing key fields (e.g. no skills listed), extract what is available, set missing fields to `null` or `[]`, and proceed. Tell the candidate which fields were missing and suggest they add them for better matches.\n\n**No job matches returned:** If both search legs return empty results, tell the candidate honestly and suggest they broaden their skills description.\n\n**Returning candidate (profile already exists):** Use `insertOne` as in Step 1 — a new candidate record will be created. Do not issue a `findOne` check before inserting.\n\n**Candidate asks about a job not in the results:** Perform a direct `mongodb_query` → `findOne` on `jobs` by `jobId` if provided, always passing `\"projection\": { \"embedding\": 0, \"embeddingText\": 0 }` to keep the result compact. Then describe the role and offer to compare it against the candidate's profile.\n\n## Boundaries\n\n- This skill handles CV parsing, job matching, and interview prep only.\n- Do not answer questions about salary negotiation, HR policies, or hiring timelines — these are outside the available data.\n- Never reveal raw MongoDB `_id` values to the candidate; use `jobId`, `prepId`, or `candidateId` instead.\n- Never fabricate job listings or interview questions. All responses must be grounded in collection data.\n",{"name":5,"metadata":43,"description":7},{"author":44,"domain":32,"version":45},"anujpanchal","1.0","main","a6bd8916bc2b0c913faf9704528ecbc7f4432c2a","config\u002Fskills\u002Fjob-match",5,"https:\u002F\u002Fgithub.com\u002Fmongodb-partners\u002FMulti-Agent-Architectural-Guidance-Bedrock-AgentCore","https:\u002F\u002Fgithub.com\u002Fmongodb-partners","2026-11-10 06:47:38",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add mongodb-partners\u002FMulti-Agent-Architectural-Guidance-Bedrock-AgentCore --skill job-match",{"tool":59,"command":60},"bunx","bunx skills add mongodb-partners\u002FMulti-Agent-Architectural-Guidance-Bedrock-AgentCore --skill job-match",{"tool":62,"command":63},"pnpm","pnpm dlx skills add mongodb-partners\u002FMulti-Agent-Architectural-Guidance-Bedrock-AgentCore --skill job-match","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmongodb-partners\u002FMulti-Agent-Architectural-Guidance-Bedrock-AgentCore\u002Fblob\u002Fmain\u002Fconfig\u002Fskills\u002Fjob-match\u002FSKILL.md",true,[67],{"path":68,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":71,"sourceHtmlUrl":72},"references\u002Fcollections-schema.md","REFERENCE","参考文档",5615,"https:\u002F\u002Fgithub.com\u002Fmongodb-partners\u002FMulti-Agent-Architectural-Guidance-Bedrock-AgentCore\u002Fblob\u002Fmain\u002Fconfig\u002Fskills\u002Fjob-match\u002Freferences\u002Fcollections-schema.md",[74,91,118,140],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":38},"01M71V57PH9PGS3G0EEY5RRDBC","company-intel","Researches a hiring company's culture, engineering practices, funding\u002Fstage, size, and employee sentiment using hybrid search (vector + full-text) on the companies collection, enriched by the Bedrock knowledge base. Use this skill when a candidate asks about a specific company, what it is like to work there, its reputation, funding or size, or wants the companies behind their job matches profiled.","https:\u002F\u002Fgithub.com\u002Fmongodb-partners\u002FMulti-Agent-Architectural-Guidance-Bedrock-AgentCore\u002Fblob\u002Fmain\u002Fconfig\u002Fskills\u002Fcompany-intel\u002FSKILL.md",[],[81,82,83,84,85,29,22,28,37,86,87,88,89,33,21,90,36,23,32,35],"intel","company intel","company","funding","knowledge base","culture","bedrock","knowledge","engineering practices","stage",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":102,"publishedAt":38},"01M71V52W009CTK4EMEX1Z5DBZ","career-coach","Produces a skill-gap analysis and a phased learning roadmap for a candidate targeting a specific role (using hybrid search on the career_paths and skills_taxonomy collections), AND retrieves compensation benchmarks — base\u002Ftotal\u002Fpercentiles, benefits norms, and grounded negotiation ranges — for a role at a given seniority and location (using hybrid search on the compensation_data collection). Use this skill when a candidate asks what skills they need for a target role, how to transition between roles, how to reach a more senior level, wants a learning\u002Fdevelopment plan, OR asks what a role pays, what salary to expect or ask for, how pay varies by location or seniority, or how to frame a compensation negotiation.","https:\u002F\u002Fgithub.com\u002Fmongodb-partners\u002FMulti-Agent-Architectural-Guidance-Bedrock-AgentCore\u002Fblob\u002Fmain\u002Fconfig\u002Fskills\u002Fcareer-coach\u002FSKILL.md",[97],{"categoryNo":98,"categoryName":99,"taxonomyType":100,"taxonomyTypeDesc":101},"01JBSEEDCAT000000000000031","产品经理","PROFESSION","适用职业",[103,104,105,23,106,107,108,109,110,111,112,29,28,113,114,115,116,21,117,36],"coach","career coach","career","at","how","data collection","senior","transition","plan","analysis","how to","targeting","pay","roadmap","ask",{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":129,"publishedAt":38},"01M71V50NSY3J0K4QC9D5FQV30","demo-skill","Test fixture skill for HTTP tools unit tests","https:\u002F\u002Fgithub.com\u002Fmongodb-partners\u002FMulti-Agent-Architectural-Guidance-Bedrock-AgentCore\u002Fblob\u002Fmain\u002Fapi\u002Ftests\u002Ffixtures\u002Fconfig\u002Fskills\u002Fdemo-skill\u002FSKILL.md",[124],{"categoryNo":125,"categoryName":126,"taxonomyType":127,"taxonomyTypeDesc":128},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[130,131,24,132,133,134,135,136,137,138,139],"demo skill","demo","unit","fixture","tests","test","http","Tools","unit tests","fixture skill",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":150,"publishedAt":38},"01M71V4YQYTBMPQHZPY0MVXNN3","e2e-fixture-skill","Config-only fixture: proves a new skill directory is discovered without API code changes.","https:\u002F\u002Fgithub.com\u002Fmongodb-partners\u002FMulti-Agent-Architectural-Guidance-Bedrock-AgentCore\u002Fblob\u002Fmain\u002Fapi\u002Ftests\u002Ffixtures\u002Fconfig-extra-skill-only\u002Fskills\u002Fe2e-fixture-skill\u002FSKILL.md",[146,149],{"categoryNo":147,"categoryName":148,"taxonomyType":127,"taxonomyTypeDesc":128},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":125,"categoryName":126,"taxonomyType":127,"taxonomyTypeDesc":128},[151,152,139,133,153,154,155,156,157,158,159,160],"e2e fixture skill","e2e","only","new","changes","new skill","code","directory","api","config"]