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. |
Resolve CHANGELOG [Unreleased] keeping all sections; load full manifest.yaml in MentalCoachSkill; register wellness category in CONTRIBUTING and agent_loops
|
Hi @rosspeili All set on #174, V — addressed everything before merge:
Locally clean: black, flake8, pytest skills/ tests/ = 161 passed. Branch shows no conflicts with base, git author is clean (just me, no AI co-authors). One thing on the Checks tab: the workflows show "completed with no jobs" (Checks 0) — looks like CI didn't actually run jobs on the fork PR. Is there an approve-and-run step on your side, or a config I should be aware of? Happy to adjust if anything's needed. Otherwise it should be good for your review/merge. Thanks again for the guidance through this. <3 |
|
Great job @mrmasa88, reviewing now, yes the first CI for new contributors will be triggered manually once the pr looks good, after that, all your PRs will automatically trigger CI. I will trigger now and if it's green will merge <3 |
|
@mrmasa88 merged the new skill, issues new release 0.3.7 that includes it in pypi, so net pip install skillware or --update should include it, you can test it manually with different models to see how the skill performs, and adjust further for private, local use. You can also find it on the updated skillware.site library and docs. Congrats on seeing this through, this is a huge and delicate first contribution, not just cause it introduces a new category and new skill, but also cause the topic is thin. <3 |
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 passedIssuer
Issuer is set to me (mrmasa88, AO) with my real contact email. Settled per maintainer confirmation.