Monitoring Observability
ahmedasmar/devops-claude-skills
Monitoring and observability strategy, implementation, and troubleshooting.
Design, audit, and troubleshoot production monitoring and observability using user-impact checks, layered telemetry, USE/RED, SLI/SLO/SLA, error budgets, cardinality controls, actionable alerting…
$ npx skills add AnastasiyaW/codex-claude-code-config --skill observability-monitoring -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install AnastasiyaW/codex-claude-code-config observability-monitoring --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/AnastasiyaW/codex-claude-code-config.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/operational/observability-monitoring .claude/skills/observability-monitoring && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "observability-monitoring" agent skill from https://github.com/AnastasiyaW/codex-claude-code-config/tree/main/skills/operational/observability-monitoring into .claude/skills/observability-monitoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "observability-monitoring", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/AnastasiyaW/codex-claude-code-config/tree/main/skills/operational/observability-monitoringType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add AnastasiyaW/codex-claude-code-config --skill observability-monitoring -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install AnastasiyaW/codex-claude-code-config observability-monitoring --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AnastasiyaW/codex-claude-code-config.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/operational/observability-monitoring .agents/skills/observability-monitoring && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "observability-monitoring" agent skill from https://github.com/AnastasiyaW/codex-claude-code-config/tree/main/skills/operational/observability-monitoring into .agents/skills/observability-monitoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "observability-monitoring", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add AnastasiyaW/codex-claude-code-config --skill observability-monitoring -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install AnastasiyaW/codex-claude-code-config observability-monitoring --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AnastasiyaW/codex-claude-code-config.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/operational/observability-monitoring .cursor/skills/observability-monitoring && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "observability-monitoring" agent skill from https://github.com/AnastasiyaW/codex-claude-code-config/tree/main/skills/operational/observability-monitoring into .cursor/skills/observability-monitoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "observability-monitoring", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/AnastasiyaW/codex-claude-code-config.git --path skills/operational/observability-monitoring--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add AnastasiyaW/codex-claude-code-config --skill observability-monitoring -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install AnastasiyaW/codex-claude-code-config observability-monitoring --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AnastasiyaW/codex-claude-code-config.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/operational/observability-monitoring .gemini/skills/observability-monitoring && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "observability-monitoring" agent skill from https://github.com/AnastasiyaW/codex-claude-code-config/tree/main/skills/operational/observability-monitoring into .gemini/skills/observability-monitoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "observability-monitoring", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install AnastasiyaW/codex-claude-code-config observability-monitoringInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add AnastasiyaW/codex-claude-code-config --skill observability-monitoring -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/AnastasiyaW/codex-claude-code-config.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/operational/observability-monitoring .github/skills/observability-monitoring && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "observability-monitoring" agent skill from https://github.com/AnastasiyaW/codex-claude-code-config/tree/main/skills/operational/observability-monitoring into .github/skills/observability-monitoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "observability-monitoring", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add AnastasiyaW/codex-claude-code-config --skill observability-monitoring -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install AnastasiyaW/codex-claude-code-config observability-monitoring --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AnastasiyaW/codex-claude-code-config.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/operational/observability-monitoring .opencode/skills/observability-monitoring && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "observability-monitoring" agent skill from https://github.com/AnastasiyaW/codex-claude-code-config/tree/main/skills/operational/observability-monitoring into .opencode/skills/observability-monitoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "observability-monitoring", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
observability-monitoringDesign, audit, and troubleshoot production monitoring and observability using user-impact checks, layered telemetry, USE/RED, SLI/SLO/SLA, error budgets, cardinality controls, actionable alerting…
Observability Monitoring is an agent skill from AnastasiyaW/codex-claude-code-config. Design, audit, and troubleshoot production monitoring and observability using user-impact checks, layered telemetry, USE/RED, SLI/SLO/SLA, error budgets, cardinality controls, actionable alerting, burn-rate response, and postmortems. Use when asked about monitoring, наблюдаемость, алерты, Prometheus, Grafana, OpenTelemetry, logs, traces, profiles, service health, or incident evidence. Do not use for generic dashboard styling, frontend-only UI work, or unrelated code review.
Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `agents/openai.yaml` and `references/source-notes.md`).
It sits in DevOps & Cloud, covering Site reliability engineering, Observability and Monitoring and alerting. It works with OpenTelemetry, Prometheus and Grafana. The repository describes itself as: Claude Code, Codex, and multi-agent configuration system: principles, hooks, skills, and workflow patterns for AI-assisted development. The licence is MIT.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 67709af. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are promql).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Observability Monitoring loads about 4.1k tokens when it runs, and up to ~5.1k if it reads all its reference files. Until then it costs about 126 tokens; SKILL.md has 2,142 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from AnastasiyaW/codex-claude-code-config at commit 67709af, republished under its MIT licence (© AnastasiyaW). 2,142 words, ~4,106 tokens.
.claude/skills/observability-monitoring/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Use this skill to turn vague "is it working?" questions into evidence-backed monitoring, alerting, and incident workflows. Start from user or business impact, then move down through the system layers and choose the signal that can prove the current hypothesis.
Do not treat a green dashboard as proof of health. A monitoring claim is complete only when it names:
Keep code review, live runtime proof, UI/render proof, and release readiness as separate verdicts.
Investigation is read-only by default. A restart, alert suppression, metric-schema/label change, sampling or retention change, or vendor reconfiguration is a production mutation: involve the responsible owner or incident authority, preserve the relevant evidence first, capture the exact config/command diff, state the rollback condition, and verify the user probe plus SLI after the change.
Before changing a monitor, alert, host, or service:
AGENTS.md, relevant rules, runbooks, and deployment docs.For infrastructure fixes, document the traffic path (DNS, proxy, tunnel, ingress, service, backend) before touching a surprising value such as 127.0.0.1, a non-default port, or a disabled check.
Write the protected outcome in concrete terms:
Add at least one black-box or synthetic check for the user-facing path. Add real-user telemetry when the experience can vary by browser, geography, device, or network. Technical resource health is not a substitute for a user or business signal.
Inspect the layers from bottom to top and state which ones are in scope:
Do not stop at the infrastructure layer when the business outcome is failing. A system with green CPU and memory can still have a broken payment, form, queue consumer, or model job.
Use the signal that answers the question instead of collecting everything indiscriminately:
| Question | Primary signal | Practical method |
|---|---|---|
| Is a resource busy, queued, or failing? | Metrics | USE: utilization, saturation, errors |
| Is a service serving users correctly? | Metrics | RED: rate, errors, duration |
| What happened at a specific time? | Structured logs | Search by timestamp, service, severity, request/trace ID |
| Where did a distributed request slow or fail? | Traces | Follow the trace across services and spans |
| Why is code or a process consuming resources? | Profiles | Inspect sampled stacks, CPU, memory, locks, or I/O |
| Do users actually succeed? | Synthetic/RUM/business probes | Run the workflow and inspect the domain result |
Metrics answer aggregate how much/how often. Logs answer what happened. Traces answer where in the path. Profiles answer which code or process consumed the resource. Correlate them with stable resource identity, timestamps, and trace/request context.
Treat every unique metric-name plus label set as a time series. Before adding a label, estimate its possible values and lifetime.
If a query needs a unique ID to be useful, that ID belongs in a trace or structured log field, not in a metric label.
Use the terms precisely:
Choose the SLI from the user-facing outcome, not from whichever metric is easiest to collect. Define the valid-request population, exclusions, time window, aggregation, and owner. Treat an SLO as a control loop: remaining budget informs release pace, risk, testing, and reliability work.
Alert on symptoms that indicate user or service pain. Use dashboards and drill-downs to investigate causes.
Every paging alert must include:
If no immediate action exists, make it a dashboard annotation, ticket, or recording rule instead of a page. Use a pending duration (for) to suppress short blips. If using hysteresis, define separate fire and clear thresholds; if using multi-window evaluation, define each window and its condition. Do not confuse either control with Slack/chat routing. Treat "more than two incidents per shift" as a review heuristic, not a universal law: frequent pages mean the system or alert policy needs repair.
Prefer multi-window or burn-rate alerts for SLOs when the backend supports them. A burn rate near 1 spends the budget at the planned rate; a materially higher rate requires faster response. Verify the math against the actual SLO window and alert implementation.
Adapt metric and label names to the live schema; these are patterns, not copy-paste production queries:
# RED error ratio for one service over five minutes.
sum(rate(http_requests_total{service="checkout",code=~"5.."}[5m]))
/
sum(rate(http_requests_total{service="checkout"}[5m]))
# Aggregatable fleet-wide p95 from a histogram.
histogram_quantile(0.95,
sum by (le, service) (
rate(http_request_duration_seconds_bucket{service="checkout"}[5m])
)
)Use a synthetic/domain probe that asserts the real outcome, not only HTTP reachability. Prefer a read-only endpoint or a sandbox/test tenant. If a write path is unavoidable, require a dry-run or idempotency key, a bounded fixture, explicit cleanup, and an owner-approved change window: submit safe test request -> assert expected status and domain result/job ID -> record latency and trace ID -> clean up. Never send an arbitrary representative request into production.
A burn rate is observed error ratio / allowed error ratio, where allowed error ratio = 1 - SLO. Worked example: for an SLO of 99.9% (allowed = 0.001), a 5-minute observed error ratio of 1.0% (0.010) gives burn rate 10; if the local paging policy is the illustrative >=10 for 5m AND >=5 for 1h, page, otherwise route it according to the lower-severity policy. The query pattern is:
(
sum(rate(http_request_errors_total{service="checkout"}[5m]))
/
sum(rate(http_requests_total{service="checkout"}[5m]))
) / 0.001The thresholds and windows are examples only; derive and test them from the real SLO, traffic population, exclusions, and paging budget.
For a live incident, follow this sequence and keep a short timeline. Apply the change-control boundary above before any mutation:
Do not restart or reconfigure a service merely because a check is red. First establish whether the check is stale, misrouted, a false positive, or a real symptom, and preserve the evidence needed to explain the decision.
After recovery:
Use the actual stack discovered in the repository/runtime. Common roles from the source video are:
Historical names in the video (ping, syslog, SNMP, MRTG/RRD, Nagios, and Cacti; 00:55-03:17) explain the evolution of monitoring and are not default deployment recommendations.
These are roles, not defaults. Do not install, replace, or reconfigure a vendor component without checking the live architecture, documentation, compatibility, retention, cost, authorization, and rollback path.
Use this shape for every new page:
Name:
User symptom:
SLI/query:
Trigger and duration:
Scope labels:
Severity/owner:
Dashboard and raw query:
First safe action:
Rollback condition:
Verification probe:
Escalation:
Known false positives:
Last tested:references/source-notes.md.| Symptom | Likely cause | Fix |
|---|---|---|
| Dashboard is green but users fail | Missing black-box/business SLI, wrong route, or stale data source | Run a fresh user probe, verify timestamps/labels, add the missing outcome signal |
| One deploy creates a huge series spike | High-cardinality label or unbounded route/ID | Remove the label from metrics, normalize routes, move detail to logs/traces, cap SDK cardinality |
| Alert fires but nobody acts | Alert is a cause guess, too sensitive, unowned, or lacks a runbook | Alert on a user symptom, add owner/action/query/runbook, add for; if using hysteresis define separate fire/clear thresholds, and if using multi-window define each condition; test delivery |
| Error rate rises but cause is unclear | Logs are unstructured or traces are not correlated | Add structured fields and trace IDs, sample a failing trace, inspect dependency spans |
| Service is slow but RED looks normal | Low traffic, bad aggregation, or resource contention outside the app | Check synthetic latency, USE for host/queue/storage, tail percentiles, and profiles |
| Dashboard is blank or stale | Target/scrape/exporter/collector/backend failure, retention gap, or clock skew | Check last-sample time, target and collector health, dropped/ingestion counters, retention, and time synchronization; do not interpret blank as zero |
| A query shows zero but the system may be uninstrumented | The series is absent, filtered out, or genuinely zero | Test absent-series semantics, inspect raw labels and last sample, and add an explicit freshness/telemetry-health check |
| Trace is incomplete | Sampling, context propagation, collector drops, or backend retention | Check trace ID propagation, sampling decision, collector drop counters, backend ingestion, and clock synchronization |
| Page storm during one incident | No grouping/deduplication or too many low-value alerts | Group by incident/service, keep one page for the symptom, demote diagnostic signals |
| Burn-rate alert disagrees with the dashboard | Different SLI population, window, exclusions, or recording rule | Reconcile the numerator/denominator, window, and query; test against known scenarios |
| Restart appears to fix it but it returns | Mitigation hid a systemic cause or destroyed evidence | Capture logs/metrics first, record the restart, identify the recurring trigger, add prevention |
The reusable concepts in this skill were extracted from the supplied video and cross-checked against current primary documentation. See references/source-notes.md for the source URL, timestamp map, caption corrections, and official references.
© AnastasiyaW, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in skills/operational/observability-monitoring of AnastasiyaW/codex-claude-code-config.
Open the folder on GitHubat commit 67709af
Observability Monitoring next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Observability Monitoring this skillAnastasiyaW/codex-claude-code-config | 154 | — | ~4.1k | Automated safety check: Pass | MIT | |
| Monitoring Observabilityahmedasmar/devops-claude-skills | 203 | — | ~3.9k | Automated safety check: Pass | None | |
| Observability Patternssoftspark/ai-toolkit | 179 | — | ~2.2k | Automated safety check: Pass | Apache-2.0 | |
| Telemetrymagnus919/agent-skills | 115 | — | ~3.9k | Automated safety check: Pass | MIT | |
| Observability Sremajiayu000/spellbook | 287 | — | ~3.3k | Automated safety check: Pass | MIT | |
| Archestra Dev Observabilityarchestra-ai/archestra | 4.4k | — | ~1.2k | Automated safety check: Pass | Custom licence |
ahmedasmar/devops-claude-skills
Monitoring and observability strategy, implementation, and troubleshooting.
softspark/ai-toolkit
Observability: structured logs, metrics (RED/USE), tracing, SLO/SLI.
magnus919/agent-skills
Operate the observability stack that deploys as one unit: Prometheus scrape configuration, recording and alerting rules, relabeling, retention, and high availability; OpenTelemetry Collector…
majiayu000/spellbook
Observability and SRE expert. An agent skill from majiayu000/spellbook.
archestra-ai/archestra
A skill your agent uses when changing Archestra tracing, metrics, OpenTelemetry, Tempo, Grafana, Prometheus, LLM/MCP spans, observability labels, or local observability setup.
agentfront/frontmcp
A skill your agent uses when adding tracing, structured logging, metrics, or monitoring to a FrontMCP server.
AnastasiyaW/codex-claude-code-config
Find likely software bugs in a codebase, rank concrete bug candidates, and prove or reject them with focused regression tests before proposing a fix.
AnastasiyaW/codex-claude-code-config
A skill your agent uses when implementing Motion or Framer Motion in React/JavaScript: interactive UI components, micro-interactions, gestures, layout or page transitions, and scroll-based animation.
AnastasiyaW/codex-claude-code-config
Plan-based verification - freeze acceptance criteria before building, then verify after with an independent fresh-context agent (the builder must not verify their own work).
AnastasiyaW/codex-claude-code-config
Написание и запуск Claude Code dynamic workflows (JS-оркестратор субагентов).
AnastasiyaW/codex-claude-code-config
A skill your agent uses when: NotebookLM, notebooklm MCP, large documentation sets, courses, books, papers, or citation-backed research are mentioned.
AnastasiyaW/codex-claude-code-config
Validate a proposed DeepSeek API integration before any key or project context is sent: check thinking-mode tool-call history, strict-schema assumptions, bounded output, and provider data boundaries.
Works with
Categories
Design, audit, and troubleshoot production monitoring and observability using user-impact checks, layered telemetry, USE/RED, SLI/SLO/SLA, error budgets, cardinality controls, actionable alerting…. Observability Monitoring is an agent skill from AnastasiyaW/codex-claude-code-config. Design, audit, and troubleshoot production monitoring and observability using user-impact checks, layered telemetry, USE/RED, SLI/SLO/SLA, error budgets, cardinality controls, actionable alerting, burn-rate response, and postmortems.
Observability Monitoring fits situations like: asked about monitoring; incident evidence; generic dashboard styling; frontend-only UI work.
Run `npx skills add AnastasiyaW/codex-claude-code-config --skill observability-monitoring -a claude-code`. Or copy the skill folder (skills/operational/observability-monitoring in AnastasiyaW/codex-claude-code-config) into .claude/skills/observability-monitoring in your project. Claude Code loads it when a task matches its description.
Run `npx skills add AnastasiyaW/codex-claude-code-config --skill observability-monitoring -a codex`. Or copy the skill folder (skills/operational/observability-monitoring in AnastasiyaW/codex-claude-code-config) into .agents/skills/observability-monitoring in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add AnastasiyaW/codex-claude-code-config --skill observability-monitoring -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/observability-monitoring, .gemini/skills/observability-monitoring, .github/skills/observability-monitoring and .opencode/skills/observability-monitoring in your project.
SKILL.md names no scripts, command-line tools or credentials: Observability Monitoring is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Observability Monitoring is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.1k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 958 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Observability Monitoring: Monitoring Observability (ahmedasmar/devops-claude-skills, 203 stars), Observability Patterns (softspark/ai-toolkit, 179 stars), Telemetry (magnus919/agent-skills, 115 stars) and Observability Sre (majiayu000/spellbook, 287 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
AnastasiyaW (a GitHub user) maintains it in AnastasiyaW/codex-claude-code-config, which has 154 GitHub stars. The repository holds 50 skills in this directory. The repository was last updated on October 9, 2026.
Source: AnastasiyaW/codex-claude-code-config on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.