[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M719CSCA85EGY648T4DVRN16":3,"skill-same:01M719CSCA85EGY648T4DVRN16":61},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":40,"commitSha":41,"skillDirectory":42,"forksCount":43,"repositoryHtmlUrl":44,"repositoryHomepageUrl":6,"ownerHtmlUrl":45,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":46,"install":47,"resources":60},"01M719CSCA85EGY648T4DVRN16","secret-handling",null,"Never read .env files or write secrets to .squad\u002F committed files","DeDuva\u002Fsquad","DeDuva","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F8153108?v=4","01M719BQB25861D0TKS3RVHMN2","01M719BQBSWR380PSYDD5M9YD4",1,"MIT","https:\u002F\u002Fgithub.com\u002FDeDuva\u002Fsquad\u002Fblob\u002Fdev\u002F.copilot\u002Fskills\u002Fsecret-handling\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32],"secret handling","never","files","collaboration","file","team","env","high","operations","read","secrets","write","issue","security","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":38,"source":39,"confidence":25,"description":7},"security, file-operations, team-collaboration","earned (issue","dev","4ffda80d1bb1043d9169688cf161e53097345c72",".copilot\u002Fskills\u002Fsecret-handling",0,"https:\u002F\u002Fgithub.com\u002FDeDuva\u002Fsquad","https:\u002F\u002Fgithub.com\u002FDeDuva","2026-11-09 20:24:44",{"source":8,"skillName":5,"commands":48,"prompt":58,"zipAvailable":59},[49,52,55],{"tool":50,"command":51},"npx","npx skills add DeDuva\u002Fsquad --skill secret-handling",{"tool":53,"command":54},"bunx","bunx skills add DeDuva\u002Fsquad --skill secret-handling",{"tool":56,"command":57},"pnpm","pnpm dlx skills add DeDuva\u002Fsquad --skill secret-handling","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FDeDuva\u002Fsquad\u002Fblob\u002Fdev\u002F.copilot\u002Fskills\u002Fsecret-handling\u002FSKILL.md",true,[],[62,78,86,101,124,139],{"skillNo":63,"name":64,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":72,"publishedAt":33},"01M719NE6ZPZT80MKVWFDECJZ3","My Skill","https:\u002F\u002Fgithub.com\u002FDeDuva\u002Fsquad\u002Fblob\u002Fdev\u002Ftest-fixtures\u002Fskills-test-abb30454\u002Fmy-skill\u002FSKILL.md",[67],{"categoryNo":68,"categoryName":69,"taxonomyType":70,"taxonomyTypeDesc":71},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[73,74,75,76,77],"my","my skill","testing","vitest","tester",{"skillNo":79,"name":80,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":33},"01M719NDJAMEWM8D9H355SCNA8","bad-skill","https:\u002F\u002Fgithub.com\u002FDeDuva\u002Fsquad\u002Fblob\u002Fdev\u002Ftest-fixtures\u002Fskills-test-abb30454\u002Fbad-skill\u002FSKILL.md",[],[84,85],"bad skill","bad",{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":33},"01M719NCC1AZ02GHZ1V71YPEV7","squad-conventions","Core conventions and patterns used in the Squad codebase","https:\u002F\u002Fgithub.com\u002FDeDuva\u002Fsquad\u002Fblob\u002Fdev\u002Ftemplates\u002Fskills\u002Fsquad-conventions\u002FSKILL.md",[],[93,32,94,95,96,97,98,25,99,100],"conventions","squad conventions","project-conventions","core","project","manual","codebase","patterns",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":33},"01M719NAYM17B7X8MGP681EHKQ","rework-rate","Measure and interpret PR rework rate — the emerging 5th DORA metric","https:\u002F\u002Fgithub.com\u002FDeDuva\u002Fsquad\u002Fblob\u002Fdev\u002Ftemplates\u002Fskills\u002Frework-rate\u002FSKILL.md",[],[108,109,110,111,25,112,113,114,32,115,116,117,118,98,119,120,121,23,122,123],"rate","rework rate","health","analyze","review efficiency","quality","metric","metrics","efficiency","code quality","pr","prs","when","code","code-review","review",{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":130,"publishedAt":33},"01M719NA136PDC3SQ10R4R88TH","nap","Context hygiene — compress, prune, archive .squad\u002F state","https:\u002F\u002Fgithub.com\u002FDeDuva\u002Fsquad\u002Fblob\u002Fdev\u002Ftemplates\u002Fskills\u002Fnap\u002FSKILL.md",[],[126,131,132,133,134,135,136,137,32,138],"prune","state","maintenance","context hygiene","archive","hygiene","compress","context",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":149,"publishedAt":33},"01M719N7B4PBQPNXW78TEJY4HQ","e2e-template-testing","End-to-end validation of coordinator and agent template changes","https:\u002F\u002Fgithub.com\u002FDeDuva\u002Fsquad\u002Fblob\u002Fdev\u002Ftemplates\u002Fskills\u002Fe2e-template-testing\u002FSKILL.md",[145,148],{"categoryNo":146,"categoryName":147,"taxonomyType":70,"taxonomyTypeDesc":71},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":68,"categoryName":69,"taxonomyType":70,"taxonomyTypeDesc":71},[75,150,151,152,153,154,155,98,156,25,157],"e2e template testing","e2e","template","end","coordinator","development","changes","validation"]