[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C17K5355VSA9P2HFYF4F41":3,"skill-same:01M6C17K5355VSA9P2HFYF4F41":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":40,"commitSha":41,"skillDirectory":42,"forksCount":43,"repositoryHtmlUrl":44,"repositoryHomepageUrl":45,"ownerHtmlUrl":46,"ownerBlogUrl":47,"ownerDescription":48,"updatedAt":49,"install":50,"resources":63},"01M6C17K5355VSA9P2HFYF4F41","config",null,"Manage the user-level AIWG configuration file for persistent preferences across all projects","jmagly\u002Faiwg","jmagly","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1159087?v=4","01M6C10AK8N2WCSQN11FYGTJWN","Joseph Magly","01M6C10AQ8A2RMED1Y1BSVY7NF",229,"MIT","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-utils\u002Fskills\u002Fconfig\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[5,24,25,26,27,28,29,30,31],"file","preferences","projects","user","manage","configuration","across","for","2026-11-10 10:12:30",false,"---\nnamespace: aiwg\nname: config\nplatforms: [all]\ndescription: Manage the user-level AIWG configuration file for persistent preferences across all projects\n\n---\n\n# Config\n\nYou manage the user-level AIWG configuration file. This is the persistent preferences store that applies across all projects: default provider, default model, telemetry opt-in\u002Fout, and other global settings.\n\n## Triggers\n\nAlternate expressions and non-obvious activations (primary phrases are matched automatically from the skill description):\n\n- \"what's my default provider\" → get subcommand for `provider`\n- \"turn off telemetry\" → set subcommand for `telemetry`\n- \"where is the aiwg config file\" → path subcommand\n- \"reset aiwg to defaults\" → reset subcommand\n- \"open config in my editor\" → edit subcommand\n- \"is my config valid\" → validate subcommand\n\n## Trigger Patterns Reference\n\n| Pattern | Example | Action |\n|---------|---------|--------|\n| List all settings | \"show my aiwg config\" | Run `aiwg config list` |\n| Read a value | \"what's my default model?\" | Run `aiwg config get defaultModel` |\n| Write a value | \"set default provider to copilot\" | Run `aiwg config set defaultProvider copilot` |\n| Validate | \"check my config for errors\" | Run `aiwg config validate` |\n| Reset | \"reset config to defaults\" | Run `aiwg config reset` |\n| Locate file | \"where is the config file?\" | Run `aiwg config path` |\n| Open editor | \"edit config\" | Run `aiwg config edit` |\n\n## Behavior\n\nWhen triggered:\n\n1. **Extract intent**:\n   - Which subcommand: `list`, `get`, `set`, `validate`, `reset`, `path`, or `edit`?\n   - For `get`\u002F`set`: what is the key? For `set`: what is the new value?\n   - Is a custom config directory specified via `--config-dir`?\n\n2. **Resolve config directory** (in order):\n   1. `AIWG_CONFIG` environment variable\n   2. `--config-dir \u003Cpath>` flag\n   3. `~\u002F.aiwg\u002Fconfig.json`\n   4. `~\u002F.config\u002Faiwg\u002Fconfig.json`\n\n3. **Run the appropriate command**:\n\n   ```bash\n   # Show all configuration values\n   aiwg config list\n\n   # Read a specific key\n   aiwg config get \u003Ckey>\n\n   # Write a value\n   aiwg config set \u003Ckey> \u003Cvalue>\n\n   # Validate the config file\n   aiwg config validate\n\n   # Reset to factory defaults\n   aiwg config reset\n\n   # Show resolved config file path\n   aiwg config path\n\n   # Open in $EDITOR\n   aiwg config edit\n\n   # Use a custom config directory\n   aiwg config list --config-dir \u002Fpath\u002Fto\u002Fconfig\n   ```\n\n4. **Common configuration keys**:\n\n   | Key | Type | Description |\n   |-----|------|-------------|\n   | `defaultProvider` | string | Active provider (e.g., `claude-code`, `copilot`) |\n   | `defaultModel` | string | Model override (e.g., `claude-opus-5`) |\n   | `telemetry` | boolean | Usage telemetry opt-in |\n   | `updateChannel` | string | `stable`, `next`, or `nightly` |\n   | `configDir` | string | Custom config directory path |\n\n5. **Report results** — For `list`\u002F`get`, display the value(s). For `set`, confirm what changed. For `validate`, show any errors found. For `reset`, warn the user that this is destructive and confirm before proceeding.\n\n## Examples\n\n### Example 1: Show all settings\n\n**User**: \"Show me my AIWG configuration\"\n\n**Extraction**: List all settings\n\n**Action**:\n```bash\naiwg config list\n```\n\n**Response**: Displays all keys and their current values, e.g.:\n```\ndefaultProvider  claude-code\ndefaultModel     (not set — using platform default)\ntelemetry        true\nupdateChannel    stable\n```\n\n---\n\n### Example 2: Change default provider\n\n**User**: \"Set my default provider to GitHub Copilot\"\n\n**Extraction**: Set `defaultProvider` to `copilot`\n\n**Action**:\n```bash\naiwg config set defaultProvider copilot\n```\n\n**Response**: \"Set `defaultProvider` to `copilot`. This will be used as the default for `aiwg use` and `aiwg sync` going forward.\"\n\n---\n\n### Example 3: Disable telemetry\n\n**User**: \"Turn off telemetry\"\n\n**Extraction**: Set `telemetry` to `false`\n\n**Action**:\n```bash\naiwg config set telemetry false\n```\n\n**Response**: \"Telemetry disabled. AIWG will no longer send usage data.\"\n\n---\n\n### Example 4: Locate config file\n\n**User**: \"Where does AIWG store its config?\"\n\n**Extraction**: Path lookup\n\n**Action**:\n```bash\naiwg config path\n```\n\n**Response**: \"Config file: `~\u002F.aiwg\u002Fconfig.json` (exists)\"\n\n---\n\n### Example 5: Validate after manual edit\n\n**User**: \"I edited the config manually — check if it's valid\"\n\n**Extraction**: Validate request\n\n**Action**:\n```bash\naiwg config validate\n```\n\n**Response**: \"Config valid. No errors found.\" — or lists specific schema errors if invalid.\n\n---\n\n### Example 6: Custom config directory\n\n**User**: \"Check config using the team shared config dir at \u002Fopt\u002Faiwg-team\"\n\n**Extraction**: List with `--config-dir`\n\n**Action**:\n```bash\naiwg config list --config-dir \u002Fopt\u002Faiwg-team\n```\n\n**Response**: Displays config values loaded from `\u002Fopt\u002Faiwg-team\u002Fconfig.json`.\n\n## Clarification Prompts\n\nIf the user's intent is ambiguous:\n\n- \"Which config key are you asking about? (run `aiwg config list` to see all keys)\"\n- \"What value should I set `\u003Ckey>` to?\"\n- \"`aiwg config reset` will overwrite all settings with factory defaults. Proceed?\"\n\n## References\n\n- @$AIWG_ROOT\u002Fsrc\u002Fcli\u002Fhandlers\u002Fsubcommands.ts — Config command handler\n- @$AIWG_ROOT\u002Fdocs\u002Fcli-reference.md — CLI reference\n","# Config\n\nYou manage the user-level AIWG configuration file. This is the persistent preferences store that applies across all projects: default provider, default model, telemetry opt-in\u002Fout, and other global settings.\n\n## Triggers\n\nAlternate expressions and non-obvious activations (primary phrases are matched automatically from the skill description):\n\n- \"what's my default provider\" → get subcommand for `provider`\n- \"turn off telemetry\" → set subcommand for `telemetry`\n- \"where is the aiwg config file\" → path subcommand\n- \"reset aiwg to defaults\" → reset subcommand\n- \"open config in my editor\" → edit subcommand\n- \"is my config valid\" → validate subcommand\n\n## Trigger Patterns Reference\n\n| Pattern | Example | Action |\n|---------|---------|--------|\n| List all settings | \"show my aiwg config\" | Run `aiwg config list` |\n| Read a value | \"what's my default model?\" | Run `aiwg config get defaultModel` |\n| Write a value | \"set default provider to copilot\" | Run `aiwg config set defaultProvider copilot` |\n| Validate | \"check my config for errors\" | Run `aiwg config validate` |\n| Reset | \"reset config to defaults\" | Run `aiwg config reset` |\n| Locate file | \"where is the config file?\" | Run `aiwg config path` |\n| Open editor | \"edit config\" | Run `aiwg config edit` |\n\n## Behavior\n\nWhen triggered:\n\n1. **Extract intent**:\n   - Which subcommand: `list`, `get`, `set`, `validate`, `reset`, `path`, or `edit`?\n   - For `get`\u002F`set`: what is the key? For `set`: what is the new value?\n   - Is a custom config directory specified via `--config-dir`?\n\n2. **Resolve config directory** (in order):\n   1. `AIWG_CONFIG` environment variable\n   2. `--config-dir \u003Cpath>` flag\n   3. `~\u002F.aiwg\u002Fconfig.json`\n   4. `~\u002F.config\u002Faiwg\u002Fconfig.json`\n\n3. **Run the appropriate command**:\n\n   ```bash\n   # Show all configuration values\n   aiwg config list\n\n   # Read a specific key\n   aiwg config get \u003Ckey>\n\n   # Write a value\n   aiwg config set \u003Ckey> \u003Cvalue>\n\n   # Validate the config file\n   aiwg config validate\n\n   # Reset to factory defaults\n   aiwg config reset\n\n   # Show resolved config file path\n   aiwg config path\n\n   # Open in $EDITOR\n   aiwg config edit\n\n   # Use a custom config directory\n   aiwg config list --config-dir \u002Fpath\u002Fto\u002Fconfig\n   ```\n\n4. **Common configuration keys**:\n\n   | Key | Type | Description |\n   |-----|------|-------------|\n   | `defaultProvider` | string | Active provider (e.g., `claude-code`, `copilot`) |\n   | `defaultModel` | string | Model override (e.g., `claude-opus-5`) |\n   | `telemetry` | boolean | Usage telemetry opt-in |\n   | `updateChannel` | string | `stable`, `next`, or `nightly` |\n   | `configDir` | string | Custom config directory path |\n\n5. **Report results** — For `list`\u002F`get`, display the value(s). For `set`, confirm what changed. For `validate`, show any errors found. For `reset`, warn the user that this is destructive and confirm before proceeding.\n\n## Examples\n\n### Example 1: Show all settings\n\n**User**: \"Show me my AIWG configuration\"\n\n**Extraction**: List all settings\n\n**Action**:\n```bash\naiwg config list\n```\n\n**Response**: Displays all keys and their current values, e.g.:\n```\ndefaultProvider  claude-code\ndefaultModel     (not set — using platform default)\ntelemetry        true\nupdateChannel    stable\n```\n\n---\n\n### Example 2: Change default provider\n\n**User**: \"Set my default provider to GitHub Copilot\"\n\n**Extraction**: Set `defaultProvider` to `copilot`\n\n**Action**:\n```bash\naiwg config set defaultProvider copilot\n```\n\n**Response**: \"Set `defaultProvider` to `copilot`. This will be used as the default for `aiwg use` and `aiwg sync` going forward.\"\n\n---\n\n### Example 3: Disable telemetry\n\n**User**: \"Turn off telemetry\"\n\n**Extraction**: Set `telemetry` to `false`\n\n**Action**:\n```bash\naiwg config set telemetry false\n```\n\n**Response**: \"Telemetry disabled. AIWG will no longer send usage data.\"\n\n---\n\n### Example 4: Locate config file\n\n**User**: \"Where does AIWG store its config?\"\n\n**Extraction**: Path lookup\n\n**Action**:\n```bash\naiwg config path\n```\n\n**Response**: \"Config file: `~\u002F.aiwg\u002Fconfig.json` (exists)\"\n\n---\n\n### Example 5: Validate after manual edit\n\n**User**: \"I edited the config manually — check if it's valid\"\n\n**Extraction**: Validate request\n\n**Action**:\n```bash\naiwg config validate\n```\n\n**Response**: \"Config valid. No errors found.\" — or lists specific schema errors if invalid.\n\n---\n\n### Example 6: Custom config directory\n\n**User**: \"Check config using the team shared config dir at \u002Fopt\u002Faiwg-team\"\n\n**Extraction**: List with `--config-dir`\n\n**Action**:\n```bash\naiwg config list --config-dir \u002Fopt\u002Faiwg-team\n```\n\n**Response**: Displays config values loaded from `\u002Fopt\u002Faiwg-team\u002Fconfig.json`.\n\n## Clarification Prompts\n\nIf the user's intent is ambiguous:\n\n- \"Which config key are you asking about? (run `aiwg config list` to see all keys)\"\n- \"What value should I set `\u003Ckey>` to?\"\n- \"`aiwg config reset` will overwrite all settings with factory defaults. Proceed?\"\n\n## References\n\n- @$AIWG_ROOT\u002Fsrc\u002Fcli\u002Fhandlers\u002Fsubcommands.ts — Config command handler\n- @$AIWG_ROOT\u002Fdocs\u002Fcli-reference.md — CLI reference\n",{"name":5,"namespace":37,"platforms":38,"description":7},"aiwg",[39],"all","main","6754967c344ccb087a8de06972f55a41067b291b","agentic\u002Fcode\u002Faddons\u002Faiwg-utils\u002Fskills\u002Fconfig",36,"https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg","https:\u002F\u002Faiwg.io","https:\u002F\u002Fgithub.com\u002Fjmagly","https:\u002F\u002Fintegrolabs.io","ml\u002Fai, industrial automation, safety\u002Fsecurity, ssi\r\n\r\nmagly.net\r\nintegrolabs.io\r\naiwg.io\r\nfortemi.com\r\npagenary.com\r\nbytecask.com","2026-11-14 10:46:34",{"source":8,"skillName":5,"commands":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add jmagly\u002Faiwg --skill config",{"tool":56,"command":57},"bunx","bunx skills add jmagly\u002Faiwg --skill config",{"tool":59,"command":60},"pnpm","pnpm dlx skills add jmagly\u002Faiwg --skill config","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-utils\u002Fskills\u002Fconfig\u002FSKILL.md",true,[],[65,93,117,123,130,144],{"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":72,"publishedAt":32},"01M70QA0BSYJ49EES9V4RE8QH1","host-hardening","Read-only system hardening baseline and plan-first host hardening recommendations for SSH, Docker bind addresses, firewall persistence, datastores, exporters and audit retention.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Fsecurity-engineering\u002Fskills\u002Fhost-hardening\u002FSKILL.md",[71],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92],"host","host hardening","hardening","read","re","recommendations","remediation","plan","port","verification","Bash","access","only","retention","audit","never","firewall","bind","secrets","request",{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":103,"publishedAt":32},"01M70PNT2Z4HMZPRBTAF6073NN","exposure-analysis","Read-only firewall analysis and effective host exposure reconstruction for Docker published ports, UFW bypass, stale rules, CDN scope, IPv6 asymmetry and external probe allowlists.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Fforensics\u002Fskills\u002Fexposure-analysis\u002FSKILL.md",[99,102],{"categoryNo":100,"categoryName":101,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[104,105,106,76,107,81,108,109,83,110,73,111,85,112,113,88,89,114,115,116],"exposure analysis","analysis","unknown","credentials","collection","ufw","ports","internet","local","scope","reconstruction","operator","write",{"skillNo":118,"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":119,"categories":120,"keywords":122,"publishedAt":32},"01M70P8QATMPKA78E4FT5D2TNA","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsecurity-engineering\u002Fskills\u002Fhost-hardening\u002FSKILL.md",[121],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[75,73,74,84,76,92,79,78,87,80,81,82,83,91,85,86,77,88,89,90],{"skillNo":124,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":129,"publishedAt":32},"01M70NMPVJ5H0JH131P60FW4R8","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fforensics-complete\u002Fskills\u002Fexposure-analysis\u002FSKILL.md",[127,128],{"categoryNo":100,"categoryName":101,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[105,104,88,107,81,108,83,106,73,111,85,112,113,76,89,110,109,114,115,116],{"skillNo":131,"name":132,"nameZh":6,"description":133,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":134,"categories":135,"keywords":137,"publishedAt":32},"01M6CB4DDR0B4NNCFK7ZK7449H","fixture-skill","Exercise rule delivery.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Frule-delivery\u002Fskills\u002Ffixture-skill\u002FSKILL.md",[136],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[138,139,140,141,142,143],"fixture skill","fixture","rule","delivery","true","exercise",{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":151,"publishedAt":32},"01M6CB4AVK1W76MFMPP0JP32CJ","pi-local","Pi-local duplicate-precedence fixture.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Fproviders\u002Fpi\u002Fproject\u002F.pi\u002Fskills\u002Fpi-local\u002FSKILL.md",[150],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[152,153,112,154,139],"pi","pi local","duplicate"]