[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C293EKFJ9THJFQPVRGSARM":3,"skill-same:01M6C293EKFJ9THJFQPVRGSARM":118},{"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":55,"linkOnly":56,"markdownContent":57,"markdownBody":58,"frontMatter":59,"refName":89,"commitSha":90,"skillDirectory":91,"forksCount":92,"repositoryHtmlUrl":93,"repositoryHomepageUrl":94,"ownerHtmlUrl":95,"ownerBlogUrl":96,"ownerDescription":97,"updatedAt":98,"install":99,"resources":112},"01M6C293EKFJ9THJFQPVRGSARM","issue-audit",null,"Audit and triage general issue backlogs with read-only defaults, interactive cleanup decisions, and guidance steering; use this for \"audit open issues\" instead of aiwg-issue","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\u002Fframeworks\u002Fsdlc-complete\u002Fskills\u002Fissue-audit\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54],"audit","issue","issue audit","work","at","mode","actionable","close","filter","expression","project","local","time","tracker","auto","read","node","MCP","haiku","decision","project-management","text","access","markdown","Bash","open","credentials","issues","update","cleanup","config","2026-11-10 10:12:30",false,"---\nnamespace: aiwg\nname: issue-audit\nscript:\n  entrypoint: scripts\u002Faudit.mjs\n  runtime: node\n  cwd: project-root\nplatforms: [all]\ndescription: Audit and triage general issue backlogs with read-only defaults, interactive cleanup decisions, and guidance steering; use this for \"audit open issues\" instead of aiwg-issue\nrequires:\n  - tracker: issue tracker accessible (gitea | github | local) — auto-detected from project config unless --provider is supplied\nensures:\n  - audit-report: structured issue backlog audit grouped by actionable category\n  - read-only-default: no tracker mutations unless an explicit apply\u002Fupdate mode is requested\n  - \"if --interactive: one triage decision at a time for ambiguous cleanup choices\"\nerrors:\n  - tracker-unavailable: cannot access issue tracker; check credentials or --provider flag\n  - filter-invalid: filter expression cannot be parsed by the configured issue provider\ninvariants:\n  - never close, retitle, relabel, or comment on issues by default\n  - separate audit recommendations from implementation work; use address-issues for execution\n  - preserve operator guidance verbatim in the audit context and final report\ncommandHint:\n  argumentHint: \"[--filter \\\"status:open label:bug\\\"] [--provider gitea|github|local] [--guidance \\\"text\\\"] [--checkpoint PATH] [--page-size 25] [--max-items 250] [--format json|markdown]\"\n  allowedTools: Read, Bash, Grep, Glob, mcp__gitea__*\n  model: haiku\n  category: project-management\n  modelRole: efficiency\n  modelTier: economy\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# Issue Audit\n\n## Semantic Label Resolution\n\nResolve `.aiwg\u002Faiwg.config` `remotes.issue_tracker` and `issues.labels` before\nsearching or grouping work. Audit filters, batches, lifecycle states,\npriorities, ownership, blocked reasons, approval states, and automation\neligibility by stable role\u002Fcategory, then translate through the target\nprovider's configured label name. Report taxonomy diagnostics without silently\ncreating labels. When `issues.labels` is absent, retain legacy behavior with a\nclear fallback warning.\n\nYou are the issue backlog auditor. Your job is to inspect issue state, identify cleanup and prioritization opportunities, and present actionable triage recommendations without starting implementation work.\n\nUse `address-issues` when the operator wants issues fixed. Use `issue-audit` when the operator wants to know what should be closed, linked, refreshed, deferred, prioritized, or investigated next.\n\n## Natural Language Triggers\n\nUsers may say:\n\n- \"issue-audit\"\n- \"audit-issues\"\n- \"audit open issues\"\n- \"triage the issue backlog\"\n- \"review stale issues\"\n- \"audit bugs\"\n- \"find duplicate issues\"\n- \"what issues should we close\"\n- \"which issues should we address next\"\n- \"review open epics\"\n- \"audit deferred issues\"\n\n## Parameters\n\n### Bounded execution and resume\n\n```bash\naiwg run skill issue-audit -- --filter \"status:open\" --guidance \"rank release blockers\" --page-size 25 --max-items 250 --format json\n# Repeat the same command and checkpoint to continue after a stop.\naiwg run skill issue-audit -- --checkpoint \u002Fpath\u002Fto\u002Faudit.json --max-items 250 --format markdown\n```\n\nThe executable is read-only. It resolves the configured tracker and semantic labels,\npages metadata first (1–100 issues; default 25), and hydrates bodies\u002Fcomments only\nfor selected epic, deferred, duplicate, superseded, or fixed candidates. `--select\nID,ID` overrides hydration selection. Findings are triage candidates requiring\nreview; the executable makes no claim to prove duplicates or completed acceptance.\n\n`--max-items` (250), `--max-pages` (100) and `--max-context-bytes` (262144) bound each invocation;\n`--max-bytes` (65536) bounds a metadata page plus selected hydration. REST list\nresponses may include bodies: discard them immediately without passing them to\naudit decisions or checkpoints. Oversized responses stop coverage explicitly.\n\nThe default checkpoint is `working\u002Fissue-audit\u002Fcheckpoint.json` beneath the\nconfigured artifact root; `--checkpoint PATH` selects another file. Atomic item\ncheckpoints retain cursor, pending metadata, completed IDs and recommendations,\nnever issue bodies\u002Fcomments. Resume preserves provider, actor, filter, guidance,\npage size and selection; budgets may change. Completed items are not rehydrated\nor duplicated. Local index changes and changed forge page boundaries\u002Ftotals stop\nwith `tracker-changed`; start a separate checkpoint to audit a changed backlog.\nForge offset APIs cannot guarantee a snapshot of concurrently edited unseen pages.\n\nJSON reports `coverage.totalSeen`, `totalHydrated`, `totalCompleted`, `incomplete`\nand `reason`, plus continuation and batch counts\u002Fbytes. Markdown visibly marks\n`INCOMPLETE`. Budget stops, interruptions and provider errors exit 2; completion\nexits 0. SIGINT\u002FSIGTERM preserve the last completed item. Abrupt termination may\nrepeat unfinished reads, but never a committed finding. Inspect\u002Frecover an orphan\nlock whose owner cannot be proven dead before retrying.\n\nExecutable filters support `status:open|closed|all` and repeated `label:NAME` or\nsemantic label roles. Unsupported filters fail explicitly. `--apply` and\n`--interactive` require the instructional workflow below and are rejected by the\nexecutable before tracker access; its default and `--dry-run` never mutate issues.\n\n### --all-open\n\nAudit all open issues. This is the default when no issue numbers or filter are supplied.\n\n### --filter\n\nFilter expression aligned with `issue-list` \u002F `address-issues` conventions:\n\n```bash\n--filter \"status:open label:bug\"\n--filter \"status:open label:deferred\"\n--filter \"status:open label:epic\"\n```\n\n### --provider\n\nOverride issue tracker provider: `gitea`, `github`, or `local`. Defaults to project configuration.\n\n### --interactive\n\nAsk one focused question at a time for ambiguous triage calls. Use this for cleanup sessions where the operator wants to decide issue fate incrementally.\n\nInteractive prompts should be concrete:\n\n1. \"Close #N as not planned, keep open with check date, or leave unchanged?\"\n2. \"Make #A parent of #B, cross-link only, or leave separate?\"\n3. \"Refresh this epic body now, file follow-up, or skip?\"\n4. \"Prioritize this blocker for `address-issues`, defer, or keep in backlog?\"\n\nDo not batch many decisions into one prompt. After each answer, update the audit plan and continue.\n\n### --guidance\n\nUpfront direction that steers the audit lens without changing the core checklist.\n\nExamples:\n\n```bash\n--guidance \"focus on stale deferred work\"\n--guidance \"find epics whose child status is out of date\"\n--guidance \"prioritize release blockers over feature backlog\"\n--guidance \"only look for duplicates and already-fixed issues\"\n```\n\nInclude the guidance text in the final report.\n\n### --dry-run\n\nNever mutate issue tracker state. This is the default behavior, but the flag is accepted for parity with other issue skills and for explicit operator confidence.\n\n### --apply\n\nApply agreed cleanup actions such as comments, issue body refreshes, label changes, or closures. Only use when the operator explicitly requests it. In interactive mode, ask before each mutation unless the operator has given a narrow batch instruction.\n\n## Audit Checklist\n\nRun the relevant checks for the selected issue set:\n\n1. **Open blocker audit** — high-priority bugs, release blockers, or parent epic blockers that should be addressed next.\n2. **Stale issue audit** — old issues with no update, no milestone, or obsolete context.\n3. **Deferred issue audit** — deferred issues missing check dates, explicit reopen triggers, or \"not planned\" decisions.\n4. **Epic hygiene audit** — parent epics whose child table, acceptance state, or blocker section no longer matches child issues.\n5. **Duplicate\u002Foverlap audit** — issues that are duplicates, parent\u002Fchild candidates, or sibling tracks needing explicit cross-links.\n6. **Already-fixed audit** — issues whose acceptance appears satisfied by current code, docs, or comments.\n7. **Quality audit** — issues missing reproduction, environment, acceptance criteria, scope boundaries, or labels.\n8. **Next-action audit** — issues worth sending to `address-issues` next, ordered by impact and dependency unlock.\n\nUse repository search only when issue state alone is insufficient to decide whether something is already implemented or superseded.\n\n## Output Format\n\nDefault report:\n\n```markdown\n# Issue Audit\n\nScope: \u003Cprovider\u002Ffilter\u002Fall-open>\nGuidance: \u003Cguidance or none>\nMode: read-only\n\n## Counts\n\n- Open issues audited: N\n- High-priority blockers: N\n- Stale\u002Fdeferred cleanup candidates: N\n- Duplicate\u002Foverlap candidates: N\n- Epics needing refresh: N\n\n## Findings\n\n### High Priority\n- #N — \u003Creason> — Recommended action: \u003Caction>\n\n### Cleanup Candidates\n- #N — \u003Creason> — Recommended action: \u003Caction>\n\n### Epic Hygiene\n- #N — \u003Creason> — Recommended action: \u003Caction>\n\n### Duplicate \u002F Relationship Candidates\n- #A \u002F #B — \u003Crelationship> — Recommended action: \u003Caction>\n\n## Recommended Next Moves\n\n1. \u003Chighest-value action>\n2. \u003Cnext action>\n3. \u003Cnext action>\n```\n\nWhen `--interactive` is used, report each completed decision and remaining undecided items at the end.\n\n## Mutation Rules\n\nDefault is read-only. If `--apply` is explicitly requested:\n\n- Comments should state the triage decision and date.\n- Closures should say why the issue is not planned, duplicate, superseded, or fixed.\n- Epic body refreshes should preserve useful original rationale while updating child status and current blockers.\n- Relationship comments should identify parent\u002Fchild\u002Fsibling status without collapsing distinct scopes.\n- Never implement code under `issue-audit`; route implementation candidates to `address-issues`.\n\n## Examples\n\n```bash\n# Audit all open issues\nissue-audit\n\n# Audit stale deferred items\nissue-audit --filter \"status:open label:deferred\" --guidance \"close mistake issues or add check dates\"\n\n# Walk through cleanup decisions one by one\nissue-audit --all-open --interactive --guidance \"focus on stale issues and duplicates\"\n\n# Read-only priority audit for implementation planning\nissue-audit --filter \"status:open\" --guidance \"rank blockers for address-issues\"\n\n# Apply already-decided cleanup actions interactively\nissue-audit --interactive --apply --guidance \"ask before every issue closure\"\n```\n\n## Relationship To Other Issue Skills\n\n| Skill | Use when |\n|---|---|\n| `issue-list` | You only need a filtered issue listing |\n| `issue-audit` | You need triage, cleanup recommendations, or prioritization |\n| `issue-comment` | You already know the exact comment to post |\n| `issue-close` | You already know the issue should close |\n| `address-issues` | You want implementation work performed against one or more issues |\n| `issue-sync` \u002F `issue-auto-sync` | You need commits and issue state reconciled |\n\n## Success Criteria\n\n- Audit scope is explicit.\n- Findings are grouped by action type.\n- Recommendations are concrete enough to execute.\n- Mutations occur only with explicit permission.\n- The final report tells the operator which issue(s) to send to `address-issues` next.\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# Issue Audit\n\n## Semantic Label Resolution\n\nResolve `.aiwg\u002Faiwg.config` `remotes.issue_tracker` and `issues.labels` before\nsearching or grouping work. Audit filters, batches, lifecycle states,\npriorities, ownership, blocked reasons, approval states, and automation\neligibility by stable role\u002Fcategory, then translate through the target\nprovider's configured label name. Report taxonomy diagnostics without silently\ncreating labels. When `issues.labels` is absent, retain legacy behavior with a\nclear fallback warning.\n\nYou are the issue backlog auditor. Your job is to inspect issue state, identify cleanup and prioritization opportunities, and present actionable triage recommendations without starting implementation work.\n\nUse `address-issues` when the operator wants issues fixed. Use `issue-audit` when the operator wants to know what should be closed, linked, refreshed, deferred, prioritized, or investigated next.\n\n## Natural Language Triggers\n\nUsers may say:\n\n- \"issue-audit\"\n- \"audit-issues\"\n- \"audit open issues\"\n- \"triage the issue backlog\"\n- \"review stale issues\"\n- \"audit bugs\"\n- \"find duplicate issues\"\n- \"what issues should we close\"\n- \"which issues should we address next\"\n- \"review open epics\"\n- \"audit deferred issues\"\n\n## Parameters\n\n### Bounded execution and resume\n\n```bash\naiwg run skill issue-audit -- --filter \"status:open\" --guidance \"rank release blockers\" --page-size 25 --max-items 250 --format json\n# Repeat the same command and checkpoint to continue after a stop.\naiwg run skill issue-audit -- --checkpoint \u002Fpath\u002Fto\u002Faudit.json --max-items 250 --format markdown\n```\n\nThe executable is read-only. It resolves the configured tracker and semantic labels,\npages metadata first (1–100 issues; default 25), and hydrates bodies\u002Fcomments only\nfor selected epic, deferred, duplicate, superseded, or fixed candidates. `--select\nID,ID` overrides hydration selection. Findings are triage candidates requiring\nreview; the executable makes no claim to prove duplicates or completed acceptance.\n\n`--max-items` (250), `--max-pages` (100) and `--max-context-bytes` (262144) bound each invocation;\n`--max-bytes` (65536) bounds a metadata page plus selected hydration. REST list\nresponses may include bodies: discard them immediately without passing them to\naudit decisions or checkpoints. Oversized responses stop coverage explicitly.\n\nThe default checkpoint is `working\u002Fissue-audit\u002Fcheckpoint.json` beneath the\nconfigured artifact root; `--checkpoint PATH` selects another file. Atomic item\ncheckpoints retain cursor, pending metadata, completed IDs and recommendations,\nnever issue bodies\u002Fcomments. Resume preserves provider, actor, filter, guidance,\npage size and selection; budgets may change. Completed items are not rehydrated\nor duplicated. Local index changes and changed forge page boundaries\u002Ftotals stop\nwith `tracker-changed`; start a separate checkpoint to audit a changed backlog.\nForge offset APIs cannot guarantee a snapshot of concurrently edited unseen pages.\n\nJSON reports `coverage.totalSeen`, `totalHydrated`, `totalCompleted`, `incomplete`\nand `reason`, plus continuation and batch counts\u002Fbytes. Markdown visibly marks\n`INCOMPLETE`. Budget stops, interruptions and provider errors exit 2; completion\nexits 0. SIGINT\u002FSIGTERM preserve the last completed item. Abrupt termination may\nrepeat unfinished reads, but never a committed finding. Inspect\u002Frecover an orphan\nlock whose owner cannot be proven dead before retrying.\n\nExecutable filters support `status:open|closed|all` and repeated `label:NAME` or\nsemantic label roles. Unsupported filters fail explicitly. `--apply` and\n`--interactive` require the instructional workflow below and are rejected by the\nexecutable before tracker access; its default and `--dry-run` never mutate issues.\n\n### --all-open\n\nAudit all open issues. This is the default when no issue numbers or filter are supplied.\n\n### --filter\n\nFilter expression aligned with `issue-list` \u002F `address-issues` conventions:\n\n```bash\n--filter \"status:open label:bug\"\n--filter \"status:open label:deferred\"\n--filter \"status:open label:epic\"\n```\n\n### --provider\n\nOverride issue tracker provider: `gitea`, `github`, or `local`. Defaults to project configuration.\n\n### --interactive\n\nAsk one focused question at a time for ambiguous triage calls. Use this for cleanup sessions where the operator wants to decide issue fate incrementally.\n\nInteractive prompts should be concrete:\n\n1. \"Close #N as not planned, keep open with check date, or leave unchanged?\"\n2. \"Make #A parent of #B, cross-link only, or leave separate?\"\n3. \"Refresh this epic body now, file follow-up, or skip?\"\n4. \"Prioritize this blocker for `address-issues`, defer, or keep in backlog?\"\n\nDo not batch many decisions into one prompt. After each answer, update the audit plan and continue.\n\n### --guidance\n\nUpfront direction that steers the audit lens without changing the core checklist.\n\nExamples:\n\n```bash\n--guidance \"focus on stale deferred work\"\n--guidance \"find epics whose child status is out of date\"\n--guidance \"prioritize release blockers over feature backlog\"\n--guidance \"only look for duplicates and already-fixed issues\"\n```\n\nInclude the guidance text in the final report.\n\n### --dry-run\n\nNever mutate issue tracker state. This is the default behavior, but the flag is accepted for parity with other issue skills and for explicit operator confidence.\n\n### --apply\n\nApply agreed cleanup actions such as comments, issue body refreshes, label changes, or closures. Only use when the operator explicitly requests it. In interactive mode, ask before each mutation unless the operator has given a narrow batch instruction.\n\n## Audit Checklist\n\nRun the relevant checks for the selected issue set:\n\n1. **Open blocker audit** — high-priority bugs, release blockers, or parent epic blockers that should be addressed next.\n2. **Stale issue audit** — old issues with no update, no milestone, or obsolete context.\n3. **Deferred issue audit** — deferred issues missing check dates, explicit reopen triggers, or \"not planned\" decisions.\n4. **Epic hygiene audit** — parent epics whose child table, acceptance state, or blocker section no longer matches child issues.\n5. **Duplicate\u002Foverlap audit** — issues that are duplicates, parent\u002Fchild candidates, or sibling tracks needing explicit cross-links.\n6. **Already-fixed audit** — issues whose acceptance appears satisfied by current code, docs, or comments.\n7. **Quality audit** — issues missing reproduction, environment, acceptance criteria, scope boundaries, or labels.\n8. **Next-action audit** — issues worth sending to `address-issues` next, ordered by impact and dependency unlock.\n\nUse repository search only when issue state alone is insufficient to decide whether something is already implemented or superseded.\n\n## Output Format\n\nDefault report:\n\n```markdown\n# Issue Audit\n\nScope: \u003Cprovider\u002Ffilter\u002Fall-open>\nGuidance: \u003Cguidance or none>\nMode: read-only\n\n## Counts\n\n- Open issues audited: N\n- High-priority blockers: N\n- Stale\u002Fdeferred cleanup candidates: N\n- Duplicate\u002Foverlap candidates: N\n- Epics needing refresh: N\n\n## Findings\n\n### High Priority\n- #N — \u003Creason> — Recommended action: \u003Caction>\n\n### Cleanup Candidates\n- #N — \u003Creason> — Recommended action: \u003Caction>\n\n### Epic Hygiene\n- #N — \u003Creason> — Recommended action: \u003Caction>\n\n### Duplicate \u002F Relationship Candidates\n- #A \u002F #B — \u003Crelationship> — Recommended action: \u003Caction>\n\n## Recommended Next Moves\n\n1. \u003Chighest-value action>\n2. \u003Cnext action>\n3. \u003Cnext action>\n```\n\nWhen `--interactive` is used, report each completed decision and remaining undecided items at the end.\n\n## Mutation Rules\n\nDefault is read-only. If `--apply` is explicitly requested:\n\n- Comments should state the triage decision and date.\n- Closures should say why the issue is not planned, duplicate, superseded, or fixed.\n- Epic body refreshes should preserve useful original rationale while updating child status and current blockers.\n- Relationship comments should identify parent\u002Fchild\u002Fsibling status without collapsing distinct scopes.\n- Never implement code under `issue-audit`; route implementation candidates to `address-issues`.\n\n## Examples\n\n```bash\n# Audit all open issues\nissue-audit\n\n# Audit stale deferred items\nissue-audit --filter \"status:open label:deferred\" --guidance \"close mistake issues or add check dates\"\n\n# Walk through cleanup decisions one by one\nissue-audit --all-open --interactive --guidance \"focus on stale issues and duplicates\"\n\n# Read-only priority audit for implementation planning\nissue-audit --filter \"status:open\" --guidance \"rank blockers for address-issues\"\n\n# Apply already-decided cleanup actions interactively\nissue-audit --interactive --apply --guidance \"ask before every issue closure\"\n```\n\n## Relationship To Other Issue Skills\n\n| Skill | Use when |\n|---|---|\n| `issue-list` | You only need a filtered issue listing |\n| `issue-audit` | You need triage, cleanup recommendations, or prioritization |\n| `issue-comment` | You already know the exact comment to post |\n| `issue-close` | You already know the issue should close |\n| `address-issues` | You want implementation work performed against one or more issues |\n| `issue-sync` \u002F `issue-auto-sync` | You need commits and issue state reconciled |\n\n## Success Criteria\n\n- Audit scope is explicit.\n- Findings are grouped by action type.\n- Recommendations are concrete enough to execute.\n- Mutations occur only with explicit permission.\n- The final report tells the operator which issue(s) to send to `address-issues` next.\n",{"name":5,"errors":60,"script":65,"ensures":68,"requires":74,"namespace":77,"platforms":78,"invariants":80,"commandHint":84,"description":7},[61,63],{"tracker-unavailable":62},"cannot access issue tracker; check credentials or --provider flag",{"filter-invalid":64},"filter expression cannot be parsed by the configured issue provider",{"cwd":66,"runtime":40,"entrypoint":67},"project-root","scripts\u002Faudit.mjs",[69,71,73],{"audit-report":70},"structured issue backlog audit grouped by actionable category",{"read-only-default":72},"no tracker mutations unless an explicit apply\u002Fupdate mode is requested","if --interactive: one triage decision at a time for ambiguous cleanup choices",[75],{"tracker":76},"issue tracker accessible (gitea | github | local) — auto-detected from project config unless --provider is supplied","aiwg",[79],"all",[81,82,83],"never close, retitle, relabel, or comment on issues by default","separate audit recommendations from implementation work; use address-issues for execution","preserve operator guidance verbatim in the audit context and final report",{"model":42,"category":44,"modelRole":85,"modelTier":86,"allowedTools":87,"argumentHint":88},"efficiency","economy","Read, Bash, Grep, Glob, mcp__gitea__*","[--filter \"status:open label:bug\"] [--provider gitea|github|local] [--guidance \"text\"] [--checkpoint PATH] [--page-size 25] [--max-items 250] [--format json|markdown]","main","6754967c344ccb087a8de06972f55a41067b291b","agentic\u002Fcode\u002Fframeworks\u002Fsdlc-complete\u002Fskills\u002Fissue-audit",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-11 08:11:25",{"source":8,"skillName":5,"commands":100,"prompt":110,"zipAvailable":111},[101,104,107],{"tool":102,"command":103},"npx","npx skills add jmagly\u002Faiwg --skill issue-audit",{"tool":105,"command":106},"bunx","bunx skills add jmagly\u002Faiwg --skill issue-audit",{"tool":108,"command":109},"pnpm","pnpm dlx skills add jmagly\u002Faiwg --skill issue-audit","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsdlc-complete\u002Fskills\u002Fissue-audit\u002FSKILL.md",true,[113],{"path":67,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":116,"sourceHtmlUrl":117},"SCRIPT","脚本",456,"https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsdlc-complete\u002Fskills\u002Fissue-audit\u002Fscripts\u002Faudit.mjs",[119,143,165,171,178,192],{"skillNo":120,"name":121,"nameZh":6,"description":122,"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":126,"publishedAt":55},"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",[125],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[127,128,129,39,130,131,132,133,134,135,48,46,136,137,24,138,139,140,141,142],"host","host hardening","hardening","re","recommendations","remediation","plan","port","verification","only","retention","never","firewall","bind","secrets","request",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":153,"publishedAt":55},"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",[149,152],{"categoryNo":150,"categoryName":151,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[154,155,156,39,50,134,157,158,48,159,127,160,136,35,161,138,139,162,163,164],"exposure analysis","analysis","unknown","collection","ufw","ports","internet","scope","reconstruction","operator","write",{"skillNo":166,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":170,"publishedAt":55},"01M70P8QATMPKA78E4FT5D2TNA","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsecurity-engineering\u002Fskills\u002Fhost-hardening\u002FSKILL.md",[169],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[129,127,128,46,39,142,132,131,24,133,134,135,48,141,136,137,130,138,139,140],{"skillNo":172,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":173,"categories":174,"keywords":177,"publishedAt":55},"01M70NMPVJ5H0JH131P60FW4R8","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fforensics-complete\u002Fskills\u002Fexposure-analysis\u002FSKILL.md",[175,176],{"categoryNo":150,"categoryName":151,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[155,154,138,50,134,157,48,156,127,160,136,35,161,39,139,159,158,162,163,164],{"skillNo":179,"name":180,"nameZh":6,"description":181,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":182,"categories":183,"keywords":185,"publishedAt":55},"01M6CB4DDR0B4NNCFK7ZK7449H","fixture-skill","Exercise rule delivery.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Frule-delivery\u002Fskills\u002Ffixture-skill\u002FSKILL.md",[184],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[186,187,188,189,190,191],"fixture skill","fixture","rule","delivery","true","exercise",{"skillNo":193,"name":194,"nameZh":6,"description":195,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":196,"categories":197,"keywords":199,"publishedAt":55},"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",[198],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[200,201,35,202,187],"pi","pi local","duplicate"]