← AI EnduranceCONTENT HISTORY

Update to AI Endurance

Snapshot Oct 5, 2026 · 18:06 UTC · version 2.0.0

WHAT CHANGED · RULE-BASED ANALYSIS

Package or technical metadata updated

Package contents changed in 17 files: .codex-plugin/plugin.json, skills/adjust-for-weather/SKILL.md, skills/adjust-for-weather/agents/openai.yaml, …. Open the file diff to inspect the edits.

Observed in package metadata. These changes alone do not establish a new customer-facing feature.

Package file

Before

d4c407c7cb92b868d75f6e9857f1a6df59684fb4e5d7c9e43181b36a0aaad4a3

After

ea0cd15b8d666982c546a15a8465f290742d59cfa637a5f9c01d92f127370823

Package file

Before

1500

After

1572

Package file

Before

Not present

After

{"sha256":"25ef952e1f46b98ef4b43506d000f5870497a28b68b023dab780f61639bc095f","size":2056}

Package file

Before

Not present

After

{"sha256":"dc53a6e2bb6797c7d78bdc1b099c01fcf2a208e2e156831b726bab74604838a4","size":641}

Compare saved observations

Download comparison JSON

skills/adjust-for-weather/SKILL.md

--- before
+++ after
@@ -0,0 +1,18 @@
+---
+name: adjust-for-weather
+description: Adapt the pacing of today's run to the weather forecast. Use when the user wants to adjust today's run for heat, humidity, cold, wind, or rain, or asks how to pace their planned run given the forecast. Do not use for general training readiness questions (use checkin) or for restructuring the training week (use replan).
+---
+
+Check the forecast and advise how to pace today's run for the conditions.
+
+1. Establish location and timing. Ask the user where they will be running if their location is not already known from the conversation. Assume they will be training in the next 1-2 hours unless they say otherwise.
+2. Look up the forecast for that window at their location using web search. Use the apparent (feels-like) temperature and humidity, not just the raw temperature. Wind and precipitation are secondary but worth noting when significant.
+3. Call the `getPlannedWorkouts` tool for today to see what run is planned (target pace, duration, structure).
+4. Make the call: state whether any pacing adjustment is needed to hit the workout's training goal. If conditions are typical for the user, say so plainly and leave the workout unchanged. Otherwise say what to change (pace, effort targets, or duration) so the session still delivers its intended training effect. In hot or humid conditions the usual adjustment is a slower pace at the same perceived effort, not a shorter workout.
+5. State the time window and location you assumed, and ask if the user is planning a different time of day. If a later window has meaningfully better conditions for the session's goal, mention it.
+6. If the user wants the adjustment recorded on the workout, apply it with the `changeWorkoutAdvice` tool so the adjusted pacing guidance shows up on their planned run.
+
+Notes:
+
+- If no run is planned today, say so and ask whether they want pacing advice for a different day's run or an unplanned run.
+- This skill is about training pacing and workout execution, not a substitute for the user's own judgment about conditions.
Full technical diff · 18 changed fields

changed /files/.codex-plugin~1plugin.json/sha256

BEFORE
"d4c407c7cb92b868d75f6e9857f1a6df59684fb4e5d7c9e43181b36a0aaad4a3"
AFTER
"ea0cd15b8d666982c546a15a8465f290742d59cfa637a5f9c01d92f127370823"

changed /files/.codex-plugin~1plugin.json/size

BEFORE
1500
AFTER
1572

added /files/skills~1adjust-for-weather~1SKILL.md

BEFORE
Field was absent
AFTER
{
  "sha256": "25ef952e1f46b98ef4b43506d000f5870497a28b68b023dab780f61639bc095f",
  "size": 2056
}

added /files/skills~1adjust-for-weather~1agents~1openai.yaml

BEFORE
Field was absent
AFTER
{
  "sha256": "dc53a6e2bb6797c7d78bdc1b099c01fcf2a208e2e156831b726bab74604838a4",
  "size": 641
}

added /files/skills~1adjust-for-weather~1assets~1icon-large.png

BEFORE
Field was absent
AFTER
{
  "sha256": "0d5114eeadbd9b0f27a3a57289021c7473c1b87458d0fe7c55632c18994db1ff",
  "size": 17034
}

added /files/skills~1adjust-for-weather~1assets~1icon-small.png

BEFORE
Field was absent
AFTER
{
  "sha256": "dd06bd84dd3c72c23c177d13b46c3bd68eb6e0a4713e55fcacb2d7f77afd1296",
  "size": 2013
}

added /files/skills~1analyze-activity~1SKILL.md

BEFORE
Field was absent
AFTER
{
  "sha256": "8d4f4e845d87ee52fa0ec35d6b6415dad79325794239a80e2cf2a9d5c24f40a8",
  "size": 2845
}

added /files/skills~1analyze-activity~1agents~1openai.yaml

BEFORE
Field was absent
AFTER
{
  "sha256": "ac3b00235d50e0814b2d52863c63dfc4762d1fef951508293c9de9dca32879d3",
  "size": 625
}

added /files/skills~1analyze-activity~1assets~1icon-large.png

BEFORE
Field was absent
AFTER
{
  "sha256": "0d5114eeadbd9b0f27a3a57289021c7473c1b87458d0fe7c55632c18994db1ff",
  "size": 17034
}

added /files/skills~1analyze-activity~1assets~1icon-small.png

BEFORE
Field was absent
AFTER
{
  "sha256": "dd06bd84dd3c72c23c177d13b46c3bd68eb6e0a4713e55fcacb2d7f77afd1296",
  "size": 2013
}

added /files/skills~1checkin~1SKILL.md

BEFORE
Field was absent
AFTER
{
  "sha256": "3c8c064db65c6e3e2be527254a4344ac29e288dbb6867ef401241f33f0e019fd",
  "size": 2041
}

added /files/skills~1checkin~1agents~1openai.yaml

BEFORE
Field was absent
AFTER
{
  "sha256": "6682ee2e17877bf2596046f07052200c9e6ef34eb29a52871ae65e9cfc985328",
  "size": 689
}

added /files/skills~1checkin~1assets~1icon-large.png

BEFORE
Field was absent
AFTER
{
  "sha256": "0d5114eeadbd9b0f27a3a57289021c7473c1b87458d0fe7c55632c18994db1ff",
  "size": 17034
}

added /files/skills~1checkin~1assets~1icon-small.png

BEFORE
Field was absent
AFTER
{
  "sha256": "dd06bd84dd3c72c23c177d13b46c3bd68eb6e0a4713e55fcacb2d7f77afd1296",
  "size": 2013
}

added /files/skills~1replan~1SKILL.md

BEFORE
Field was absent
AFTER
{
  "sha256": "d70e6723e09147193210124901a071bee73e2b049d94de257e7843d83477b474",
  "size": 1810
}

added /files/skills~1replan~1agents~1openai.yaml

BEFORE
Field was absent
AFTER
{
  "sha256": "d3733f8688d5f225603383dc4f6a486cc0b72bec205f61a69225eac6b763587d",
  "size": 686
}

added /files/skills~1replan~1assets~1icon-large.png

BEFORE
Field was absent
AFTER
{
  "sha256": "0d5114eeadbd9b0f27a3a57289021c7473c1b87458d0fe7c55632c18994db1ff",
  "size": 17034
}

added /files/skills~1replan~1assets~1icon-small.png

BEFORE
Field was absent
AFTER
{
  "sha256": "dd06bd84dd3c72c23c177d13b46c3bd68eb6e0a4713e55fcacb2d7f77afd1296",
  "size": 2013
}
Full snapshot data
{
  "files": {
    ".app.json": {
      "sha256": "efc08a750353795d8813bbf26b175aab45142ed65e81acdb97e61e0f78059351",
      "size": 127
    },
    ".codex-plugin/plugin.json": {
      "sha256": "ea0cd15b8d666982c546a15a8465f290742d59cfa637a5f9c01d92f127370823",
      "size": 1572
    },
    "skills/adjust-for-weather/SKILL.md": {
      "sha256": "25ef952e1f46b98ef4b43506d000f5870497a28b68b023dab780f61639bc095f",
      "size": 2056
    },
    "skills/adjust-for-weather/agents/openai.yaml": {
      "sha256": "dc53a6e2bb6797c7d78bdc1b099c01fcf2a208e2e156831b726bab74604838a4",
      "size": 641
    },
    "skills/adjust-for-weather/assets/icon-large.png": {
      "sha256": "0d5114eeadbd9b0f27a3a57289021c7473c1b87458d0fe7c55632c18994db1ff",
      "size": 17034
    },
    "skills/adjust-for-weather/assets/icon-small.png": {
      "sha256": "dd06bd84dd3c72c23c177d13b46c3bd68eb6e0a4713e55fcacb2d7f77afd1296",
      "size": 2013
    },
    "skills/analyze-activity/SKILL.md": {
      "sha256": "8d4f4e845d87ee52fa0ec35d6b6415dad79325794239a80e2cf2a9d5c24f40a8",
      "size": 2845
    },
    "skills/analyze-activity/agents/openai.yaml": {
      "sha256": "ac3b00235d50e0814b2d52863c63dfc4762d1fef951508293c9de9dca32879d3",
      "size": 625
    },
    "skills/analyze-activity/assets/icon-large.png": {
      "sha256": "0d5114eeadbd9b0f27a3a57289021c7473c1b87458d0fe7c55632c18994db1ff",
      "size": 17034
    },
    "skills/analyze-activity/assets/icon-small.png": {
      "sha256": "dd06bd84dd3c72c23c177d13b46c3bd68eb6e0a4713e55fcacb2d7f77afd1296",
      "size": 2013
    },
    "skills/checkin/SKILL.md": {
      "sha256": "3c8c064db65c6e3e2be527254a4344ac29e288dbb6867ef401241f33f0e019fd",
      "size": 2041
    },
    "skills/checkin/agents/openai.yaml": {
      "sha256": "6682ee2e17877bf2596046f07052200c9e6ef34eb29a52871ae65e9cfc985328",
      "size": 689
    },
    "skills/checkin/assets/icon-large.png": {
      "sha256": "0d5114eeadbd9b0f27a3a57289021c7473c1b87458d0fe7c55632c18994db1ff",
      "size": 17034
    },
    "skills/checkin/assets/icon-small.png": {
      "sha256": "dd06bd84dd3c72c23c177d13b46c3bd68eb6e0a4713e55fcacb2d7f77afd1296",
      "size": 2013
    },
    "skills/replan/SKILL.md": {
      "sha256": "d70e6723e09147193210124901a071bee73e2b049d94de257e7843d83477b474",
      "size": 1810
    },
    "skills/replan/agents/openai.yaml": {
      "sha256": "d3733f8688d5f225603383dc4f6a486cc0b72bec205f61a69225eac6b763587d",
      "size": 686
    },
    "skills/replan/assets/icon-large.png": {
      "sha256": "0d5114eeadbd9b0f27a3a57289021c7473c1b87458d0fe7c55632c18994db1ff",
      "size": 17034
    },
    "skills/replan/assets/icon-small.png": {
      "sha256": "dd06bd84dd3c72c23c177d13b46c3bd68eb6e0a4713e55fcacb2d7f77afd1296",
      "size": 2013
    }
  }
}

SHA-256 of public snapshot: 88fcb3745563569c7ea2bd09b127f2e9bf18039b472b3b33fd8cf2f3a6f73cf7