Overview
Use this skill to treat project-env.yaml as the only source of truth for workstation and Codex environment requirements in the repository.
Read the contract, verify the current machine, report gaps before mutation, and keep the contract synchronized when team requirements change.
Inputs
- Read
project-env.yamlat the repository root first. - Load
references/schema.mdwhen field behavior, verify modes, or authoring rules need clarification. - Do not require, create, or update
AGENTS.mdas part of this skill. This skill works directly from the YAML contract.
Workflow
1. Match The Platform
- Identify the current operating system and shell.
- Prefer a
platforms[]entry whosematch.osandmatch.shellboth match. - If no exact match exists, stop and ask the user to add a new platform block instead of guessing.
2. Verify Components
- Iterate
components[]in the matched platform block. - For
verify.comparison: semver, runverify.command, extract the version withverify.output_regex, and compare it against the componentversion. - For
verify.comparison: exists, check thatverify.pathexists relative to the repository root. - For
verify.manual_check: true, report the component as a manual verification item. Do not invent a CLI check. - Treat
required: trueitems as blocking when missing or out of policy.
3. Report Before Mutation
- Summarize the matched platform, satisfied components, missing components, version mismatches, and manual-check items.
- Show exact
install.commandvalues for components that can be installed automatically. - If a required component is missing and
install.commandis absent, stop and ask the user to provide a manual install step or update the contract. - Do not install or reconfigure anything until the user explicitly confirms the proposed actions.
4. Execute Approved Install Steps
- Run only the approved install commands for the matched platform.
- After each install batch, rerun verification for the affected components.
- If verification still fails, report the exact failing step and stop instead of adding fallback logic.
5. Maintain The Contract
- When team requirements change, update
project-env.yamlfirst and refreshupdated_atin the same task. - Keep
project-env.yamlmachine-oriented and concise. Keep all environment requirements in the YAML contract itself. - Add helper scripts only after the same verification or install step has failed, or been hand-written, at least twice.
Authoring Rules
- Keep the fixed top-level keys:
schema_version,updated_at,project,policy, andplatforms. - Keep every platform dependency inside one
components[]list. Do not split runtimes, skills, plugins, and MCPs into separate structures. - Use the supported component
typevalues:runtime,shell,tool,skill,plugin, andmcp. - Use repo-relative
verify.pathvalues for bundled skills or other files that should exist in the repository. - If there is no reliable CLI verification path for a plugin or MCP, mark it as a manual check instead of guessing.
- Do not add AGENTS-level process wiring for this workflow. The skill should read and maintain
project-env.yamldirectly.
Expected Output
- For an audit request, return:
- the matched platform
- satisfied components
- blocking required gaps
- optional gaps
- manual-check items
- the install commands that would run after approval
- For a maintenance request, update the contract first, then summarize what changed and what now needs verification.
Example Triggers
- "Check this project's environment before we start."
- "Set up this repo on a new Windows laptop."
- "Node drifted off the required version. Audit the environment."
- "Add a required MCP to the project contract."
- "Sync the environment contract after we upgraded Codex."
Resources
references/schema.md: field definitions, verify modes, version rules, and authoring conventions forproject-env.yaml.