Babysitter cosmiconfig-setup
Set up cosmiconfig for hierarchical configuration loading from multiple sources and formats.
install
source · Clone the upstream repo
git clone https://github.com/a5c-ai/babysitter
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/a5c-ai/babysitter "$T" && mkdir -p ~/.claude/skills && cp -r "$T/library/specializations/cli-mcp-development/skills/cosmiconfig-setup" ~/.claude/skills/a5c-ai-babysitter-cosmiconfig-setup && rm -rf "$T"
manifest:
library/specializations/cli-mcp-development/skills/cosmiconfig-setup/SKILL.mdsource content
Cosmiconfig Setup
Set up cosmiconfig for hierarchical config loading.
Capabilities
- Configure cosmiconfig search paths
- Set up format loaders (JSON, YAML, TOML)
- Create TypeScript config support
- Implement config caching
- Handle config validation
Generated Patterns
import { cosmiconfig, cosmiconfigSync } from 'cosmiconfig'; import { TypeScriptLoader } from 'cosmiconfig-typescript-loader'; const moduleName = 'myapp'; const explorer = cosmiconfig(moduleName, { searchPlaces: [ 'package.json', `.${moduleName}rc`, `.${moduleName}rc.json`, `.${moduleName}rc.yaml`, `.${moduleName}rc.yml`, `.${moduleName}rc.js`, `.${moduleName}rc.ts`, `.${moduleName}rc.cjs`, `${moduleName}.config.js`, `${moduleName}.config.ts`, `${moduleName}.config.cjs`, ], loaders: { '.ts': TypeScriptLoader(), }, }); export async function loadConfig(searchFrom?: string) { const result = await explorer.search(searchFrom); if (!result || result.isEmpty) { return { config: getDefaultConfig(), filepath: null }; } return { config: { ...getDefaultConfig(), ...result.config }, filepath: result.filepath }; }
Target Processes
- configuration-management-system
- cli-application-bootstrap
- mcp-server-bootstrap