Skip to content

Add mail CLI and config for gmail_handler operator UX (#292) - #298

Merged
rosspeili merged 3 commits into
ARPAHLS:mainfrom
rosspeili:feat/issue-292-mail-cli-config
Aug 19, 2026
Merged

Add mail CLI and config for gmail_handler operator UX (#292)#298
rosspeili merged 3 commits into
ARPAHLS:mainfrom
rosspeili:feat/issue-292-mail-cli-config

Conversation

@rosspeili

Copy link
Copy Markdown
Contributor

Description

Refs #292

Adds skillware mail for office/gmail_handler: init and manage address book and email signatures from the CLI, without editing files inside the installed package.

Operators can create persistent config under their user directory (~/.config/skillware/ or %APPDATA%/skillware/), add contacts, and set plain + HTML signatures (Skillware logo, tagline, disclaimer, links). skillware config show displays merged mail.* settings. The skill reads those paths and appends signatures on new outbound mail only.

Gmail’s web signature does not apply to SMTP sends; this gives agents a dedicated, skillware-managed signature instead.

Type of Change

  • New Skill — new registry bundle under skills/
  • Skill Upgrade — changes to an existing skill under skills/
  • Bug Fix — incorrect runtime or framework behavior
  • Documentation — docs, README, CONTRIBUTING only
  • Framework Featureskillware/core/ loader, env, adapters
  • CLIskillware/cli.py, docs/usage/cli.md
  • Examplesexamples/*.py, agent loops, examples/README.md
  • Packaging — PyPI wheel, pyproject.toml, MANIFEST.in
  • RFC / meta — templates, labels, CI, or large design doc

Checklist (all PRs)

  • Linked GitHub issue (Fixes #… or Refs #…)
  • Scope matches the issue — no unrelated refactors
  • python -m black --check . and flake8 pass locally (or CI-equivalent subset)
  • pytest skills/ and pytest tests/ pass locally when relevant
  • CHANGELOG.md updated under [Unreleased] when user-visible behavior changes
  • examples/README.md updated if this PR adds, renames, or removes a runnable script
  • Ran pytest tests/test_registry_docs.py when skills, examples index, or agent-loops matrix changed

New or updated skill

Bundle and metadata

  • Skill at skills/<category>/<skill_name>/ (from templates/python_skill/ or equivalent)
  • manifest.yaml: name (full ID), version, description, parameters, constitution, real issuer
  • Optional: short_description, issuer.github, issuer.org, requirements, env_vars

Logic, cognition, tests

  • Deterministic skill.py (no ad-hoc LLM-generated execution paths)
  • instructions.md explains when and how to use the skill
  • card.json issuer matches manifest when present
  • test_skill.py covers execution and schema expectations
  • SkillLoader.load_skill("<category>/<skill_name>") succeeds (or deps documented)

Documentation and catalog

  • docs/skills/<skill_name>.md and row in docs/skills/README.md
  • Usage Examples for Gemini, Claude, OpenAI, DeepSeek, Ollama per skill usage template

Constitution and safety (skills only)

Dedicated agent mailbox only; preview/confirm before send; recipient cap unchanged. Signatures apply to new mail only, not replies (follow-up issue).

Related Issues

Closes #292

Introduce skillware mail submenu, global/project mail: settings, HTML+plain
signatures with logo, addressbook add wizard, and gmail_handler wiring so
operators can init persistent user-config paths without editing the wheel.
Comment thread tests/test_mail_config.py Fixed
@rosspeili
rosspeili merged commit ceefe10 into ARPAHLS:main Aug 19, 2026
6 checks passed
@rosspeili
rosspeili deleted the feat/issue-292-mail-cli-config branch August 19, 2026 09:33
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.

[CLI]: mail addressbook + signature config, CLI submenu, and operator docs for office/gmail_handler

2 participants