Skip to content

feat: add utilities/unit_converter skill#166

Open
sameer08055 wants to merge 1 commit into
ARPAHLS:mainfrom
sameer08055:my-first-contribution
Open

feat: add utilities/unit_converter skill#166
sameer08055 wants to merge 1 commit into
ARPAHLS:mainfrom
sameer08055:my-first-contribution

Conversation

@sameer08055

Copy link
Copy Markdown

Description

Adds a new utilities/unit_converter skill that converts values between
common units of measurement using standard conversion factors.

Supports length (km, m, cm, mm, miles, yards, feet, inches), weight
(kg, g, mg, lbs, oz), temperature (celsius, fahrenheit, kelvin),
and speed (kph, mph, mps, knots). Zero external dependencies.

Type of Change

  • Skill Proposal: New Skill (Contains manifest.yaml, skill.py, and instructions.md)

Checklist (all PRs)

  • My code follows the Agent Code of Conduct.
  • I have run pytest locally on the skill tests (12 passing).
  • CHANGELOG.md updated under [Unreleased].
  • examples/README.md — not applicable, no new runnable script added.

New or updated skill

Bundle & metadata

  • Skill lives at skills/utilities/unit_converter/
  • manifest.yaml has name, version, description, valid parameters, and constitution.
  • manifest.yaml includes issuer with real name and email.
  • short_description included in manifest.
  • requirements is empty — zero external dependencies.

Logic, cognition, and UI

  • skill.py is deterministic Python — pure arithmetic, no LLM code paths.
  • instructions.md explains when and how to use the skill.

Tests & loader

  • test_skill.py covers all unit categories, edge cases, and error handling (12 tests, all passing).

Constitution & Safety

This skill performs only local arithmetic using hardcoded conversion
factors. It makes no network requests, reads no files, and has no
side effects. All error cases return a structured error key rather
than raising exceptions.

Related Issues

No related issue — new skill contribution.

@rosspeili

Copy link
Copy Markdown
Contributor

Thanks for the contribution, @sameer08055, appreciate you taking the time to add tests and follow parts of the PR template.

Process: Please open a New Skill Proposal issue and get maintainer ack before opening a PR (except hotfixes to existing skills). That keeps scope, category, and required files aligned before review. I've opened issue #167 to track a revised direction, let's continue there and treat this PR as a draft reference.

Scope: A single-value converter (km→miles, °C→°F, etc.) is too close to what models already do inline. Skillware registry skills should solve problems agents get wrong reliably, e.g. batch normalization on structured records, compound unit parsing (5'11", 100 km/h), and audit-friendly outputs for pipelines. See the issue for a proposed data_engineering/unit_normalizer shape. We'd also prefer an existing category over a new utilities/ top-level.

Missing from this PR (required for any new registry skill per CONTRIBUTING):

  • skills/<category>/__init__.py and skills/<category>/<skill>/__init__.py (enforced by tests/test_skill_issuer.py)
  • card.json (issuer must match manifest.yaml)
  • docs/skills/<skill_name>.md + row in docs/skills/README.md
  • Bundle test: relative import (from .skill import …), test_skill_manifest_consistency, run pytest tests/test_skill_issuer.py
  • skill.manifest should load full manifest.yaml, not a partial hardcoded dict
  • Fix manifest typo: sam90509@gmail.comcom → valid email

Next steps: Comment on #167 with which direction you prefer (batch normalizer vs compound parser vs finance units). Once scope is agreed, close this PR and open a fresh one linked to the issue with the full file set. Happy to review again when it's aligned.

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