[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6J3XBJ57KVSWJ5EY1JBX29R":3,"skill-same:01M6J3XBJ57KVSWJ5EY1JBX29R":100},{"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":40,"linkOnly":41,"markdownContent":42,"markdownBody":43,"frontMatter":44,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":14,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":6,"ownerDescription":50,"updatedAt":51,"install":52,"resources":65},"01M6J3XBJ57KVSWJ5EY1JBX29R","ai-context-management",null,"Manage AGENTS.md and CLAUDE.md alignment across a repo so Claude, Copilot,\nCursor, Windsurf, and other AI agents share the same project context.\nDetects drift, reconciles manually-introduced divergence, and migrates legacy\nCLAUDE.md-canonical repos to AGENTS.md-canonical.\nTriggers on: \"audit AGENTS.md\", \"check context drift\", \"AGENTS.md vs CLAUDE.md\",\n\"fix context drift\", \"migrate to AGENTS.md\",\n\"context sync\", \"what tools read which file\", \"ai-context-management\".\nUsage: \u002Fai-context-management audit          — Score drift + report findings\nUsage: \u002Fai-context-management reconcile      — Apply patches to fix drift\nUsage: \u002Fai-context-management migrate        — Flip legacy repo to AGENTS.md canonical","Lbstrydom\u002Fclaude-engineering-skills","Lbstrydom","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F77991486?v=4","01M6J3X4N2T0FTZT1RKFXDVS0K","Louis Strydom","01M6J3X4SXV0BXWDMXPW90D8BK",0,"MIT","https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-context-management\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"ai context management","context","management","context management","ai context","manage","apply","which","usage","triggers","project","drift","windsurf","ai agents","alignment","Legacy","fix","repo","migrate","file","copilot","2026-11-10 10:12:30",false,"---\nname: ai-context-management\ndescription: |\n  Manage AGENTS.md and CLAUDE.md alignment across a repo so Claude, Copilot,\n  Cursor, Windsurf, and other AI agents share the same project context.\n  Detects drift, reconciles manually-introduced divergence, and migrates legacy\n  CLAUDE.md-canonical repos to AGENTS.md-canonical.\n  Triggers on: \"audit AGENTS.md\", \"check context drift\", \"AGENTS.md vs CLAUDE.md\",\n  \"fix context drift\", \"migrate to AGENTS.md\",\n  \"context sync\", \"what tools read which file\", \"ai-context-management\".\n  Usage: \u002Fai-context-management audit          — Score drift + report findings\n  Usage: \u002Fai-context-management reconcile      — Apply patches to fix drift\n  Usage: \u002Fai-context-management migrate        — Flip legacy repo to AGENTS.md canonical\n---\n\n# AI Context Management\n\nKeep `AGENTS.md` (canonical, shared) and `CLAUDE.md` (slim, Claude-only addendum)\naligned across a repo, so Claude, Copilot (which reads `.claude\u002Fskills` +\n`AGENTS.md` natively), and other agents share one project context.\n\n**Input**: `$ARGUMENTS` — `audit | reconcile | migrate`\n(plus optional `--repo \u003Cpath>` for cross-repo invocation).\n\n\u003C!-- host-contract: input-acquisition; grammar=subcommand; empty=default -->\n\n**Where `$ARGUMENTS` comes from** — orchestrator-supplied input first, else\nthe host's verbatim invocation suffix, else the span of the user's **current**\nmessage naming this skill or its subject. Never inferred from surrounding\nconversation. This site is `subcommand`; on empty input, default to `audit` — it is read-only and writes nothing, so it is the safe default. `reconcile` and `migrate` write files and are never defaulted into.\nFull contract: `references\u002Finput-acquisition.md`.\n\n\n> **Worktree preflight** — in a linked git worktree the synced tooling tree\n> `scripts\u002F.claude-skills\u002F` is absent — it is gitignored, so `git worktree add`\n> does not populate it, and every command below that uses it dies on a bare\n> `MODULE_NOT_FOUND`. Run `npm run skills:hydrate` first. If this repo defines\n> no such script, `references\u002Fworktree-preflight.md` holds the entry to add — ask\n> the user first, since it edits their `package.json`.\n\n---\n\n## Step 0 — Parse Mode\n\n| Input | Mode | Effect |\n|---|---|---|\n| `audit` | AUDIT | Run `node scripts\u002Fcheck-context-drift.mjs --strict --repo \"$REPO\"`; report findings; no writes |\n| `reconcile` | RECONCILE | Detect drift, propose patch, apply after confirmation |\n| `migrate` | MIGRATE | Convert legacy CLAUDE.md-canonical → AGENTS.md-canonical |\n| (no args) | AUDIT | Default to audit |\n\n**`REPO=\u003Cthe --repo path if passed, else cwd>`** — set this once, here, before\nany mode branch. Every command in Steps 1–3 below runs against `$REPO`, not\nthe invoking cwd; `check-context-drift.mjs` itself takes `--repo \u003Cpath>`\n(default: cwd) for exactly this. Step 3's file operations (reading\u002Fwriting\n`AGENTS.md`\u002F`CLAUDE.md`) likewise target `$REPO`, not the cwd.\n\nFor `reconcile` and `migrate`, **never write files without user confirmation** —\npresent the proposed patch first, ask for `apply` \u002F `cancel`, then act. This\ngate covers writes to the **audited repo's own content** (`AGENTS.md`,\n`CLAUDE.md`). It does NOT cover the Worktree preflight above, which — when it\nruns at all — provisions local tooling (`scripts\u002F.claude-skills\u002F`) before Step\n0 is even reached, regardless of mode. That is infrastructure bootstrap, not\na content edit, and every mode including `audit` needs the tooling present to\nrun its own commands at all.\n\n---\n\n## Step 1 — AUDIT Mode\n\nRun the drift detector and summarise findings.\n\n```bash\nnode scripts\u002Fcheck-context-drift.mjs --strict --repo \"$REPO\" 2>&1\n```\n\nExit codes: `0` = no findings, `1` = HIGH (blocking), `2` = MEDIUM only.\n\nFor each finding, show:\n- Rule ID (e.g. `ctx\u002Fmissing-import`)\n- Severity (HIGH \u002F MEDIUM)\n- File and line\n- Single-sentence why-it-matters (from the rule's documentation)\n\nDetailed rule reference + severity rubric: `references\u002Fdrift-rules.md`.\n\n---\n\n## Step 2 — RECONCILE Mode\n\nGoal: bring `AGENTS.md` and `CLAUDE.md` into alignment, preserving any genuine\nClaude-only content in CLAUDE.md.\n\nSteps:\n\n1. Run `node scripts\u002Fcheck-context-drift.mjs --format json --repo \"$REPO\" > .audit\u002Fdrift.json` to get structured findings.\n2. For each finding:\n   - `ctx\u002Fmissing-import` → propose adding `@.\u002FAGENTS.md` near top of `$REPO\u002FCLAUDE.md`.\n   - `ctx\u002Fnon-allowlist-heading` → propose moving the section to `$REPO\u002FAGENTS.md` and removing from `$REPO\u002FCLAUDE.md`.\n   - `ctx\u002Fshared-section-drift` → propose deleting from `$REPO\u002FCLAUDE.md` (AGENTS.md wins for shared content).\n   - `ctx\u002Foversized-claude-md` → identify the largest non-allowlisted sections; propose moving them.\n3. Show a unified diff of proposed changes.\n4. Wait for `apply` confirmation.\n5. Apply via Edit tool, against the files under `$REPO`.\n6. Re-run `node scripts\u002Fcheck-context-drift.mjs --strict --repo \"$REPO\"` to confirm green.\n\nFull step-by-step playbook with conflict resolution: `references\u002Freconcile-playbook.md`.\n\n---\n\n## Step 3 — MIGRATE Mode\n\nFor repos that currently use `CLAUDE.md` as the canonical project context (legacy\nsingle-file pattern). Flips to `AGENTS.md`-canonical so the wider AI ecosystem\n(Copilot, Cursor, Windsurf, Codex) reads the same content.\n\nSteps:\n\n1. Detect current state:\n   - `AGENTS.md` exists? Drift vs CLAUDE.md?\n   - `CLAUDE.md` is canonical (full content) vs slim addendum?\n2. If `CLAUDE.md` is canonical and `AGENTS.md` is missing\u002Fdrifted:\n   - Propose: copy CLAUDE.md → AGENTS.md (rename heading)\n   - Propose: replace CLAUDE.md with `@.\u002FAGENTS.md` import + Claude-only addendum\n3. Show diff. Wait for confirmation. Apply.\n4. Run `node scripts\u002Fcheck-context-drift.mjs --strict --repo \"$REPO\"` to verify alignment.\n5. Update brief generators that read CLAUDE.md to also\u002Fpreferably read AGENTS.md\n   (see `scripts\u002Flib\u002Fcontext.mjs` `INSTRUCTION_FILE_CANDIDATES` for the pattern).\n\nMigration playbook with edge cases: `references\u002Fcanonical-flip.md`.\n\n---\n\n## Step 4 — Status Card\n\nAfter every mode, emit a compact status card:\n\n```\n═══════════════════════════════════════\n  AI-CONTEXT-MANAGEMENT — \u003CMODE> — Done\n  HIGH: 0  MEDIUM: 0  Files updated: 2\n  AGENTS.md: 349 lines  CLAUDE.md: 41 lines\n  Next: node scripts\u002Fcheck-context-drift.mjs --strict --repo \"$REPO\" (verify) | git diff (review)\n═══════════════════════════════════════\n```\n\n---\n\n## Key Principles\n\n1. **AGENTS.md is canonical** — shared content lives there; CLAUDE.md is a slim\n   addendum that imports it. Reverse only for legacy single-file Claude-only repos.\n2. **Never write without confirmation** in `reconcile` and `migrate` modes —\n   show the diff first.\n3. **Preserve Claude-only content** — items in the allowlist (`Slash Commands`,\n   `Hooks`, `Memory`, `Local Overrides`, `Claude-only Notes`, etc.) stay in\n   CLAUDE.md.\n4. **Subdirectory AGENTS.md is fine** — for monorepos. No sibling CLAUDE.md\n   required at sub-paths.\n5. **Drift detection runs on every push** — in the source repo the detector runs\n   from the pre-push hook (as part of its `npm run check`), not from CI. A\n   consumer wires it into its own pre-push if it wants the same gate. The\n   `.github\u002Fworkflows\u002Fcontext-drift.yml` workflow was retired in `c12e2178`\n   along with the other push-triggered check workflows.\n\n---\n\n## Reference files\n\nThis skill's canonical flow is above. The files below cover specialised\nsituations — read them only when the trigger applies.\n\n| File | Summary | Read when |\n|---|---|---|\n| `references\u002Finput-acquisition.md` | Where a skill's arguments come from on any host, and what to do when there are none. | Reading $ARGUMENTS on a host that does not substitute it, or deciding what empty input means at a site. |\n| `references\u002Fdrift-rules.md` | Per-rule severity, fix recipes, and the Claude-only heading allowlist for ctx\u002F* rules. | A finding's rule ID is unfamiliar, OR you need to extend the allowlist for a custom heading. |\n| `references\u002Freconcile-playbook.md` | Step-by-step: bring drifted AGENTS.md and CLAUDE.md back into alignment safely. | RECONCILE mode is firing AND a finding has competing edits in both files. |\n| `references\u002Fcanonical-flip.md` | Migration guide: switch a repo from CLAUDE.md-canonical to AGENTS.md-canonical. | MIGRATE mode is firing on a legacy single-file repo. |\n| `examples\u002Fslim-claude-md.md` | Canonical 30-line CLAUDE.md template after AGENTS.md flip. | Producing a slim CLAUDE.md from scratch in MIGRATE mode. |\n| `examples\u002Fwell-formed-agents-md.md` | 100-150 line AGENTS.md exemplar with reasoned rules and standard sections. | A repo has no AGENTS.md and you're producing one from project knowledge. |\n| `examples\u002Fmonorepo-layout.md` | Root + per-package AGENTS.md layout for monorepos. | The repo has multiple packages and you're deciding where AGENTS.md goes. |\n| `references\u002Fworktree-preflight.md` | Worktree preflight remedy — the skills:hydrate npm script to add when a linked worktree lacks the tooling tree. | A command dies with `MODULE_NOT_FOUND` in a linked worktree AND this repo has no `skills:hydrate` script. |\n","# AI Context Management\n\nKeep `AGENTS.md` (canonical, shared) and `CLAUDE.md` (slim, Claude-only addendum)\naligned across a repo, so Claude, Copilot (which reads `.claude\u002Fskills` +\n`AGENTS.md` natively), and other agents share one project context.\n\n**Input**: `$ARGUMENTS` — `audit | reconcile | migrate`\n(plus optional `--repo \u003Cpath>` for cross-repo invocation).\n\n\u003C!-- host-contract: input-acquisition; grammar=subcommand; empty=default -->\n\n**Where `$ARGUMENTS` comes from** — orchestrator-supplied input first, else\nthe host's verbatim invocation suffix, else the span of the user's **current**\nmessage naming this skill or its subject. Never inferred from surrounding\nconversation. This site is `subcommand`; on empty input, default to `audit` — it is read-only and writes nothing, so it is the safe default. `reconcile` and `migrate` write files and are never defaulted into.\nFull contract: `references\u002Finput-acquisition.md`.\n\n\n> **Worktree preflight** — in a linked git worktree the synced tooling tree\n> `scripts\u002F.claude-skills\u002F` is absent — it is gitignored, so `git worktree add`\n> does not populate it, and every command below that uses it dies on a bare\n> `MODULE_NOT_FOUND`. Run `npm run skills:hydrate` first. If this repo defines\n> no such script, `references\u002Fworktree-preflight.md` holds the entry to add — ask\n> the user first, since it edits their `package.json`.\n\n---\n\n## Step 0 — Parse Mode\n\n| Input | Mode | Effect |\n|---|---|---|\n| `audit` | AUDIT | Run `node scripts\u002Fcheck-context-drift.mjs --strict --repo \"$REPO\"`; report findings; no writes |\n| `reconcile` | RECONCILE | Detect drift, propose patch, apply after confirmation |\n| `migrate` | MIGRATE | Convert legacy CLAUDE.md-canonical → AGENTS.md-canonical |\n| (no args) | AUDIT | Default to audit |\n\n**`REPO=\u003Cthe --repo path if passed, else cwd>`** — set this once, here, before\nany mode branch. Every command in Steps 1–3 below runs against `$REPO`, not\nthe invoking cwd; `check-context-drift.mjs` itself takes `--repo \u003Cpath>`\n(default: cwd) for exactly this. Step 3's file operations (reading\u002Fwriting\n`AGENTS.md`\u002F`CLAUDE.md`) likewise target `$REPO`, not the cwd.\n\nFor `reconcile` and `migrate`, **never write files without user confirmation** —\npresent the proposed patch first, ask for `apply` \u002F `cancel`, then act. This\ngate covers writes to the **audited repo's own content** (`AGENTS.md`,\n`CLAUDE.md`). It does NOT cover the Worktree preflight above, which — when it\nruns at all — provisions local tooling (`scripts\u002F.claude-skills\u002F`) before Step\n0 is even reached, regardless of mode. That is infrastructure bootstrap, not\na content edit, and every mode including `audit` needs the tooling present to\nrun its own commands at all.\n\n---\n\n## Step 1 — AUDIT Mode\n\nRun the drift detector and summarise findings.\n\n```bash\nnode scripts\u002Fcheck-context-drift.mjs --strict --repo \"$REPO\" 2>&1\n```\n\nExit codes: `0` = no findings, `1` = HIGH (blocking), `2` = MEDIUM only.\n\nFor each finding, show:\n- Rule ID (e.g. `ctx\u002Fmissing-import`)\n- Severity (HIGH \u002F MEDIUM)\n- File and line\n- Single-sentence why-it-matters (from the rule's documentation)\n\nDetailed rule reference + severity rubric: `references\u002Fdrift-rules.md`.\n\n---\n\n## Step 2 — RECONCILE Mode\n\nGoal: bring `AGENTS.md` and `CLAUDE.md` into alignment, preserving any genuine\nClaude-only content in CLAUDE.md.\n\nSteps:\n\n1. Run `node scripts\u002Fcheck-context-drift.mjs --format json --repo \"$REPO\" > .audit\u002Fdrift.json` to get structured findings.\n2. For each finding:\n   - `ctx\u002Fmissing-import` → propose adding `@.\u002FAGENTS.md` near top of `$REPO\u002FCLAUDE.md`.\n   - `ctx\u002Fnon-allowlist-heading` → propose moving the section to `$REPO\u002FAGENTS.md` and removing from `$REPO\u002FCLAUDE.md`.\n   - `ctx\u002Fshared-section-drift` → propose deleting from `$REPO\u002FCLAUDE.md` (AGENTS.md wins for shared content).\n   - `ctx\u002Foversized-claude-md` → identify the largest non-allowlisted sections; propose moving them.\n3. Show a unified diff of proposed changes.\n4. Wait for `apply` confirmation.\n5. Apply via Edit tool, against the files under `$REPO`.\n6. Re-run `node scripts\u002Fcheck-context-drift.mjs --strict --repo \"$REPO\"` to confirm green.\n\nFull step-by-step playbook with conflict resolution: `references\u002Freconcile-playbook.md`.\n\n---\n\n## Step 3 — MIGRATE Mode\n\nFor repos that currently use `CLAUDE.md` as the canonical project context (legacy\nsingle-file pattern). Flips to `AGENTS.md`-canonical so the wider AI ecosystem\n(Copilot, Cursor, Windsurf, Codex) reads the same content.\n\nSteps:\n\n1. Detect current state:\n   - `AGENTS.md` exists? Drift vs CLAUDE.md?\n   - `CLAUDE.md` is canonical (full content) vs slim addendum?\n2. If `CLAUDE.md` is canonical and `AGENTS.md` is missing\u002Fdrifted:\n   - Propose: copy CLAUDE.md → AGENTS.md (rename heading)\n   - Propose: replace CLAUDE.md with `@.\u002FAGENTS.md` import + Claude-only addendum\n3. Show diff. Wait for confirmation. Apply.\n4. Run `node scripts\u002Fcheck-context-drift.mjs --strict --repo \"$REPO\"` to verify alignment.\n5. Update brief generators that read CLAUDE.md to also\u002Fpreferably read AGENTS.md\n   (see `scripts\u002Flib\u002Fcontext.mjs` `INSTRUCTION_FILE_CANDIDATES` for the pattern).\n\nMigration playbook with edge cases: `references\u002Fcanonical-flip.md`.\n\n---\n\n## Step 4 — Status Card\n\nAfter every mode, emit a compact status card:\n\n```\n═══════════════════════════════════════\n  AI-CONTEXT-MANAGEMENT — \u003CMODE> — Done\n  HIGH: 0  MEDIUM: 0  Files updated: 2\n  AGENTS.md: 349 lines  CLAUDE.md: 41 lines\n  Next: node scripts\u002Fcheck-context-drift.mjs --strict --repo \"$REPO\" (verify) | git diff (review)\n═══════════════════════════════════════\n```\n\n---\n\n## Key Principles\n\n1. **AGENTS.md is canonical** — shared content lives there; CLAUDE.md is a slim\n   addendum that imports it. Reverse only for legacy single-file Claude-only repos.\n2. **Never write without confirmation** in `reconcile` and `migrate` modes —\n   show the diff first.\n3. **Preserve Claude-only content** — items in the allowlist (`Slash Commands`,\n   `Hooks`, `Memory`, `Local Overrides`, `Claude-only Notes`, etc.) stay in\n   CLAUDE.md.\n4. **Subdirectory AGENTS.md is fine** — for monorepos. No sibling CLAUDE.md\n   required at sub-paths.\n5. **Drift detection runs on every push** — in the source repo the detector runs\n   from the pre-push hook (as part of its `npm run check`), not from CI. A\n   consumer wires it into its own pre-push if it wants the same gate. The\n   `.github\u002Fworkflows\u002Fcontext-drift.yml` workflow was retired in `c12e2178`\n   along with the other push-triggered check workflows.\n\n---\n\n## Reference files\n\nThis skill's canonical flow is above. The files below cover specialised\nsituations — read them only when the trigger applies.\n\n| File | Summary | Read when |\n|---|---|---|\n| `references\u002Finput-acquisition.md` | Where a skill's arguments come from on any host, and what to do when there are none. | Reading $ARGUMENTS on a host that does not substitute it, or deciding what empty input means at a site. |\n| `references\u002Fdrift-rules.md` | Per-rule severity, fix recipes, and the Claude-only heading allowlist for ctx\u002F* rules. | A finding's rule ID is unfamiliar, OR you need to extend the allowlist for a custom heading. |\n| `references\u002Freconcile-playbook.md` | Step-by-step: bring drifted AGENTS.md and CLAUDE.md back into alignment safely. | RECONCILE mode is firing AND a finding has competing edits in both files. |\n| `references\u002Fcanonical-flip.md` | Migration guide: switch a repo from CLAUDE.md-canonical to AGENTS.md-canonical. | MIGRATE mode is firing on a legacy single-file repo. |\n| `examples\u002Fslim-claude-md.md` | Canonical 30-line CLAUDE.md template after AGENTS.md flip. | Producing a slim CLAUDE.md from scratch in MIGRATE mode. |\n| `examples\u002Fwell-formed-agents-md.md` | 100-150 line AGENTS.md exemplar with reasoned rules and standard sections. | A repo has no AGENTS.md and you're producing one from project knowledge. |\n| `examples\u002Fmonorepo-layout.md` | Root + per-package AGENTS.md layout for monorepos. | The repo has multiple packages and you're deciding where AGENTS.md goes. |\n| `references\u002Fworktree-preflight.md` | Worktree preflight remedy — the skills:hydrate npm script to add when a linked worktree lacks the tooling tree. | A command dies with `MODULE_NOT_FOUND` in a linked worktree AND this repo has no `skills:hydrate` script. |\n",{"name":5,"description":7},"main","938efbef34b7c76f0d112f336d1ac4018224d186",".claude\u002Fskills\u002Fai-context-management","https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills","https:\u002F\u002Fgithub.com\u002FLbstrydom","Studying M.Sc Computer Science at Heriot Watt","2026-11-12 02:12:09",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add Lbstrydom\u002Fclaude-engineering-skills --skill ai-context-management",{"tool":58,"command":59},"bunx","bunx skills add Lbstrydom\u002Fclaude-engineering-skills --skill ai-context-management",{"tool":61,"command":62},"pnpm","pnpm dlx skills add Lbstrydom\u002Fclaude-engineering-skills --skill ai-context-management","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-context-management\u002FSKILL.md",true,[66,72,76,80,84,88,92,96],{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"examples\u002Fmonorepo-layout.md","REFERENCE","参考文档",3851,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-context-management\u002Fexamples\u002Fmonorepo-layout.md",{"path":73,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":74,"sourceHtmlUrl":75},"examples\u002Fslim-claude-md.md",1498,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-context-management\u002Fexamples\u002Fslim-claude-md.md",{"path":77,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":78,"sourceHtmlUrl":79},"examples\u002Fwell-formed-agents-md.md",2357,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-context-management\u002Fexamples\u002Fwell-formed-agents-md.md",{"path":81,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":82,"sourceHtmlUrl":83},"references\u002Fcanonical-flip.md",4848,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-context-management\u002Freferences\u002Fcanonical-flip.md",{"path":85,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":86,"sourceHtmlUrl":87},"references\u002Fdrift-rules.md",3604,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-context-management\u002Freferences\u002Fdrift-rules.md",{"path":89,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":90,"sourceHtmlUrl":91},"references\u002Finput-acquisition.md",4511,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-context-management\u002Freferences\u002Finput-acquisition.md",{"path":93,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":94,"sourceHtmlUrl":95},"references\u002Freconcile-playbook.md",3250,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-context-management\u002Freferences\u002Freconcile-playbook.md",{"path":97,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":98,"sourceHtmlUrl":99},"references\u002Fworktree-preflight.md",3413,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-context-management\u002Freferences\u002Fworktree-preflight.md",[101,118,129,149,163,197],{"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":112,"publishedAt":40},"01M6J45X4FDB2AD5BGS4R4QY8X","stated-absent","Negative fixture — the contract's stated string never appears in this file.","https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fgate-honesty\u002Fnegative\u002Fstated-absent\u002Fskills\u002Fstated-absent\u002FSKILL.md",[107],{"categoryNo":108,"categoryName":109,"taxonomyType":110,"taxonomyTypeDesc":111},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[113,114,115,116,117,38],"stated absent","STRING","contract","fixture","never",{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":125,"publishedAt":40},"01M6J45TAX2PPHETZ5TJZG20QQ","nonexistent-implementation","Negative fixture — contract references an implementation file that does not exist.","https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fgate-honesty\u002Fnegative\u002Fnonexistent-implementation\u002Fskills\u002Fnonexistent-implementation\u002FSKILL.md",[124],{"categoryNo":108,"categoryName":109,"taxonomyType":110,"taxonomyTypeDesc":111},[126,127,128,115,116,38],"implementation","nonexistent implementation","references",{"skillNo":130,"name":131,"nameZh":6,"description":132,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":140,"publishedAt":40},"01M6J45P5GN52YFMZ81T7NN1VF","document-only-with-params","Negative fixture — a document-only gate illegally carries params (schema must refuse this fake-check pattern).","https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fgate-honesty\u002Fnegative\u002Fdocument-only-with-params\u002Fskills\u002Fdocument-only-with-params\u002FSKILL.md",[135],{"categoryNo":136,"categoryName":137,"taxonomyType":138,"taxonomyTypeDesc":139},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",[141,142,143,144,145,146,147,148,116],"only","document","with","document only with params","check","schema","gate","pattern",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":158,"publishedAt":40},"01M6J45J1CCZ7AXDGQKBA9VC8M","lying-skill","Fixture skill for the gate-honesty self-check — every gate here is deliberately dishonest.","https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fgate-honesty\u002Flying-skill\u002Fskills\u002Flying-skill\u002FSKILL.md",[155],{"categoryNo":156,"categoryName":157,"taxonomyType":138,"taxonomyTypeDesc":139},"01JBSEEDCAT000000000000023","Skill与智能体开发",[159,145,147,160,161,116,162],"lying skill","fixture skill","self","for",{"skillNo":164,"name":165,"nameZh":6,"description":166,"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":178,"publishedAt":40},"01M6J45CW0DNN7K2W39E3PQHEY","visual-audit","Math-first, deterministic visual\u002Fpaint inspection — the 4th UX lens, complementing\npersona-test (journey), click-test (page), and nav-audit (system). Drives Playwright +\ncomputed styles + bounding boxes + CDP forced-pseudo-state to audit declared-token\nconformance, light\u002Fdark theme parity, layout physics, and affordance signifiers. A VLM\nis advisory-only and never gates. CI gate is drift-only on the changed contracted surface.\nTriggers on: \"visual audit\", \"check styling consistency\", \"theme parity\", \"dark mode parity\",\n\"design token drift\", \"paint audit\", \"button\u002Fcard consistency\", \"focus ring audit\",\n\"\u002Fvisual-audit\".","https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Fvisual-audit\u002FSKILL.md",[169,172,175],{"categoryNo":170,"categoryName":171,"taxonomyType":138,"taxonomyTypeDesc":139},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":173,"categoryName":174,"taxonomyType":138,"taxonomyTypeDesc":139},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":176,"categoryName":177,"taxonomyType":110,"taxonomyTypeDesc":111},"01JBSEEDCAT000000000000032","设计师",[179,180,181,182,183,184,185,186,187,188,189,190,117,141,191,192,30,193,194,195,196],"visual audit","visual","audit","mode","design token","click","inspection","lens","design","ci","persona","math","cdp","journey","focus","physics","layout","card",{"skillNo":198,"name":199,"nameZh":6,"description":200,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":201,"categories":202,"keywords":209,"publishedAt":40},"01M6J4569S40ZASFWW698CHBKP","ux-lock","Generate Playwright e2e specs. Two modes:\n  1. LOCK mode — pin a fix's DOM contract so it doesn't regress (default).\n  2. VERIFY mode — check that a \u002Fplan plan was actually implemented\n     by parsing its Acceptance Criteria section and driving the live URL.\nVERIFY mode grades a plan against a RUNNING app. To judge the plan document\nitself, before anything is built, that is \u002Faudit-plan.\nTriggers on: \"ux lock\", \"lock ux\", \"lock in the fix\", \"write regression spec\",\n\"generate e2e test for\", \"regression test for commit\", \"lock this fix\",\n\"verify the plan\", \"verify plan implementation\", \"check the plan was built\",\n\"audit frontend implementation\", \"did we ship the plan\".\nFull command syntax: see the Usage section in this skill.","https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Fux-lock\u002FSKILL.md",[203,204,207,208],{"categoryNo":170,"categoryName":171,"taxonomyType":138,"taxonomyTypeDesc":139},{"categoryNo":205,"categoryName":206,"taxonomyType":138,"taxonomyTypeDesc":139},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":176,"categoryName":177,"taxonomyType":110,"taxonomyTypeDesc":111},{"categoryNo":108,"categoryName":109,"taxonomyType":110,"taxonomyTypeDesc":111},[210,211,212,182,213,214,215,181,216,217,218,219,220,35,221,222,223,224,225,226,227],"ux lock","lock","ux","commit","generate","acceptance","plan","regression","syntax","command","write","e2e test","default","app","judge","URL","verify plan","frontend"]