Infrastructure Conventions
Manual Claude-to-Codex Sync
Claude-side is the source of truth for the converter's allowlist: global skills/**,
agents/*.md, and commands/*.md; or project CLAUDE.md, .claude/skills/**,
.claude/agents/*.md, and .claude/commands/*.md. Codex-side outputs are generated runtime. No scheduled job performs this
conversion. After editing an allowlisted source, run the matching command and review the generated
result before finishing:
~/.claude/scripts/sync-to-codex.sh --apply # global ~/.claude/**
~/.claude/scripts/sync-to-codex.sh --project "$PWD" --apply # project .claude/**
For a project, commit generated .codex/** and AGENTS.md changes with their Claude sources,
except host-local .codex/.sync/**. Global ~/.codex/** is runtime state outside the
~/.claude repository: run the global command explicitly on every affected host and do not add
it to the Claude-source commit. If sync reports a conflict or validation error, stop and report
it.
Scope and Judgment
- Project Knowledge is required infrastructure context. If it is absent, stop and ask the user to
create or fill it before continuing.
- The user's request defines which changes are authorized. A request to inspect, review, or assess
current infrastructure authorizes diagnosis and recommendations, not implementation.
- Existing architecture and Project Knowledge are the current contract, not proof that the setup
is good. Report demonstrated defects, unnecessary complexity, unsafe behavior, operational
risks, and worthwhile improvements instead of silently accepting them.
- Do not implement an improvement outside the user's request merely because it is beneficial.
Explain the evidence, impact, and proposed direction, then obtain agreement before changing it.
- Discuss the situation with the user when material information is missing or contradictory, an
action can affect production, users, data, secrets, or neighboring projects, the safe result is
uncertain, the current setup appears wrong, or the intended response expands the request.
- Treat a rare or unagreed operational scenario as a user decision even when its correction looks
local. Ask before adding or changing delivery, recovery, monitoring, isolation, persistent state,
infrastructure entities, dependencies, architecture, or material complexity.
- Apply only the topic rules relevant to the request; these are conventions, not a required setup
sequence.
Project-Specific Ownership
- Concrete hosts, platforms, users, paths, ports, service names, deployment triggers, direct-access
policy, agent or operations host, monitoring location, notification route, backup destinations,
and emergency recovery facts belong in Project Knowledge's deployment owner.
- Keep those facts current through
documentation-writing when an infrastructure change alters
them. Do not copy private project facts into this global skill or another public methodology
file.
- Project-specific decisions override the generic patterns here. If a documented choice is risky
or no longer fits reality, report it and discuss a change rather than overriding it silently.
Repository and Runtime Rules
- Do not introduce Docker, a server, a hook, or an environment merely because the skill covers it.
- Git pre-commit uses gitleaks for secret scanning and may add only fast staged-file lint or format
checks. Full test suites and builds belong in CI. Test a secret-like fixture only in a disposable
repository so it never enters the project's index, history, or reflog.
- When Docker is used, exclude secrets from the build context and image layers and give the final
container only the privileges it needs.
- Keep secrets out of Git and command output. Local values belong in ignored
.env or protected
config files; CI values belong in its secret store; runtime-only values belong in a protected
target-side file or secret store. Keep a value-free .env.example when configuration names need
documenting.
- Give project-owned ephemeral resources such as logs, caches, obsolete images, deployment
bundles, temporary builds, and CI artifacts a bounded retention or size policy. Backups need
retention that preserves current recovery needs and a verified restore path. Do not invent an
expiry for persistent application data or clean another project's resources.
Topic Rules
For a persistent service or deployment assessment, apply
deployment.md — delivery model, shared-host placement, environments,
production safety, rollback, and runtime verification.
For downloadable builds, browser extensions, packages, or CLIs, apply
release-artifacts.md — verified artifacts, retention, and the
manual Chrome Web Store boundary.
For health checks, timers, alerts, or monitoring assessment, apply
monitoring-and-alerting.md — control-host placement,
incident behavior, notification routing, installation, and drills.
Verification and Review
- Match implementation verification to the changed boundary: container, workflow, artifact,
timer, recovery path, or user-facing service behavior. Do not replay unrelated checks.
- Use a fresh
infrastructure-reviewer for an explicit review of current infrastructure or a
change that materially affects production delivery, secrets, environment isolation, release
publication, recovery, retention, monitoring, or shared-host boundaries. A trivial local or
formatting-only change whose result is fully established by direct verification does not need a
dedicated review. Supply the requested review boundary, relevant existing infrastructure,
Project Knowledge, applicable topic references, and available runtime evidence.
- When a dedicated review is required, run no more than two review waves. Wave 1 reviews the
requested current-infrastructure or completed-change boundary. After an authorized correction
changes the reviewed result, re-verify the affected boundary, refresh durable Project Knowledge
facts, and run wave 2 with a fresh
infrastructure-reviewer. Stop after a clean wave or when no
authorized correction changes the result. Include reviewers required by other active skills in
these same waves instead of starting a separate wave sequence.
- Review findings are diagnoses, not a work queue. Check the evidence and exact correction. Apply
only an authorized local correction to agreed normal operation. If the scenario is rare or
unagreed, or the correction adds delivery, recovery, monitoring, isolation, persistent state,
infrastructure entities, dependencies, architecture, or material complexity, reject it with a
short reason or ask the user before editing.
user_decision_required: false does not replace
this check. Report unsupported or unrelated findings without acting on them.
- After wave 2, do not launch another reviewer automatically. If a remaining local correction is
made inside the agreed change, verify its affected boundary directly and refresh durable Project
Knowledge facts. Report any remaining risks or required user decisions.
1---2name: infrastructure-setup3description: Provides project infrastructure conventions and review criteria for local setup, Docker, Git hooks, CI/CD, service delivery, release artifacts, monitoring, backups, and operations. Use when: "настрой инфраструктуру", "измени CI/CD", "подготовь деплой", "настрой Docker", "собери release artifact", "настрой мониторинг", "проверь инфраструктуру", "оцени деплой", "setup infrastructure", "review infrastructure" Do NOT use for: choosing or writing application tests without an infrastructure change.4---56# Infrastructure Conventions78## Manual Claude-to-Codex Sync910Claude-side is the source of truth for the converter's allowlist: global `skills/**`,11`agents/*.md`, and `commands/*.md`; or project `CLAUDE.md`, `.claude/skills/**`,12`.claude/agents/*.md`, and `.claude/commands/*.md`. Codex-side outputs are generated runtime. No scheduled job performs this13conversion. After editing an allowlisted source, run the matching command and review the generated14result before finishing:1516```bash17~/.claude/scripts/sync-to-codex.sh --apply # global ~/.claude/**18~/.claude/scripts/sync-to-codex.sh --project "$PWD" --apply # project .claude/**19```2021For a project, commit generated `.codex/**` and `AGENTS.md` changes with their Claude sources,22except host-local `.codex/.sync/**`. Global `~/.codex/**` is runtime state outside the23`~/.claude` repository: run the global command explicitly on every affected host and do not add24it to the Claude-source commit. If sync reports a conflict or validation error, stop and report25it.2627## Scope and Judgment2829- Project Knowledge is required infrastructure context. If it is absent, stop and ask the user to30 create or fill it before continuing.31- The user's request defines which changes are authorized. A request to inspect, review, or assess32 current infrastructure authorizes diagnosis and recommendations, not implementation.33- Existing architecture and Project Knowledge are the current contract, not proof that the setup34 is good. Report demonstrated defects, unnecessary complexity, unsafe behavior, operational35 risks, and worthwhile improvements instead of silently accepting them.36- Do not implement an improvement outside the user's request merely because it is beneficial.37 Explain the evidence, impact, and proposed direction, then obtain agreement before changing it.38- Discuss the situation with the user when material information is missing or contradictory, an39 action can affect production, users, data, secrets, or neighboring projects, the safe result is40 uncertain, the current setup appears wrong, or the intended response expands the request.41- Treat a rare or unagreed operational scenario as a user decision even when its correction looks42 local. Ask before adding or changing delivery, recovery, monitoring, isolation, persistent state,43 infrastructure entities, dependencies, architecture, or material complexity.44- Apply only the topic rules relevant to the request; these are conventions, not a required setup45 sequence.4647## Project-Specific Ownership4849- Concrete hosts, platforms, users, paths, ports, service names, deployment triggers, direct-access50 policy, agent or operations host, monitoring location, notification route, backup destinations,51 and emergency recovery facts belong in Project Knowledge's deployment owner.52- Keep those facts current through `documentation-writing` when an infrastructure change alters53 them. Do not copy private project facts into this global skill or another public methodology54 file.55- Project-specific decisions override the generic patterns here. If a documented choice is risky56 or no longer fits reality, report it and discuss a change rather than overriding it silently.5758## Repository and Runtime Rules5960- Do not introduce Docker, a server, a hook, or an environment merely because the skill covers it.61- Git pre-commit uses gitleaks for secret scanning and may add only fast staged-file lint or format62 checks. Full test suites and builds belong in CI. Test a secret-like fixture only in a disposable63 repository so it never enters the project's index, history, or reflog.64- When Docker is used, exclude secrets from the build context and image layers and give the final65 container only the privileges it needs.66- Keep secrets out of Git and command output. Local values belong in ignored `.env` or protected67 config files; CI values belong in its secret store; runtime-only values belong in a protected68 target-side file or secret store. Keep a value-free `.env.example` when configuration names need69 documenting.70- Give project-owned ephemeral resources such as logs, caches, obsolete images, deployment71 bundles, temporary builds, and CI artifacts a bounded retention or size policy. Backups need72 retention that preserves current recovery needs and a verified restore path. Do not invent an73 expiry for persistent application data or clean another project's resources.7475## Topic Rules7677For a persistent service or deployment assessment, apply78[deployment.md](references/deployment.md) — delivery model, shared-host placement, environments,79production safety, rollback, and runtime verification.8081For downloadable builds, browser extensions, packages, or CLIs, apply82[release-artifacts.md](references/release-artifacts.md) — verified artifacts, retention, and the83manual Chrome Web Store boundary.8485For health checks, timers, alerts, or monitoring assessment, apply86[monitoring-and-alerting.md](references/monitoring-and-alerting.md) — control-host placement,87incident behavior, notification routing, installation, and drills.8889## Verification and Review9091- Match implementation verification to the changed boundary: container, workflow, artifact,92 timer, recovery path, or user-facing service behavior. Do not replay unrelated checks.93- Use a fresh `infrastructure-reviewer` for an explicit review of current infrastructure or a94 change that materially affects production delivery, secrets, environment isolation, release95 publication, recovery, retention, monitoring, or shared-host boundaries. A trivial local or96 formatting-only change whose result is fully established by direct verification does not need a97 dedicated review. Supply the requested review boundary, relevant existing infrastructure,98 Project Knowledge, applicable topic references, and available runtime evidence.99- When a dedicated review is required, run no more than two review waves. Wave 1 reviews the100 requested current-infrastructure or completed-change boundary. After an authorized correction101 changes the reviewed result, re-verify the affected boundary, refresh durable Project Knowledge102 facts, and run wave 2 with a fresh `infrastructure-reviewer`. Stop after a clean wave or when no103 authorized correction changes the result. Include reviewers required by other active skills in104 these same waves instead of starting a separate wave sequence.105- Review findings are diagnoses, not a work queue. Check the evidence and exact correction. Apply106 only an authorized local correction to agreed normal operation. If the scenario is rare or107 unagreed, or the correction adds delivery, recovery, monitoring, isolation, persistent state,108 infrastructure entities, dependencies, architecture, or material complexity, reject it with a109 short reason or ask the user before editing. `user_decision_required: false` does not replace110 this check. Report unsupported or unrelated findings without acting on them.111- After wave 2, do not launch another reviewer automatically. If a remaining local correction is112 made inside the agreed change, verify its affected boundary directly and refresh durable Project113 Knowledge facts. Report any remaining risks or required user decisions.