Skip to content

chore(#157): remove voice-prompts feature + correct hook/skill counts#161

Merged
atlas-apex merged 3 commits into
me2resh:devfrom
atlas-apex:feature/GH-157-remove-voice-and-fix-counts
May 4, 2026
Merged

chore(#157): remove voice-prompts feature + correct hook/skill counts#161
atlas-apex merged 3 commits into
me2resh:devfrom
atlas-apex:feature/GH-157-remove-voice-and-fix-counts

Conversation

@atlas-apex

Copy link
Copy Markdown
Collaborator

Summary

Closes #157 (sunset the voice-prompts-on-pause feature) and #77 (hook / skill count off-by-one in CHANGELOG.md + CLAUDE.md) in one bundled PR. See AgDR-0013 for the supersession rationale; AgDR-0009 stays in place as the historical record of the original Phase 1 design.

  • Voice feature retired — feature shipped on dev in PR feat(#134): configurable voice prompts on assistant pause #135 (AgDR-0009) but never reached a tagged release on main. Two months of opt-in availability produced zero adopters; this fork's local override disabled it earlier this week (Phase 1 was unreliable on the bundled macOS Daniel voice). Pre-release moment is the right time to pull cleanly rather than maintain disabled-by-default opt-in indefinitely.
  • Counts correctedCHANGELOG.md v0.3.0 stats had "17 hooks" but the actual count at v0.3.0 was 18; CLAUDE.md had stale "18 / 35 / 34" numbers. All updated to current reality post-removal: 24 hooks, 39 skills.

Why bundled

#77's correct count depends on whether voice is in or out. Shipping #77 alone with "18" then immediately bumping to "17" when #157 lands is churn for no reason. Same shape as the previous coupled bundles — PR #152 (AgDR-0011) and PR #158 (AgDR-0012).

Closes me2resh/apexyard#157 only — #77 closed manually post-merge per the single-Closes-per-PR rule.

Why no adopter-facing changelog mention

The voice feature never reached main. v1.1.0 didn't have it; v1.2.0 won't have it. From the adopter's perspective there's nothing to "retire" — they never saw the feature exist. AgDR-0013 captures the framework's internal record for future contributors. The published v1.2.0 changelog will not enumerate this removal.

Testing

  • Hook test suitefor t in .claude/hooks/tests/test_*.sh; do bash "$t" 2>&1 | tail -2; done196/196 across 12 test files (down from 13 — test_voice_prompt_on_pause.sh removed; nothing else regressed).
  • JSON validityjq . .claude/settings.json and jq . .claude/project-config.defaults.json both clean.
  • Settings.json structureStop matcher block was the only entry referencing voice and is now removed entirely; jq '.hooks | keys' .claude/settings.json returns ["PostToolUse", "PreToolUse", "SessionStart"].
  • No voice residue in frameworkgrep -rln "voice_prompts\|voice-prompt" .claude/ docs/ workflows/ templates/ roles/ CLAUDE.md CHANGELOG.md returns only AgDR-0009 (preserved historical record) and AgDR-0013 (this supersession).
  • Counts match realityls .claude/hooks/*.sh | grep -v _lib- | wc -l → 24 ✓; ls -d .claude/skills/*/ | wc -l → 39 ✓; both numbers now reflected in CLAUDE.md.
  • AgDR-0009 still readable — preserved verbatim with a "Superseded by AgDR-0013" header at the top.

Glossary

Term Definition
Supersession (AgDR convention) When a decision is reversed or replaced, the original AgDR is preserved verbatim (decision records are append-only history) and a new AgDR explains the supersession. The old AgDR gets a "Superseded by" header at the top; the new AgDR has a "Supersedes" header. AgDR-0009 → AgDR-0013 follows this pattern.
Disabled-by-default opt-in A feature that ships in the framework but is OFF unless an adopter actively flips a config flag. The worst flavour of dead code: invisible to most adopters, but still maintained and still surfaces in /setup config dumps. The voice feature spent two months in this state with zero adopters; this PR retires it.
No-changelog removal A removal that doesn't get an adopter-facing changelog entry because the feature never reached a tagged release. The framework's internal AgDR (this PR's AgDR-0013) captures the full story for future contributors; adopters see no behaviour change because they never saw the behaviour in the first place.
Coupled count fix The hook count in CLAUDE.md and the historical v0.3.0 count in CHANGELOG.md both depend on the framework's hook inventory. Updating either alone risks shipping a number that's wrong by the time the next change lands. Bundling #77 with #157 closes both in one consistent set of edits.

🤖 Generated with Claude Code

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants