[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6K3AC5EP1FGA93EVH2NKV9P":3,"skill-same:01M6K3AC5EP1FGA93EVH2NKV9P":70},{"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":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":50,"install":51,"resources":63},"01M6K3AC5EP1FGA93EVH2NKV9P","build-review-test-quality",null,"Judge whether criterion-bound changed tests can pass without the behavior they claim to cover.","jstoup111\u002Fai-conductor","jstoup111","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1585332?v=4","01M6K374Y0VEFPVCT2KPBAN4HC","James Stoup","01M6K3751X0GFKNBD0198F50XN",7,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fjstoup111\u002Fai-conductor\u002Fblob\u002Fmain\u002Fskills\u002Fbuild-review-test-quality\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37],"review","test","quality","build","build review test quality","test quality","behavior","claim","tests","judge","true","can","cover","gating","2026-11-10 10:12:30",false,"---\nname: build-review-test-quality\ndisable-model-invocation: true\ndescription: \"Judge whether criterion-bound changed tests can pass without the behavior they claim to cover.\"\nenforcement: gating\nphase: build\n---\n\n## Purpose\n\nJudge the Test Quality concern for one engine-managed `build_review` rubric branch. This is a\njudgement-only contract: the engine owns scope selection, evidence assembly, result validation,\nfinding identity, the stamped result envelope, and the outer gate verdict.\n\n## Input projection (v3)\n\nUse only the supplied projection version `v3`. Its closed input contains:\n\n- the lap ID, snapshot digest, and top-level `contentDigest`;\n- the in-scope changed tests: only changed tests with a current-feature-owned, resolvable `Covers:`\n  binding introduced or updated after the review base, pointing to an approved\n  story criterion, an active feature requirement (`FR-N`), or a task `Done when:` check, represented\n  as immutable content-region references;\n- the changed diff by reference (`changedFiles`: per-file path, change kind, and hunk ranges),\n  anchored by `mergeBase` and `headSha`;\n- the current code-valid `test_suite` PASS; and\n- typed reverted-production preflight evidence, including its source identities, classification,\n  scoped-run result, executed selectors, and bounded failure excerpt when applicable.\n- any concrete fallback candidates in `testScope`, each with its engine-established candidate ID,\n  pinned source region, and allowed Covers obligation references. Unchanged legacy bare markers\n  are excluded before projection; their ordinals never gain authority from the active plan.\n- `testScope.evidence` records are identity-only references: `source`, `region`, `startLine`,\n  `endLine`, and `contentHash`. They are not embedded source content or a replacement for the\n  engine's authority.\n\nThe session runs inside the feature worktree. The diff content is not embedded: read referenced\nfiles and obtain any per-path diff with `git diff \u003CmergeBase>..HEAD -- \u003Cpath>` (or the merge-base\nform with `git show \u003CmergeBase>:\u003Cpath>`). Those reads are part of this closed input. Do not infer\nfacts from a maker transcript, task-status narrative, prior review, or state outside this projection\nand its referenced content.\n\nJudge only the `reviewScope` delta hunks. Treat `changedFiles` as context only. If that review\nidentifies a finding outside the delta, set `causeHunk` to the delta hunk that causes it.\n\nFor every `testScope.evidence` region you inspect, re-read the file at the pinned ref for its\n`source` side (`mergeBase` for base regions, `headSha` for head regions). The region is the raw bytes\nfrom `byteRegion.start` (inclusive) to `byteRegion.end` (exclusive) of that output. `byteRegion` is in\nUTF-8 bytes; `region`, `startLine`, and `endLine` are character positions for identity and\norientation only, and diverge from byte offsets once the file holds a non-ASCII character. The engine\ncomputed `contentHash` from that same immutable commit. Do not recompute it (a read-only review\nsession has no hashing tool); copy it verbatim where the schema asks for it. A candidate's evidence\nrecord is the one whose `id` equals its `candidateId`. An unreadable region, one whose pinned read\nfails, is not judged: return its fallback candidate as `indeterminate` with a non-empty\n`missingEvidenceReason`.\nYour own read never becomes authoritative. The engine rejects a finding anchored to a `contentHash`\nthat is absent from the projected evidence and candidates.\n\n## Judgement\n\nFor each in-scope changed test, judge whether its assertion actually distinguishes the behavior its\n`Covers:` binding names. Raise `test-insensitive` only when the test has a concrete,\nstub-passable assertion: it could pass while the changed behavior is absent or replaced with a\nstub. Keep independent tests or behaviors as separate findings.\n\nThe reverted-production preflight is evidence, never a finding by itself. Report its optional\n`counterfactualSensitivity` judgement using this closed vocabulary:\n\n- `supports` means either an executed in-scope example fails on the reverted tree, or the reverted\n  production causes the intended tests to fail during collection or load.\n- `indeterminate` means an environment failure prevents the intended tests from bearing on behavior\n  before that can be determined — for example, the #1915 database-auth or boot failures.\n  It is neither sensitivity support nor a finding.\n- `not-applicable` means the counterfactual evidence does not apply to a sensitivity judgement.\n\nA `stayed-green` result is not automatically a concern: read the test and cite the concrete\nstub-passable assertion before finding it insensitive. An infrastructure failure is not a finding;\ndo not invent evidence, downgrade it to a pass, or turn it into content criticism. Tests outside the\nsupplied in-scope set are not this rubric's concern.\n","## Purpose\n\nJudge the Test Quality concern for one engine-managed `build_review` rubric branch. This is a\njudgement-only contract: the engine owns scope selection, evidence assembly, result validation,\nfinding identity, the stamped result envelope, and the outer gate verdict.\n\n## Input projection (v3)\n\nUse only the supplied projection version `v3`. Its closed input contains:\n\n- the lap ID, snapshot digest, and top-level `contentDigest`;\n- the in-scope changed tests: only changed tests with a current-feature-owned, resolvable `Covers:`\n  binding introduced or updated after the review base, pointing to an approved\n  story criterion, an active feature requirement (`FR-N`), or a task `Done when:` check, represented\n  as immutable content-region references;\n- the changed diff by reference (`changedFiles`: per-file path, change kind, and hunk ranges),\n  anchored by `mergeBase` and `headSha`;\n- the current code-valid `test_suite` PASS; and\n- typed reverted-production preflight evidence, including its source identities, classification,\n  scoped-run result, executed selectors, and bounded failure excerpt when applicable.\n- any concrete fallback candidates in `testScope`, each with its engine-established candidate ID,\n  pinned source region, and allowed Covers obligation references. Unchanged legacy bare markers\n  are excluded before projection; their ordinals never gain authority from the active plan.\n- `testScope.evidence` records are identity-only references: `source`, `region`, `startLine`,\n  `endLine`, and `contentHash`. They are not embedded source content or a replacement for the\n  engine's authority.\n\nThe session runs inside the feature worktree. The diff content is not embedded: read referenced\nfiles and obtain any per-path diff with `git diff \u003CmergeBase>..HEAD -- \u003Cpath>` (or the merge-base\nform with `git show \u003CmergeBase>:\u003Cpath>`). Those reads are part of this closed input. Do not infer\nfacts from a maker transcript, task-status narrative, prior review, or state outside this projection\nand its referenced content.\n\nJudge only the `reviewScope` delta hunks. Treat `changedFiles` as context only. If that review\nidentifies a finding outside the delta, set `causeHunk` to the delta hunk that causes it.\n\nFor every `testScope.evidence` region you inspect, re-read the file at the pinned ref for its\n`source` side (`mergeBase` for base regions, `headSha` for head regions). The region is the raw bytes\nfrom `byteRegion.start` (inclusive) to `byteRegion.end` (exclusive) of that output. `byteRegion` is in\nUTF-8 bytes; `region`, `startLine`, and `endLine` are character positions for identity and\norientation only, and diverge from byte offsets once the file holds a non-ASCII character. The engine\ncomputed `contentHash` from that same immutable commit. Do not recompute it (a read-only review\nsession has no hashing tool); copy it verbatim where the schema asks for it. A candidate's evidence\nrecord is the one whose `id` equals its `candidateId`. An unreadable region, one whose pinned read\nfails, is not judged: return its fallback candidate as `indeterminate` with a non-empty\n`missingEvidenceReason`.\nYour own read never becomes authoritative. The engine rejects a finding anchored to a `contentHash`\nthat is absent from the projected evidence and candidates.\n\n## Judgement\n\nFor each in-scope changed test, judge whether its assertion actually distinguishes the behavior its\n`Covers:` binding names. Raise `test-insensitive` only when the test has a concrete,\nstub-passable assertion: it could pass while the changed behavior is absent or replaced with a\nstub. Keep independent tests or behaviors as separate findings.\n\nThe reverted-production preflight is evidence, never a finding by itself. Report its optional\n`counterfactualSensitivity` judgement using this closed vocabulary:\n\n- `supports` means either an executed in-scope example fails on the reverted tree, or the reverted\n  production causes the intended tests to fail during collection or load.\n- `indeterminate` means an environment failure prevents the intended tests from bearing on behavior\n  before that can be determined — for example, the #1915 database-auth or boot failures.\n  It is neither sensitivity support nor a finding.\n- `not-applicable` means the counterfactual evidence does not apply to a sensitivity judgement.\n\nA `stayed-green` result is not automatically a concern: read the test and cite the concrete\nstub-passable assertion before finding it insensitive. An infrastructure failure is not a finding;\ndo not invent evidence, downgrade it to a pass, or turn it into content criticism. Tests outside the\nsupplied in-scope set are not this rubric's concern.\n",{"name":5,"phase":27,"description":7,"enforcement":37,"disable-model-invocation":43},true,"main","136b34ec6792f53d0beba330dfa2dffad6c93484","skills\u002Fbuild-review-test-quality",2,"https:\u002F\u002Fgithub.com\u002Fjstoup111\u002Fai-conductor","https:\u002F\u002Fgithub.com\u002Fjstoup111","2026-11-14 14:59:43",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":43},[53,56,59],{"tool":54,"command":55},"npx","npx skills add jstoup111\u002Fai-conductor --skill build-review-test-quality",{"tool":57,"command":58},"bunx","bunx skills add jstoup111\u002Fai-conductor --skill build-review-test-quality",{"tool":60,"command":61},"pnpm","pnpm dlx skills add jstoup111\u002Fai-conductor --skill build-review-test-quality","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjstoup111\u002Fai-conductor\u002Fblob\u002Fmain\u002Fskills\u002Fbuild-review-test-quality\u002FSKILL.md",[64],{"path":65,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":68,"sourceHtmlUrl":69},"agents\u002Fopenai.yaml","REFERENCE","参考文档",43,"https:\u002F\u002Fgithub.com\u002Fjstoup111\u002Fai-conductor\u002Fblob\u002Fmain\u002Fskills\u002Fbuild-review-test-quality\u002Fagents\u002Fopenai.yaml",[71,86,122,148,166,183],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":38},"01M70YKSA2H7Q9WSRD1ECEGY20","build-review-dependency-hygiene","Judge whether a feature diff adds unnecessary, insufficiently pinned, or license-incompatible dependencies.","https:\u002F\u002Fgithub.com\u002Fjstoup111\u002Fai-conductor\u002Fblob\u002Fmain\u002Fskills\u002Fbuild-review-dependency-hygiene\u002FSKILL.md",[],[27,78,79,80,81,24,82,83,84,85,34,33,37],"dependency hygiene","dependency","hygiene","build review dependency hygiene","feature","diff","dependencies","license",{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":103,"publishedAt":38},"01M6K3EQQ6ADH3G2RMYK6XE26E","writing-system-tests","Use BEFORE implementing any feature that has stories in .docs\u002Fstories\u002F — generates failing acceptance specs from acceptance criteria as the RED phase of TDD. Generates HTTP\u002Frequest-level acceptance tests for headless\u002FAPI projects, end-to-end UI tests for projects with a frontend, using the project's own test framework and directory conventions.","https:\u002F\u002Fgithub.com\u002Fjstoup111\u002Fai-conductor\u002Fblob\u002Fmain\u002Fskills\u002Fwriting-system-tests\u002FSKILL.md",[92,95,98],{"categoryNo":93,"categoryName":94,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":96,"categoryName":97,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":99,"categoryName":100,"taxonomyType":101,"taxonomyTypeDesc":102},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[104,105,32,106,107,108,109,110,111,112,113,114,115,116,117,118,119,37,120,121],"writing","system","writing system tests","projects","headless","project","end","implementing","frontend","acceptance","api","claims","directory","ui","framework","failing","phase","request",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":38},"01M6K3EHR0QQ1QY1S9RC6D1WTD","verify-claims","Use only when an active workflow is about to rely on a nontrivial factual claim or assumption for a spec, plan, ADR, finding, or code decision. Do not invoke for casual questions, status reports, restatements, or trivially verifiable mechanics.","https:\u002F\u002Fgithub.com\u002Fjstoup111\u002Fai-conductor\u002Fblob\u002Fmain\u002Fskills\u002Fverify-claims\u002FSKILL.md",[],[129,115,130,131,132,133,134,31,34,135,136,137,138,139,140,141,142,143,144,145,146,37,147],"verify claims","verify","do","adr","for","decision","mechanics","only","use","workflow","code","reports","plan","active","questions","about","spec","invoke","when",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":154,"publishedAt":38},"01M6K3ED4NF5DJA2Y35MH2JCRC","tdd","Use when implementing any feature or bugfix. Five-step cycle: RED → DOMAIN → GREEN → DOMAIN → COMMIT. Enforces test-first development with domain integrity review at every phase boundary.","https:\u002F\u002Fgithub.com\u002Fjstoup111\u002Fai-conductor\u002Fblob\u002Fmain\u002Fskills\u002Ftdd\u002FSKILL.md",[],[150,155,156,157,111,158,24,159,160,161,162,82,163,34,137,164,25,165,147,120],"green","cycle","structural","commit","at","bugfix","integrity","domain","development","with","test-first",{"skillNo":167,"name":168,"nameZh":6,"description":169,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":170,"categories":171,"keywords":172,"publishedAt":38},"01M6K3E6PEXBXYY2K8TSRTN1JT","stories","Use only within active engineer\u002Fconduct DECIDE after architecture approval, when a committed `.docs\u002Fstories` acceptance artifact is required. Do not invoke for general user-story examples, requirements discussion, or direct implementation requests.","https:\u002F\u002Fgithub.com\u002Fjstoup111\u002Fai-conductor\u002Fblob\u002Fmain\u002Fskills\u002Fstories\u002FSKILL.md",[],[168,173,131,133,174,175,176,34,136,137,113,177,178,179,115,180,130,181,142,182,146,37,147],"conduct","decide","engineer","general","requirements","architecture","examples","artifact","requests","implementation",{"skillNo":184,"name":185,"nameZh":6,"description":186,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":187,"categories":188,"keywords":189,"publishedAt":38},"01M6K3E1HE7267YKFJQ3YFCGW5","stack-land","Use when an operator needs to land reviewed manual changes on the correct closed child of a stacked feature. Operator-invoked only: inspect ownership, propose the safe child with evidence, and require confirmation before opening the landing.","https:\u002F\u002Fgithub.com\u002Fjstoup111\u002Fai-conductor\u002Fblob\u002Fmain\u002Fskills\u002Fstack-land\u002FSKILL.md",[],[190,191,192,164,115,193,194,195,130,82,196,197,198,199,200,34,201,136,137,202,147,203],"stack","land","stack land","evidence","child","changes","inspect","manual","correct","landing","safe","operator","confirmation","advisory"]