[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6F4393NJCYXSW2F5J2KP0RH":3,"skill-same:01M6F4393NJCYXSW2F5J2KP0RH":65},{"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":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":45,"repositoryHtmlUrl":46,"repositoryHomepageUrl":47,"ownerHtmlUrl":48,"ownerBlogUrl":6,"ownerDescription":49,"updatedAt":50,"install":51,"resources":64},"01M6F4393NJCYXSW2F5J2KP0RH","config_file_recognition",null,"How to find, read, and audit configuration files — includes concrete investigation steps like grepping for env vars, checking for hardcoded secrets, and mapping external service dependencies.","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",66,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fesurovtsev\u002Flangchain-lab\u002Fconfig_file_recognition\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"file","config file recognition","recognition","config","env vars","investigation","secrets","how","find","read","files","configuration","dependencies","service","env","how to","mapping","audit","2026-11-10 10:12:30",false,"---\nname: config_file_recognition\ndescription: How to find, read, and audit configuration files — includes concrete investigation steps like grepping for env vars, checking for hardcoded secrets, and mapping external service dependencies.\n---\n\n# Config File Recognition\n\n## When to Use This Skill\n\nWhen you need to understand how a project is configured, what external services it depends on, what environment variables it requires, or whether there are configuration issues (hardcoded secrets, missing defaults, inconsistent settings).\n\n## Step-by-Step Investigation\n\n### Step 1: Find All Config Files\n\nUse `glob_search` to locate config files across the project:\n\n- `glob_search(pattern=\"**\u002F.env*\")` — environment files\n- `glob_search(pattern=\"**\u002F*.json\", path=\"config\u002F\")` — JSON config\n- `glob_search(pattern=\"**\u002FDockerfile*\")` — container config\n- `glob_search(pattern=\"**\u002F*.yaml\")` or `**\u002F*.yml` — YAML config\n- `glob_search(pattern=\"**\u002Frequirements*.txt\")` — Python dependencies\n- `glob_search(pattern=\"**\u002Fpackage.json\")` — Node.js dependencies\n\n### Step 2: Read Safe Config Files First\n\nRead in this priority order:\n\n1. **`.env.example`** — safe to read, shows what variables the app expects\n2. **`config\u002F` directory files** — JSON\u002FYAML config for services, servers, etc.\n3. **`requirements.txt` \u002F `package.json`** — dependencies reveal what services are used\n4. **`Dockerfile` \u002F `docker-compose.yml`** — runtime environment, ports, services\n\n**Never read `.env` files** — they may contain real secrets.\n\n### Step 3: Grep for Configuration Patterns in Code\n\nUse `grep_search` to understand how config is consumed:\n\n- `grep_search(query=\"os.getenv|os.environ|dotenv\")` — find env var usage in Python\n- `grep_search(query=\"process.env\")` — find env var usage in JavaScript\u002FNode\n- `grep_search(query=\"localhost|127.0.0.1\")` — find hardcoded local URLs\n- `grep_search(query=\"port|PORT\")` — find port configuration\n- `grep_search(query=\"SECRET|KEY|TOKEN|PASSWORD\")` — check for sensitive values in code\n\n### Step 4: Map External Dependencies\n\nFrom the config files and grep results, build a picture of:\n\n- **Required environment variables** — list each with its purpose (from `.env.example` and `getenv` calls)\n- **External services** — databases, APIs, caches (from connection strings and config)\n- **Ports** — what ports the app listens on and connects to\n- **API keys \u002F credentials needed** — which services require authentication\n\n### Step 5: Check for Issues\n\nLook for common configuration problems:\n\n- **Hardcoded secrets** — API keys, passwords, or tokens directly in source code (not in env vars)\n- **Missing `.env.example`** — if code uses env vars but no example file documents them\n- **Inconsistent ports** — frontend configured to call one port, backend listening on another\n- **Hardcoded URLs** — `localhost` or IP addresses that won't work in production\n- **Unpinned dependencies** — `requirements.txt` without version pins\n\n## Report Format\n\nStructure your findings as:\n\n1. **Config Files Found** — list with brief purpose of each\n2. **Environment Variables** — table of variable name, purpose, where it's used\n3. **External Services** — what the app connects to and how\n4. **Ports & URLs** — network configuration summary\n5. **Issues Found** — any problems discovered (hardcoded secrets, missing config, etc.)\n\n## Things to Avoid\n\n- Never read `.env` files — they contain real secrets\n- Never display actual secret values even if found in code — just note their location\n- Don't assume config values are current — they might be defaults overridden at runtime\n- Don't confuse `requirements.txt` (dependencies) with `config.yaml` (runtime settings)\n\n","# Config File Recognition\n\n## When to Use This Skill\n\nWhen you need to understand how a project is configured, what external services it depends on, what environment variables it requires, or whether there are configuration issues (hardcoded secrets, missing defaults, inconsistent settings).\n\n## Step-by-Step Investigation\n\n### Step 1: Find All Config Files\n\nUse `glob_search` to locate config files across the project:\n\n- `glob_search(pattern=\"**\u002F.env*\")` — environment files\n- `glob_search(pattern=\"**\u002F*.json\", path=\"config\u002F\")` — JSON config\n- `glob_search(pattern=\"**\u002FDockerfile*\")` — container config\n- `glob_search(pattern=\"**\u002F*.yaml\")` or `**\u002F*.yml` — YAML config\n- `glob_search(pattern=\"**\u002Frequirements*.txt\")` — Python dependencies\n- `glob_search(pattern=\"**\u002Fpackage.json\")` — Node.js dependencies\n\n### Step 2: Read Safe Config Files First\n\nRead in this priority order:\n\n1. **`.env.example`** — safe to read, shows what variables the app expects\n2. **`config\u002F` directory files** — JSON\u002FYAML config for services, servers, etc.\n3. **`requirements.txt` \u002F `package.json`** — dependencies reveal what services are used\n4. **`Dockerfile` \u002F `docker-compose.yml`** — runtime environment, ports, services\n\n**Never read `.env` files** — they may contain real secrets.\n\n### Step 3: Grep for Configuration Patterns in Code\n\nUse `grep_search` to understand how config is consumed:\n\n- `grep_search(query=\"os.getenv|os.environ|dotenv\")` — find env var usage in Python\n- `grep_search(query=\"process.env\")` — find env var usage in JavaScript\u002FNode\n- `grep_search(query=\"localhost|127.0.0.1\")` — find hardcoded local URLs\n- `grep_search(query=\"port|PORT\")` — find port configuration\n- `grep_search(query=\"SECRET|KEY|TOKEN|PASSWORD\")` — check for sensitive values in code\n\n### Step 4: Map External Dependencies\n\nFrom the config files and grep results, build a picture of:\n\n- **Required environment variables** — list each with its purpose (from `.env.example` and `getenv` calls)\n- **External services** — databases, APIs, caches (from connection strings and config)\n- **Ports** — what ports the app listens on and connects to\n- **API keys \u002F credentials needed** — which services require authentication\n\n### Step 5: Check for Issues\n\nLook for common configuration problems:\n\n- **Hardcoded secrets** — API keys, passwords, or tokens directly in source code (not in env vars)\n- **Missing `.env.example`** — if code uses env vars but no example file documents them\n- **Inconsistent ports** — frontend configured to call one port, backend listening on another\n- **Hardcoded URLs** — `localhost` or IP addresses that won't work in production\n- **Unpinned dependencies** — `requirements.txt` without version pins\n\n## Report Format\n\nStructure your findings as:\n\n1. **Config Files Found** — list with brief purpose of each\n2. **Environment Variables** — table of variable name, purpose, where it's used\n3. **External Services** — what the app connects to and how\n4. **Ports & URLs** — network configuration summary\n5. **Issues Found** — any problems discovered (hardcoded secrets, missing config, etc.)\n\n## Things to Avoid\n\n- Never read `.env` files — they contain real secrets\n- Never display actual secret values even if found in code — just note their location\n- Don't assume config values are current — they might be defaults overridden at runtime\n- Don't confuse `requirements.txt` (dependencies) with `config.yaml` (runtime settings)\n\n",{"name":5,"description":7},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fesurovtsev\u002Flangchain-lab\u002Fconfig_file_recognition",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill config_file_recognition",{"tool":57,"command":58},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill config_file_recognition",{"tool":60,"command":61},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill config_file_recognition","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fesurovtsev\u002Flangchain-lab\u002Fconfig_file_recognition\u002FSKILL.md",true,[],[66,80,90,99,105,112],{"skillNo":67,"name":68,"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":69,"categories":70,"keywords":76,"publishedAt":37},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[71],{"categoryNo":72,"categoryName":73,"taxonomyType":74,"taxonomyTypeDesc":75},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[77,78,79],"model","model hierarchy","model hierarchy skill",{"skillNo":81,"name":82,"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":83,"categories":84,"keywords":86,"publishedAt":37},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[85],{"categoryNo":72,"categoryName":73,"taxonomyType":74,"taxonomyTypeDesc":75},[87,88,89],"MCP","zoom","zoom mcp",{"skillNo":91,"name":92,"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":93,"categories":94,"keywords":95,"publishedAt":37},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[96,97,98,88],"sdk","zoom apps sdk","apps",{"skillNo":100,"name":101,"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":102,"categories":103,"keywords":104,"publishedAt":37},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[101],{"skillNo":106,"name":107,"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":108,"categories":109,"keywords":111,"publishedAt":37},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[110],{"categoryNo":72,"categoryName":73,"taxonomyType":74,"taxonomyTypeDesc":75},[107],{"skillNo":113,"name":114,"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":115,"categories":116,"keywords":117,"publishedAt":37},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[114]]