Add wellness/mental_coach skill resolving #148#174
Conversation
|
Thanks for this @mrmasa88, exceptional work on 148. Before merge, please:
Optional but appreciated in the same push:
Once the issuer most importantly is sorted, we should be good to merge, but you can include the housekeeping tweaks above too in the same pr. Nice and careful skill for a sensitive domain overall. Well done <3 |
|
Hi @rosspeili . Thanks for your review and feedback. Updated PR #174 with both of your points:
Git author stays clean (just me, no AI co-authors). Whenever you have a moment to re-review, much appreciated. |
|
Thanks again @mrmasa88, the follow-up commit addresses the issuer blocker cleanly. Yet, before we merge, please: 1. Sync with current Your branch is behind upstream ( git fetch https://github.com/ARPAHLS/skillware.git main
git checkout feat/issue-148-wellness-mental-coach
git rebase FETCH_HEAD
# or: git merge FETCH_HEADWhen ## [Unreleased]
### Added
- **`wellness/mental_coach`**: … (#148).
### Changed
- **Tests**: Moved `tests/test_mica_module.py` to `tests/skills/compliance/…` (#86).
- **`wellness/mental_coach`**: Set real issuer contact email and add health disclaimer… (your follow-up).
### Fixed
- **`finance/wallet_screening`**: … (#173).Then push: git push --force-with-lease(Use a normal 2. Housekeeping (same push if you can)
3. Re-verify after rebase if want python -m flake8 .
pytest skills/wellness/mental_coach/test_skill.py
pytest tests/test_skill_issuer.py
pytest skills/ tests/Once that’s in, we should be good to merge. Optional later: a short Testing block on Again, super clean work on a sensitive domain like mental health, appreciate the careful crisis-first design. <3 Let me know if you need help or direction. |
Summary
Adds a new universal
wellness/mental_coachskill that resolves #148.It is a deterministic compliance + coaching firewall a parent agent calls before
generating wellness replies: it triages crisis signals first, enforces non-clinical
scope limits, retrieves grounded KB chunks with citations, optionally runs a scope
evaluator, and returns structured JSON (
policy_status,citations,disclaimers_required,final_context_for_agent, ...).This is the generic, PyPI-shippable base skill — generic enough for any operator,
with no org-specific overlay mixed in.
Fixes #148
Type of change
What's included
skills/wellness/mental_coach/full bundle:manifest.yaml,skill.py,instructions.md,card.json,test_skill.py,__init__.pycrisis_gate.py,constraints.py,kb_provider.py,resources.pykb/:corpus.json,hard_constraints.yaml,crisis_resources.jsondocs/skills/mental_coach.md+ new Wellness row indocs/skills/README.mdexamples/mental_coach_demo.py+examples/README.mdrowCHANGELOG.md[Unreleased]entrywellness/(proposed in [New Skill]: wellness/mental_coach, grounded wellness coaching with crisis triage and regulatory guardrails #148; flagging for maintainer confirmation)Safety design
policy_status = ESCALATE, coachingis suppressed (no retrieval), and jurisdiction-appropriate crisis resources are returned.
prompt-injection attempts.
with 24/7 flags.
Skill checklist
skills/wellness/mental_coach/exists with full bundlemanifest.yaml: name, version, description, parameters, constitution, real issuerskill.py: deterministic, JSON-serializable returns, safe error handlinginstructions.md: when to use, how to interpret output, limitationscard.jsonissuer matches manifesttest_skill.pypasses (crisis ESCALATE, blocked diagnosis, injection, coaching retrieval, non-EN CAUTION)docs/skills/mental_coach.md+ catalog row indocs/skills/README.mdpytest tests/test_skill_issuer.pypassesSkillLoader.load_skill("wellness/mental_coach")worksexamples/README.mdupdatedskills/CHANGELOG.mdupdated under[Unreleased]Tests
black .clean,flake8 .cleanpytest skills/— 85 passedpytest tests/— 76 passedpytest skills/wellness/mental_coach/test_skill.py+tests/test_skill_issuer.py— 12 passedNote for maintainer (issuer)
For v0.1 the issuer is set to me (mrmasa88, AO) so the required issuer fields validate.
Ross Peili is intended as the primary issuer — I'll confirm his contact and update the
issuer before merge. Happy to align on author/issuer attribution however you prefer.