Skip to content

feat: add 4 new community abilities (workout-tracker, spelling-bee-coach, celebration-engine, future-letter-writer)#281

Merged
uzair401 merged 9 commits into
openhome-dev:devfrom
rawqubit:feat/add-4-new-abilities
Jun 16, 2026
Merged

feat: add 4 new community abilities (workout-tracker, spelling-bee-coach, celebration-engine, future-letter-writer)#281
uzair401 merged 9 commits into
openhome-dev:devfrom
rawqubit:feat/add-4-new-abilities

Conversation

@rawqubit

Copy link
Copy Markdown
Contributor

What does this Ability do?

Adds 4 new community abilities that fill category gaps in the existing collection:

Ability Gap filled Type
workout-tracker Fitness Interactive skill
spelling-bee-coach Education / Learning Interactive skill
celebration-engine Emotional Intelligence Background daemon + recap skill
future-letter-writer Long-term Persistence Interactive skill + delivery daemon
  • workout-tracker — voice-driven exercise logging with LLM workout parsing, daily streak tracking, configurable weekly goals, and AI weekly summaries.
  • spelling-bee-coach — spelling practice with 3 difficulty levels, LLM word generation once the built-in list is mastered, 3-correct-in-a-row mastery, and spaced repetition.
  • celebration-engine — background daemon that detects wins via two-stage keyword + LLM analysis and celebrates them (cooldown-aware, deferred rather than dropped), plus an interactive wins-recap skill.
  • future-letter-writer — record voice letters to your future self with natural-language delivery dates; a background daemon delivers them on the right day with race-safe file updates.

Suggested Trigger Words

  • workout-tracker: "workout", "log workout", "fitness tracker", "workout stats"
  • spelling-bee-coach: "spelling bee", "practice spelling", "quiz me on spelling"
  • celebration-engine (recap skill): "my wins", "celebration recap", "what went well"
  • future-letter-writer: "future letter", "letter to myself", "time capsule"

Type

  • New community Ability
  • Improvement to existing Ability
  • Bug fix
  • Documentation update

External APIs

  • No external APIs
  • Uses external API(s)

All four abilities run purely on the built-in LLM + file persistence. No API keys required.

Testing

  • Tested in OpenHome Live Editor
  • All exit paths tested (said "stop", "exit", etc.)
  • Error scenarios tested (API down, bad input, etc.)

python3 validate_ability.py passes for all four abilities. Live Editor testing pending — happy to do a test round during review.

Checklist

  • Files are in community/my-ability-name/
  • main.py follows SDK pattern (extends MatchingCapability, has register_capability + call)
  • README.md included with description, suggested triggers, and setup
  • resume_normal_flow() called on every exit path (interactive skills; daemons are standalone per repo convention)
  • No print() — using editor_logging_handler
  • No hardcoded API keys — using placeholders
  • No blocked imports (redis, user_config)
  • No asyncio.sleep() or asyncio.create_task() — using session_tasks
  • Error handling on all external calls
  • Tested in OpenHome Live Editor

Anything else?

Design notes:

  • Both skills and daemons initialize CapabilityWorker(self.worker), matching the established convention across this repo's background abilities.
  • Delete-before-write JSON persistence per SDK guidelines.
  • Keyword-first intent detection with LLM fallback; exit/cancel detection matches explicit short utterances only, so free-form dictated content is never misread as an exit command.
  • The future-letter daemon re-reads the shared letters file just before writing and only mutates delivered entries, so letters recorded mid-delivery are never lost.

@rawqubit rawqubit requested a review from a team as a code owner June 11, 2026 06:11
@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

🔀 Branch Merge Check

PR direction: feat/add-4-new-abilitiesdev

Passedfeat/add-4-new-abilitiesdev is a valid merge direction

@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

✅ Community PR Path Check — Passed

All changed files are inside the community/ folder. Looks good!

@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

✅ Ability Validation Passed

📋 Validating: community/celebration-engine
  ✅ All checks passed!

📋 Validating: community/future-letter-writer
  ✅ All checks passed!

📋 Validating: community/spelling-bee-coach
  ✅ All checks passed!

📋 Validating: community/workout-tracker
  ✅ All checks passed!

@github-actions github-actions Bot added the community-ability Community-contributed ability label Jun 11, 2026
@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

🔍 Lint Results

__init__.py — Empty as expected

Files linted: community/celebration-engine/background.py community/celebration-engine/main.py community/future-letter-writer/background.py community/future-letter-writer/main.py community/spelling-bee-coach/main.py community/workout-tracker/main.py

✅ Flake8 — Passed

✅ All checks passed!

…ach, celebration-engine, future-letter-writer)

Add four abilities that fill gaps in the community directory:

- workout-tracker: voice-driven exercise logging with LLM workout
  parsing, daily streak tracking, configurable weekly goals, and
  AI-powered weekly summaries (fitness gap)
- spelling-bee-coach: interactive spelling practice with 3 difficulty
  levels, LLM word generation once the built-in list is mastered,
  3-in-a-row mastery tracking, and spaced repetition (education gap)
- celebration-engine: background daemon that detects wins via
  keyword + LLM two-stage analysis and celebrates them, with
  cooldown deferral and an interactive recap skill (emotional
  intelligence gap)
- future-letter-writer: record voice letters to your future self
  with natural-language delivery dates; a background daemon delivers
  them on the right day with race-safe file updates (long-term
  persistence gap)

All abilities follow repo SDK patterns: CapabilityWorker(self.worker),
resume_normal_flow() in finally blocks, delete-before-write JSON
persistence, keyword-first intent detection with LLM fallback, and
require no external API keys.
@rawqubit rawqubit force-pushed the feat/add-4-new-abilities branch from 3b5af67 to bc6fc77 Compare June 11, 2026 06:17
@uzair401

Copy link
Copy Markdown
Contributor

Hello @rawqubit,

Your PR is currently under review and require some updates. The team will make the necessary implementation changes, and once everything is finalized, we will approve and merge the PR.

Thanks for contributing to OpenHome!

uzair401 added 8 commits June 15, 2026 13:53
Signed-off-by: Uzair Ullah <uzairullahmail@gmail.com>
Added timezone handling to FutureLettersCapabilityBackground for accurate time logging and delivery.

Signed-off-by: Uzair Ullah <uzairullahmail@gmail.com>
Signed-off-by: Uzair Ullah <uzairullahmail@gmail.com>
Signed-off-by: Uzair Ullah <uzairullahmail@gmail.com>
Add scoring updates and limit weak words

Signed-off-by: Uzair Ullah <uzairullahmail@gmail.com>
Signed-off-by: Uzair Ullah <uzairullahmail@gmail.com>
Refactor timezone handling and logging in CelebrationEngineBackground.

Signed-off-by: Uzair Ullah <uzairullahmail@gmail.com>

@uzair401 uzair401 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thankyou @rawqubit for contributing to openhome ecosystem.
Your ability is approved for the community.

We will proceed with adopting this ability for a 30-day evaluation period to monitor performance, identify any bugs, and implement any necessary fixes or optimizations. If the ability proves stable and meets our quality standards during this period, we will move forward with publishing it to the marketplace, ensuring full credit is given to the original author for their work and contribution.

We truly appreciate your effort and encourage you to continue developing and submitting new abilities. Contributions like yours help strengthen the ecosystem, and we look forward to seeing more of your work.

@uzair401 uzair401 merged commit bcf0a64 into openhome-dev:dev Jun 16, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

community-ability Community-contributed ability

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants