[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M69BBZ17K8P30RZ8452XNGCS":3,"skill-same:01M69BBZ17K8P30RZ8452XNGCS":60},{"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":23,"linkOnly":24,"markdownContent":25,"markdownBody":26,"frontMatter":27,"refName":31,"commitSha":32,"skillDirectory":33,"forksCount":34,"repositoryHtmlUrl":35,"repositoryHomepageUrl":6,"ownerHtmlUrl":36,"ownerBlogUrl":37,"ownerDescription":38,"updatedAt":39,"install":40,"resources":53},"01M69BBZ17K8P30RZ8452XNGCS","secret-handling",null,"Never read .env files or write secrets to .squad\u002F committed files","microsoft\u002Ffsi-banking-payments-dispute-resolution-accelerator","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M69BAVFSPPF5KP50DCBC2R4Q",0,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Ffsi-banking-payments-dispute-resolution-accelerator\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fsecret-handling\u002FSKILL.md",[],[19,20,21,22],"secret handling","security","collaboration","squad","2026-11-10 10:12:30",false,"---\nname: secret-handling\ndescription: Never read .env files or write secrets to .squad\u002F committed files\ndomain: security, file-operations, team-collaboration\nconfidence: high\nsource: earned (issue #267 — credential leak incident)\n---\n\n## Context\n\nSpawned agents have read access to the entire repository, including `.env` files containing live credentials. If an agent reads secrets and writes them to `.squad\u002F` files (decisions, logs, history), Scribe auto-commits them to git, exposing them in remote history. This skill codifies absolute prohibitions and safe alternatives.\n\n## Patterns\n\n### Prohibited File Reads\n\n**NEVER read these files:**\n- `.env` (production secrets)\n- `.env.local` (local dev secrets)\n- `.env.production` (production environment)\n- `.env.development` (development environment)\n- `.env.staging` (staging environment)\n- `.env.test` (test environment with real credentials)\n- Any file matching `.env.*` UNLESS explicitly allowed (see below)\n\n**Allowed alternatives:**\n- `.env.example` (safe — contains placeholder values, no real secrets)\n- `.env.sample` (safe — documentation template)\n- `.env.template` (safe — schema\u002Fstructure reference)\n\n**If you need config info:**\n1. **Ask the user directly** — \"What's the database connection string?\"\n2. **Read `.env.example`** — shows structure without exposing secrets\n3. **Read documentation** — check `README.md`, `docs\u002F`, config guides\n\n**NEVER assume you can \"just peek at .env to understand the schema.\"** Use `.env.example` or ask.\n\n### Prohibited Output Patterns\n\n**NEVER write these to `.squad\u002F` files:**\n\n| Pattern Type | Examples | Regex Pattern (for scanning) |\n|--------------|----------|-------------------------------|\n| API Keys | `OPENAI_API_KEY=sk-proj-...`, `GITHUB_TOKEN=ghp_...` | `[A-Z_]+(?:KEY|TOKEN|SECRET)=[^\\s]+` |\n| Passwords | `DB_PASSWORD=super_secret_123`, `password: \"...\"` | `(?:PASSWORD|PASS|PWD)[:=]\\s*[\"']?[^\\s\"']+` |\n| Connection Strings | `postgres:\u002F\u002Fuser:pass@host:5432\u002Fdb`, `Server=...;Password=...` | `(?:postgres|mysql|mongodb):\u002F\u002F[^@]+@|(?:Server|Host)=.*(?:Password|Pwd)=` |\n| JWT Tokens | `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...` | `eyJ[A-Za-z0-9_-]+\\.eyJ[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+` |\n| Private Keys | `-----BEGIN PRIVATE KEY-----`, `-----BEGIN RSA PRIVATE KEY-----` | `-----BEGIN [A-Z ]+PRIVATE KEY-----` |\n| AWS Credentials | `AKIA...`, `aws_secret_access_key=...` | `AKIA[0-9A-Z]{16}|aws_secret_access_key=[^\\s]+` |\n| Email Addresses | `user@example.com` (PII violation per team decision) | `[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}` |\n\n**What to write instead:**\n- Placeholder values: `DATABASE_URL=\u003Cset in .env>`\n- Redacted references: `API key configured (see .env.example)`\n- Architecture notes: \"App uses JWT auth — token stored in session\"\n- Schema documentation: \"Requires OPENAI_API_KEY, GITHUB_TOKEN (see .env.example for format)\"\n\n### Scribe Pre-Commit Validation\n\n**Before committing `.squad\u002F` changes, Scribe MUST:**\n\n1. **Scan all staged files** for secret patterns (use regex table above)\n2. **Check for prohibited file names** (don't commit `.env` even if manually staged)\n3. **If secrets detected:**\n   - STOP the commit (do NOT proceed)\n   - Remove the file from staging: `git reset HEAD \u003Cfile>`\n   - Report to user:\n     ```\n     ? SECRET DETECTED — commit blocked\n     \n     File: .squad\u002Fdecisions\u002Finbox\u002Friver-db-config.md\n     Pattern: DATABASE_URL=postgres:\u002F\u002Fuser:password@localhost:5432\u002Fprod\n     \n     This file contains credentials and MUST NOT be committed.\n     Please remove the secret, replace with placeholder, and try again.\n     ```\n   - Exit with error (never silently skip)\n\n4. **If no secrets detected:**\n   - Proceed with commit as normal\n\n**Implementation note for Scribe:**\n- Run validation AFTER staging files, BEFORE calling `git commit`\n- Use PowerShell `Select-String` or `git diff --cached` to scan staged content\n- Fail loud — secret leaks are unacceptable, blocking the commit is correct behavior\n\n### Remediation — If a Secret Was Already Committed\n\n**If you discover a secret in git history:**\n\n1. **STOP immediately** — do not make more commits\n2. **Alert the user:**\n   ```\n   ? CREDENTIAL LEAK DETECTED\n   \n   A secret was found in git history:\n   Commit: abc1234\n   File: .squad\u002Fdecisions\u002Finbox\u002Fagent-config.md\n   Pattern: API_KEY=sk-proj-...\n   \n   This requires immediate remediation:\n   1. Revoke the exposed credential (regenerate API key, rotate password)\n   2. Remove from git history (git filter-repo or BFG)\n   3. Force-push the cleaned history\n   \n   Do NOT proceed with new work until this is resolved.\n   ```\n3. **Do NOT attempt to fix it yourself** — secret removal requires specialized tools\n4. **Wait for user confirmation** before resuming work\n\n## Examples\n\n### ✓ Correct: Reading Config Schema\n\n**Agent needs to know what environment variables are required:**\n\n```\nAgent: \"What environment variables does this app need?\"\n→ Reads `.env.example`:\n    OPENAI_API_KEY=sk-...\n    DATABASE_URL=postgres:\u002F\u002Fuser:pass@localhost:5432\u002Fdb\n    REDIS_URL=redis:\u002F\u002Flocalhost:6379\n\n→ Writes to .squad\u002Fdecisions\u002Finbox\u002Friver-env-setup.md:\n    \"App requires three environment variables:\n    - OPENAI_API_KEY (OpenAI API key, format: sk-...)\n    - DATABASE_URL (Postgres connection string)\n    - REDIS_URL (Redis connection string)\n    See .env.example for full schema.\"\n```\n\n### ✗ Incorrect: Reading Live Credentials\n\n**Agent needs to know database schema:**\n\n```\nAgent: (reads .env)\n    DATABASE_URL=postgres:\u002F\u002Fadmin:super_secret_pw@prod.example.com:5432\u002Fappdb\n\n→ Writes to .squad\u002Fdecisions\u002Finbox\u002Friver-db-schema.md:\n    \"Database connection: postgres:\u002F\u002Fadmin:super_secret_pw@prod.example.com:5432\u002Fappdb\"\n    \n? VIOLATION: Live credential written to committed file\n```\n\n**Correct approach:**\n```\nAgent: (reads .env.example OR asks user)\nUser: \"It's a Postgres database, schema is in migrations\u002F\"\n\n→ Writes to .squad\u002Fdecisions\u002Finbox\u002Friver-db-schema.md:\n    \"Database: Postgres (connection configured in .env). Schema defined in db\u002Fmigrations\u002F.\"\n```\n\n### ✓ Correct: Scribe Pre-Commit Validation\n\n**Scribe is about to commit:**\n\n```powershell\n# Stage files\ngit add .squad\u002F\n\n# Scan staged content for secrets\n$stagedContent = git diff --cached\n$secretPatterns = @(\n    '[A-Z_]+(?:KEY|TOKEN|SECRET)=[^\\s]+',\n    '(?:PASSWORD|PASS|PWD)[:=]\\s*[\"'']?[^\\s\"'']+',\n    'eyJ[A-Za-z0-9_-]+\\.eyJ[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+'\n)\n\n$detected = $false\nforeach ($pattern in $secretPatterns) {\n    if ($stagedContent -match $pattern) {\n        $detected = $true\n        Write-Host \"? SECRET DETECTED: $($matches[0])\"\n        break\n    }\n}\n\nif ($detected) {\n    # Remove from staging, report, exit\n    git reset HEAD .squad\u002F\n    Write-Error \"Commit blocked — secret detected in staged files\"\n    exit 1\n}\n\n# Safe to commit\ngit commit -F $msgFile\n```\n\n## Anti-Patterns\n\n- ❌ Reading `.env` \"just to check the schema\" — use `.env.example` instead\n- ❌ Writing \"sanitized\" connection strings that still contain credentials\n- ❌ Assuming \"it's just a dev environment\" makes secrets safe to commit\n- ❌ Committing first, scanning later — validation MUST happen before commit\n- ❌ Silently skipping secret detection — fail loud, never silent\n- ❌ Trusting agents to \"know better\" — enforce at multiple layers (prompt, hook, architecture)\n- ❌ Writing secrets to \"temporary\" files in `.squad\u002F` — Scribe commits ALL `.squad\u002F` changes\n- ❌ Extracting \"just the host\" from a connection string — still leaks infrastructure topology\n","## Context\n\nSpawned agents have read access to the entire repository, including `.env` files containing live credentials. If an agent reads secrets and writes them to `.squad\u002F` files (decisions, logs, history), Scribe auto-commits them to git, exposing them in remote history. This skill codifies absolute prohibitions and safe alternatives.\n\n## Patterns\n\n### Prohibited File Reads\n\n**NEVER read these files:**\n- `.env` (production secrets)\n- `.env.local` (local dev secrets)\n- `.env.production` (production environment)\n- `.env.development` (development environment)\n- `.env.staging` (staging environment)\n- `.env.test` (test environment with real credentials)\n- Any file matching `.env.*` UNLESS explicitly allowed (see below)\n\n**Allowed alternatives:**\n- `.env.example` (safe — contains placeholder values, no real secrets)\n- `.env.sample` (safe — documentation template)\n- `.env.template` (safe — schema\u002Fstructure reference)\n\n**If you need config info:**\n1. **Ask the user directly** — \"What's the database connection string?\"\n2. **Read `.env.example`** — shows structure without exposing secrets\n3. **Read documentation** — check `README.md`, `docs\u002F`, config guides\n\n**NEVER assume you can \"just peek at .env to understand the schema.\"** Use `.env.example` or ask.\n\n### Prohibited Output Patterns\n\n**NEVER write these to `.squad\u002F` files:**\n\n| Pattern Type | Examples | Regex Pattern (for scanning) |\n|--------------|----------|-------------------------------|\n| API Keys | `OPENAI_API_KEY=sk-proj-...`, `GITHUB_TOKEN=ghp_...` | `[A-Z_]+(?:KEY|TOKEN|SECRET)=[^\\s]+` |\n| Passwords | `DB_PASSWORD=super_secret_123`, `password: \"...\"` | `(?:PASSWORD|PASS|PWD)[:=]\\s*[\"']?[^\\s\"']+` |\n| Connection Strings | `postgres:\u002F\u002Fuser:pass@host:5432\u002Fdb`, `Server=...;Password=...` | `(?:postgres|mysql|mongodb):\u002F\u002F[^@]+@|(?:Server|Host)=.*(?:Password|Pwd)=` |\n| JWT Tokens | `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...` | `eyJ[A-Za-z0-9_-]+\\.eyJ[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+` |\n| Private Keys | `-----BEGIN PRIVATE KEY-----`, `-----BEGIN RSA PRIVATE KEY-----` | `-----BEGIN [A-Z ]+PRIVATE KEY-----` |\n| AWS Credentials | `AKIA...`, `aws_secret_access_key=...` | `AKIA[0-9A-Z]{16}|aws_secret_access_key=[^\\s]+` |\n| Email Addresses | `user@example.com` (PII violation per team decision) | `[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}` |\n\n**What to write instead:**\n- Placeholder values: `DATABASE_URL=\u003Cset in .env>`\n- Redacted references: `API key configured (see .env.example)`\n- Architecture notes: \"App uses JWT auth — token stored in session\"\n- Schema documentation: \"Requires OPENAI_API_KEY, GITHUB_TOKEN (see .env.example for format)\"\n\n### Scribe Pre-Commit Validation\n\n**Before committing `.squad\u002F` changes, Scribe MUST:**\n\n1. **Scan all staged files** for secret patterns (use regex table above)\n2. **Check for prohibited file names** (don't commit `.env` even if manually staged)\n3. **If secrets detected:**\n   - STOP the commit (do NOT proceed)\n   - Remove the file from staging: `git reset HEAD \u003Cfile>`\n   - Report to user:\n     ```\n     ? SECRET DETECTED — commit blocked\n     \n     File: .squad\u002Fdecisions\u002Finbox\u002Friver-db-config.md\n     Pattern: DATABASE_URL=postgres:\u002F\u002Fuser:password@localhost:5432\u002Fprod\n     \n     This file contains credentials and MUST NOT be committed.\n     Please remove the secret, replace with placeholder, and try again.\n     ```\n   - Exit with error (never silently skip)\n\n4. **If no secrets detected:**\n   - Proceed with commit as normal\n\n**Implementation note for Scribe:**\n- Run validation AFTER staging files, BEFORE calling `git commit`\n- Use PowerShell `Select-String` or `git diff --cached` to scan staged content\n- Fail loud — secret leaks are unacceptable, blocking the commit is correct behavior\n\n### Remediation — If a Secret Was Already Committed\n\n**If you discover a secret in git history:**\n\n1. **STOP immediately** — do not make more commits\n2. **Alert the user:**\n   ```\n   ? CREDENTIAL LEAK DETECTED\n   \n   A secret was found in git history:\n   Commit: abc1234\n   File: .squad\u002Fdecisions\u002Finbox\u002Fagent-config.md\n   Pattern: API_KEY=sk-proj-...\n   \n   This requires immediate remediation:\n   1. Revoke the exposed credential (regenerate API key, rotate password)\n   2. Remove from git history (git filter-repo or BFG)\n   3. Force-push the cleaned history\n   \n   Do NOT proceed with new work until this is resolved.\n   ```\n3. **Do NOT attempt to fix it yourself** — secret removal requires specialized tools\n4. **Wait for user confirmation** before resuming work\n\n## Examples\n\n### ✓ Correct: Reading Config Schema\n\n**Agent needs to know what environment variables are required:**\n\n```\nAgent: \"What environment variables does this app need?\"\n→ Reads `.env.example`:\n    OPENAI_API_KEY=sk-...\n    DATABASE_URL=postgres:\u002F\u002Fuser:pass@localhost:5432\u002Fdb\n    REDIS_URL=redis:\u002F\u002Flocalhost:6379\n\n→ Writes to .squad\u002Fdecisions\u002Finbox\u002Friver-env-setup.md:\n    \"App requires three environment variables:\n    - OPENAI_API_KEY (OpenAI API key, format: sk-...)\n    - DATABASE_URL (Postgres connection string)\n    - REDIS_URL (Redis connection string)\n    See .env.example for full schema.\"\n```\n\n### ✗ Incorrect: Reading Live Credentials\n\n**Agent needs to know database schema:**\n\n```\nAgent: (reads .env)\n    DATABASE_URL=postgres:\u002F\u002Fadmin:super_secret_pw@prod.example.com:5432\u002Fappdb\n\n→ Writes to .squad\u002Fdecisions\u002Finbox\u002Friver-db-schema.md:\n    \"Database connection: postgres:\u002F\u002Fadmin:super_secret_pw@prod.example.com:5432\u002Fappdb\"\n    \n? VIOLATION: Live credential written to committed file\n```\n\n**Correct approach:**\n```\nAgent: (reads .env.example OR asks user)\nUser: \"It's a Postgres database, schema is in migrations\u002F\"\n\n→ Writes to .squad\u002Fdecisions\u002Finbox\u002Friver-db-schema.md:\n    \"Database: Postgres (connection configured in .env). Schema defined in db\u002Fmigrations\u002F.\"\n```\n\n### ✓ Correct: Scribe Pre-Commit Validation\n\n**Scribe is about to commit:**\n\n```powershell\n# Stage files\ngit add .squad\u002F\n\n# Scan staged content for secrets\n$stagedContent = git diff --cached\n$secretPatterns = @(\n    '[A-Z_]+(?:KEY|TOKEN|SECRET)=[^\\s]+',\n    '(?:PASSWORD|PASS|PWD)[:=]\\s*[\"'']?[^\\s\"'']+',\n    'eyJ[A-Za-z0-9_-]+\\.eyJ[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+'\n)\n\n$detected = $false\nforeach ($pattern in $secretPatterns) {\n    if ($stagedContent -match $pattern) {\n        $detected = $true\n        Write-Host \"? SECRET DETECTED: $($matches[0])\"\n        break\n    }\n}\n\nif ($detected) {\n    # Remove from staging, report, exit\n    git reset HEAD .squad\u002F\n    Write-Error \"Commit blocked — secret detected in staged files\"\n    exit 1\n}\n\n# Safe to commit\ngit commit -F $msgFile\n```\n\n## Anti-Patterns\n\n- ❌ Reading `.env` \"just to check the schema\" — use `.env.example` instead\n- ❌ Writing \"sanitized\" connection strings that still contain credentials\n- ❌ Assuming \"it's just a dev environment\" makes secrets safe to commit\n- ❌ Committing first, scanning later — validation MUST happen before commit\n- ❌ Silently skipping secret detection — fail loud, never silent\n- ❌ Trusting agents to \"know better\" — enforce at multiple layers (prompt, hook, architecture)\n- ❌ Writing secrets to \"temporary\" files in `.squad\u002F` — Scribe commits ALL `.squad\u002F` changes\n- ❌ Extracting \"just the host\" from a connection string — still leaks infrastructure topology\n",{"name":5,"domain":28,"source":29,"confidence":30,"description":7},"security, file-operations, team-collaboration","earned (issue","high","main","5494201db9619bc6c0de7999caa5ae7ae315e6be",".github\u002Fskills\u002Fsecret-handling",3,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Ffsi-banking-payments-dispute-resolution-accelerator","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-10-27 01:08:00",{"source":8,"skillName":5,"commands":41,"prompt":51,"zipAvailable":52},[42,45,48],{"tool":43,"command":44},"npx","npx skills add microsoft\u002Ffsi-banking-payments-dispute-resolution-accelerator --skill secret-handling",{"tool":46,"command":47},"bunx","bunx skills add microsoft\u002Ffsi-banking-payments-dispute-resolution-accelerator --skill secret-handling",{"tool":49,"command":50},"pnpm","pnpm dlx skills add microsoft\u002Ffsi-banking-payments-dispute-resolution-accelerator --skill secret-handling","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Ffsi-banking-payments-dispute-resolution-accelerator\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fsecret-handling\u002FSKILL.md",true,[54],{"path":55,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":58,"sourceHtmlUrl":59},"evals\u002Fevals.json","REFERENCE","参考文档",1473,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fskywalking-banyandb\u002Fblob\u002Fmain\u002Fskills\u002Fgh-issue\u002Fevals\u002Fevals.json",[61,76,83,89,103,117],{"skillNo":62,"name":63,"nameZh":6,"description":64,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":72,"publishedAt":23},"01M69BCQ2R27TFYA8Q03XFNFWM","{skill-name}","{what this skill teaches agents}","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Ffsi-banking-payments-dispute-resolution-accelerator\u002Fblob\u002Fmain\u002F.squad\u002Ftemplates\u002Fskill.md",[67],{"categoryNo":68,"categoryName":69,"taxonomyType":70,"taxonomyTypeDesc":71},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[73,74,75],"{skill name}","testing","design",{"skillNo":77,"name":78,"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":79,"categories":80,"keywords":81,"publishedAt":23},"01M69BCNFGJTKKASKWDB0MM668","azd-seed-hook","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Ffsi-banking-payments-dispute-resolution-accelerator\u002Fblob\u002Fmain\u002F.squad\u002Fskills\u002Fazd-seed-hook\u002FSKILL.md",[],[82],"azd seed hook",{"skillNo":84,"name":63,"nameZh":6,"description":64,"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":88,"publishedAt":23},"01M69BCDES6M5FRTCMY7214B94","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Ffsi-banking-payments-dispute-resolution-accelerator\u002Fblob\u002Fmain\u002F.squad\u002Fskill.md",[87],{"categoryNo":68,"categoryName":69,"taxonomyType":70,"taxonomyTypeDesc":71},[73,74,75],{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":99,"publishedAt":23},"01M69BCBAGT24AD5SBDP876P09","tiered-memory","Three-tier agent memory model (hot\u002Fcold\u002Fwiki) for context reduction per spawn","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Ffsi-banking-payments-dispute-resolution-accelerator\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Ftiered-memory\u002FSKILL.md",[95,98],{"categoryNo":96,"categoryName":97,"taxonomyType":70,"taxonomyTypeDesc":71},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":68,"categoryName":69,"taxonomyType":70,"taxonomyTypeDesc":71},[100,101,75,102],"memory","tiered memory","performance",{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":112,"publishedAt":23},"01M69BC9SWSK7ZX02AKTVT16E9","test-discipline","Update tests when changing APIs — no exceptions","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Ffsi-banking-payments-dispute-resolution-accelerator\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Ftest-discipline\u002FSKILL.md",[109],{"categoryNo":110,"categoryName":111,"taxonomyType":70,"taxonomyTypeDesc":71},"01JBSEEDCAT000000000000008","测试与质量",[113,114,115,116],"test discipline","test","sync","update",{"skillNo":118,"name":22,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":122,"publishedAt":23},"01M69BC7MR12QTSH97DCQYB81N","Squad's command catalog and interactive menu. Invoke via \u002Fsquad (slash command) or natural language (\"squad commands\", \"what can squad do\", \"show me squad options\"). Presents categorized operations (Install & Upgrade, Team Management, Issues & PRs, Plugins & Skills, Model & Cost, Sessions & State) as an interactive picker. Routes to the right squad CLI command or the Squad coordinator agent.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Ffsi-banking-payments-dispute-resolution-accelerator\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fsquad\u002FSKILL.md",[],[22,123,124,125],"cli","squad commands","sessions"]