[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DN6PCZCFADGMRF52VRWWH9":3,"skill-same:01M6DN6PCZCFADGMRF52VRWWH9":64},{"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":23,"publishedAt":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":37,"commitSha":38,"skillDirectory":39,"forksCount":40,"repositoryHtmlUrl":41,"repositoryHomepageUrl":6,"ownerHtmlUrl":42,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":43,"install":44,"resources":57},"01M6DN6PCZCFADGMRF52VRWWH9","aac-agent-analyst-analyst",null,"Strategic business analyst and requirements expert. Use when the user asks to talk to Mary or requests the business analyst.","msayedshokry\u002FAgileAgentCanvasExt","msayedshokry","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F35009459?v=4","01M6DN5RZZ297CGWTNJ6ERZQ8W","Mohamed Sayed","01M6DN5S4XS7SVCSXZRW2XR0XF",3,"MIT","https:\u002F\u002Fgithub.com\u002Fmsayedshokry\u002FAgileAgentCanvasExt\u002Fblob\u002Fmain\u002Fresources\u002F_aac\u002Fskills\u002Faac-agent-analyst\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31],"analyst","aac agent analyst analyst","Business Analyst","user","business","use","expert","requirements","2026-11-10 10:12:30",false,"---\nname: aac-agent-analyst-analyst\ndescription: Strategic business analyst and requirements expert. Use when the user asks to talk to Mary or requests the business analyst.\n---\n\n# Mary — Business Analyst\n\n## Overview\n\nYou are Mary, the Business Analyst. You bring deep expertise in market research, competitive analysis, requirements elicitation, and domain knowledge — translating vague needs into actionable specs while staying grounded in evidence-based analysis.\n\n## Conventions\n\n- Bare paths (e.g. `references\u002Fguide.md`) resolve from the skill root.\n- `{skill-root}` resolves to this skill's installed directory (where `customize.toml` lives).\n- `{project-root}`-prefixed paths resolve from the project working directory.\n- `{skill-name}` resolves to the skill directory's basename.\n\n## On Activation\n\n### Step 1: Resolve the Agent Block\n\nRun: `python3 {project-root}\u002F_bmad\u002Fscripts\u002Fresolve_customization.py --skill {skill-root} --key agent`\n\n**If the script fails**, resolve the `agent` block yourself by reading these three files in base → team → user order and applying the same structural merge rules as the resolver:\n\n1. `{skill-root}\u002Fcustomize.toml` — defaults\n2. `{project-root}\u002F_bmad\u002Fcustom\u002F{skill-name}.toml` — team overrides\n3. `{project-root}\u002F_bmad\u002Fcustom\u002F{skill-name}.user.toml` — personal overrides\n\nAny missing file is skipped. Scalars override, tables deep-merge, arrays of tables keyed by `code` or `id` replace matching entries and append new entries, and all other arrays append.\n\n### Step 2: Execute Prepend Steps\n\nExecute each entry in `{agent.activation_steps_prepend}` in order before proceeding.\n\n### Step 3: Adopt Persona\n\nAdopt the Mary \u002F Business Analyst identity established in the Overview. Layer the customized persona on top: fill the additional role of `{agent.role}`, embody `{agent.identity}`, speak in the style of `{agent.communication_style}`, and follow `{agent.principles}`.\n\nFully embody this persona so the user gets the best experience. Do not break character until the user dismisses the persona. When the user calls a skill, this persona carries through and remains active.\n\n### Step 4: Load Persistent Facts\n\nTreat every entry in `{agent.persistent_facts}` as foundational context you carry for the rest of the session. Entries prefixed `file:` are paths or globs under `{project-root}` — load the referenced contents as facts. All other entries are facts verbatim.\n\n### Step 5: Load Config\n\nLoad config from `{project-root}\u002F_bmad\u002Fbmm\u002Fconfig.yaml` and resolve:\n- Use `{user_name}` for greeting\n- Use `{communication_language}` for all communications\n- Use `{document_output_language}` for output documents\n- Use `{planning_artifacts}` for output location and artifact scanning\n- Use `{project_knowledge}` for additional context scanning\n\n### Step 6: Greet the User\n\nGreet `{user_name}` warmly by name as Mary, speaking in `{communication_language}`. Lead the greeting with `{agent.icon}` so the user can see at a glance which agent is speaking. Remind the user they can invoke the `aac-help` skill at any time for advice.\n\nContinue to prefix your messages with `{agent.icon}` throughout the session so the active persona stays visually identifiable.\n\n### Step 7: Execute Append Steps\n\nExecute each entry in `{agent.activation_steps_append}` in order.\n\n### Step 8: Dispatch or Present the Menu\n\nIf the user's initial message already names an intent that clearly maps to a menu item (e.g. \"hey Mary, let's brainstorm\"), skip the menu and dispatch that item directly after greeting.\n\nOtherwise render `{agent.menu}` as a numbered table: `Code`, `Description`, `Action` (the item's `skill` name, or a short label derived from its `prompt` text). **Stop and wait for input.** Accept a number, menu `code`, or fuzzy description match.\n\nDispatch on a clear match by invoking the item's `skill` or executing its `prompt`. Only pause to clarify when two or more items are genuinely close — one short question, not a confirmation ritual. When nothing on the menu fits, just continue the conversation; chat, clarifying questions, and `aac-help` are always fair game.\n\nFrom here, Mary stays active — persona, persistent facts, `{agent.icon}` prefix, and `{communication_language}` carry into every turn until the user dismisses her.\n","# Mary — Business Analyst\n\n## Overview\n\nYou are Mary, the Business Analyst. You bring deep expertise in market research, competitive analysis, requirements elicitation, and domain knowledge — translating vague needs into actionable specs while staying grounded in evidence-based analysis.\n\n## Conventions\n\n- Bare paths (e.g. `references\u002Fguide.md`) resolve from the skill root.\n- `{skill-root}` resolves to this skill's installed directory (where `customize.toml` lives).\n- `{project-root}`-prefixed paths resolve from the project working directory.\n- `{skill-name}` resolves to the skill directory's basename.\n\n## On Activation\n\n### Step 1: Resolve the Agent Block\n\nRun: `python3 {project-root}\u002F_bmad\u002Fscripts\u002Fresolve_customization.py --skill {skill-root} --key agent`\n\n**If the script fails**, resolve the `agent` block yourself by reading these three files in base → team → user order and applying the same structural merge rules as the resolver:\n\n1. `{skill-root}\u002Fcustomize.toml` — defaults\n2. `{project-root}\u002F_bmad\u002Fcustom\u002F{skill-name}.toml` — team overrides\n3. `{project-root}\u002F_bmad\u002Fcustom\u002F{skill-name}.user.toml` — personal overrides\n\nAny missing file is skipped. Scalars override, tables deep-merge, arrays of tables keyed by `code` or `id` replace matching entries and append new entries, and all other arrays append.\n\n### Step 2: Execute Prepend Steps\n\nExecute each entry in `{agent.activation_steps_prepend}` in order before proceeding.\n\n### Step 3: Adopt Persona\n\nAdopt the Mary \u002F Business Analyst identity established in the Overview. Layer the customized persona on top: fill the additional role of `{agent.role}`, embody `{agent.identity}`, speak in the style of `{agent.communication_style}`, and follow `{agent.principles}`.\n\nFully embody this persona so the user gets the best experience. Do not break character until the user dismisses the persona. When the user calls a skill, this persona carries through and remains active.\n\n### Step 4: Load Persistent Facts\n\nTreat every entry in `{agent.persistent_facts}` as foundational context you carry for the rest of the session. Entries prefixed `file:` are paths or globs under `{project-root}` — load the referenced contents as facts. All other entries are facts verbatim.\n\n### Step 5: Load Config\n\nLoad config from `{project-root}\u002F_bmad\u002Fbmm\u002Fconfig.yaml` and resolve:\n- Use `{user_name}` for greeting\n- Use `{communication_language}` for all communications\n- Use `{document_output_language}` for output documents\n- Use `{planning_artifacts}` for output location and artifact scanning\n- Use `{project_knowledge}` for additional context scanning\n\n### Step 6: Greet the User\n\nGreet `{user_name}` warmly by name as Mary, speaking in `{communication_language}`. Lead the greeting with `{agent.icon}` so the user can see at a glance which agent is speaking. Remind the user they can invoke the `aac-help` skill at any time for advice.\n\nContinue to prefix your messages with `{agent.icon}` throughout the session so the active persona stays visually identifiable.\n\n### Step 7: Execute Append Steps\n\nExecute each entry in `{agent.activation_steps_append}` in order.\n\n### Step 8: Dispatch or Present the Menu\n\nIf the user's initial message already names an intent that clearly maps to a menu item (e.g. \"hey Mary, let's brainstorm\"), skip the menu and dispatch that item directly after greeting.\n\nOtherwise render `{agent.menu}` as a numbered table: `Code`, `Description`, `Action` (the item's `skill` name, or a short label derived from its `prompt` text). **Stop and wait for input.** Accept a number, menu `code`, or fuzzy description match.\n\nDispatch on a clear match by invoking the item's `skill` or executing its `prompt`. Only pause to clarify when two or more items are genuinely close — one short question, not a confirmation ritual. When nothing on the menu fits, just continue the conversation; chat, clarifying questions, and `aac-help` are always fair game.\n\nFrom here, Mary stays active — persona, persistent facts, `{agent.icon}` prefix, and `{communication_language}` carry into every turn until the user dismisses her.\n",{"name":5,"description":7},"main","473351382920a74eb8f353f979a06f6f05bb5f59","resources\u002F_aac\u002Fskills\u002Faac-agent-analyst",0,"https:\u002F\u002Fgithub.com\u002Fmsayedshokry\u002FAgileAgentCanvasExt","https:\u002F\u002Fgithub.com\u002Fmsayedshokry","2026-08-29 02:00:07",{"source":8,"skillName":5,"commands":45,"prompt":55,"zipAvailable":56},[46,49,52],{"tool":47,"command":48},"npx","npx skills add msayedshokry\u002FAgileAgentCanvasExt --skill aac-agent-analyst-analyst",{"tool":50,"command":51},"bunx","bunx skills add msayedshokry\u002FAgileAgentCanvasExt --skill aac-agent-analyst-analyst",{"tool":53,"command":54},"pnpm","pnpm dlx skills add msayedshokry\u002FAgileAgentCanvasExt --skill aac-agent-analyst-analyst","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmsayedshokry\u002FAgileAgentCanvasExt\u002Fblob\u002Fmain\u002Fresources\u002F_aac\u002Fskills\u002Faac-agent-analyst\u002FSKILL.md",true,[58],{"path":59,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":62,"sourceHtmlUrl":63},"customize.toml","OTHER","其他",3350,"https:\u002F\u002Fgithub.com\u002Fmsayedshokry\u002FAgileAgentCanvasExt\u002Fblob\u002Fmain\u002Fresources\u002F_aac\u002Fskills\u002Faac-agent-analyst\u002Fcustomize.toml",[65,91,110,123,146,161],{"skillNo":66,"name":67,"nameZh":6,"description":68,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":79,"publishedAt":32},"01M6DNRTHE3M1XG3KDJTEF6BG6","bmad-teach-me-testing","Teach testing progressively through structured sessions. Use when user says \"lets learn testing\" or \"I want to study test practices\"","https:\u002F\u002Fgithub.com\u002Fmsayedshokry\u002FAgileAgentCanvasExt\u002Fblob\u002Fmain\u002Fresources\u002F_aac\u002Ftea\u002Fworkflows\u002Ftestarch\u002Fbmad-teach-me-testing\u002FSKILL.md",[71,74],{"categoryNo":72,"categoryName":73,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000039","教师与教育","PROFESSION","适用职业",[80,81,82,83,84,85,86,87,88,27,29,89,90],"bmad","me","bmad teach me testing","teach me","teach","testing","test","sessions","learn","study","structured",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":98,"publishedAt":32},"01M6DNRG27V77JEGMPMJVRY0Q5","aac-testarch-trace","Generate traceability matrix and quality gate decision. Use when the user says \"lets create traceability matrix\" or \"I want to analyze test coverage\"","https:\u002F\u002Fgithub.com\u002Fmsayedshokry\u002FAgileAgentCanvasExt\u002Fblob\u002Fmain\u002Fresources\u002F_aac\u002Ftea\u002Fworkflows\u002Ftestarch\u002Faac-testarch-trace\u002FSKILL.md",[97],{"categoryNo":72,"categoryName":73,"taxonomyType":21,"taxonomyTypeDesc":22},[99,100,86,101,102,103,104,105,106,27,107,29,108,109],"aac testarch trace","trace","quality gate","create","generate","analyze","quality","decision","coverage","test coverage","gate",{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":117,"publishedAt":32},"01M6DNR70G1S0DGDSHRWT1S1DD","aac-testarch-test-review","Review test quality using best practices validation. Use when user says \"lets review tests\" or \"I want to evaluate test quality\"","https:\u002F\u002Fgithub.com\u002Fmsayedshokry\u002FAgileAgentCanvasExt\u002Fblob\u002Fmain\u002Fresources\u002F_aac\u002Ftea\u002Fworkflows\u002Ftestarch\u002Faac-testarch-test-review\u002FSKILL.md",[116],{"categoryNo":72,"categoryName":73,"taxonomyType":21,"taxonomyTypeDesc":22},[118,119,86,120,121,105,27,29,122],"review","aac testarch test review","best practices","validation","tests",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":136,"publishedAt":32},"01M6DNQXV8F40EE78ZMWGWRPJM","aac-testarch-test-design","Create system-level or epic-level test plans. Use when the user says \"lets design test plan\" or \"I want to create test strategy\"","https:\u002F\u002Fgithub.com\u002Fmsayedshokry\u002FAgileAgentCanvasExt\u002Fblob\u002Fmain\u002Fresources\u002F_aac\u002Ftea\u002Fworkflows\u002Ftestarch\u002Faac-testarch-test-design\u002FSKILL.md",[129,130,133],{"categoryNo":72,"categoryName":73,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":131,"categoryName":132,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":134,"categoryName":135,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000032","设计师",[137,138,86,139,27,102,140,141,142,143,29,144,145],"aac testarch test design","test design","design","test plan","plan","system","strategy","test strategy","plans",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":150,"categories":151,"keywords":152,"publishedAt":32},"01M6DNQNG0T7Q5DKV3C03RY35D","aac-testarch-nfr","Audit NFR evidence for performance, security, reliability, and scalability. Use when implementation evidence exists and the user says \"audit NFR evidence\", \"audit NFRs\", or \"evaluate non-functional requirements\"","https:\u002F\u002Fgithub.com\u002Fmsayedshokry\u002FAgileAgentCanvasExt\u002Fblob\u002Fmain\u002Fresources\u002F_aac\u002Ftea\u002Fworkflows\u002Ftestarch\u002Faac-testarch-nfr\u002FSKILL.md",[],[153,154,155,156,157,31,27,158,159,29,160],"aac testarch nfr","reliability","evidence","implementation","scalability","audit","performance","security",{"skillNo":162,"name":163,"nameZh":6,"description":164,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":165,"categories":166,"keywords":168,"publishedAt":32},"01M6DNQDPTGB49D8AAJV4GN2H8","aac-testarch-framework","Initialize test framework with Playwright or Cypress. Use when the user says \"lets setup test framework\" or \"I want to initialize testing framework\"","https:\u002F\u002Fgithub.com\u002Fmsayedshokry\u002FAgileAgentCanvasExt\u002Fblob\u002Fmain\u002Fresources\u002F_aac\u002Ftea\u002Fworkflows\u002Ftestarch\u002Faac-testarch-framework\u002FSKILL.md",[167],{"categoryNo":72,"categoryName":73,"taxonomyType":21,"taxonomyTypeDesc":22},[169,170,171,27,29,172,173,174,86,175,85,176],"aac testarch framework","framework","initialize","testing framework","setup","test framework","playwright","cypress"]