[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M69AFEK5JE1BA30TTAMKZABV":3,"skill-same:01M69AFEK5JE1BA30TTAMKZABV":71},{"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":30,"linkOnly":31,"markdownContent":32,"markdownBody":33,"frontMatter":34,"refName":35,"commitSha":36,"skillDirectory":37,"forksCount":38,"repositoryHtmlUrl":39,"repositoryHomepageUrl":40,"ownerHtmlUrl":41,"ownerBlogUrl":42,"ownerDescription":43,"updatedAt":44,"install":45,"resources":58},"01M69AFEK5JE1BA30TTAMKZABV","test-ahp-conformance",null,"Create or review black-box Agent Host Protocol conformance tests, including deterministic model fixtures, lifecycle and error cases, multi-client and restart coverage, bounded timeouts, and CLI\u002FHTML reports with optional JSON results. Use for observable interoperability testing, not for changing protocol design or implementing host\u002Fclient production code.","microsoft\u002Fagent-host-protocol-contrib","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M69AF73MFMMND7YZVT4F00XV",1,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fagent-host-protocol-contrib\u002Fblob\u002Fmain\u002Fplugins\u002Fahp-development\u002Fskills\u002Ftest-ahp-conformance\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[24,25,26,27,28,29],"test","test ahp conformance","testing","design","review","cli","2026-11-10 10:12:30",false,"---\nname: test-ahp-conformance\ndescription: Create or review black-box Agent Host Protocol conformance tests, including deterministic model fixtures, lifecycle and error cases, multi-client and restart coverage, bounded timeouts, and CLI\u002FHTML reports with optional JSON results. Use for observable interoperability testing, not for changing protocol design or implementing host\u002Fclient production code.\nlicense: MIT\n---\n\n# Test AHP Conformance\n\nUse this skill to verify what an AHP peer does on the wire. Prefer raw\nWebSocket\u002FJSON-RPC probes or an independently useful test harness over tests\nthat inspect host internals.\n\n## Use this \u002F use another skill\n\n| Use this skill | Use another skill |\n| --- | --- |\n| The outcome is a black-box assertion, fixture contract, report, or interoperability suite. | Use `design-ahp-protocol` to define or alter normative behavior. |\n| You are fixing server implementation code, durability, or cancellation. | Use `build-ahp-host`. |\n| You are changing app state, SDK consumption, or UI reconnection behavior. | Use `build-ahp-client`. |\n\nIf a test exposes an ambiguity, capture the observed evidence and defer the\nnormative decision to `design-ahp-protocol`; do not silently make a sample\nbehavior universal.\n\n## Ground the test oracle\n\n1. Target the released specification matching the installed SDK, currently\n   AHP **1.0.0** (`@microsoft\u002Fagent-host-protocol` 1.0.0). Identify the negotiated\n   capabilities and relevant channel schemas. Read the matching release source\n   and normative documents first, not protocol HEAD. A protocol checkout used\n   for authoring tests MUST be at the matching release tag\u002Fcommit (for 1.0.0,\n   `5f16d81b`, `release: AHP 1.0.0`). Use the same release when consulting\n   upstream `microsoft\u002Fagent-host-protocol` schemas\u002Fdocs outside the workspace;\n   verify spec anchors and MUST\u002FSHOULD classification against that version.\n   Behavior that is only on protocol `main` is **proposed**: put it in\n   `src\u002Ftests\u002Fproposed\u002F`, gate it with `requires.proposed` (run with `--proposed`),\n   connect with `proposedClient(t)`, and skip when the host doesn't implement it.\n2. Inspect the TypeScript runner's `TestDefinition`s in\n   `tools\u002Fahp-conformance\u002Fsrc\u002Ftests\u002F\u003Carea>\u002F`, reports, and fixture contracts.\n   Keep the runner independent of host storage, private functions, and\n   implementation-specific timing. See the\n   [runner README](..\u002F..\u002F..\u002F..\u002Ftools\u002Fahp-conformance\u002FREADME.md) for configuration\n   and usage.\n3. Classify each assertion:\n\n| Scope | Assert |\n| --- | --- |\n| Protocol core | JSON-RPC validity, negotiation, channel\u002Fsubscription and ordering semantics |\n| Feature\u002Fprofile | A documented channel or host profile such as text chat |\n| Local fixture\u002Fsample | Deterministic upstream output, persistence setup, or deliberate host limits |\n\nNever label a sample's bounded replay buffer, model API subset, or excluded\nfeature as an AHP MUST unless the matching released normative source says so.\n\n## Define observable invariants\n\nWrite each case as precondition → wire inputs → bounded observations →\npass\u002Ffail detail. Favor stable relationships over implementation timing:\n\n- selected version is one offered by the client; incompatible offers produce\n  the defined error and connection outcome;\n- a subscription receives a typed snapshot and actions scoped to its channel;\n- action envelopes have monotonically increasing `serverSeq`, correct origin,\n  and valid lifecycle ordering;\n- a second subscribed client observes authoritative actions;\n- reconnect returns a complete ordered replay or replacement snapshots, never a\n  partial gap presented as replay;\n- a cancelled turn has its terminal cancellation behavior and emits no later\n  delta, completion, or error;\n- malformed JSON, invalid parameters, and unsupported methods produce explicit\n  JSON-RPC failures rather than success-shaped no-ops.\n\nUse exact field\u002Fvalue assertions for contractually fixed data and semantic\nassertions for host-selected IDs, timestamps, chunk boundaries, or model text.\n\n## Use deterministic models carefully\n\nA deterministic fixture is a test dependency with a versioned syntax, not a\nclaim about ordinary model behavior. Keep its directive grammar explicit and\nimmutable. The `[AHP-TEST v1]` fixture convention can request exact output,\nchunk count, delay, or an upstream error; only tests intentionally targeting\nthat fixture should assert those exact results. Model-backed suite tests use\nnatural-language prompts from `tools\u002Fahp-conformance\u002Fsrc\u002Fharness\u002Fprompts.ts`\nwith embedded `[AHP-TEST vN]` directives, so the same probes work against real\nmodels and the fixture. The fixture's v4 directives cover recall, read-file,\nand write-file behavior.\n\nFor a real model or a generally compatible host:\n\n- assert lifecycle and terminal semantics, not exact prose;\n- do not require AHP `chat\u002Fdelta` boundaries to equal upstream SSE boundaries;\n- make model-specific exact checks opt-in and label them clearly;\n- avoid tests that reproduce the host's private parser, reducer, or database\n  logic, because they become tautological.\n\n## Build reliable probes\n\n1. Add one behavior per `TestDefinition` under\n   `tools\u002Fahp-conformance\u002Fsrc\u002Ftests\u002F\u003Carea>\u002F`. Group tests into Transport &\n   lifecycle, Root & sessions, Chats & turns, Resources, Tools & permissions,\n   or Authentication. Gate capability-dependent tests with `requires.*` so\n   unsupported capabilities are skipped.\n2. Use request IDs to correlate responses and collect notifications through a\n   single bounded frame reader.\n3. Give every connect, request, read, wait, process restart, and teardown a\n   timeout with an actionable case name in failures.\n4. Isolate state using unique client\u002Fresource\u002Fturn identifiers. Run\n   multi-client cases with independent transports and state trackers.\n5. Make ordering assertions from `serverSeq` and action lifecycle, not sleeps.\n   Use a controlled fixture delay only to create a meaningful cancellation or\n   concurrent-observer window.\n6. Preserve CLI\u002FHTML reporting with optional JSON results, test identity,\n   status, and concise evidence. The live HTML report shows queued, running,\n   passed, failed, and skipped tests with logs and wire transcripts. Mark\n   unavailable profile\u002Flocal-only cases as skipped rather than passing them\n   accidentally.\n\n## Validate in layers\n\nUse Node 24+; no build step is needed:\n\n```bash\ncd tools\u002Fahp-conformance\nnpm install\nnode src\u002Fcli.ts --init\nnode src\u002Fcli.ts ahp-conformance.yml --list\nnode src\u002Fcli.ts ahp-conformance.yml --filter '\u003Cglob>'\n```\n\nThe YAML config selects the WebSocket URL, headers\u002Fquery, optional\n`host.command`, AHP `authenticate` tokens from prompt\u002Fenv\u002Fvalue\u002Fcommand,\nagent\u002Fmodel, scratch workspace (OS tmpdir by default), concurrency, timeouts,\nfilters, and reporter. The default path is `.\u002Fahp-conformance.yml`; if it is\nmissing, configuration is offered interactively. `npm start -- …` is also\nsupported.\n\nRun the smallest selected test while authoring it, then its cohesive group.\nRun the full external-host-safe suite without model-specific exact assertions.\nUse `node src\u002Fcli.ts examples\u002Fadvanced-workspace-host.yml` for the sample stack;\nits config launches `advanced-workspace-host --demo` with the embedded fixture.\nUse deterministic upstream-error, restart, and cancellation checks where the\nhost supports them. Confirm cleanup leaves no listeners, processes, or\npersistent test state behind.\n\nInteractive runs default to a live browser HTML report; otherwise the CLI is\nused. Select `--reporter cli|html`, suppress browser opening with `--no-open`,\nand optionally write results with `--json \u003Cfile>`. Failures exit with code 1.\n\nStop when each failure maps to a visible wire observation and report. Document\nthe suite's target protocol range, fixture-only cases, profile assumptions, and\nintentional non-goals.\n","# Test AHP Conformance\n\nUse this skill to verify what an AHP peer does on the wire. Prefer raw\nWebSocket\u002FJSON-RPC probes or an independently useful test harness over tests\nthat inspect host internals.\n\n## Use this \u002F use another skill\n\n| Use this skill | Use another skill |\n| --- | --- |\n| The outcome is a black-box assertion, fixture contract, report, or interoperability suite. | Use `design-ahp-protocol` to define or alter normative behavior. |\n| You are fixing server implementation code, durability, or cancellation. | Use `build-ahp-host`. |\n| You are changing app state, SDK consumption, or UI reconnection behavior. | Use `build-ahp-client`. |\n\nIf a test exposes an ambiguity, capture the observed evidence and defer the\nnormative decision to `design-ahp-protocol`; do not silently make a sample\nbehavior universal.\n\n## Ground the test oracle\n\n1. Target the released specification matching the installed SDK, currently\n   AHP **1.0.0** (`@microsoft\u002Fagent-host-protocol` 1.0.0). Identify the negotiated\n   capabilities and relevant channel schemas. Read the matching release source\n   and normative documents first, not protocol HEAD. A protocol checkout used\n   for authoring tests MUST be at the matching release tag\u002Fcommit (for 1.0.0,\n   `5f16d81b`, `release: AHP 1.0.0`). Use the same release when consulting\n   upstream `microsoft\u002Fagent-host-protocol` schemas\u002Fdocs outside the workspace;\n   verify spec anchors and MUST\u002FSHOULD classification against that version.\n   Behavior that is only on protocol `main` is **proposed**: put it in\n   `src\u002Ftests\u002Fproposed\u002F`, gate it with `requires.proposed` (run with `--proposed`),\n   connect with `proposedClient(t)`, and skip when the host doesn't implement it.\n2. Inspect the TypeScript runner's `TestDefinition`s in\n   `tools\u002Fahp-conformance\u002Fsrc\u002Ftests\u002F\u003Carea>\u002F`, reports, and fixture contracts.\n   Keep the runner independent of host storage, private functions, and\n   implementation-specific timing. See the\n   [runner README](..\u002F..\u002F..\u002F..\u002Ftools\u002Fahp-conformance\u002FREADME.md) for configuration\n   and usage.\n3. Classify each assertion:\n\n| Scope | Assert |\n| --- | --- |\n| Protocol core | JSON-RPC validity, negotiation, channel\u002Fsubscription and ordering semantics |\n| Feature\u002Fprofile | A documented channel or host profile such as text chat |\n| Local fixture\u002Fsample | Deterministic upstream output, persistence setup, or deliberate host limits |\n\nNever label a sample's bounded replay buffer, model API subset, or excluded\nfeature as an AHP MUST unless the matching released normative source says so.\n\n## Define observable invariants\n\nWrite each case as precondition → wire inputs → bounded observations →\npass\u002Ffail detail. Favor stable relationships over implementation timing:\n\n- selected version is one offered by the client; incompatible offers produce\n  the defined error and connection outcome;\n- a subscription receives a typed snapshot and actions scoped to its channel;\n- action envelopes have monotonically increasing `serverSeq`, correct origin,\n  and valid lifecycle ordering;\n- a second subscribed client observes authoritative actions;\n- reconnect returns a complete ordered replay or replacement snapshots, never a\n  partial gap presented as replay;\n- a cancelled turn has its terminal cancellation behavior and emits no later\n  delta, completion, or error;\n- malformed JSON, invalid parameters, and unsupported methods produce explicit\n  JSON-RPC failures rather than success-shaped no-ops.\n\nUse exact field\u002Fvalue assertions for contractually fixed data and semantic\nassertions for host-selected IDs, timestamps, chunk boundaries, or model text.\n\n## Use deterministic models carefully\n\nA deterministic fixture is a test dependency with a versioned syntax, not a\nclaim about ordinary model behavior. Keep its directive grammar explicit and\nimmutable. The `[AHP-TEST v1]` fixture convention can request exact output,\nchunk count, delay, or an upstream error; only tests intentionally targeting\nthat fixture should assert those exact results. Model-backed suite tests use\nnatural-language prompts from `tools\u002Fahp-conformance\u002Fsrc\u002Fharness\u002Fprompts.ts`\nwith embedded `[AHP-TEST vN]` directives, so the same probes work against real\nmodels and the fixture. The fixture's v4 directives cover recall, read-file,\nand write-file behavior.\n\nFor a real model or a generally compatible host:\n\n- assert lifecycle and terminal semantics, not exact prose;\n- do not require AHP `chat\u002Fdelta` boundaries to equal upstream SSE boundaries;\n- make model-specific exact checks opt-in and label them clearly;\n- avoid tests that reproduce the host's private parser, reducer, or database\n  logic, because they become tautological.\n\n## Build reliable probes\n\n1. Add one behavior per `TestDefinition` under\n   `tools\u002Fahp-conformance\u002Fsrc\u002Ftests\u002F\u003Carea>\u002F`. Group tests into Transport &\n   lifecycle, Root & sessions, Chats & turns, Resources, Tools & permissions,\n   or Authentication. Gate capability-dependent tests with `requires.*` so\n   unsupported capabilities are skipped.\n2. Use request IDs to correlate responses and collect notifications through a\n   single bounded frame reader.\n3. Give every connect, request, read, wait, process restart, and teardown a\n   timeout with an actionable case name in failures.\n4. Isolate state using unique client\u002Fresource\u002Fturn identifiers. Run\n   multi-client cases with independent transports and state trackers.\n5. Make ordering assertions from `serverSeq` and action lifecycle, not sleeps.\n   Use a controlled fixture delay only to create a meaningful cancellation or\n   concurrent-observer window.\n6. Preserve CLI\u002FHTML reporting with optional JSON results, test identity,\n   status, and concise evidence. The live HTML report shows queued, running,\n   passed, failed, and skipped tests with logs and wire transcripts. Mark\n   unavailable profile\u002Flocal-only cases as skipped rather than passing them\n   accidentally.\n\n## Validate in layers\n\nUse Node 24+; no build step is needed:\n\n```bash\ncd tools\u002Fahp-conformance\nnpm install\nnode src\u002Fcli.ts --init\nnode src\u002Fcli.ts ahp-conformance.yml --list\nnode src\u002Fcli.ts ahp-conformance.yml --filter '\u003Cglob>'\n```\n\nThe YAML config selects the WebSocket URL, headers\u002Fquery, optional\n`host.command`, AHP `authenticate` tokens from prompt\u002Fenv\u002Fvalue\u002Fcommand,\nagent\u002Fmodel, scratch workspace (OS tmpdir by default), concurrency, timeouts,\nfilters, and reporter. The default path is `.\u002Fahp-conformance.yml`; if it is\nmissing, configuration is offered interactively. `npm start -- …` is also\nsupported.\n\nRun the smallest selected test while authoring it, then its cohesive group.\nRun the full external-host-safe suite without model-specific exact assertions.\nUse `node src\u002Fcli.ts examples\u002Fadvanced-workspace-host.yml` for the sample stack;\nits config launches `advanced-workspace-host --demo` with the embedded fixture.\nUse deterministic upstream-error, restart, and cancellation checks where the\nhost supports them. Confirm cleanup leaves no listeners, processes, or\npersistent test state behind.\n\nInteractive runs default to a live browser HTML report; otherwise the CLI is\nused. Select `--reporter cli|html`, suppress browser opening with `--no-open`,\nand optionally write results with `--json \u003Cfile>`. Failures exit with code 1.\n\nStop when each failure maps to a visible wire observation and report. Document\nthe suite's target protocol range, fixture-only cases, profile assumptions, and\nintentional non-goals.\n",{"name":5,"license":15,"description":7},"main","cfdd74a4b9aa5710d2bee3ebbdac587f7a13f3e5","plugins\u002Fahp-development\u002Fskills\u002Ftest-ahp-conformance",0,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fagent-host-protocol-contrib","https:\u002F\u002Fmicrosoft.github.io\u002Fagent-host-protocol\u002F","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-04 11:16:20",{"source":8,"skillName":5,"commands":46,"prompt":56,"zipAvailable":57},[47,50,53],{"tool":48,"command":49},"npx","npx skills add microsoft\u002Fagent-host-protocol-contrib --skill test-ahp-conformance",{"tool":51,"command":52},"bunx","bunx skills add microsoft\u002Fagent-host-protocol-contrib --skill test-ahp-conformance",{"tool":54,"command":55},"pnpm","pnpm dlx skills add microsoft\u002Fagent-host-protocol-contrib --skill test-ahp-conformance","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fagent-host-protocol-contrib\u002Fblob\u002Fmain\u002Fplugins\u002Fahp-development\u002Fskills\u002Ftest-ahp-conformance\u002FSKILL.md",true,[59,65],{"path":60,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":63,"sourceHtmlUrl":64},"references\u002Fvaluation-guide.md","REFERENCE","参考文档",1243,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fagent-framework\u002Fblob\u002Fmain\u002Fdotnet\u002Fsamples\u002F02-agents\u002FHarness\u002FBuildYourOwnClaw\u002FClaw_Step03_ScalingCapabilities\u002Fskills\u002Fvaluation\u002Freferences\u002Fvaluation-guide.md",{"path":66,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":69,"sourceHtmlUrl":70},"scripts\u002Fvaluation_metrics.py","SCRIPT","脚本",1768,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fagent-framework\u002Fblob\u002Fmain\u002Fdotnet\u002Fsamples\u002F02-agents\u002FHarness\u002FBuildYourOwnClaw\u002FClaw_Step03_ScalingCapabilities\u002Fskills\u002Fvaluation\u002Fscripts\u002Fvaluation_metrics.py",[72,91,101],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":89,"publishedAt":30},"01M69AFCRAMS3FCCC939QD19Y3","design-ahp-protocol","Design or review Agent Host Protocol commands, actions, state, errors, reducers, schemas, code generation, versioning, compatibility, and multi-client invariants. Use when changing the AHP contract or assessing a protocol-level design, not when implementing only one host, client, or test suite.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fagent-host-protocol-contrib\u002Fblob\u002Fmain\u002Fplugins\u002Fahp-development\u002Fskills\u002Fdesign-ahp-protocol\u002FSKILL.md",[78,81,86],{"categoryNo":79,"categoryName":80,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":82,"categoryName":83,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",{"categoryNo":87,"categoryName":88,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000037","律师与法务",[27,90,28,24],"design ahp protocol",{"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":97,"publishedAt":30},"01M69AFB3QY85TDMW0KFD4VQHN","build-ahp-host","Implement or review an Agent Host Protocol host or server, including JSON-RPC transport routing, subscriptions, serverSeq and reconnect, durable state, cancellation, concurrency, model adapters, and explicit unsupported behavior. Use for host architecture and server behavior, not for changing the AHP contract or building a client UI.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fagent-host-protocol-contrib\u002Fblob\u002Fmain\u002Fplugins\u002Fahp-development\u002Fskills\u002Fbuild-ahp-host\u002FSKILL.md",[],[98,28,99,100],"build ahp host","implement","architecture",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":30},"01M69AF9501PNSDFNDRY6C9QFC","build-ahp-client","Implement or review an SDK-backed Agent Host Protocol client application, including initialization, subscriptions, immutable reducer state, reconnect cleanup, multi-host behavior, and UI-friendly projections. Use for browser, TypeScript, desktop, or other client consumers, not for host internals or protocol contract changes.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fagent-host-protocol-contrib\u002Fblob\u002Fmain\u002Fplugins\u002Fahp-development\u002Fskills\u002Fbuild-ahp-client\u002FSKILL.md",[],[108,28,109,110,99],"build ahp client","typescript","sdk"]