14
GitHub Stars
1
Bundled Files
2 months ago
Catalog Refreshed
4 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstrat where the catalogue uses aiagentskills.
npx veilstrat add skill terrylica/cc-skills --skill mise-configuration- SKILL.md18.6 KB
Overview
This skill configures a project environment using mise [env] as the single source of truth. It centralizes environment variables, auto-creates Python virtual environments, and supports hub‑spoke layouts for monorepos so each domain can inherit or override settings. The patterns are backward compatible: scripts use normal env fallbacks and work whether mise is installed or not.
How this skill works
Place all configurable values under the .mise.toml [env] section and use standard env access patterns in code (e.g., os.environ.get(...), process.env, ${VAR:-default}). mise will auto-load those values when the shell runs mise activate, create venvs per workspace rules, and apply templating, file loading, and redaction directives. Hub (root) mise.toml supplies shared [tools] and [env]; subfolder spokes extend or override env and declare domain tasks.
When to use it
- You need a centralized environment variables SSoT across a repo or monorepo.
- You want automatic Python venv creation and activation at workspace root or per-project.
- You have a multi-domain project and want hub-spoke task delegation to keep root mise.toml lean.
- You must support multi-account GitHub tokens per directory and ensure tools pick the right env var.
- You need templated, lazy, or tool-aware env values (files, commands, computed values).
Best practices
- Define all configurable values in .mise.toml [env] and keep defaults in code using env.get patterns.
- Pin [tools] at the hub and let spokes inherit to avoid version drift.
- Hoist dev dependencies to the workspace root pyproject.toml for consistent dev environments.
- Delegate domain-specific tasks to spoke mise.toml files when root exceeds ~50 lines.
- Use _.file, _.source, and _.path directives for structured env loading and PATH extension.
Example use cases
- Monorepo: hub mise.toml defines python venv and orchestration; packages/* spokes define build/test tasks.
- ML project: experiments spokes declare EPOCHS and LEARNING_RATE while hub manages python/tool versions.
- Infra repo: root manages terraform and kubectl versions; env tokens and secrets are loaded per-spoke.
- Multi-account GitHub: per-directory GH_TOKEN and GITHUB_TOKEN loaded from secure token files or vault.
- Local-first workflows: scripts use env fallbacks so CI or developers without mise still run reliably.
FAQ
Yes. Code should use env-access patterns with sensible defaults so the same path works with or without mise.
Where should I pin tool versions?
Pin [tools] in the hub (root) mise.toml so spokes inherit a single source of runtime versions.