[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C19RFKF2F988M2F655GEXG":3,"skill-same:01M6C19RFKF2F988M2F655GEXG":62},{"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":38,"commitSha":39,"skillDirectory":40,"forksCount":41,"repositoryHtmlUrl":42,"repositoryHomepageUrl":43,"ownerHtmlUrl":44,"ownerBlogUrl":45,"ownerDescription":46,"updatedAt":47,"install":48,"resources":61},"01M6C19RFKF2F988M2F655GEXG","mention-conventions",null,"Display @-mention naming conventions and placement rules","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\u002Fmention-conventions\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29],"mention conventions","conventions","Rules","naming","naming conventions","display","2026-11-10 10:12:30",false,"---\nnamespace: aiwg\nname: mention-conventions\nplatforms: [all]\ndescription: Display @-mention naming conventions and placement rules\n---\n\n\u003C!-- AIWG-SKILL-CALLOUT -->\n> **Skill access pattern (post-kernel-pivot, 2026.5+)**\n>\n> Skill names referenced in this document are AIWG skills, **not slash commands**. Most are not kernel-listed and cannot be invoked as `\u002Fskill-name` by the platform. Reach them via:\n>\n> ```bash\n> aiwg discover \"\u003Ccapability>\"\n> aiwg show skill \u003Cname> --body\n> ```\n>\n> Only kernel-listed skills (`aiwg-doctor`, `aiwg-refresh`, `aiwg-status`, `aiwg-help`, `use`, `steward`) are directly invokable as slash commands. See [skill-discovery rule](..\u002F..\u002F..\u002Faddons\u002Faiwg-utils\u002Frules\u002Fskill-discovery.md).\n\n\n# @-Mention Conventions\n\nDisplay AIWG @-mention naming conventions and placement rules.\n\n## Usage\n\n```bash\n\u002Fmention-conventions                  # Show all conventions\n\u002Fmention-conventions --section naming # Show naming patterns only\n\u002Fmention-conventions --section placement # Show placement rules only\n```\n\n## Naming Patterns\n\n### Requirements\n\n```\n@.aiwg\u002Frequirements\u002FUC-{NNN}-{slug}.md        # Use cases (UC-001-user-auth.md)\n@.aiwg\u002Frequirements\u002FNFR-{CAT}-{NNN}.md        # Non-functional (NFR-SEC-001.md)\n@.aiwg\u002Frequirements\u002Fuser-stories.md           # User story collection\n```\n\nCategories for NFRs:\n- `SEC` - Security\n- `PERF` - Performance\n- `SCAL` - Scalability\n- `AVAIL` - Availability\n- `MAINT` - Maintainability\n- `USAB` - Usability\n\n### Architecture\n\n```\n@.aiwg\u002Farchitecture\u002Fadrs\u002FADR-{NNN}-{slug}.md  # Decision records (ADR-005-jwt-strategy.md)\n@.aiwg\u002Farchitecture\u002Fcomponents\u002F{name}.md      # Component specs\n@.aiwg\u002Farchitecture\u002Fsoftware-architecture-doc.md  # Main SAD\n@.aiwg\u002Farchitecture\u002Fapi-contract.md           # API specifications\n```\n\n### Security\n\n```\n@.aiwg\u002Fsecurity\u002Fthreat-model.md               # Main threat model\n@.aiwg\u002Fsecurity\u002FTM-{NNN}.md                   # Individual threats (TM-001.md)\n@.aiwg\u002Fsecurity\u002Fcontrols\u002F{control-id}.md      # Security controls (authn-001.md)\n```\n\n### Testing\n\n```\n@.aiwg\u002Ftesting\u002Ftest-plan.md                   # Master test plan\n@.aiwg\u002Ftesting\u002Ftest-cases\u002FTC-{NNN}.md         # Individual test cases\n@.aiwg\u002Ftesting\u002Ftest-results\u002F{run-id}.md       # Test run results\n```\n\n### Code References\n\n```\n@$AIWG_ROOT\u002Fsrc\u002F{path\u002Fto\u002Ffile}                           # Source files\n@test\u002F{path\u002Fto\u002Ffile}                          # Test files\n@lib\u002F{path\u002Fto\u002Ffile}                           # Library files\n@$AIWG_ROOT\u002Fdocs\u002F{path\u002Fto\u002Ffile}                          # Documentation\n```\n\n## Placement Rules\n\n### In Code Files\n\nPlace @-mentions in file header docblock:\n\n```typescript\n\u002F**\n * @file Authentication Service\n * @implements @.aiwg\u002Frequirements\u002FUC-003-user-auth.md\n * @architecture @.aiwg\u002Farchitecture\u002Fadrs\u002FADR-005-jwt-strategy.md\n * @security @.aiwg\u002Fsecurity\u002Fcontrols\u002Fauthn-001.md\n * @tests @test\u002Fintegration\u002Fauth.test.ts\n *\u002F\nexport class AuthService {\n  \u002F\u002F Implementation\n}\n```\n\n### In Python Files\n\n```python\n\"\"\"\nAuthentication Service\n\n@implements: @.aiwg\u002Frequirements\u002FUC-003-user-auth.md\n@architecture: @.aiwg\u002Farchitecture\u002Fadrs\u002FADR-005-jwt-strategy.md\n@security: @.aiwg\u002Fsecurity\u002Fcontrols\u002Fauthn-001.md\n@tests: @test\u002Fintegration\u002Ftest_auth.py\n\"\"\"\n```\n\n### In Markdown Documents\n\nAdd a References section:\n\n```markdown\n## References\n\n- @.aiwg\u002Frequirements\u002Fuser-stories.md - Functional requirements basis\n- @.aiwg\u002Farchitecture\u002Fsoftware-architecture-doc.md - Architecture context\n- @.aiwg\u002Fsecurity\u002Fthreat-model.md - Security considerations\n```\n\nOrdinary relative Markdown links are also indexed as graph edges when they\nresolve to another indexed artifact in the same active graph:\n\n```markdown\nSee [ADR-005](.\u002FADR-005-jwt-strategy.md) for the decision context.\n```\n\nUse @-mentions in `References` when you intend durable traceability or\nprovenance. Use Markdown links for reader navigation. External URLs,\nanchor-only links, images, and links to files outside the active graph do not\ncreate artifact dependency edges.\n\n### In Inline Comments\n\nFor specific code sections:\n\n```typescript\n\u002F\u002F Per @.aiwg\u002Fsecurity\u002Fcontrols\u002Fauthn-001.md - validate token expiry\nif (token.exp \u003C Date.now()) {\n  throw new AuthError('Token expired');\n}\n```\n\n## ID Format Rules\n\n| Type | Format | Example |\n|------|--------|---------|\n| Use Case | UC-NNN | UC-001, UC-042 |\n| NFR | NFR-CAT-NNN | NFR-SEC-001, NFR-PERF-002 |\n| ADR | ADR-NNN | ADR-001, ADR-015 |\n| Threat | TM-NNN | TM-001, TM-023 |\n| Test Case | TC-NNN | TC-001, TC-150 |\n\n**Rules**:\n- Always use 3-digit zero-padded numbers\n- Use lowercase for paths\n- Use hyphens for slugs (not underscores)\n\n## Best Practices\n\n1. **Be Specific**: Reference exact documents, not directories\n2. **Keep Current**: Update @-mentions when files move\n3. **Validate Often**: Run `mention-validate` before commits\n4. **Lint Style**: Run `\u002Fmention-lint --fix` to normalize\n5. **Generate Reports**: Use `mention-report` for traceability audits\n\n## CLI Equivalent\n\n```bash\naiwg mention-conventions\n```\n\n## Related Commands\n\n- `mention-wire` - Add @-mentions automatically\n- `mention-lint` - Validate style conventions\n- `mention-validate` - Check all @-mentions resolve\n\nDisplay conventions: $ARGUMENTS\n","\u003C!-- AIWG-SKILL-CALLOUT -->\n> **Skill access pattern (post-kernel-pivot, 2026.5+)**\n>\n> Skill names referenced in this document are AIWG skills, **not slash commands**. Most are not kernel-listed and cannot be invoked as `\u002Fskill-name` by the platform. Reach them via:\n>\n> ```bash\n> aiwg discover \"\u003Ccapability>\"\n> aiwg show skill \u003Cname> --body\n> ```\n>\n> Only kernel-listed skills (`aiwg-doctor`, `aiwg-refresh`, `aiwg-status`, `aiwg-help`, `use`, `steward`) are directly invokable as slash commands. See [skill-discovery rule](..\u002F..\u002F..\u002Faddons\u002Faiwg-utils\u002Frules\u002Fskill-discovery.md).\n\n\n# @-Mention Conventions\n\nDisplay AIWG @-mention naming conventions and placement rules.\n\n## Usage\n\n```bash\n\u002Fmention-conventions                  # Show all conventions\n\u002Fmention-conventions --section naming # Show naming patterns only\n\u002Fmention-conventions --section placement # Show placement rules only\n```\n\n## Naming Patterns\n\n### Requirements\n\n```\n@.aiwg\u002Frequirements\u002FUC-{NNN}-{slug}.md        # Use cases (UC-001-user-auth.md)\n@.aiwg\u002Frequirements\u002FNFR-{CAT}-{NNN}.md        # Non-functional (NFR-SEC-001.md)\n@.aiwg\u002Frequirements\u002Fuser-stories.md           # User story collection\n```\n\nCategories for NFRs:\n- `SEC` - Security\n- `PERF` - Performance\n- `SCAL` - Scalability\n- `AVAIL` - Availability\n- `MAINT` - Maintainability\n- `USAB` - Usability\n\n### Architecture\n\n```\n@.aiwg\u002Farchitecture\u002Fadrs\u002FADR-{NNN}-{slug}.md  # Decision records (ADR-005-jwt-strategy.md)\n@.aiwg\u002Farchitecture\u002Fcomponents\u002F{name}.md      # Component specs\n@.aiwg\u002Farchitecture\u002Fsoftware-architecture-doc.md  # Main SAD\n@.aiwg\u002Farchitecture\u002Fapi-contract.md           # API specifications\n```\n\n### Security\n\n```\n@.aiwg\u002Fsecurity\u002Fthreat-model.md               # Main threat model\n@.aiwg\u002Fsecurity\u002FTM-{NNN}.md                   # Individual threats (TM-001.md)\n@.aiwg\u002Fsecurity\u002Fcontrols\u002F{control-id}.md      # Security controls (authn-001.md)\n```\n\n### Testing\n\n```\n@.aiwg\u002Ftesting\u002Ftest-plan.md                   # Master test plan\n@.aiwg\u002Ftesting\u002Ftest-cases\u002FTC-{NNN}.md         # Individual test cases\n@.aiwg\u002Ftesting\u002Ftest-results\u002F{run-id}.md       # Test run results\n```\n\n### Code References\n\n```\n@$AIWG_ROOT\u002Fsrc\u002F{path\u002Fto\u002Ffile}                           # Source files\n@test\u002F{path\u002Fto\u002Ffile}                          # Test files\n@lib\u002F{path\u002Fto\u002Ffile}                           # Library files\n@$AIWG_ROOT\u002Fdocs\u002F{path\u002Fto\u002Ffile}                          # Documentation\n```\n\n## Placement Rules\n\n### In Code Files\n\nPlace @-mentions in file header docblock:\n\n```typescript\n\u002F**\n * @file Authentication Service\n * @implements @.aiwg\u002Frequirements\u002FUC-003-user-auth.md\n * @architecture @.aiwg\u002Farchitecture\u002Fadrs\u002FADR-005-jwt-strategy.md\n * @security @.aiwg\u002Fsecurity\u002Fcontrols\u002Fauthn-001.md\n * @tests @test\u002Fintegration\u002Fauth.test.ts\n *\u002F\nexport class AuthService {\n  \u002F\u002F Implementation\n}\n```\n\n### In Python Files\n\n```python\n\"\"\"\nAuthentication Service\n\n@implements: @.aiwg\u002Frequirements\u002FUC-003-user-auth.md\n@architecture: @.aiwg\u002Farchitecture\u002Fadrs\u002FADR-005-jwt-strategy.md\n@security: @.aiwg\u002Fsecurity\u002Fcontrols\u002Fauthn-001.md\n@tests: @test\u002Fintegration\u002Ftest_auth.py\n\"\"\"\n```\n\n### In Markdown Documents\n\nAdd a References section:\n\n```markdown\n## References\n\n- @.aiwg\u002Frequirements\u002Fuser-stories.md - Functional requirements basis\n- @.aiwg\u002Farchitecture\u002Fsoftware-architecture-doc.md - Architecture context\n- @.aiwg\u002Fsecurity\u002Fthreat-model.md - Security considerations\n```\n\nOrdinary relative Markdown links are also indexed as graph edges when they\nresolve to another indexed artifact in the same active graph:\n\n```markdown\nSee [ADR-005](.\u002FADR-005-jwt-strategy.md) for the decision context.\n```\n\nUse @-mentions in `References` when you intend durable traceability or\nprovenance. Use Markdown links for reader navigation. External URLs,\nanchor-only links, images, and links to files outside the active graph do not\ncreate artifact dependency edges.\n\n### In Inline Comments\n\nFor specific code sections:\n\n```typescript\n\u002F\u002F Per @.aiwg\u002Fsecurity\u002Fcontrols\u002Fauthn-001.md - validate token expiry\nif (token.exp \u003C Date.now()) {\n  throw new AuthError('Token expired');\n}\n```\n\n## ID Format Rules\n\n| Type | Format | Example |\n|------|--------|---------|\n| Use Case | UC-NNN | UC-001, UC-042 |\n| NFR | NFR-CAT-NNN | NFR-SEC-001, NFR-PERF-002 |\n| ADR | ADR-NNN | ADR-001, ADR-015 |\n| Threat | TM-NNN | TM-001, TM-023 |\n| Test Case | TC-NNN | TC-001, TC-150 |\n\n**Rules**:\n- Always use 3-digit zero-padded numbers\n- Use lowercase for paths\n- Use hyphens for slugs (not underscores)\n\n## Best Practices\n\n1. **Be Specific**: Reference exact documents, not directories\n2. **Keep Current**: Update @-mentions when files move\n3. **Validate Often**: Run `mention-validate` before commits\n4. **Lint Style**: Run `\u002Fmention-lint --fix` to normalize\n5. **Generate Reports**: Use `mention-report` for traceability audits\n\n## CLI Equivalent\n\n```bash\naiwg mention-conventions\n```\n\n## Related Commands\n\n- `mention-wire` - Add @-mentions automatically\n- `mention-lint` - Validate style conventions\n- `mention-validate` - Check all @-mentions resolve\n\nDisplay conventions: $ARGUMENTS\n",{"name":5,"namespace":35,"platforms":36,"description":7},"aiwg",[37],"all","main","6754967c344ccb087a8de06972f55a41067b291b","agentic\u002Fcode\u002Faddons\u002Faiwg-utils\u002Fskills\u002Fmention-conventions",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-12 21:57:33",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add jmagly\u002Faiwg --skill mention-conventions",{"tool":54,"command":55},"bunx","bunx skills add jmagly\u002Faiwg --skill mention-conventions",{"tool":57,"command":58},"pnpm","pnpm dlx skills add jmagly\u002Faiwg --skill mention-conventions","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-utils\u002Fskills\u002Fmention-conventions\u002FSKILL.md",true,[],[63,91,115,121,128,142],{"skillNo":64,"name":65,"nameZh":6,"description":66,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":67,"categories":68,"keywords":70,"publishedAt":30},"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",[69],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90],"host","host hardening","hardening","read","re","recommendations","remediation","plan","port","verification","Bash","access","only","retention","audit","never","firewall","bind","secrets","request",{"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":101,"publishedAt":30},"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",[97,100],{"categoryNo":98,"categoryName":99,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[102,103,104,74,105,79,106,107,81,108,71,109,83,110,111,86,87,112,113,114],"exposure analysis","analysis","unknown","credentials","collection","ufw","ports","internet","local","scope","reconstruction","operator","write",{"skillNo":116,"name":65,"nameZh":6,"description":66,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":120,"publishedAt":30},"01M70P8QATMPKA78E4FT5D2TNA","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsecurity-engineering\u002Fskills\u002Fhost-hardening\u002FSKILL.md",[119],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[73,71,72,82,74,90,77,76,85,78,79,80,81,89,83,84,75,86,87,88],{"skillNo":122,"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":123,"categories":124,"keywords":127,"publishedAt":30},"01M70NMPVJ5H0JH131P60FW4R8","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fforensics-complete\u002Fskills\u002Fexposure-analysis\u002FSKILL.md",[125,126],{"categoryNo":98,"categoryName":99,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[103,102,86,105,79,106,81,104,71,109,83,110,111,74,87,108,107,112,113,114],{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":135,"publishedAt":30},"01M6CB4DDR0B4NNCFK7ZK7449H","fixture-skill","Exercise rule delivery.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Frule-delivery\u002Fskills\u002Ffixture-skill\u002FSKILL.md",[134],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[136,137,138,139,140,141],"fixture skill","fixture","rule","delivery","true","exercise",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":149,"publishedAt":30},"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",[148],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[150,151,110,152,137],"pi","pi local","duplicate"]