[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6D9SS2K3R4AVSPSMF90V5FY":3,"skill-same:01M6D9SS2K3R4AVSPSMF90V5FY":53},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":26,"linkOnly":27,"markdownContent":28,"markdownBody":29,"frontMatter":30,"refName":31,"commitSha":32,"skillDirectory":33,"forksCount":34,"repositoryHtmlUrl":35,"repositoryHomepageUrl":36,"ownerHtmlUrl":37,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":38,"install":39,"resources":52},"01M6D9SS2K3R4AVSPSMF90V5FY","fflow-configure",null,"Configure FreeFlow settings like hook enablement. Use when the user wants to enable\u002Fdisable freeflow features (e.g., \"enable tool hook\", \"disable the post tool use hook\").","freematters\u002Ffreematters","freematters","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F266749953?v=4","01M6D9S9REGCVDFCTZ7BM853DS","01M6D9S9WY29PTMRNB7X58QGTP",27,"MIT","https:\u002F\u002Fgithub.com\u002Ffreematters\u002Ffreematters\u002Fblob\u002Fmain\u002Fpackages\u002Ffreeflow\u002Fskills\u002Ffflow-configure\u002FSKILL.md",[],[18,19,20,21,22,23,24,25],"configure","fflow configure","tool use","tool","settings","user","use","freeflow","2026-11-10 10:12:30",false,"---\nname: fflow-configure\ndescription: Configure FreeFlow settings like hook enablement. Use when the user wants to enable\u002Fdisable freeflow features (e.g., \"enable tool hook\", \"disable the post tool use hook\").\n---\n\n# Configure FreeFlow Settings\n\nParse the user's natural-language argument and update `~\u002F.freeflow\u002Fsettings.json` accordingly.\n\nThis skill does NOT call any `fflow` CLI commands — it directly reads\u002Fwrites the settings file.\n\n## Process\n\n1. **Parse intent** — Interpret the user's argument to determine:\n   - **Action**: enable or disable\n   - **Setting**: which setting to change (currently only `hooks.postToolUse` is supported)\n\n   Common phrasings to recognise:\n   - \"enable tool hook\" \u002F \"enable post tool use hook\" -> set `hooks.postToolUse` to `true`\n   - \"disable tool hook\" \u002F \"disable the hook\" -> set `hooks.postToolUse` to `false`\n\n   If the intent is ambiguous, ask the user to clarify before making changes.\n\n2. **Read current settings** — Use the Read tool to read `~\u002F.freeflow\u002Fsettings.json`.\n   - If the file does not exist or is empty, treat current settings as `{}`.\n   - If the file contains invalid JSON, treat current settings as `{}`.\n\n3. **Update the setting** — Merge the change into the existing settings object. Do NOT overwrite unrelated keys.\n\n   For example, if the file currently contains:\n   ```json\n   { \"other\": \"value\" }\n   ```\n   and the user wants to enable the tool hook, write:\n   ```json\n   {\n     \"other\": \"value\",\n     \"hooks\": {\n       \"postToolUse\": true\n     }\n   }\n   ```\n\n4. **Write the file** — Use the Write tool to save the updated JSON to `~\u002F.freeflow\u002Fsettings.json`. Create the `~\u002F.freeflow\u002F` directory first if it does not exist (use `mkdir -p`).\n\n5. **Confirm** — Tell the user what was changed, e.g.:\n   - \"Enabled the post-tool-use hook. FreeFlow will now show workflow reminders after tool calls.\"\n   - \"Disabled the post-tool-use hook. FreeFlow will no longer show workflow reminders after tool calls.\"\n\n## Supported Settings\n\n| Setting path | Type | Default | Description |\n|---|---|---|---|\n| `hooks.postToolUse` | boolean | `false` | When `true`, the PostToolUse hook fires workflow reminders after tool calls. |\n","# Configure FreeFlow Settings\n\nParse the user's natural-language argument and update `~\u002F.freeflow\u002Fsettings.json` accordingly.\n\nThis skill does NOT call any `fflow` CLI commands — it directly reads\u002Fwrites the settings file.\n\n## Process\n\n1. **Parse intent** — Interpret the user's argument to determine:\n   - **Action**: enable or disable\n   - **Setting**: which setting to change (currently only `hooks.postToolUse` is supported)\n\n   Common phrasings to recognise:\n   - \"enable tool hook\" \u002F \"enable post tool use hook\" -> set `hooks.postToolUse` to `true`\n   - \"disable tool hook\" \u002F \"disable the hook\" -> set `hooks.postToolUse` to `false`\n\n   If the intent is ambiguous, ask the user to clarify before making changes.\n\n2. **Read current settings** — Use the Read tool to read `~\u002F.freeflow\u002Fsettings.json`.\n   - If the file does not exist or is empty, treat current settings as `{}`.\n   - If the file contains invalid JSON, treat current settings as `{}`.\n\n3. **Update the setting** — Merge the change into the existing settings object. Do NOT overwrite unrelated keys.\n\n   For example, if the file currently contains:\n   ```json\n   { \"other\": \"value\" }\n   ```\n   and the user wants to enable the tool hook, write:\n   ```json\n   {\n     \"other\": \"value\",\n     \"hooks\": {\n       \"postToolUse\": true\n     }\n   }\n   ```\n\n4. **Write the file** — Use the Write tool to save the updated JSON to `~\u002F.freeflow\u002Fsettings.json`. Create the `~\u002F.freeflow\u002F` directory first if it does not exist (use `mkdir -p`).\n\n5. **Confirm** — Tell the user what was changed, e.g.:\n   - \"Enabled the post-tool-use hook. FreeFlow will now show workflow reminders after tool calls.\"\n   - \"Disabled the post-tool-use hook. FreeFlow will no longer show workflow reminders after tool calls.\"\n\n## Supported Settings\n\n| Setting path | Type | Default | Description |\n|---|---|---|---|\n| `hooks.postToolUse` | boolean | `false` | When `true`, the PostToolUse hook fires workflow reminders after tool calls. |\n",{"name":5,"description":7},"main","898550a01eca98e666c6c16aef03ee6bbd04175c","packages\u002Ffreeflow\u002Fskills\u002Ffflow-configure",5,"https:\u002F\u002Fgithub.com\u002Ffreematters\u002Ffreematters","https:\u002F\u002Ffreematters.vercel.app","https:\u002F\u002Fgithub.com\u002Ffreematters","2026-05-19 20:22:18",{"source":8,"skillName":5,"commands":40,"prompt":50,"zipAvailable":51},[41,44,47],{"tool":42,"command":43},"npx","npx skills add freematters\u002Ffreematters --skill fflow-configure",{"tool":45,"command":46},"bunx","bunx skills add freematters\u002Ffreematters --skill fflow-configure",{"tool":48,"command":49},"pnpm","pnpm dlx skills add freematters\u002Ffreematters --skill fflow-configure","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Ffreematters\u002Ffreematters\u002Fblob\u002Fmain\u002Fpackages\u002Ffreeflow\u002Fskills\u002Ffflow-configure\u002FSKILL.md",true,[],[54,73,91,108,121,133],{"skillNo":55,"name":56,"nameZh":6,"description":57,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":58,"categories":59,"keywords":68,"publishedAt":26},"01M6D9TNZ52Y3DXX3PTGTR1Q0K","verifier","E2E test verifier workflow.","https:\u002F\u002Fgithub.com\u002Ffreematters\u002Ffreematters\u002Fblob\u002Fmain\u002Fpackages\u002Ffreeflow\u002Fworkflows\u002Fverifier\u002FSKILL.md",[60,65],{"categoryNo":61,"categoryName":62,"taxonomyType":63,"taxonomyTypeDesc":64},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":66,"categoryName":67,"taxonomyType":63,"taxonomyTypeDesc":64},"01JBSEEDCAT000000000000023","Skill与智能体开发",[56,69,70,71,72],"e2e test","e2e","test","workflow",{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":84,"publishedAt":26},"01M6D9TJSJDF87RMDCDSXRBZHT","spec-to-code","Implement a spec into working code, one plan step at a time.","https:\u002F\u002Fgithub.com\u002Ffreematters\u002Ffreematters\u002Fblob\u002Fmain\u002Fpackages\u002Ffreeflow\u002Fworkflows\u002Fspec-to-code\u002FSKILL.md",[79],{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[85,86,87,88,89,90],"spec to code","code","spec","time","plan","implement",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":26},"01M6D9TFTDG16JC379AD3TT9E8","spec-gen","Generate a complete specification from a rough idea through interactive requirements gathering, research, design, and implementation planning.","https:\u002F\u002Fgithub.com\u002Ffreematters\u002Ffreematters\u002Fblob\u002Fmain\u002Fpackages\u002Ffreeflow\u002Fworkflows\u002Fspec-gen\u002FSKILL.md",[],[98,87,99,100,101,102,103,104,105,106,107],"spec gen","implementation","requirements","idea","specification","interactive","planning","generate","research","design",{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":115,"publishedAt":26},"01M6D9TDFC5MDPJW068JGGMB1W","spec-driven","End-to-end pipeline from rough idea to merged pull request. Passing --quick forwards the flag to the spec-gen sub workflow.","https:\u002F\u002Fgithub.com\u002Ffreematters\u002Ffreematters\u002Fblob\u002Fmain\u002Fpackages\u002Ffreeflow\u002Fworkflows\u002Fspec-driven\u002FSKILL.md",[114],{"categoryNo":66,"categoryName":67,"taxonomyType":63,"taxonomyTypeDesc":64},[116,87,117,101,118,119,120,72],"spec driven","end","pipeline","pull","pull request",{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":128,"publishedAt":26},"01M6D9TB81ZTY2ATQRCTDKPXZK","release","General release workflow for GitHub projects.","https:\u002F\u002Fgithub.com\u002Ffreematters\u002Ffreematters\u002Fblob\u002Fmain\u002Fpackages\u002Ffreeflow\u002Fworkflows\u002Frelease\u002FSKILL.md",[127],{"categoryNo":66,"categoryName":67,"taxonomyType":63,"taxonomyTypeDesc":64},[123,129,72,130,131,132],"github","general","projects","github projects",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":139,"publishedAt":26},"01M6D9T8Y48YE2YM0HYXPV59PM","pr-lifecycle","Monitor a PR\u002FMR until it is merged or closed.","https:\u002F\u002Fgithub.com\u002Ffreematters\u002Ffreematters\u002Fblob\u002Fmain\u002Fpackages\u002Ffreeflow\u002Fworkflows\u002Fpr-lifecycle\u002FSKILL.md",[],[140,141,142,143],"pr","pr lifecycle","lifecycle","monitor"]