Files
last30days-skill/docs/plans/2026-04-22-006-fix-comparison-title-skill-attribution-plan.md
T
Trevin Chow 0fd532d249 docs: compound learning on release-time consistency-test cascade failures
Documents the cascade pattern surfaced during this session's install-modernization
arc: a `test_sync_cache_path_uses_skill_version` test asserted that a hardcoded
version pin in `sync.sh` matched the version frontmatter in SKILL.md. When a
release bumped SKILL.md, every open PR's CI failed simultaneously on the
unrelated stale-pin assertion. Affected at least 5 PRs across the 2026-05-13
to 2026-05-15 window (#400, #390, #392, and two others) plus required hotfix
PR #397 to unblock the queue.

The permanent fix shipped in PR #405 (deleted sync.sh + the test). This doc
captures the design lesson so the pattern doesn't reappear: don't write
consistency tests that read two files and assert one matches a value derived
from the other. Either derive at runtime from a single source of truth, or
self-skip / merge-base-scope the test so deletion is a non-event.

Created via /ce-compound. Includes:

- docs/solutions/workflow-issues/release-consistency-test-cascade-2026-05-16.md
  (the new learning — first entry under docs/solutions/)
- CONCEPTS.md (new — 4 entries: Skill, Engine, Harness, Beta channel,
  capturing project-specific vocabulary that surfaced across the session)
- AGENTS.md (added one-line Structure entries surfacing docs/solutions/ and
  CONCEPTS.md so fresh agents discover them)
- docs/plans/2026-04-22-{002,003,005,006}-*-plan.md (added deprecation banner
  to each, pointing readers at PR #405 and the new docs/solutions entry —
  these 4 historical plans still reference the deleted sync.sh inline)

Also: closed PR #379 (j-sperling's workaround for the same cascade,
superseded by PR #405's permanent fix).
2026-05-16 19:08:02 -07:00

4.1 KiB


NOTE (added 2026-05-16): This plan references bash scripts/sync.sh. That script was deleted in PR #405; the install workflow is now npx skills add . -g -y (symlinks the working tree across every detected harness). For context on why sync.sh went away, see docs/solutions/workflow-issues/release-consistency-test-cascade-2026-05-16.md. The decisions captured in this plan remain accurate; only the deploy mechanism changed.

title: "fix: comparison title says (/Last30Days) instead of (Last 30 Days)" type: fix status: active date: 2026-04-22

fix: comparison title says (/Last30Days) instead of (Last 30 Days)

Overview

User feedback 2026-04-22 on the 3.0.13 release runs (Kanye vs Drake, Mercer Island, Figma): the comparison title currently reads # Kanye West vs Drake: What the Community Says (Last 30 Days). It should read # Kanye West vs Drake: What the Community Says (/Last30Days) — attributing the output to the slash command rather than describing the date range generically.

Single-line change in SKILL.md, three occurrences. No code change.

Requirements Trace

  • R1. Comparison title pattern in SKILL.md changes from (Last 30 Days) to (/Last30Days) so synthesis outputs read ... What the Community Says (/Last30Days).
  • R2. Both the rule statement (line 113) and the COMPARISON-exception statement (line 131) and the synthesis template example (line 1208) all use the new suffix.
  • R3. Version bumps to 3.0.14, CHANGELOG entry, sync, hot-copy. Public cache picks up the new title pattern.

Scope Boundaries

  • No changes to the single-entity output title (no (/Last30Days) suffix there — only comparison topics carry it).
  • No changes to engine code. Pure SKILL.md content.
  • No changes to anything else surfaced in the test runs.

Key Technical Decisions

  • Replace all three occurrences of the suffix string in one pass. They are identical strings; changing one without the others would cause synthesis-time confusion when the model reaches a different reference.
  • Ship as 3.0.14, not 3.0.13.x. Patch-level bump matches the small scope and keeps the release log clean.

Implementation Units

  • Unit 1: Replace (Last 30 Days)(/Last30Days) in SKILL.md

Goal: All three SKILL.md references to the comparison title use the new suffix.

Requirements: R1, R2

Files:

  • Modify: SKILL.md

Approach:

  • replace_all swap of What the Community Says (Last 30 Days)What the Community Says (/Last30Days). Three occurrences, no other strings overlap.

Test scenarios:

  • Test expectation: none — pure documentation. Verification by inspection + dogfood run.

Verification:

  • grep -c "What the Community Says (/Last30Days)" SKILL.md returns 3.

  • grep -c "What the Community Says (Last 30 Days)" SKILL.md returns 0.

  • Unit 2: Version 3.0.14 + CHANGELOG + sync + hot-copy

Goal: Ship 3.0.14 to all local targets.

Requirements: R3

Dependencies: Unit 1

Files:

  • Modify: .claude-plugin/plugin.json
  • Modify: CHANGELOG.md
  • Run: bash scripts/sync.sh
  • Hot-copy: ~/.claude/plugins/cache/last30days-skill/last30days/3.0.14/

Approach:

  • CHANGELOG: "Changed: comparison-mode title attribution — What the Community Says (Last 30 Days)What the Community Says (/Last30Days). Surfaces the slash-command identity instead of restating the date range."

Test scenarios:

  • Test expectation: none — packaging.

Verification:

  • grep version .claude-plugin/plugin.json → 3.0.14.
  • Hot-copy contains the updated SKILL.md.

Risks & Dependencies

Risk Mitigation
Hosting model has the old title pattern memorized from a prior run and re-emits (Last 30 Days). SKILL.md is read top-to-bottom each invocation. STEP 0 canonical-path self-check (3.0.12) ensures the model loads the new SKILL.md, not the marketplace stale copy.

Sources & References

  • 2026-04-22 dogfood runs (Kanye West vs Drake, Mercer Island --competitors, Figma --competitors)
  • Related code: SKILL.md lines 113, 131, 1208