[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M79DS2MYYERTKVHHSZ2PC2ER":3,"skill-same:01M79DS2MYYERTKVHHSZ2PC2ER":81},{"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":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":14,"repositoryHtmlUrl":50,"repositoryHomepageUrl":6,"ownerHtmlUrl":51,"ownerBlogUrl":6,"ownerDescription":52,"updatedAt":53,"install":54,"resources":66},"01M79DS2MYYERTKVHHSZ2PC2ER","harness-bugfix",null,"Operator-driven bug-fix flow from a JIRA bug link to a committed (never pushed) fix. Ingests one or more bug links, triages each against the CURRENT source code, comments back to QA when it is not a bug, and for real bugs splits a worktree, fixes, reviews, gets operator confirmation, and commits. Multiple bugs are processed ONE AT A TIME (pausing after each for the operator to push) to avoid merge conflicts. Trigger: fix a bug, bug ticket, triage a bug, BUG-123, is this a real bug. Do NOT load for: new features\u002Frequirements (use harness-flow), standalone review, or release.","foden303\u002Fharness","foden303","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F77870743?v=4","01M79DK06BJVG7HTKT05FM221X","Foden Ngo","01M79DK071J1HMYV20FJSMG71X",0,"MIT","https:\u002F\u002Fgithub.com\u002Ffoden303\u002Fharness\u002Fblob\u002Fmain\u002Fskills\u002Fharness-bugfix\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: harness-bugfix\ndescription: \"Operator-driven bug-fix flow from a JIRA bug link to a committed (never pushed) fix. Ingests one or more bug links, triages each against the CURRENT source code, comments back to QA when it is not a bug, and for real bugs splits a worktree, fixes, reviews, gets operator confirmation, and commits. Multiple bugs are processed ONE AT A TIME (pausing after each for the operator to push) to avoid merge conflicts. Trigger: fix a bug, bug ticket, triage a bug, BUG-123, is this a real bug. Do NOT load for: new features\u002Frequirements (use harness-flow), standalone review, or release.\"\ndescription-en: \"Operator-driven bug-fix flow from a JIRA bug link to a committed (never pushed) fix. Ingests one or more bug links, triages each against the CURRENT source code, comments back to QA when it is not a bug, and for real bugs splits a worktree, fixes, reviews, gets operator confirmation, and commits. Multiple bugs are processed ONE AT A TIME (pausing after each for the operator to push) to avoid merge conflicts. Trigger: fix a bug, bug ticket, triage a bug, BUG-123, is this a real bug. Do NOT load for: new features\u002Frequirements (use harness-flow), standalone review, or release.\"\nkind: workflow\npurpose: \"Orchestrate bug ingest -> triage vs current source -> (QA comment if not a bug) -> worktree fix -> review -> confirm -> commit (no push), one bug at a time\"\ntrigger: \"fix a bug, bug ticket, triage a bug, is this a real bug\"\nshape: delegate\nrole: orchestrator\nbase: harness-work\npair: harness-flow\nowner: harness-core\nsince: \"2026-07-16\"\nallowed-tools: [\"Read\", \"Write\", \"Edit\", \"Bash\", \"Grep\", \"Glob\", \"Task\", \"AskUserQuestion\", \"ScheduleWakeup\", \"mcp__claude_ai_Atlassian_Rovo__*\"]\nargument-hint: \"[\u003CBUG-KEY>|\u003Curl> ...] [--resume] [--accept-html] [--close-jira] [--dry-run]\"\nuser-invocable: true\neffort: high\n---\n\n# harness-bugfix\n\nThe bug sibling of `harness-flow`. It takes a bug from a JIRA link to a\n**committed (never pushed) fix**:\n\n> **bug link(s) → triage vs current source → (comment QA if not a bug) →\n> worktree fix → review → operator confirms → commit → operator pushes → next bug.**\n\nIt reuses harness-flow's infrastructure (MCP ingest, `flow-session.v1`,\nworktree + work via `harness-work`, the confirm gate, commit-no-push, and the\napproval-before-external-write gate). The differences from `harness-flow` are:\n\n| | harness-flow (features) | harness-bugfix (bugs) |\n|---|---|---|\n| Multiple links | merged into one feature | **one at a time, sequentially** |\n| \"Verify\" step | requirement completeness | **triage against the current source code** |\n| Ask-back target | BA | **QA** (the bug reporter) |\n| Negative outcome | — | **not a bug → comment QA, close, next bug** |\n| Between units | n\u002Fa | **pause after each commit for the operator to push** |\n\n## Core contract (read first)\n\n- **Operator supplies the bug link(s).** A JIRA bug key (`BUG-123`) or Confluence\n  URL. No JQL\u002Fboard polling.\n- **Multiple bugs run one at a time.** `harness-bugfix BUG-1 BUG-2 BUG-3` fixes\n  BUG-1 fully, **pauses for you to push**, then on `--resume` fetches fresh main\n  and starts BUG-2 from it. This keeps each fix on an up-to-date base and avoids\n  merge conflicts between fixes. Bugs are NOT merged into one unit.\n- **The harness commits, the operator pushes.** Never `git push` \u002F `gh pr create`.\n- **Every external write needs your approval first.** A QA comment, a JIRA\n  transition, or a done comment is drafted, shown to you, and only sent on an\n  explicit approval. Nothing is auto-posted.\n- **Re-entrant.** Per-bug state lives in `flow-session.v1`\n  (`.claude\u002Fstate\u002Fflow\u002F\u003Cbug-key>\u002Fsession.json`); the batch order lives in\n  `.claude\u002Fstate\u002Fflow\u002Fbug-batch.json`.\n\n## Quick Reference\n\n| Input | Behavior |\n|------|------|\n| `\u002Fharness-bugfix BUG-123` | Triage + fix one bug |\n| `\u002Fharness-bugfix BUG-1 BUG-2 BUG-3` | Fix sequentially; pause after each for you to push |\n| `\u002Fharness-bugfix --resume` | Continue the batch (after you pushed the previous fix) |\n| `\u002Fharness-bugfix BUG-123 --close-jira` | After commit, transition + post a done comment (you approve) |\n| `\u002Fharness-bugfix BUG-123 --dry-run` | Triage + walk the flow with no MCP writes \u002F no commit |\n\n## Resolving the plugin bundle root\n\nSame as harness-flow: resolve `HARNESS_PLUGIN_ROOT` from `CLAUDE_PLUGIN_ROOT`\n(if it contains `scripts\u002F`) else from `CLAUDE_SKILL_DIR`\n(`${CLAUDE_SKILL_DIR}\u002F..\u002F..`, or `..\u002F..\u002F..` for a mirror). Call only\n`${HARNESS_PLUGIN_ROOT}\u002Fscripts\u002F...`; keep `Plans.md` \u002F `.claude\u002Fstate\u002F...` on\nthe host project side.\n\n## Batch orchestration (sequential, pause-to-push)\n\nReference: [`${CLAUDE_SKILL_DIR}\u002Freferences\u002Fsequential-batch.md`](${CLAUDE_SKILL_DIR}\u002Freferences\u002Fsequential-batch.md)\n\n1. Resolve `HARNESS_PLUGIN_ROOT` and probe MCP health once\n   (`flow-mcp-health.sh`, tri-state; `not-configured`\u002F`unreachable` → pause with\n   `decision_needed.v1`).\n2. Determine the batch:\n   - With refs: write\u002Frefresh `.claude\u002Fstate\u002Fflow\u002Fbug-batch.json`\n     (`{refs:[...], created_at}`).\n   - With `--resume` (no refs): read that batch file.\n3. Pick the **next bug** = the first ref whose `flow-session` status is not\n   `done` and not `not-a-bug`. If none remain → report the batch complete.\n4. Run the per-bug state machine (below) for that one bug until it reaches\n   `awaiting-push` (real bug, committed) or `not-a-bug`.\n5. On `awaiting-push`: **stop** and tell the operator to push+merge, then re-run\n   `\u002Fharness-bugfix --resume`. On `not-a-bug`: continue directly to the next bug.\n\n## Per-bug state machine\n\n```\n[Step 1] Ingest        status: ingesting -> ingested\n  Reference: references\u002Ftriage-rubric.md (ingest section)\n  git fetch origin; base = current up-to-date main\u002FHEAD (so the fix starts fresh).\n  JIRA key -> getJiraIssue (summary, description, steps-to-reproduce, environment,\n    labels, status, reporter=QA). atlassianUserInfo once -> bot accountId.\n  flow-ingest-bug.sh ... --out .claude\u002Fstate\u002Fflow\u002F\u003Cbug-key>\u002Fbug.json\n  |\n  v\n[Step 2] Triage        status: triaging\n  Reference: references\u002Ftriage-rubric.md\n  Check the report AGAINST THE CURRENT SOURCE CODE: locate the code path, decide\n  whether the reported behavior is actually a defect (vs expected \u002F already-fixed\n  \u002F config \u002F user error). Prefer reproducing with a failing test.\n  Write triage {verdict, evidence, code_refs[], reproduced, open_questions[]}.\n  verdict == bug         -> Step 4\n  verdict == not-a-bug   -> Step 3a\n  verdict == needs-info  -> Step 3b\n  |\n  v\n[Step 3a] Not a bug     status: not-a-bug   (terminal for this bug)\n  Reference: references\u002Fqa-comment.md\n  Draft a QA comment explaining WHY it is not a bug (cite code_refs). GET\n  OPERATOR APPROVAL, then post (addCommentToJiraIssue) to the reporter's ticket.\n  Optionally transition to a \"Not a Bug\"\u002F\"Rejected\" state (--close-jira, approved).\n  -> return to batch: next bug.\n\n[Step 3b] Needs info    status: awaiting-ba  (reused: awaiting a ticket reply)\n  Reference: references\u002Fqa-comment.md\n  Draft a question to QA, GET APPROVAL, post, then auto-poll for the reply\n  (flow-ba-match.sh) and re-run Step 2. Round cap 3 -> escalate.\n  |\n  v\n[Step 4] Fix           status: working\n  Delegate to harness-work (Solo for a single bug). It creates the worktree\n  under .harness-worktrees\u002F, fixes, self-reviews, and commits. If the bug was\n  reproduced with a failing test, that test is the TDD RED evidence.\n  Inject the bug key into the briefing so the commit reads [BUG-123].\n  |\n  v\n[Step 5] Review        status: reviewing\n  Reuse harness-work's built-in review loop (review-result.v1). Add\n  harness-review --security for security bugs. REQUEST_CHANGES -> fix loop.\n  |\n  v\n[Step 6] Confirm       status: awaiting-confirm\n  Reference: harness-flow references\u002Fconfirm-gate.md (decision_needed.v1 default,\n  --accept-html opt-in). Show: bug summary, root cause, the fix, review verdict,\n  changed files, commit preview. OK -> Step 7; not-OK -> fix loop.\n  |\n  v\n[Step 7] Commit        status: committing -> awaiting-push\n  Reference: harness-flow references\u002Fcommit-close.md\n  The fix commit is tagged [BUG-123]. NEVER push. --close-jira (approved) may\n  transition + post a done comment. Then STOP:\n  \"Committed \u003Chash> for BUG-123. Push it manually, then \u002Fharness-bugfix --resume\n   for the next bug.\" status stays awaiting-push until the operator resumes.\n  |\n  v  (operator pushed; --resume)\n  -> mark this bug done, return to batch -> next bug (Step 1 with fresh fetch).\n```\n\n## Stop \u002F pause conditions\n\n| Condition | status | Response |\n|-----------|--------|----------|\n| Not a bug | `not-a-bug` | Approve+post QA comment; go to next bug |\n| Triage needs QA info | `awaiting-ba` | Approve+post question; auto-poll reply |\n| Fix committed, awaiting your push | `awaiting-push` | STOP; you push, then `--resume` |\n| not-OK at confirm \u002F REQUEST_CHANGES | `working` | Fix loop (reuse failure-reticketing) |\n| Round\u002Frework cap hit | `escalated` | `decision_needed.v1` |\n| Batch complete | (all `done`\u002F`not-a-bug`) | Report summary |\n\n## Related skills\n\n- `harness-flow` — the feature sibling (merged multi-ticket; BA instead of QA)\n- `harness-work` — worktree + fix + review loop (Steps 4-5)\n- `harness-review` — extra review lens for security bugs (Step 5)\n- `harness-accept` — optional ship\u002Fwait\u002Freject HTML at the confirm gate (Step 6)\n","# harness-bugfix\n\nThe bug sibling of `harness-flow`. It takes a bug from a JIRA link to a\n**committed (never pushed) fix**:\n\n> **bug link(s) → triage vs current source → (comment QA if not a bug) →\n> worktree fix → review → operator confirms → commit → operator pushes → next bug.**\n\nIt reuses harness-flow's infrastructure (MCP ingest, `flow-session.v1`,\nworktree + work via `harness-work`, the confirm gate, commit-no-push, and the\napproval-before-external-write gate). The differences from `harness-flow` are:\n\n| | harness-flow (features) | harness-bugfix (bugs) |\n|---|---|---|\n| Multiple links | merged into one feature | **one at a time, sequentially** |\n| \"Verify\" step | requirement completeness | **triage against the current source code** |\n| Ask-back target | BA | **QA** (the bug reporter) |\n| Negative outcome | — | **not a bug → comment QA, close, next bug** |\n| Between units | n\u002Fa | **pause after each commit for the operator to push** |\n\n## Core contract (read first)\n\n- **Operator supplies the bug link(s).** A JIRA bug key (`BUG-123`) or Confluence\n  URL. No JQL\u002Fboard polling.\n- **Multiple bugs run one at a time.** `harness-bugfix BUG-1 BUG-2 BUG-3` fixes\n  BUG-1 fully, **pauses for you to push**, then on `--resume` fetches fresh main\n  and starts BUG-2 from it. This keeps each fix on an up-to-date base and avoids\n  merge conflicts between fixes. Bugs are NOT merged into one unit.\n- **The harness commits, the operator pushes.** Never `git push` \u002F `gh pr create`.\n- **Every external write needs your approval first.** A QA comment, a JIRA\n  transition, or a done comment is drafted, shown to you, and only sent on an\n  explicit approval. Nothing is auto-posted.\n- **Re-entrant.** Per-bug state lives in `flow-session.v1`\n  (`.claude\u002Fstate\u002Fflow\u002F\u003Cbug-key>\u002Fsession.json`); the batch order lives in\n  `.claude\u002Fstate\u002Fflow\u002Fbug-batch.json`.\n\n## Quick Reference\n\n| Input | Behavior |\n|------|------|\n| `\u002Fharness-bugfix BUG-123` | Triage + fix one bug |\n| `\u002Fharness-bugfix BUG-1 BUG-2 BUG-3` | Fix sequentially; pause after each for you to push |\n| `\u002Fharness-bugfix --resume` | Continue the batch (after you pushed the previous fix) |\n| `\u002Fharness-bugfix BUG-123 --close-jira` | After commit, transition + post a done comment (you approve) |\n| `\u002Fharness-bugfix BUG-123 --dry-run` | Triage + walk the flow with no MCP writes \u002F no commit |\n\n## Resolving the plugin bundle root\n\nSame as harness-flow: resolve `HARNESS_PLUGIN_ROOT` from `CLAUDE_PLUGIN_ROOT`\n(if it contains `scripts\u002F`) else from `CLAUDE_SKILL_DIR`\n(`${CLAUDE_SKILL_DIR}\u002F..\u002F..`, or `..\u002F..\u002F..` for a mirror). Call only\n`${HARNESS_PLUGIN_ROOT}\u002Fscripts\u002F...`; keep `Plans.md` \u002F `.claude\u002Fstate\u002F...` on\nthe host project side.\n\n## Batch orchestration (sequential, pause-to-push)\n\nReference: [`${CLAUDE_SKILL_DIR}\u002Freferences\u002Fsequential-batch.md`](${CLAUDE_SKILL_DIR}\u002Freferences\u002Fsequential-batch.md)\n\n1. Resolve `HARNESS_PLUGIN_ROOT` and probe MCP health once\n   (`flow-mcp-health.sh`, tri-state; `not-configured`\u002F`unreachable` → pause with\n   `decision_needed.v1`).\n2. Determine the batch:\n   - With refs: write\u002Frefresh `.claude\u002Fstate\u002Fflow\u002Fbug-batch.json`\n     (`{refs:[...], created_at}`).\n   - With `--resume` (no refs): read that batch file.\n3. Pick the **next bug** = the first ref whose `flow-session` status is not\n   `done` and not `not-a-bug`. If none remain → report the batch complete.\n4. Run the per-bug state machine (below) for that one bug until it reaches\n   `awaiting-push` (real bug, committed) or `not-a-bug`.\n5. On `awaiting-push`: **stop** and tell the operator to push+merge, then re-run\n   `\u002Fharness-bugfix --resume`. On `not-a-bug`: continue directly to the next bug.\n\n## Per-bug state machine\n\n```\n[Step 1] Ingest        status: ingesting -> ingested\n  Reference: references\u002Ftriage-rubric.md (ingest section)\n  git fetch origin; base = current up-to-date main\u002FHEAD (so the fix starts fresh).\n  JIRA key -> getJiraIssue (summary, description, steps-to-reproduce, environment,\n    labels, status, reporter=QA). atlassianUserInfo once -> bot accountId.\n  flow-ingest-bug.sh ... --out .claude\u002Fstate\u002Fflow\u002F\u003Cbug-key>\u002Fbug.json\n  |\n  v\n[Step 2] Triage        status: triaging\n  Reference: references\u002Ftriage-rubric.md\n  Check the report AGAINST THE CURRENT SOURCE CODE: locate the code path, decide\n  whether the reported behavior is actually a defect (vs expected \u002F already-fixed\n  \u002F config \u002F user error). Prefer reproducing with a failing test.\n  Write triage {verdict, evidence, code_refs[], reproduced, open_questions[]}.\n  verdict == bug         -> Step 4\n  verdict == not-a-bug   -> Step 3a\n  verdict == needs-info  -> Step 3b\n  |\n  v\n[Step 3a] Not a bug     status: not-a-bug   (terminal for this bug)\n  Reference: references\u002Fqa-comment.md\n  Draft a QA comment explaining WHY it is not a bug (cite code_refs). GET\n  OPERATOR APPROVAL, then post (addCommentToJiraIssue) to the reporter's ticket.\n  Optionally transition to a \"Not a Bug\"\u002F\"Rejected\" state (--close-jira, approved).\n  -> return to batch: next bug.\n\n[Step 3b] Needs info    status: awaiting-ba  (reused: awaiting a ticket reply)\n  Reference: references\u002Fqa-comment.md\n  Draft a question to QA, GET APPROVAL, post, then auto-poll for the reply\n  (flow-ba-match.sh) and re-run Step 2. Round cap 3 -> escalate.\n  |\n  v\n[Step 4] Fix           status: working\n  Delegate to harness-work (Solo for a single bug). It creates the worktree\n  under .harness-worktrees\u002F, fixes, self-reviews, and commits. If the bug was\n  reproduced with a failing test, that test is the TDD RED evidence.\n  Inject the bug key into the briefing so the commit reads [BUG-123].\n  |\n  v\n[Step 5] Review        status: reviewing\n  Reuse harness-work's built-in review loop (review-result.v1). Add\n  harness-review --security for security bugs. REQUEST_CHANGES -> fix loop.\n  |\n  v\n[Step 6] Confirm       status: awaiting-confirm\n  Reference: harness-flow references\u002Fconfirm-gate.md (decision_needed.v1 default,\n  --accept-html opt-in). Show: bug summary, root cause, the fix, review verdict,\n  changed files, commit preview. OK -> Step 7; not-OK -> fix loop.\n  |\n  v\n[Step 7] Commit        status: committing -> awaiting-push\n  Reference: harness-flow references\u002Fcommit-close.md\n  The fix commit is tagged [BUG-123]. NEVER push. --close-jira (approved) may\n  transition + post a done comment. Then STOP:\n  \"Committed \u003Chash> for BUG-123. Push it manually, then \u002Fharness-bugfix --resume\n   for the next bug.\" status stays awaiting-push until the operator resumes.\n  |\n  v  (operator pushed; --resume)\n  -> mark this bug done, return to batch -> next bug (Step 1 with fresh fetch).\n```\n\n## Stop \u002F pause conditions\n\n| Condition | status | Response |\n|-----------|--------|----------|\n| Not a bug | `not-a-bug` | Approve+post QA comment; go to next bug |\n| Triage needs QA info | `awaiting-ba` | Approve+post question; auto-poll reply |\n| Fix committed, awaiting your push | `awaiting-push` | STOP; you push, then `--resume` |\n| not-OK at confirm \u002F REQUEST_CHANGES | `working` | Fix loop (reuse failure-reticketing) |\n| Round\u002Frework cap hit | `escalated` | `decision_needed.v1` |\n| Batch complete | (all `done`\u002F`not-a-bug`) | Report summary |\n\n## Related skills\n\n- `harness-flow` — the feature sibling (merged multi-ticket; BA instead of QA)\n- `harness-work` — worktree + fix + review loop (Steps 4-5)\n- `harness-review` — extra review lens for security bugs (Step 5)\n- `harness-accept` — optional ship\u002Fwait\u002Freject HTML at the confirm gate (Step 6)\n",{"base":24,"kind":25,"name":5,"pair":26,"role":27,"owner":28,"shape":29,"since":30,"effort":31,"purpose":32,"trigger":33,"description":7,"allowed-tools":34,"argument-hint":45,"description-en":7,"user-invocable":46},"harness-work","workflow","harness-flow","orchestrator","harness-core","delegate","2026-07-16","high","Orchestrate bug ingest -> triage vs current source -> (QA comment if not a bug) -> worktree fix -> review -> confirm -> commit (no push), one bug at a time","fix a bug, bug ticket, triage a bug, is this a real bug",[35,36,37,38,39,40,41,42,43,44],"Read","Write","Edit","Bash","Grep","Glob","Task","AskUserQuestion","ScheduleWakeup","mcp__claude_ai_Atlassian_Rovo__*","[\u003CBUG-KEY>|\u003Curl> ...] [--resume] [--accept-html] [--close-jira] [--dry-run]",true,"main","3517f6fc9c5159f32d585682386ed45e35c30ddf","skills\u002Fharness-bugfix","https:\u002F\u002Fgithub.com\u002Ffoden303\u002Fharness","https:\u002F\u002Fgithub.com\u002Ffoden303","Software Engineer","2026-11-06 10:59:21",{"source":8,"skillName":5,"commands":55,"prompt":65,"zipAvailable":46},[56,59,62],{"tool":57,"command":58},"npx","npx skills add foden303\u002Fharness --skill harness-bugfix",{"tool":60,"command":61},"bunx","bunx skills add foden303\u002Fharness --skill harness-bugfix",{"tool":63,"command":64},"pnpm","pnpm dlx skills add foden303\u002Fharness --skill harness-bugfix","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Ffoden303\u002Fharness\u002Fblob\u002Fmain\u002Fskills\u002Fharness-bugfix\u002FSKILL.md",[67,73,77],{"path":68,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":71,"sourceHtmlUrl":72},"references\u002Fqa-comment.md","REFERENCE","参考文档",2242,"https:\u002F\u002Fgithub.com\u002Ffoden303\u002Fharness\u002Fblob\u002Fmain\u002Fskills\u002Fharness-bugfix\u002Freferences\u002Fqa-comment.md",{"path":74,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":75,"sourceHtmlUrl":76},"references\u002Fsequential-batch.md",2232,"https:\u002F\u002Fgithub.com\u002Ffoden303\u002Fharness\u002Fblob\u002Fmain\u002Fskills\u002Fharness-bugfix\u002Freferences\u002Fsequential-batch.md",{"path":78,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":79,"sourceHtmlUrl":80},"references\u002Ftriage-rubric.md",3279,"https:\u002F\u002Fgithub.com\u002Ffoden303\u002Fharness\u002Fblob\u002Fmain\u002Fskills\u002Fharness-bugfix\u002Freferences\u002Ftriage-rubric.md",[82,88,94,101,108,114],{"skillNo":83,"name":84,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":19},"01M79DWR27RWW11HNKY0MRECPP","escape-skill","https:\u002F\u002Fgithub.com\u002Ffoden303\u002Fharness\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Fzz-review-escape\u002FSKILL.md",[],[],{"skillNo":89,"name":90,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":93,"publishedAt":19},"01M79DWPSR8ZK3V4DQK5EWVJ3K","zz-review-empty","https:\u002F\u002Fgithub.com\u002Ffoden303\u002Fharness\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Fzz-review-empty\u002FSKILL.md",[],[],{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":100,"publishedAt":19},"01M79DWFV6PYV0QEZ3SC32VMCM","memory","Manage SSOT, memory, and cross-tool memory search. Guardian of decisions.md and patterns.md. Use when user mentions memory, SSOT, decisions.md, patterns.md, merging, migration, SSOT promotion, sync memory, save learnings, memory search, harness-mem, past decisions, or record this. Do NOT load for: implementation work, reviews, ad-hoc notes, or in-session logging.","https:\u002F\u002Fgithub.com\u002Ffoden303\u002Fharness\u002Fblob\u002Fmain\u002Fskills\u002Fmemory\u002FSKILL.md",[],[],{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":19},"01M79DWB6MB7EQK2JT4A84NHJD","maintenance","File cleanup and archiving. Tidies up bloated Plans.md, session-log.md, old logs, and state files. Trigger: \u002Fmaintenance, cleanup, archive, organize, split session-log. Do NOT load for: implementation, review, release, new feature development.","https:\u002F\u002Fgithub.com\u002Ffoden303\u002Fharness\u002Fblob\u002Fmain\u002Fskills\u002Fmaintenance\u002FSKILL.md",[],[],{"skillNo":109,"name":24,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":113,"publishedAt":19},"01M79DW33AEPBCXFAMX8YH56PG","HAR: Execute Plans.md tasks from single task to full parallel team run. Trigger: implement, execute, do everything, breezing, team run, parallel. Do NOT load for: planning, review, release, setup.","https:\u002F\u002Fgithub.com\u002Ffoden303\u002Fharness\u002Fblob\u002Fmain\u002Fskills\u002Fharness-work\u002FSKILL.md",[],[],{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":120,"publishedAt":19},"01M79DVWV7PZC0E2GYC103QBYZ","harness-sync","HAR: Sync Plans.md with implementation. Drift detect, marker update, retrospective. Trigger: sync-status, where am I, check progress. --snapshot for snapshots. Do NOT load for: planning, implementation, review, release.","https:\u002F\u002Fgithub.com\u002Ffoden303\u002Fharness\u002Fblob\u002Fmain\u002Fskills\u002Fharness-sync\u002FSKILL.md",[],[]]