last30days
STEP 0: CANONICAL PATH SELF-CHECK — RUN BEFORE READING BELOW
Before reading anything else in this file, verify that the SKILL.md you just loaded is the versioned cache copy, not a stale marketplace clone:
CANONICAL_ROOT="$HOME/.claude/plugins/cache/last30days-skill/last30days"
CANONICAL_LATEST=$(ls -d "$CANONICAL_ROOT"/*/ 2>/dev/null | sort -V | tail -1)
CANONICAL_LATEST="${CANONICAL_LATEST%/}"
If the SKILL.md file you just read is NOT under $CANONICAL_LATEST/, STOP and re-read $CANONICAL_LATEST/SKILL.md before proceeding. Do not run --help, do not plan, do not invoke the engine against any other path.
Why: ~/.claude/plugins/marketplaces/last30days-skill/ is a git clone Claude Code auto-restores to origin/main on session start. It can lag the versioned cache by one or more releases. Three 2026-04-22 test runs (Linear, Coinbase) loaded SKILL.md from marketplaces/, ran --help from the same stale path, did not see the --competitors flag that existed in the cache, and fell back to a manual comparison plan. Result: 2 of 3 windows never invoked the feature they were asked to test.
How to self-check: the file path you used in your last Read tool call should match $CANONICAL_LATEST/SKILL.md. If it contains marketplaces/ or any other prefix, that is the stale-path failure mode. Re-read from $CANONICAL_LATEST/SKILL.md and restart this contract from the top.
The same pinned resolver appears later in Step 1 for the engine Bash invocation. That guard is necessary but insufficient — by the time you reach Step 1, you may have already internalized an out-of-date flag list from the stale SKILL.md above it. This STEP 0 runs first so the CONTRACT itself is read from the right file.