0fd532d249
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).
91 lines
4.1 KiB
Markdown
91 lines
4.1 KiB
Markdown
---
|
|
|
|
> **NOTE (added 2026-05-16):** This plan references `bash scripts/sync.sh`. That script was deleted in [PR #405](https://github.com/mvanhorn/last30days-skill/pull/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](../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
|