[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6MEY7KTYXAWR6AHCFG5AF4P":3,"skill-same:01M6MEY7KTYXAWR6AHCFG5AF4P":72},{"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":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":53,"ownerHtmlUrl":54,"ownerBlogUrl":55,"ownerDescription":56,"updatedAt":57,"install":58,"resources":71},"01M6MEY7KTYXAWR6AHCFG5AF4P","create-test",null,"Use when turning human feedback into a deterministic test in tests\u002F. Lists the ways a rule can be checked by code, the constraints a test must meet, and how to register it on the entry it enforces.","hashgraph-online\u002Fawesome-codex-plugins","hashgraph-online","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F160371962?v=4","01M6CNB6NRJVNNGN14TR01Q6D3","HOL (Hashgraph Online)","01M6JT1HSKKG9V68KQAQGBA7XP",1554,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fcerredz\u002Fvidbyte-memory\u002Fskills\u002Fcreate-test\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,38,39,40,41,42],"create","test","create test","when","Meet","entry","can","it","rule","how to","register","tests","human","deterministic","use","feedback","how","constraints","code","2026-11-10 10:12:30",false,"---\nname: create-test\ndescription: Use when turning human feedback into a deterministic test in tests\u002F. Lists the ways a rule can be checked by code, the constraints a test must meet, and how to register it on the entry it enforces.\n---\n\n# Create a test\n\n## Goal\n\nEvery rule the owner cares about has a cheap, deterministic check that runs on every verification round, so the agent cannot drift from it unnoticed. A test costs nothing per run, never tires and never changes its mind, which is why tests carry the enforcement and memory carries only the context. One correction should produce as many narrow tests as the feedback supports, because each test catches one way of getting it wrong and the model finds new ways. A test is proved before it is trusted: it fails on the artifact the owner rejected and passes on the version the owner accepted, or it has not shown it can tell the difference. Tests are written against the kind of artifact, not only the one file that was corrected, so the rule holds for every future artifact of that kind. A property that no code can check is handed to a verifier agent rather than faked with a test that calls a model. The measure of this skill is that the owner never has to give the same correction twice.\n\n## Objective\n\nRestate the feedback as observable properties of an artifact, one per line. Walk the catalog of deterministic checks and list every check that applies to each property, with the ones rejected and why. Implement each kept check as one pytest function in a file named by the FB number, using only the standard library, reading artifacts through the shared helpers. Prove each test against the rejected and accepted artifacts through fixtures when they exist. Run the suite the way the current phase requires and leave every existing test untouched. Report the test paths so the orchestrator can write them into the entry's `verified-by`, and name every property that needs a verifier instead.\n\n## Tasks\n\n1. Restate the feedback as one or more observable properties of an artifact: something a reader could point at in the file and say \"there, that is the violation\". \"Captions must not shout\" becomes \"no caption text is in all capitals\"; \"the intro is too long\" becomes \"the first section is under 120 words\". A property that cannot be pointed at is not yet a property; refine it, or hand it to a verifier in task 6.\n2. Walk the catalog below for each property and list every check that applies. Deterministic checks are cheap, so prefer several narrow tests over one broad one; three tests that each catch one failure mode beat one that tries to catch all. Record the catalog items rejected and why, because the report is how the orchestrator knows the search was done.\n3. Write each test in `tests\u002Ftest_fb\u003Cnnn>_\u003Cslug>.py`, where `\u003Cnnn>` is the FB number, because the fact subagent allocates the entry id at the same moment and the two cannot be coordinated. Start the module with a docstring naming the FB id, and give each function one property with a name that says what it checks. Copy `tests\u002Ffeedback_test_template.py` as the starting shape.\n4. If the rejected artifact exists and is small, copy the relevant part into `tests\u002Ffixtures\u002F\u003Cfb-id>\u002Frejected.\u003Cext>` and the accepted version into `tests\u002Ffixtures\u002F\u003Cfb-id>\u002Faccepted.\u003Cext>`, each under 50 KB, and assert that the check fails on the first and passes on the second. The fixture pair is the proof that the test can tell the difference. When the accepted version does not exist yet, build the accepted fixture from the correction the owner gave.\n5. Run the suite. Outside feedback handling that is `python -m pytest -q tests`; inside it, the mid-feedback suite from `tests\u002FREADME.md`, because two integrity tests fail by design until the orchestrator finishes. A new test that fails against the live artifact is expected until the artifact is regenerated; every other failure is yours to fix without touching existing tests.\n6. For a property with no deterministic check, hand it to `skills\u002Fcreate-verifier\u002FSKILL.md` with the reason, after splitting off any mechanical part that a test can still cover. Say in the report which part went where. A property handed over without a reason is one the next reader will try to test again.\n7. Report the test paths as `tests\u002F\u003Cfile>.py::\u003Cfunction>` so the orchestrator can set `verified-by` on the entry, with the catalog item each uses, the fixture paths, and every property handed to a verifier. The report is the only channel back to the orchestrator; what is not in it does not get linked. Copy paths from the files as written rather than from memory.\n\n## Instructions\n\n### Catalog of deterministic checks\n\n- **Forbidden or required strings and patterns.** A regular expression over the artifact text catches wording, casing and punctuation the owner rejected or demanded, such as all-capital runs, a banned phrase or a required sign-off. Anchor the pattern to the smallest unit that matters, a caption line rather than the whole file, so the test names the location when it fails. This is the first item to try, because most corrections are about text.\n- **Required sections, headings or fields, and their order.** Parse the headings or keys and compare them against the required list in sequence. A missing section and a reordered section are two different failures and get two assertions. Use this for any artifact with a fixed shape: a report, a script, a scene file, a README.\n- **Length limits.** Count words, sentences, lines, characters, duration or file size and compare with the limit the owner set. State the limit in the test name, so a later change to the limit shows up as a superseding test. Count with the shared helpers so every test counts the same way.\n- **Numeric thresholds from the artifact or from a tool's output.** Loudness, dimensions, counts and ratios are read from the file or from a local tool that is already installed, then compared against the threshold. Skip the test with a clear reason when the tool is absent; never silently pass. The threshold comes from the owner's words, not from a guess.\n- **File presence, naming patterns and folder structure.** Assert that the files the rule requires exist, match the naming pattern and sit in the right folder, and that forbidden files do not exist. Use globs so the test covers future artifacts of the kind, not only today's.\n- **Frontmatter or schema validity.** Parse markdown frontmatter, JSON, YAML or CSV with the standard library and assert the required keys, types and values. A parse error is a failure with the line number. For YAML use the minimal parsing the helpers provide rather than a third-party library.\n- **Links and references that resolve.** Every path, anchor and id the artifact names exists where it says it does. Collect them with a regular expression and check each one; report every dangling reference, not only the first.\n- **Command exit codes.** A build, a lint, a formatter or a renderer runs clean on the artifact. Run it through `subprocess` with a timeout, skip with a reason when the command is not installed, and assert on the exit code and on the lines of output the owner cares about.\n- **Snapshot comparison against an approved example.** Compare the artifact, exact or normalized, against the matching file in `memory\u002Fexamples\u002F`. Normalize only what the owner does not care about, such as whitespace or dates, and state the normalization in the test. Use this after a strong confirmation, when the owner said \"exactly like this\".\n- **Ordering and consistency across files.** An index matches its folder, a table of contents matches the headings, a count in one file matches the items in another. Compute both sides and compare the sets and the order separately.\n- **Diff-scoped checks.** Inspect only the files changed in the current request, found through `git diff --name-only`, when a rule applies to new work and not to history. Fall back to the full tree when there is no git history, and say so in the skip reason.\n- **Idempotency.** Run a step twice on a copy of the artifact and assert the second run changes nothing. This catches generators that append, renumber or re-wrap on every run.\n- **Absence checks.** No placeholder text, no TODO markers, no secrets, no leftover debug output, no empty sections. List the markers explicitly in the test so a reader knows what is banned.\n- **Media metadata through a local tool.** Image dimensions, video duration, audio sample rate and similar are read through a tool that is already installed, with a skip and a reason when it is not. Assert on the value the owner set, with the tolerance they would accept.\n\n### Constraints\n\n- **Standard library plus pytest, nothing else.** No network, no model calls, no randomness and no wall-clock dependence, because a test that can fail for a reason other than the artifact teaches the agent to distrust the suite. A test that needs a library the repo does not have is rewritten with the standard library or handed to a verifier. Dates in tests are literals, never today's date.\n- **Under two seconds per test, through the shared helpers.** Read artifacts through `tests\u002Fhelpers.py` so paths and encodings are handled once and a Windows checkout behaves like a Linux one. A slow test is run less, and a test that is run less enforces less. Parse once at module level when several functions read the same artifact.\n- **One property per function, named for what it checks.** The function name is what the owner reads in the failure output, so `test_captions_are_not_all_caps` says what went wrong and `test_fb003` does not. Several properties in one function hide which one failed. Assertion messages quote the offending text and its location.\n- **A test never asserts on memory file contents.** `tests\u002Ftest_memory_integrity.py` owns the memory files; a feedback test asserts on artifacts. A feedback test that reads a fact or rule to decide what to check has moved the rule out of the test, where a later edit to the rule changes what the test enforces without anyone noticing.\n- **Never weaken, skip or delete an existing test to make a new one pass.** A test that is wrong is superseded by a better test, with the FB id that said so in its docstring, and the orchestrator retires the old one through feedback handling. Two tests that contradict each other are a conflict for the owner, reported as an open question, not resolved by deleting one.\n\n### When no deterministic check exists\n\nSay so in the report, name the property, and hand it to `skills\u002Fcreate-verifier\u002FSKILL.md`. Do not write a test that calls a model, scores a similarity or reads a judgment from a file; that is a verifier in a test's clothing, and it will be flaky. A property often splits into a mechanical part and a judgment part; write the test for the mechanical part and hand only the remainder to the verifier.\n\n## Checklist\n\n- [ ] **Every applicable catalog item was considered, and the report lists the ones used and the ones rejected with a reason.** The catalog is the search space, and an item skipped without a reason is a check the owner may have wanted. Three narrow tests were preferred over one broad one wherever the feedback supported them.\n- [ ] **Each file is named `test_fb\u003Cnnn>_\u003Cslug>.py` and its docstring names the FB id.** The integrity test matches the file pattern and looks for the FB id in the docstring, and the orchestrator uses the id to link the test to the entry. One function per property, named for what it checks.\n- [ ] **The test fails on the rejected sample and passes on the accepted one, where a rejected artifact exists.** The fixtures sit under `tests\u002Ffixtures\u002F` in the FB id's folder, each under 50 KB, and the assertion covers both. A test that passes on both has not proved anything and was dropped.\n- [ ] **The suite ran the way the current phase requires and is green apart from the expected failure.** Outside feedback handling the full suite passes; inside it the mid-feedback suite passes except for the new test against the live artifact. No existing test was edited, skipped or deleted.\n- [ ] **Test paths were reported as `tests\u002F\u003Cfile>.py::\u003Cfunction>` for `verified-by`, and every property without a deterministic check was named for a verifier.** The orchestrator writes nothing it was not told; a path missing from the report is a check nobody links to. Each path is copied from the file as written, because a misspelled path cannot be followed by the owner or by the integrity test.\n\n## Output\n\nThe list of test files and functions as `tests\u002F\u003Cfile>.py::\u003Cfunction>`, the catalog item each uses, the fixture paths or none, the suite result, and any property that needs a verifier instead, each with the reason no test could encode it.\n\n## Runtime behavior\n\n- Writes only to `tests\u002F`: test files, fixtures and nothing else. Registering the test on the entry is the orchestrator's job, and a verifier is the create-verifier skill's job.\n- Runs inside the feedback-test subagent during feedback handling, or on the owner's direct request to add a check outside a correction.\n- Never runs the artifact's generator, never edits the artifact, and never commits. A test that needs a regenerated artifact to pass reports that and waits for the orchestrator.\n","# Create a test\n\n## Goal\n\nEvery rule the owner cares about has a cheap, deterministic check that runs on every verification round, so the agent cannot drift from it unnoticed. A test costs nothing per run, never tires and never changes its mind, which is why tests carry the enforcement and memory carries only the context. One correction should produce as many narrow tests as the feedback supports, because each test catches one way of getting it wrong and the model finds new ways. A test is proved before it is trusted: it fails on the artifact the owner rejected and passes on the version the owner accepted, or it has not shown it can tell the difference. Tests are written against the kind of artifact, not only the one file that was corrected, so the rule holds for every future artifact of that kind. A property that no code can check is handed to a verifier agent rather than faked with a test that calls a model. The measure of this skill is that the owner never has to give the same correction twice.\n\n## Objective\n\nRestate the feedback as observable properties of an artifact, one per line. Walk the catalog of deterministic checks and list every check that applies to each property, with the ones rejected and why. Implement each kept check as one pytest function in a file named by the FB number, using only the standard library, reading artifacts through the shared helpers. Prove each test against the rejected and accepted artifacts through fixtures when they exist. Run the suite the way the current phase requires and leave every existing test untouched. Report the test paths so the orchestrator can write them into the entry's `verified-by`, and name every property that needs a verifier instead.\n\n## Tasks\n\n1. Restate the feedback as one or more observable properties of an artifact: something a reader could point at in the file and say \"there, that is the violation\". \"Captions must not shout\" becomes \"no caption text is in all capitals\"; \"the intro is too long\" becomes \"the first section is under 120 words\". A property that cannot be pointed at is not yet a property; refine it, or hand it to a verifier in task 6.\n2. Walk the catalog below for each property and list every check that applies. Deterministic checks are cheap, so prefer several narrow tests over one broad one; three tests that each catch one failure mode beat one that tries to catch all. Record the catalog items rejected and why, because the report is how the orchestrator knows the search was done.\n3. Write each test in `tests\u002Ftest_fb\u003Cnnn>_\u003Cslug>.py`, where `\u003Cnnn>` is the FB number, because the fact subagent allocates the entry id at the same moment and the two cannot be coordinated. Start the module with a docstring naming the FB id, and give each function one property with a name that says what it checks. Copy `tests\u002Ffeedback_test_template.py` as the starting shape.\n4. If the rejected artifact exists and is small, copy the relevant part into `tests\u002Ffixtures\u002F\u003Cfb-id>\u002Frejected.\u003Cext>` and the accepted version into `tests\u002Ffixtures\u002F\u003Cfb-id>\u002Faccepted.\u003Cext>`, each under 50 KB, and assert that the check fails on the first and passes on the second. The fixture pair is the proof that the test can tell the difference. When the accepted version does not exist yet, build the accepted fixture from the correction the owner gave.\n5. Run the suite. Outside feedback handling that is `python -m pytest -q tests`; inside it, the mid-feedback suite from `tests\u002FREADME.md`, because two integrity tests fail by design until the orchestrator finishes. A new test that fails against the live artifact is expected until the artifact is regenerated; every other failure is yours to fix without touching existing tests.\n6. For a property with no deterministic check, hand it to `skills\u002Fcreate-verifier\u002FSKILL.md` with the reason, after splitting off any mechanical part that a test can still cover. Say in the report which part went where. A property handed over without a reason is one the next reader will try to test again.\n7. Report the test paths as `tests\u002F\u003Cfile>.py::\u003Cfunction>` so the orchestrator can set `verified-by` on the entry, with the catalog item each uses, the fixture paths, and every property handed to a verifier. The report is the only channel back to the orchestrator; what is not in it does not get linked. Copy paths from the files as written rather than from memory.\n\n## Instructions\n\n### Catalog of deterministic checks\n\n- **Forbidden or required strings and patterns.** A regular expression over the artifact text catches wording, casing and punctuation the owner rejected or demanded, such as all-capital runs, a banned phrase or a required sign-off. Anchor the pattern to the smallest unit that matters, a caption line rather than the whole file, so the test names the location when it fails. This is the first item to try, because most corrections are about text.\n- **Required sections, headings or fields, and their order.** Parse the headings or keys and compare them against the required list in sequence. A missing section and a reordered section are two different failures and get two assertions. Use this for any artifact with a fixed shape: a report, a script, a scene file, a README.\n- **Length limits.** Count words, sentences, lines, characters, duration or file size and compare with the limit the owner set. State the limit in the test name, so a later change to the limit shows up as a superseding test. Count with the shared helpers so every test counts the same way.\n- **Numeric thresholds from the artifact or from a tool's output.** Loudness, dimensions, counts and ratios are read from the file or from a local tool that is already installed, then compared against the threshold. Skip the test with a clear reason when the tool is absent; never silently pass. The threshold comes from the owner's words, not from a guess.\n- **File presence, naming patterns and folder structure.** Assert that the files the rule requires exist, match the naming pattern and sit in the right folder, and that forbidden files do not exist. Use globs so the test covers future artifacts of the kind, not only today's.\n- **Frontmatter or schema validity.** Parse markdown frontmatter, JSON, YAML or CSV with the standard library and assert the required keys, types and values. A parse error is a failure with the line number. For YAML use the minimal parsing the helpers provide rather than a third-party library.\n- **Links and references that resolve.** Every path, anchor and id the artifact names exists where it says it does. Collect them with a regular expression and check each one; report every dangling reference, not only the first.\n- **Command exit codes.** A build, a lint, a formatter or a renderer runs clean on the artifact. Run it through `subprocess` with a timeout, skip with a reason when the command is not installed, and assert on the exit code and on the lines of output the owner cares about.\n- **Snapshot comparison against an approved example.** Compare the artifact, exact or normalized, against the matching file in `memory\u002Fexamples\u002F`. Normalize only what the owner does not care about, such as whitespace or dates, and state the normalization in the test. Use this after a strong confirmation, when the owner said \"exactly like this\".\n- **Ordering and consistency across files.** An index matches its folder, a table of contents matches the headings, a count in one file matches the items in another. Compute both sides and compare the sets and the order separately.\n- **Diff-scoped checks.** Inspect only the files changed in the current request, found through `git diff --name-only`, when a rule applies to new work and not to history. Fall back to the full tree when there is no git history, and say so in the skip reason.\n- **Idempotency.** Run a step twice on a copy of the artifact and assert the second run changes nothing. This catches generators that append, renumber or re-wrap on every run.\n- **Absence checks.** No placeholder text, no TODO markers, no secrets, no leftover debug output, no empty sections. List the markers explicitly in the test so a reader knows what is banned.\n- **Media metadata through a local tool.** Image dimensions, video duration, audio sample rate and similar are read through a tool that is already installed, with a skip and a reason when it is not. Assert on the value the owner set, with the tolerance they would accept.\n\n### Constraints\n\n- **Standard library plus pytest, nothing else.** No network, no model calls, no randomness and no wall-clock dependence, because a test that can fail for a reason other than the artifact teaches the agent to distrust the suite. A test that needs a library the repo does not have is rewritten with the standard library or handed to a verifier. Dates in tests are literals, never today's date.\n- **Under two seconds per test, through the shared helpers.** Read artifacts through `tests\u002Fhelpers.py` so paths and encodings are handled once and a Windows checkout behaves like a Linux one. A slow test is run less, and a test that is run less enforces less. Parse once at module level when several functions read the same artifact.\n- **One property per function, named for what it checks.** The function name is what the owner reads in the failure output, so `test_captions_are_not_all_caps` says what went wrong and `test_fb003` does not. Several properties in one function hide which one failed. Assertion messages quote the offending text and its location.\n- **A test never asserts on memory file contents.** `tests\u002Ftest_memory_integrity.py` owns the memory files; a feedback test asserts on artifacts. A feedback test that reads a fact or rule to decide what to check has moved the rule out of the test, where a later edit to the rule changes what the test enforces without anyone noticing.\n- **Never weaken, skip or delete an existing test to make a new one pass.** A test that is wrong is superseded by a better test, with the FB id that said so in its docstring, and the orchestrator retires the old one through feedback handling. Two tests that contradict each other are a conflict for the owner, reported as an open question, not resolved by deleting one.\n\n### When no deterministic check exists\n\nSay so in the report, name the property, and hand it to `skills\u002Fcreate-verifier\u002FSKILL.md`. Do not write a test that calls a model, scores a similarity or reads a judgment from a file; that is a verifier in a test's clothing, and it will be flaky. A property often splits into a mechanical part and a judgment part; write the test for the mechanical part and hand only the remainder to the verifier.\n\n## Checklist\n\n- [ ] **Every applicable catalog item was considered, and the report lists the ones used and the ones rejected with a reason.** The catalog is the search space, and an item skipped without a reason is a check the owner may have wanted. Three narrow tests were preferred over one broad one wherever the feedback supported them.\n- [ ] **Each file is named `test_fb\u003Cnnn>_\u003Cslug>.py` and its docstring names the FB id.** The integrity test matches the file pattern and looks for the FB id in the docstring, and the orchestrator uses the id to link the test to the entry. One function per property, named for what it checks.\n- [ ] **The test fails on the rejected sample and passes on the accepted one, where a rejected artifact exists.** The fixtures sit under `tests\u002Ffixtures\u002F` in the FB id's folder, each under 50 KB, and the assertion covers both. A test that passes on both has not proved anything and was dropped.\n- [ ] **The suite ran the way the current phase requires and is green apart from the expected failure.** Outside feedback handling the full suite passes; inside it the mid-feedback suite passes except for the new test against the live artifact. No existing test was edited, skipped or deleted.\n- [ ] **Test paths were reported as `tests\u002F\u003Cfile>.py::\u003Cfunction>` for `verified-by`, and every property without a deterministic check was named for a verifier.** The orchestrator writes nothing it was not told; a path missing from the report is a check nobody links to. Each path is copied from the file as written, because a misspelled path cannot be followed by the owner or by the integrity test.\n\n## Output\n\nThe list of test files and functions as `tests\u002F\u003Cfile>.py::\u003Cfunction>`, the catalog item each uses, the fixture paths or none, the suite result, and any property that needs a verifier instead, each with the reason no test could encode it.\n\n## Runtime behavior\n\n- Writes only to `tests\u002F`: test files, fixtures and nothing else. Registering the test on the entry is the orchestrator's job, and a verifier is the create-verifier skill's job.\n- Runs inside the feedback-test subagent during feedback handling, or on the owner's direct request to add a check outside a correction.\n- Never runs the artifact's generator, never edits the artifact, and never commits. A test that needs a regenerated artifact to pass reports that and waits for the orchestrator.\n",{"name":5,"description":7},"main","2b63f856ce19c2a797929cacabd9e0fc936812fa","plugins\u002Fcerredz\u002Fvidbyte-memory\u002Fskills\u002Fcreate-test",468,"https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins","https:\u002F\u002Fhol.org\u002Fplugins\u002Fbest-codex-plugins","https:\u002F\u002Fgithub.com\u002Fhashgraph-online","https:\u002F\u002Fhol.org","Open-source standards and developer tools for interoperable AI agents: discovery, identity, communication, payments, privacy and security.","2026-11-11 02:22:54",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add hashgraph-online\u002Fawesome-codex-plugins --skill create-test",{"tool":64,"command":65},"bunx","bunx skills add hashgraph-online\u002Fawesome-codex-plugins --skill create-test",{"tool":67,"command":68},"pnpm","pnpm dlx skills add hashgraph-online\u002Fawesome-codex-plugins --skill create-test","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fcerredz\u002Fvidbyte-memory\u002Fskills\u002Fcreate-test\u002FSKILL.md",true,[],[73,99,124,156,176,189],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":43},"01M716A6ETNB9B1SQ3GXZC75VR","deja-search","deja-vu memory — search the user's past AI coding sessions with the deja CLI. Holds what they already settled and never wrote into the repo (naming rules, banned or already-tried tools, required checks before merge, preferred values, who owns what). Use before your first edit in a task, before you call a change done or ready to merge, before you recommend a tool, library, design or reviewer, before re-debugging an error that may already be solved, when they say 'didn't we fix this before', 'what did we decide about X' or 'I already have that', and before telling them something on this machine does not exist.","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fvshulcz\u002Fdeja-vu\u002Fskills\u002Fdeja-search\u002FSKILL.md",[],[80,81,82,83,84,85,86,87,88,89,90,27,91,92,93,94,95,96,97,98],"search","deja search","error","ready","never","memory","re","decide","fix","design","debugging","you","done","reviewer","io","change","cli","merge","past",{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":43},"01M716A3J2W5SENSE9VGMXB375","deja-reflect","End-of-session reflection and memory curation with deja-vu. Review what was decided, what commands broke and what repaired them, and record durable project rules or decisions with deja remember so the next session starts with them.","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fvshulcz\u002Fdeja-vu\u002Fskills\u002Fdeja-reflect\u002FSKILL.md",[],[106,107,108,109,85,110,111,112,113,114,115,116,117,94,118,119,120,121,122,123],"reflect","deja reflect","brew","remember","project rules","project","session","end","reflection","Rules","decisions","review","with","record","github","next","https","node",{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":139,"publishedAt":43},"01M715T3RR4BAYSR57HPPTJ0PF","revid","Make, edit, export and post AI videos with Revid (revid.ai) through the Revid MCP server. Use whenever the user wants a short-form or long-form video made (from an idea, a script, a URL, an article, a PDF, a tweet, a product page, their own clips, or a song), wants to find what is going viral on TikTok, YouTube, Instagram or X before making something, wants to edit or re-export an existing Revid project, generate a standalone AI image or clip, make a series episode, or publish and schedule a finished video to connected social accounts. Covers setup (hosted MCP with OAuth, or an API key), the 36 tools, credits, polling and the rules for publishing. Routes to the more specific revid-* skills when one fits.","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Ftmakersas\u002Frevid-skills\u002Fskills\u002Frevid\u002FSKILL.md",[130,133,136],{"categoryNo":131,"categoryName":132,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":134,"categoryName":135,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":137,"categoryName":138,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[126,140,141,142,143,144,111,145,86,146,147,148,149,27,150,151,152,153,154,155],"Video","short-form","standalone","PDF","viral","tiktok","short","social","MCP","song","URL","image","mcp server","schedule","api","publish",{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":160,"categories":161,"keywords":162,"publishedAt":43},"01M71569ZM2X3H5RBFK8PVKMK2","review-study","Review a QuestionPunk survey before launch for wording, answer choices, branching, and missing settings. Use for check my survey or review this draft before publishing.","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fquestionpunk\u002Fcodex-plugin\u002Fskills\u002Freview-study\u002FSKILL.md",[],[163,164,117,165,166,167,168,169,38,170,171,172,173,174,175],"study","review study","for","answer","missing","survey","publishing","check","draft","settings","launch","my","branching",{"skillNo":177,"name":178,"nameZh":6,"description":179,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":180,"categories":181,"keywords":182,"publishedAt":43},"01M71567GV0C35YQBY0DPGR86B","manage-study","Find QuestionPunk studies, check status, publish an explicitly requested draft, or retrieve its participant link. Use for find my survey, publish this study, or how many people responded.","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fquestionpunk\u002Fcodex-plugin\u002Fskills\u002Fmanage-study\u002FSKILL.md",[],[183,163,184,165,168,38,185,170,171,155,40,186,187,188,174],"manage study","manage","people","find","link","status",{"skillNo":190,"name":191,"nameZh":6,"description":192,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":193,"categories":194,"keywords":195,"publishedAt":43},"01M71565A8TCA01AZQZRGRYMFZ","create-study","Create a saved QuestionPunk survey draft from a research brief or edit specified questions. Use for requests such as make a customer feedback survey or shorten my onboarding study.","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fquestionpunk\u002Fcodex-plugin\u002Fskills\u002Fcreate-study\u002FSKILL.md",[],[196,163,24,197,198,39,165,199,168,200,38,201,202,171,203,204,205,206,207,174],"create study","brief","as","customer feedback","research brief","shorten","saved","research","requests","customer","questions","edit"]